Using LED command line without root

A few of the people who tried to build the LED cube had problems getting it to run. Several people didn’t realise that you needed root. I’ve now had to solve this problem for my self as I’m now trying to use it from my ubuntu plug. I found the solution here and have adapted it for the cube. The solution to this is too use udev, which allows devices to be run from user space.

Create new rule for udev

sudo emacs /etc/udev/rules.d/60-objdev.rules

Edit new rule in emacs and add following:

SUBSYSTEM!=”usb_device”, ACTION!=”add”, GOTO=”objdev_rules_end”

SYSFS{idVendor}==”16c0″, SYSFS{idProduct}==”05df”, GROUP=”users”, MODE=”666″

For other devices replace the vendor and product id with values you can get from lsusb. For example:

daveh@mbp:~$ lsusb

Bus 001 Device 005: ID 16c0:05df VOTI

Restart udev

sudo /etc/init.d/udev restart

Plug in the cube, and try the command.


Cube Hack part II (software)

I’ve created a Google code project with the snappy title of avr-usb-rgb-led. It is based on the hid-custom-rq example from AVR usb examples. I’ve added 3 new commands, one for each LED. It uses a software PWM to control the brightness of each LED based on the value set.

There is a coresponding program using libusb which allows you to send the commands, it simply allows you to set the colour of the cube with an RGB tuple on the command line.

To get the code you need to check out using subversion. To flash the chip you probably want to use the makefile.