The making of the “Neobombe” prototype (electronics)

Neobombe setup at Singapore Maker Faire

Neobombe setup at Singapore Maker Faire

So my group of friends and I exhibited our “Neobombe” prototype at the Singapore Maker Faire last weekend. After submitting our proposal more than two months ago, we managed to scrap together a working prototype. It is far from perfect and has a lot of room for improvement. Given more time and budget, we could make it pretty awesome, but it has to do for now. Four of us from ArtMakesUs were actively involved in this project and I estimate we spent about two man-months doing this project. We worked on it on the side while doing our day jobs. Our expenses added up to about SGD2,000 coming out of our own pockets. I focused on the electronics while the rest of my teammates did the programming and the build. The Neobombe concept was the brainchild of my programming teammate. I helped execute the idea via the hardware electronics, spending the bulk of the budget on the electronics.

This slideshow requires JavaScript.

We had generally positive feedback from the audience during the maker faire. They loved the idea behind the art installation and enjoyed the interactivity – they could see their Enigma-encoded twitter messages being “intercepted” by the Neobombe, and then decrypted live in front of them. The only negative feedback came from some of the audience members who are electronics-trained. They gave feedback that for a hobby project, we probably spent too much money. We should have ordered all our 36 stepper motors and shields from China, from websites such as Taobao and Ali-express. I ordered these components from Adafruit from the USA cos I loved Adafruit’s quality assurance as well as their online forums and extensive documentation. Our former lecturer from LASALLE who dropped by said we went “crazy” on the project budget. No regrets though.

Line diagram

Line diagram

This is the line diagram for the setup. I did a simulation of the actual bombe dial movements rather than the actual mathematical mechanics as encoded in the software algorithm because I didn’t know how to parse the osc data streaming in live from  the Javascript program. The osc data contain the actual movement indication for each individual motor based on the bombe decryption algorithm. To put it in layman terms, the movements of the stepper motors are fake, as in, they resemble actual movements of the dials in the actual bombe machine but are not actually similar. The lay audience wouldn’t be able to tell the difference if you put our Neobombe and the actual bombe side by side but in terms of scientific integrity, they are not the same. There are three rows of 12 steppers. The top row has a fast rotating movement, something like three revolutions per second. Stepper motors are notoriously complicated to control compared to other motor types, like DC or servos. I ran into the problem of not being able to make them move fast enough due to blocking commands when many motors are controlled by one Arduino microcontroller. Even when I used the AccelStepper library which allows for non-blocking commands, I noticed that the more motor shields I stacked on one Arduino, the slower the motor speed. Hence I stacked one motor shield per Arduino for the top row, two for the middle row and three for the bottom row. I don’t think the programmer is too happy with what I did, but if we ever have the chance to work on this project again, I will fix this.

Test setup or electronics

Test setup or electronics

You can see the test setup for the electronics follows the line diagram: two power supplies, two usb hubs, one power distributor board, 11 Arduinos and three rows of stepper motors.

Adafruit shipment package

Adafruit shipment package

12V 12A power supplies

12V 12A power supplies

USB hubs and power distribution board

USB hubs and power distribution board

One note regarding the power supplies and power distribution board, and also for the Arduinos, is that I should have created electronic enclosures for them. Like a black plastic box casing or similar to help protect against accidental short circuits, like, if, for example, someone spilled water on the electronics or touched the positive and negative terminals with wet hands. This step would be a matter of life or death for AC circuits or DC circuits with high voltages. For 12V, the repercussions would be a lot milder, but if this project were a public commercial installation, this precaution would be necessary. You can never predict the behaviour of young children. During the maker faire, we realised that this Neobombe project is pretty incomprehensible to children. How do you explain encryption, Twitter, computers and WWII in simple terms?

mess of wires

mess of wires

There was a horrendous amount of wires. Cable management is important but we weren’t very successful at this. We wanted to expose the cables though. For the raw-looking aesthetic.

jst connectors - 18 x 2-pin power cables + 36 x 4-pin stepper cables

jst connectors – 18 x 2-pin power cables + 36 x 4-pin stepper cables

Soldering the JST connectors took up 20 hours. I actually kept count. It was laborious indeed. But my soldering skills + 1. I was proud that none of the connections broke during the two days of the maker faire. I had my soldering iron on standby just in case. The JST connectors were very useful for fast setup and tear down for the installation. JST stands for Japan Solderless Terminal, named after the company that first made these.

jst connector for stepper motor

jst connector for stepper motor

The ribbon cables helped cut down the mess by a lot, else there would be quadruple the amount of snaking wires lying around.

jst connector for motor shield power

jst connector for motor shield power

These were relatively easier to do compared to the four pin JST connectors for the steppers.

3D sketch of led light strip

3D sketch of led light strip

Our original idea was to have light strips for each motor and we even went so far as to design and 3D print the above model – the mount and casing for the printed circuit board (PCB) light strip. We even spent SGD400 on making 40 of the following PCBs. The PCB (in green) was meant to be slotted into the 3D printed stepper mount (in black) and covered by a translucent casing (shown as transparent).

LED PCB strip

LED PCB strip

But we ran out of time and budget. 3D printing takes up a lot of time. Neither did we have the budget to do a commercial 3D print to save time. But if we had budget, I wouldn’t use the coin cell battery which has to be replaced daily. It doesn’t make sense for a permanent installation. Instead, I would use the Adafruit slip ring with flange. See following image. This cost USD15 though and we need 36 of these.

Adafruit slip ring with flange

Adafruit slip ring with flange

The slip ring allows for rotating LEDs since the wires at the top can be rotated continuously while maintaining contact with the wires coming from the bottom. You can add a proper LED strip with many LEDs, instead of single LEDs, powered by a wall adaptor instead of coin cell batteries.

Rough sketch of frame build

Rough sketch of frame build

If we had more time and budget, we would create a proper rack frame for the motors, Perhaps even do a steampunk look with metal parts and exposed gears. We could also add an alphabet ring to each of the motors since technically, the motors move from alphabet to alphabet, from A to Z. If. If only. A big “if”. Well, we have to leave it as it is for now.

Advertisements

One comment

  1. Pingback: Maker Faire, Yearly Review, and Rant - Digital Me

Comments are closed.