Monday, July 27, 2009

Monday, April 20, 2009

The Arduinome in Action

As promised, here are a couple of videos showing some of the first times I've used the arduinome.


Arduinome Startup Sequence


Arduinome Nerdscroll Demo


Arduinome SevenUpLive Test

I'll post more videos one I get used to using the interface.

Sunday, April 19, 2009

A Fully Functional Arduinome


As I said, here are more details on the completion of my arduinome. As I mentioned before, I only ran into a single issue once I had all of the components assembled. When I first plugged it in after uploading the firmware, all of the lights were lit and the startup sequence ran turning each row off in succession, instead of turning each row on. A quick search on Google brought up this post on PeterMark's blog with the exact same issue. Upon further inspection, I found that I had indeed swapped the IDC headers for the input and output. Swapping the connections resolved the issue and the startup sequence activated as planned.

I've run through the standard test patches using MAX (monometest, vu_spec, boiiing, etc) and everything is running smoothly. I've even been able to play with SevenUpLive,which is the shit.

I've posted a couple of pictures showing some detail on the final setup. First, this thing is BRIGHT. The LED's are rated at 6000 mcd, color and intensity seems to be uniform, and they're a nice deep blue. My camera can't really handle how bright they are, so the picture above is a bit over saturated and looks much lighter blue than the actual unit. The "dot" effect isn't as noticeable in person, either.

For now I have to keep the board raised because the wiring from the breakout board to the buttons is a little short and I don't want to stress any of the connections. Once I figure out the whole enclosure situation I think that the short connections will help manage the wiring situation and keep the insides of the box clean. It's not something that anyone will likely ever see, but it should keep troubleshooting easier should problems arise.


The board as it currently stands. Note the durable Scotch tape assembly.


The final view of the assembled aruduinome.

I'll try to post some videos soon as well as start working on a detailed set of build instructions.

Saturday, April 18, 2009

SUCCESS!!!

I've got my arduinome up and running. I only ran into one small issue and it was resolved quickly. More details in a future post!

Thursday, April 16, 2009

Assembly Update

Here's a quick update. I wish I was able to post to this in a more timely fashion, but traveling for work 4 days out of the week make it difficult to put together meaningful posts (and actually work on the project).
  • I pulled the trigger and soldered all of the LEDs and diodes to the boards. Despite having a fire started, my MacGyver'ed continuity tests show that everything seems to be connected properly.
  • I was able to get the boards held together temporarily with normal tape. As long as I'm careful with the assembled board when moving it around, it should hold until I figure out the enclosure situation.
  • I've got the rows and columns wired together with solid core wiring. I know that there's a fair bit of talk on the monome forums about using stranded vs. solid core, but these connections will only be subjected to minimal mechanical stress and should hold.
  • I ordered ribbon cable and IDC connectors from Curious Inventor. I've got the cabling from the unsped shield to the breakout board put together and now just need to wire the breakout to the actual button board. I've been reluctant to do this until I am absolutely sure I've go the wire ordering correct, but will have to pull the trigger on this to move forward.
  • I was able to cut the breakout board off of the shield using a Dremel tool. This was a little nerve wracking as the perforation is fairly close to one of the traces going to the 164, but I was able to get through it with a pretty straight cut.
Sidenote: I'd recommend Curious Inventor to anyone if you find something you need there. They've shipped both of the orders I've made on the same day as the order was submitted and I received them within 2 days (Atlanta to Chicago) using their cheapest shipping option.

Anyway, this weekend I'm hoping I can get some time in to wire the breakout to the button board, upload the firmware, and (hopefully) start her up. I've also got a new multimeter, Panavise Jr vise, and hot air rework/temperature controlled soldering station coming in, so future projects should be easier to put together.

Wednesday, April 8, 2009

Progress Update

So it's been a few weeks since I've had the chance to update, but progress has been made! Here's what's been going on:
  • I determined that sanding the LEDs was definitely the way to go. The light spread was pretty narrow, but they're bright enough (6000 mcd) that enough light bled out to illuminate the sides of the buttons. Given this combination, I just had to sand the top of the LEDs to get rid of the dot effect and provide enough diffusion to saturate the buttons. BTW, sanding 64 LEDs by hand is a bitch, if I build another one of these I'm going to spend time finding LEDs with a very wide spread.
  • I've completed soldering the LEDs and diodes to the SparkFun boards. I was hesitant to dive into this because 1. I was (and still am somewhat) worried about differences in intensity/color saturation across the LEDs, 2. Am relying on a $20 firestarter soldering iron and have heard all the horror stories about them crapping out or destroying pads.
  • I put together a guerilla continuity test (still waiting on Amazon for my multimeter) to check the diodes were working properly. Essentially I had an LED and resistor breadboarded and created a circuit (Vcc->switch row n->diode->switch Gnd (col) n->resistor->LED->Gnd) to ensure that I had continuity through all of the diodes.
  • I put together a similar test with the LEDs, but just had to put a resistor in the mix and run through each row-column combo to make sure all of the LEDs were working properly.
The end result is that all of the connections on the boards seem to be good and all of the LEDs lit up. Based on the quick run through it looks like the LEDs I have consistent intensity and color saturation, but I won't know for sure until I get it connected and running through the MAX driver. Right now I'm waiting on another order of ribbon cable and IDC connectors to come in from CuriousInventor so I can wire everything up and (hopefully) start running through initial tests using the arduinome firmware.

BTW, a new version of the firmware is out that includes code for reading from the Arduino's analog inputs. The code is pretty brief, but after looking at how they put it together it's a lot better than I would have come up with.

Tuesday, March 24, 2009

Start It Back Up, Boss


So I had a nice little surprise today when the shear cutters I ordered arrived a day early. That, combined with picking up the final resistors I needed from Radio Shack, let me finish up the Unsped shield (with the exception of the headers on the breakout board) and solder the diodes to the first SparkFun button PCB. I've included a couple of before & after pictures showing how the leads first cut with my old diagonal cutters, then with my new shear cutters.

Before:

After:
This should help the buttons sit properly. Finally, I inserted the 16 LEDs into the board and did a quick smoke test connecting each one directly to +5V with a resistor to make sure there were no issues with the traces or the LEDs themselves.

This is a pretty good view of one of the LEDs lit up. They're very bright (6000 mcd) even in a fully lit room. They do, however, have a narrow projection and you can see a somewhat prominent "dot" when you put the button pads on. I'm going to find a way to get the entire board lit at once before I do any soldering in order to check for any inconsistencies in color/intensity. I'll also experiment with sanding the tops in order to provide a more diffuse glow.

I'm heading out on vacation this afternoon and will be getting back Sunday night. Hopefully I'll be home in time to figure out a quick way to get the board lit by the MAX driver.

Monday, March 23, 2009

Production Halt

[note: the wires running from the breadboard to the PCB are not routed properly, an FYI if anyone tries to use this picture for reference.]

So I've been able to play around with the parts that I've received so far but have hit a bit of a snag. I was able to get some of the code featured on Basement LEDs post up and running to test button presses. One of the problems I ran into, though was that it would correctly identify the column of a button press but then it would think that it was being pressed across all rows. I've checked the connections on my breadboard and think that everything is wired up properly, so I suspect it might be the code itself. Anyway, this is just a test rig and I'll hopefully be able to move forward soon.

My real holdup is that I need a better pair of cutters before I solder the diodes and LEDs onto the Sparkfun boards. Right now I have an old pair of diagonal cutters that leaves a fairly long lead. Aside from being a neat freak with my connections, I've seen that I'll need to get the diode leads as short as possible to make sure the button pads don't ride too high. I've got some shear cutters ordered from Amazon that will, hopefully, arrive before I leave for vacation this week. Other than that I've got the breakout board mostly soldered and will try to get as much as I can together before I leave.

One of the other ideas I've had as far as customizations go is utilizing the analog inputs for extra controls. I'm kind of looking at it from an Ableton Live-centric point of view right now. I'm going to look into the possibility of adding a couple of pots to control things like global tempo, quantization, mixing channel, etc. I think I'll be able to use this post on the monome site regarding adding an accelerometer as a basis for moving forward on the add ons. The only thing I'm really not sure about at this point is whether I want to include any kind of additional functionality in a single enclosure or make a separate module.

Thursday, March 19, 2009

Parts are in!


So I got my orders in from Sparkfun, Curious Inventor, and Digikey today. It's like a mini geek Christmas. I'm still waiting on the 24 pin DIP socket that was back ordered and to receive the LED driver samples from Maxim. I also realized I was looking at the resistor network the wrong way (misread the schematics and thought that it was inbetween the MAX driver and the LEDs, not the shift register). Since the cheap side of me finds it galling to pay 4 bucks shipping for a .23 cent part, I decided to make my own ghetto resistor network.

Aside from my crappy soldering, I realized that I had picked up two different sets of 5 resistors from Radio Shack. They conveniently mixed 100 ohm resister packs with the 100 kohm stock. Thanks guys. So I have 5 resistors soldered (poorly) in parallel and need to pick up a new set to finish it off.

Besides that I decided to start putting together some of the parts. One of the things that I noticed is that the cutters I have leave the diode leads pretty high on the Sparkfun board. This causes the button membrane to sit high. I've only soldered one diode so far, so I'm going to see if I can get a set of flush cutters to prevent that from happening.

I've been going through the designs that are out there as well as the arduinome firmware and have some ideas of how I'd like to differentiate my build from the "standard" arduinome. I'd like to be able to have the unit be able to run in a sort of "light toy" mode without being connected to a computer. Off the top of my head I have the following in mind:
  • Wire a rocker switch to the arduino power jumper to be able to draw power off of a wall wart
  • Have an opening in the enclosure to allow the power jack to be accessed (obviously)
  • Update the firmware with with an "unplugged" mode. This would essentially set a boolean during setup based on the value of Serial.available() and run some custom code present in the firmware that is yet to be determined.

Monday, March 16, 2009

Parts List

I have my initial batch of parts ordered. There are still some parts that I have yet to order for various reasons. Also, I went ahead and got a few extras beyond what the build requires just in case.

SparkFun


4Button Pad 4x4$39.80
4Button Pad 4x4 PCB$39.80

S&H$6.95

Subtotal$86.55


Digi-Key


2MM74HC164N PI/SO Shift Register
$1.08
2MM74HC165N SI/PO Shift Register
$1.08
701N4148FS Diodes$2.24
1ED90053 24 Pin Socket (Back Ordered)$1.53
1ED90049 14 Pin Socket$0.89
1ED90050 16 Pin Socket
$1.02
3P4910 .10 uF 100V Monolith Capacitor
$1.68
1P828 10 uF 50V Capacitor
$0.16
1S1012E-36 36 POS CONN HEADER $1.68

S&H$4.80

Subtotal$16.12


Curious Inventor (They had some of the Unsped arduinome shields left from a batch order)



1Unsped Arduinome Shield PCB$5.00

Shipping Round 1$5.99

416 Pos IDC Headers$1.96

15 Ft 25 Pos Rainbow Ribbon Cable$4.99

Shipping Round 2$5.99
Subtotal$10.99


Maxim-IC


2MAX7219CNG+ LED Driver SamplesFREE

Subtotal$0.00


Stuff I Already Had Lying Around



1Arduinome Decimellia

100Blue 1000 mcd LEDs

Misc wires



Radio Shack (ugh)


2100 kohm Resistor 5 Pack$1.98
122 kohm Resistor 5 Pack$.99

Subtotal$1.98



Grand Total$129.57


I still need to figure out exactly what value resistor network I should pick up, but that should only add a few cents to the total. This also doesn't take into account any sort of enclosure. I'll keep updating this as I move along in the process.

[edit 3/23/09 1:14 PM CST: Added resistor cost from Radio Shack]
[edit 4/19/09 6:54 PM CST: Added 22kOhm resistor from Radio Shack & ribbon cable from Curious Inventor]

Thursday, March 12, 2009

Yet Another Arduinome

Alright everybody, I think I'm ready to start building my very own arduinome. I've been looking around the tubes and found lots of helpful resources that I will shamelessly steal from due to the fact that I'm essentially a complete noob to the electronics scene. The only semi-interesting thing I've done so far is create a simple set up using one of the analog ports on my arduino to read the value of a potentiometer over a serial port and post the value to Twitter using a custom Python script. The intent was to be a proof of concept for posting the temperature of a remote location to Twitter, with the pot in place of the temp sensor. If anyone ever ends up reading this and is interested I can post the (unpolished) code.

Anyway, while the arduinome has been done many times in the past I've got some ideas that might be able to set it apart. Assuming I can figure it out, I was thinking of including the ability for optional external inputs, not unlike what is offered by the Machine Collective but without quite as much awesome. I figure for now I'll stick with the monochrome model and, if I can get everything blinking, think about an RGB model in the future.