Saturday, February 26, 2011

Web Service for Full "Chumbified Ardunio" control?

You may remember my PHY2PHY-intermediating web service.

It occurs to me that one could have an intermediating web service that exposes all the aspects of an Arduino through a Chumby One.

The Chumby could hit the web service every so often (say 1-2 s) to get commands for getting/settings the connected Arduino I/O values.

Someone has already written a protocol for full serial control of the Arduino, so adding the web service would be simple...

By the way, should an Arduino on a Chumby be a "Chumbified Arduino" or a "Chumbuino"?

Arduino to Chumby to UDP

So after getting Chumby Python + PySerial on a USB stick, I hooked up a USB hub to the Chumby One, hooked up the USB stick to the hub (which ends up at /mnt/usb on the Chumby), and also hooked up the Arduino to the USB hub:

Then I wrote this program on the Chumby:

from socket import *
import serial
from time import sleep

while 1:
data =
if len(data) > 0:
print "Got:",data
s.sendto(data,('[my server IP addr]',10001))
print "not blocked"

Note that this program is not blocked waiting for Serial input from the Arduino. On my Internet server, I wrote:

from socket import *
s=socket(AF_INET,SOCK_DGRAM) # create UDP socket
s.bind(('[my server IP addr',10001)) # bind to port 10001

while 1:
[msg,addr]=s.recvfrom(256) # receive packet of up to 256 bytes
print "addr:",addr," message:",msg

Then everything that the Arduino sends out on Serial to the Chumby goes over UDP to my Internet server.

This is easy!

Wednesday, February 23, 2011

Making Holograms

I once had a holography kit a long time ago (for use with my HeNe laser), but never got around to building the recommended stable sandbox for it, and it got lost in a move.

This Christmas, Carla bought me the Litiholo Kit. This is the most awesome introductory holography kit ever. First, there is no wet development of the plates. You just expose them for around five minutes, and they are done. It even comes with a blue LED keychain light to use as a "safelight" while you are exposing the film in the dark with the red laser.

The Litiholo Kit uses a known technique for easy holograms - there is only a single expanded beam cone from a solid-state laser. The part that directly illuminates the film plate is the reference beam, and the part that illuminates the object and bounces off of it is the object beam. There is no need for additional mirrors or lenses to steer the reference beam around separately from the object beam. Plus the system is designed to minimize vibration between the object and the plate, which is one of the biggest source of failed holograms.

So how was my first five minute exposure?

Car Hologram and Car

You can see the hologram above, and the red matchbox car comes with the kit below. I was amazed how easy it was to make a hologram! So I got creative:

So obviously these are not the best holograms - they are a bit messy, they are small, and because of the angle of illumination you have real limitations on the size and shape of what looks good. But on the other hand, it is incredibly simple, works, and is a great introduction to holography!

Chumby One and Arduino

So I got a Chumby One. I loaded this up on the Arduino:

int ledPin = 13;
int i=0;

void setup() {
pinMode(ledPin, OUTPUT);

void loop()
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin, LOW);

Then I plugged the Arduino into the Chumby One USB port, I turned on the Chumby sshd, ssh'ed into the Chumby One, and did this:

stty -F /dev/ttyUSB0 9600
while true; do
read LINE < /dev/ttyUSB0
echo $LINE

And boom, I started seeing data coming in from the Arduino. Wow, that was simple!

Next to get a USB hub so I can have the USB drive with Chumby Python & PySerial on it as well as connecting the Arduino. I assume that would work...

2 USARTs and new Breath Sensor

Regarding cheap PHY2PHY (physical to physical interactions over the Internet), I am still convinced that it is hard to beat the Lantronix products for having a solid serial to TCP/UDP/IP/DCHP stack. My best results was with the good old Xport. My results with the Xport Direct and an Xport Arduino Shield have been less than stellar, but it may just be do to the sad state of Arduino SoftwareSerial (even the better versions). Both Lantronix products are around $50.

My best results were with Comfile CUBLOC that has two USARTS, one for monitoring the system, the other for serial-to-Ethernet. But wait, now you can get the Arduino/Wiring Board-esque Sanguino with 2 USARTS. The Sanguino (no USB) is around $30, the Wiring Board itself is $60 if you need a lot of digi I/O.

Then I come upon a new Wind Sensor from Modern Device. The anemometer impeller solution was always kind of expensive plus it took a long time to spin down once spun up. I wonder how responsive this one is? At $17, it is also way cheaper.

Friday, February 18, 2011

My Phy2Phy SBC obsession

OK, here is what I want:

1) Linux SBC with Python (out of the box)
2) Ethernet with DHCP working (out of the box)
2) Lots of GPIOs

I have a Mini2440, but it came with a Linux with unworkable DHCP. Weird. Oh yes, I can download a toolchain and compile my own kernel and load it up to get DHCP working. Maybe I can even compile and get Python going. If I could spend a week straight working on this, sure I could do it.

Meanwhile I have the SheevaPlug, which does DHCP and Python out of the box, but no easy GPIOs. You can hook it up to an Arduino though. So looks like that will be the answer to my madness.

On the other hand, I may just go Chumby & Arduino.

Sunday, February 13, 2011

Dorkbot SoCal 43 - Feb. 27, 2011

Dorkbot SoCal 43

***** SUNDAY, February 27, 2011
***** 1:00pm
***** Machine Project
***** 1200 D North Alvarado Street
***** Los Angeles, CA 90026
***** Google map of Machine Project

Christopher O'Leary

Christopher O'Leary is an artist who works across mediums including video, photography, sound and installation. Utilizing novel lighting and post-production techniques, the creation of his work is tightly controlled, enhancing and building upon the performative aspects of his projects. These activities include performance art, computer-vision systems and non-linear videos.

Lewis Keller

Los Angeles based artist Lewis Keller manipulates frequency, timbre and amplitude via performance, installation, fabrication and digital media. His work combines sophisticated technology with crude humble structures, inviting listeners to question their relationships with time, technology, space, sound and silence. He received his BA from Colorado College and his MFA from CalArts.

Michael Wilson and Chris Weisbart

Michael Wilson and Chris Weisbart of the Natural History Museum of Los Angeles will be presenting on the incorporation of DIY and open source technologies in the museum exhibit world, where the need for interpretive and educational technology is often not matched by budgets. The team will present a lecture on projects they have developed for the NHM as well as a current project that Michael and Chris have been working on in collaboration with students at New Mexico Highlands University dealing with the Miller-Urey experiment.

Friday, February 11, 2011


I think the OpenServo project is pretty cool! My first scheme on how to do Touch was to read the error voltage from a servo driving the finger to indicate how hard someone was pressing on it. Because of the opacity of the servo circuit, I pretty quickly gave up on this idea, and went with pressure sensitive resistors on the fingertip.

Now with OpenServo, I could use the actual position register and/or the back EMF register to try to determine position in a touch-over-IP solution, without having to deal with any funky pressure sensors.

Whether this would actually work or not is unclear, as you would need to apply enough touch pressure to either move the servo at least one notch out of position, or enough to increase the servo power or back EMF reading. But the price is right!

You know what would go good with the OpenServo? The PIC-MINI-WEB! At $40.95 you get an Ethernet PHY, TCP/IP stack, and it would be easy to I2C over to the OpenServo. Cheap PHY2PHY goodness!