I'm using the Arduino Uno SMD version in an openFrameworks project (oF version 0062) using Firmata (the standard Uno version that comes with the latest Arduino IDE). Everything works great on my development platform (OS X 10.6) but when I move to Ubuntu 10.10 I'm having problems. Since Arduino is running Firmata, I'm assuming I don't even have to get the Arduino IDE running on Ubuntu. So when I plug in the Arduino, I can see that it's running on /dev/ttyACM0. I switched my openFrameworks code to connect on this port, and though it is not listed among the enumerated devices, it reports that the Arduino is set up correctly. Also, I can run the oF Firmata example, though it seg faulted once or twice.
The circuit is simple, I've just got a bunch of momentary switches (joysticks) wired directly from the digital inputs to ground. I set the pins to be inputs, and I turn on the internal pullup resistors so that each pin reads '1' when the switch is disconnected, and '0' when it is connected. So, with all my joysticks disconnected, all pins return '1'.
However, in linux the digital inputs are not all returning '1' like they are supposed to. Pins 2 and 3 return 1, but the rest are returning 0. Also, sometimes my program seg faults for no apparent reason. I assume this is related to the seg faults I experienced with the openFrameworks Firmata example.
I don't really know where to start debugging this... any ideas?