[SOLVED] Controlling a BlinkyTape from the Arduino Yún

Hi everyone,

I'm trying to control a BlinkyTape plugged into the USB-A connector of the Arduino Yún. The problem is there is no USB port port listed in /dev (it should be ttyACM0):

bsg           loop3         mtd3          mtdblock2     sda1          ttyS2
bus           loop4         mtd3ro        mtdblock3     shm           ttyS3
console       loop5         mtd4          mtdblock4     tty           ttyS4
full          loop6         mtd4ro        mtdblock5     ttyATH0       ttyS5
fuse          loop7         mtd5          mtdblock6     ttyS0         ttyS6
input         mem           mtd5ro        mtdblock7     ttyS1         ttyS7
kmsg          mtd0          mtd6          null          ttyS10        ttyS8
log           mtd0ro        mtd6ro        ppp           ttyS11        ttyS9
loop-control  mtd1          mtd7          ptmx          ttyS12        urandom
loop0         mtd1ro        mtd7ro        pts           ttyS13        watchdog
loop1         mtd2          mtdblock0     random        ttyS14        zero
loop2         mtd2ro        mtdblock1     sda           ttyS15

After a bit of research, I found the solution in this forum thread so I thought I'd share it for anyone who might be stuck with a similar issue. This should apply to any other device that needs to be controlled via serial over USB.

1. Activate the ttyACM0 port:

Connect via ssh to the Yún then run the following:

$ opkg update
$ opkg install kmod-usb-acm

There should now be a /dev/ttyACM0 port.

Use picocom to check that the port is working:

$ opkg install picocom
$ picocom -b 9600 /dev/ttyACM0

To exit picocom: <ctrl>a <ctrl>x

2. Install pyserial:

$ opkg update
$ opkg install pyserial

3. Install the scripts:

Copy the BlinkyTape python scripts on the µSD card (in directory /mnt/sda1/BlinkyTape_Python for example).

4. Run the scripts:

$ cd /mnt/sda1/BlinkyTape_Python
$ python binary_clock.py -p /dev/ttyACM0

Enjoy your blinking lights!

Raphaël

Edit: Clarified the steps and added explanation for Picocom (thanks ShapeShifter).

SableRaph:

$ opkg update

$ opkg install kmod-usb-acm

This is likely all that was needed. Picocom is just to verify that the port is working.

Thank you for sharing!

Thanks for the precision! I have to admit I didn't research further after I got it working :slight_smile:

Edit: I edited the original message for clarity.