ESP8266 IO bridge

A toy PL/0 compiler

Serial to NeoPixel bridge

I’m hacking on a project to hook a NeoPixel ring up to the internet. I don’t have a good reason why, but it’s a good excuse to work with OpenWrt, TURN servers, and some blinking lights. NeoPixels are fairly hard to drive as they use a single wire, 800 kHz, non-return-to-zero protocol which needs precise timing. I decided to push the problem off into a Olimex ATTINY85 board that takes serial data on one side and updates the ring on the other.

Serial to Wifi board hacking

I’m having fun with my Olimex ESP8266 dev board. For ~5 Euro you get a 80 MHz processor, built in Wifi, a bunch of I/O, and “IoT” style libraries with a RTOS. This is the same chip that’s used on the serial to Wifi boards but with all of the I/O broken out. I especially like how they use half-holes on the edges to also make it PCB mountable.

Arietta 25

I picked up two Acme Systems Arietta G25‘s. They’re a tiny Atmel ARM9 powered board with most of the I/O out on a 0.1″ header. I hope to hook one up to a GPS to send up in my plane and record the track and speed. Some random notes: The board shows up as a USB CDC EEM Ethernet adapter. ChromeOS includes the CDC Ether but not the EEM driver. I built the chromeos-3.

Stopping ‘PAM service(sshd) ignoring max retries’ errors in syslog

Huffman coding on NMEA sentances

I’m impressed with how well Huffman encoding works on the very verbose, very repetitive, ASCII based NMEA GPS sentances. I hacked up a Python script that bakes a fixed dictionary from example data and a device side C++ encoder that encodes based on the dictionary. The encoder is 46 statements, uses ~10 bytes of RAM, and still gets almost 3:1 compression. For comparison, on my 135,548 byte test file: Treating each character as a symbol gives 58,749 B (2.

Three days to posession

As an experiment, I hooked up a spare ARM machine to the internet and left it running Tor. It only took three days for a script kiddie to break in, as it turns out the pre-built rootfs I used has a poor default root password. So the lessons are: Always clear the root password. Disable root login in sshd_config. Disable password logins in sshd_config and use keys only.

First flying of the year

Christmas star light

We’ve got some Christmas stars in the window that needed some illumination. I hacked together a Olimex OLIMEXINO-85, a 8 mm RGB led, and the support components to make this:

https://juju.net.nz/michaelh/blog/wp-content/uploads/2013/12/Vid-20131222-163519-1.m4v The video is a one-frame-per-second timelapse (thanks Android!). It’s hard to see as the LED is so bright that the camera is saturating but it’s 60 s on white, 10 s transition to the next colour, 10 s there, then 10 s transition back to white.