Rainbow String Lights (and other updates)

Rainbow String Lights

Sorry if you were burdened by this email by my automatic newsletter sender. I will only send these manually now. Atomic-specific updates are at the bottom.

Using an Arduino Micro and some low-level port register writing you can drive TM1803-based tri-color LED string lights. The challenge was getting the timing correct on the output pin. An extra CPU instruction or two introduced from refactoring can throw off the timing since there’s only around 200ns tolerance on the RZ line. Fortunately I had my Tektronix Oscilloscope (pictured, BEBOP) to spy on the signal and nail it down. I may someday use what I learned here to write a faster driver for the TFTv2.

I’m taking a break from Arduino stuff for a while, though and focusing on my bigger projects. I’ve written up a great deal of the protocols and specs for the Distributed Neural Network AI project, including the machine vision, voice recognition, and node setup scripts. The purpose of this project is to have a self-hosted neural network AI that can delegate pieces of its service over Multipath TCP; the goal here is Jarvis meets Siri meets IBM Watson, all hosted on your own consumer hardware. I still have some editing to do so the papers will be published sometime around August. I’ve spent a great deal of time and care working on each individual system and unifying them in a useful way is very challenging.


Atomic ListAtomic is still at the top of my project list. Most of the hard grunt work is finished, which really just leaves synchronization and some UI adjustments left before the initial release. I split synchronization tasks off into a separate tool. This may seem like a weird choice, but there are actually multiple command line tools already–and scheduling synchronization in a cron job or Windows Task Scheduler would be a piece of cake if you could call it without arguments.

I just sent out the first newsletter about this app. If you’d like to hear more updates please sign up on the project page.

My favorite pictures from inside my EE lab

I’ve been curating equipment (and photos) of electronics. Here’s my top 12:

Memory Leak in Xorg (due to Video Drivers)

Run your computer for long enough and you may notice the process /usr/bin/X begins to slowly consume all of your memory.

Well, it’s a known bug. The workaround at the moment comes from Brian Trotter:

Reverting from the fglrx (proprietary) driver to the xserver-xorg-video-ati (open source, tested) driver solved the problem for me.

Going back to the generic driver works too, but then I can’t overclock. This is one I’m choosing to live with until ATI/AMD provides an update.

New series

I’ve started a new weekly series of blog posts called Zen. I’ve spent a lifetime focusing on my work, but never really put other aspects of my life under a magnifying glass before. Hopefully I can change that, and maybe┬áhelp a person or two.

I’m toying with the idea of making a video/week that showcases my work. I haven’t made the commitment yet, but here’s my first shot, and a glimpse of what that might look like.