We’ve touched on this area before with the software layout and planning post but a lot has happened since then. This includes a GitHub repository where the latest version of our code can be found here. If you fancy having a read through it and reckon you have spotted any problems or know a better way of doing things then let us know and we’ll look into what you’ve spotted.
Work in progress system class diagram
For the most part it is structured just like the diagram suggests we had it planned. A cool feature of the project is that the code is portable to other platforms, with just a simple rewrite of the lowest level classes – I2C and Quick2Wire. This means that you could implement the TwitALU on completely different hardware – for instance on the BeagleBone Black or even an ARM based mobile phone.
Today, I’ve had an eventful day – not only have I received my small, test order from RS Components, I have also received the Nixie tubes and power supply boards. We chose to order 16 Nixie tubes – five for each 8-bit input register and six for the output register. Separate flyback boost converters are needed for the Nixie tubes as they operate at 120V which we are unable to supply directly.
I have yet to power up the tubes, but I’ll be sure to post some pictures when I do – they should give the TwitALU that vintage feel that we’ve been after. Continue reading →
Now that we have a Twitter Arithmetic Logic Unit, we can begin the fun stuff! Although 7400 logic is a classic platform for logic circuits, there is still an air of mystery about what goes on inside those little black chips. The advantage of 7400 logic is that it’s incredibly easy to use and the variant that we’ve chosen (74HCT) is super speedy.
But don’t worry, the Twittithmetic Logic Unit (TLU) isn’t just a PCB with a few black boxes. The core aim of the TwitALU project is to make computing rhythmically audible and visually entertaining. This is where the adder module comes into its own.
We’ve had great fun using the Raspberry Pi’s I2C bus and Port Expanders to talk to all the registers in the system and to control the ALU. It’s such an easy to use protocol – writing to 8 pins of a Port Expander is as selecting the Port Expander and sending it a byte of data.
However, Port Expanders aren’t the only I2C device around. You can find all sorts of devices like LED dimmers, LCD drivers, Data Converters (DAC/ADC), Memories, Clocks and Audio synthesisers to name just a few.
Musical references aside my time has, since building as much of the actual system on breadboard as was needed and ordering PCBs, been spent mostly on finding a suitable Python 3 compatible Twitter library and getting it to work.
Job number 1 was finding one I liked the look of. Truth be told, this extended as far as some Googling and finding a list of popular libraries. Then choosing one that was actively maintained, worked with Python 3 and introduced the least interfering with data between me and the actual Twitter REST API 1.1.