Got an IOIO-OTG
Aug 08, 2014Interested in hardware development, I just don’t like some obviously popular things, so instead of Arduino, I ordered an IOIO-OTG.
It’s much smaller than I expected! No any experiences in hardware development, so I hadn’t buy enough components to start hacking with the Android yet.

Anyway, after adding a proper udev rule /usr/lib/udev/rules.d/50-ioio.rules, I plugged it into my Arch Linux notebook with the USB cable for my HTC One.
ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="0008", SYMLINK+="IOIO%n", MODE="666"
Follow the guide https://github.com/ytai/ioio/wiki/IOIO-OTG-Bootloader-and-IOIODude, get the ioiodude from https://github.com/ytai/ioio/tree/master/release/apps
ls /dev/IOIO* #=> /dev/IOIO0
./ioiodude --port=/dev/IOIO0 versions
The IOIO is running in application mode, so I got
IOIO Application detected.
Hardware version: SPRK0020
Bootloader version: IOIO0400
Application version: IOIO0330
To flash the latest firmware, I need to boot the IOIO to bootloader mode. Just detach the IOIO from the PC, use any wire to connect the boot with GND, then plug the IOIO to PC with the USB cable. Wow, the yellow state LED just lights!
Remove the wire or jumper in the jargon, then run the identical command
./ioiodude --port=/dev/IOIO0 versions
IOIO Bootloader detected.
Hardware version: SPRK0020
Bootloader version: IOIO0400
Platform version: IOIO0030
The IOIO is in bootloader mode now, so flash the firmware from https://github.com/ytai/ioio/raw/master/release/firmware/application/App-IOIO0500.ioioapp
./ioiodude --port=/dev/IOIO0 --reset write App-IOIO0500.ioioapp
Comparing fingerprints...
Fingerprint mismatch.
Writing image...
[########################################]
Writing fingerprint...
Done.
Check the version again
./ioiodude --port=/dev/IOIO0 versions
IOIO Application detected.
Hardware version: SPRK0020
Bootloader version: IOIO0400
Application version: IOIO0500
Firmware updated successfully! Wish I could learn something with this small thing.