embedded

[-]

Cyclabile, a labile bike lane

Cyclabile is an experiment about showing a moving bike lane on the road: the image moves according to the bike movement, producing the effect of riding on an actual bike lane, even when there isn't one.

The effectiveness of projecting an image on the paving instead of using a traditional light can be argued, of course.

For now the project purpose is more about having some fun and making a statement (there should be more bike lanes) rather than building an actual usable product.


[-]

Linux Device-Tree and gpio-keys driver on BeagleBone Black

I had to wire up a simple navigation keypad to a BeagleBone Black for a prototype, and I used the gpio-keys driver configured via a device tree overlay.


[-]

Teclast X98 Air 3G: unbricking a Bay Trail tablet

While I was trying to boot a vanilla linux kernel on the Teclast X98 Air 3G I messed up a bit with the UEFI firmware settings: the battery was not recognized anymore, the tablet was rebooting right after showing the UEFI firmware boot screen, and USB-host was not working either; so no keyboard for accessing the firmware menu to restore the default settings, and no ADB for running flashrom or the Intel FPT to reflash the firmware with.

Teclast X98 Air 3G, internals
Teclast X98 Air 3G, mainboard
ISP with a logic level converter, top
ISP with a logic level converter, angle

[-]

Acer C110 pico projector with BeagleBone Black

I was having a hard time getting the Acer C110 USB pico projector work when connected to the BeagleBone Black, it wasn't showing up on the USB bus at all, no sign of it in the kernel messages and consequently no sign of it in lsusb.

Projecting the Ångström login screen
Cable setup 1
Cable setup 2

[-]

Neat compile/run cycle with git and OpenEmbedded

No matter how much careful we are when writing code, whatever changes we are making to a piece of software we must test them before production, even Donald Knuth once said: Beware of bugs in the above code; I have only proved it correct, not tried it. :).

Moreover, if the software we are working on is targeting an embedded system and needs cross-compilation and depends on other software, then testing can be more tedious: we have to prepare patches/archives and instruct the target SDK to pick our latest code, or we could code directly in the SDK working tree, but that would not be very clean. If you use git and OpenEmbedded there is a very neat way to build directly from our own working directory on the filesystem.