Well, I did not update on Sundays.
Things are going well though! I'm building Joytone 2.0, and I have about two weeks left in the project. It's all coming together. Here's a recap of all the things that have happen since the Third of November, Two Thousand and Fourteen:
I'm using and Arduino Mega + the HIDUINO firmware to provide a plug-and-play, class compliant MIDI interface to the computer. I'm still using Pure Data, and I did an end-to-end test and it seems to work pretty well. I want to do some more thorough latency testing, however.
I'm using Adafruit's RGB Pixel Strands as lighting - it's the prewired, much slicker version of the individual RGB LEDs that we failed to correctly use last time. I have some suspicions about why they didn't play nicely, but it's too late to verify anything. These new ones work beautifully, however:
And I had circuit boards printed! Each row has 8 thumbsticks, and there are 9 rows. Each board has a 16-channel multiplexer on the end, and holes for the LEDs along the strip.
The boards make everything much easier, though they still require some some assembly. It's kind of relaxing though - invokes a zen feeling. The surface mount multiplexers require extra care:
These photos were taken at the SF TechShop! It's a really awesome workshop for all kinds of projects. Downstairs they have a machine shop, a wood shop, and a rather terrifying waterjet, and upstairs they have huge project tables, laser cutters, CNC sewing machines, 3D printers, and so on.
I got a screen that's going to be much easier to use. The previous one was a full on mini TFT display for the Raspberry Pi, this guy is a little 20x4 character display for the Arduino. It also has a nifty RGB backlight!
All this stuff needs to connect to the Arduino, so I came up with the idea of making a custom shield with a ton of headers to connect and route stuff. While it would have been nice, I had neither the time nor money required to make a PCB for this giant interconnect thingy (I was also scared I'd have to change the design to fit new components), so I did it by hand.
Maybe it wasn't 100% the best idea ever, but it seems to work! I spent a long time designing this thing, I had to draw it out 3 or 4 times, then implement the drawing in reverse, because all these traces have to be on the bottom of the board. Anyway, it fits 9 8-pin headers for the joysticks, an 18-pin header for the screen, and two 4-pin headers for the lights and buttons respectively, all within the physical constraints of the Arduino. The whole thing took ~4 hours to make.
One of the draw backs is that it's now impossible to program this thing while the shield is on. Since it has this MIDI interface firmware, the Arduino can no longer be programmed over USB. Now I have to flash the code directly onto the 2560 chip (which is a whole adventure in and of itself - I'm going to write a separate post with instructions for that).
Anyway, my next tasks are to find a way to program this thing with the shield on, design the enclosure, and keep chugging away on the software! I have some code that can send MIDI notes now, but I have to do some funky data storage stuff and try to integrate the lights and screen and everything. I think that'll be a Saturday project.