This is a list of projects on this site and their status. This list is almost certainly not be up to date! Check out the “categories” list on the right side of your screen for an automagically updating summary of everything I’ve written up.

This page has a helpful summary of the status of some of my projects as of November 17, 2016. It is by no means current, complete, or even particularly good. Click on various categories on your right-hand sidebar for more cohesive descriptions.


WPA2 Encryption

I developed a fascination for the encryption algorithm behind most modern wifi devices. WPA2 encryption is not technically broken, but is fairly obsolete. The way that it is used by many cable providers and end users is thoroughly insecure, however.

To prove this, I requested and received the semi-permanent use of some FPGAs.

This turned into a huge project. See the “SHA1” category on the right for individual logs, but over the course of this process, I:

  • Designed and simulated an implementation of SHA1 hashing on 7400 series logic (for fun)
  • Wrote a from-scratch Python implementation of the complete WPA2 algorithm for testing, learning, and verification
  • This involved bitwise methods for calculating SHA1, HMAC, and PBKDF2 algorithms, in addition to some WPA2-specific ones
  • Wrote a complete VHDL implementation, with some novel parallelisation and pipelining optimisations
  • Wrote tools to simulate the VHDL and run regression tests in Python, from the cloud
  • Wrote the Cypress Microcontroller firmware, in C, to communicate with the 4 FPGAs on each board
  • Wrote the host software, in Java, to co-ordinate and send seed values over USB to a cluster of many boards
  • Built a 3U server rack to house 8 FPGA boards, cooling fans, and Raspberry Pi host computer, with temp/voltage monitoring

In active development.

(Sources: FPGA, Python implementation)


Stick-On LCDs

Playing with miscellaneous cheap LCD modules from China are something of a hobby of mine.

Something that I’ve needed lately, is a little tiny LCD on my desk, wall, or the side of my main display, which shows the weather, stock prices, build status, whatever. Ideally connected to WiFi and updating constantly.

Lately, both LCDs and WiFi modules have gotten down in prices to a point where I can build an entire system for less than $10, in single unit quantities. So I’m doing that. And then I’m going to build a dozen of them. And stick them everywhere.

In testing.




In tandem with my more software-oriented projects, I typically need something to occupy my hands to break up the time. And I really like pens. Not those ridiculous expensive ones, because those don’t look good to my eye. But I know what I like. So, for my first lathe project in almost a decade, I made a pen. There were a few techniques I’d never used before, but it’s all practice. Soon, I may build a better pen. These are great side projects with a relatively low time-investment, but possibilities to test a few new techniques, with an end result that is pretty and functional.

Complete. More to be done at a later date.




A clock is a pretty great portfolio piece to display on your wall. I’ve designed many, and half-built a few, but I haven’t settled on something I’m completely happy with, yet. The first design has fallen out of fashion (blue LEDs are no longer stylish).

It originally used 7400 series logic in through-hole packages to divide 60Hz AC wall frequency down to seconds/minutes. This is a neat idea, but ultimately not practical for size, cost, amount of work, or reliability. Or any reason other than cool-factor, really.

New design: Laser-cut gears. I built a pretty cool prototype entirely with vector software and a laser cutter.

The motor gets mounted on standoffs, and those require a certain length +/- ~2mm. Changing out the standoffs takes about 45 minutes of disassembly and reassembly. Due to the complexity of the design, it is difficult to calculate the required standoff length, along with the changing the motor selection about three times. This makes the design-assemble-test process painful.

To make that process less painful, and get a better feel for potential mechanical interferences, I need to model the whole thing properly in 3D.







Will do longer write-ups at some point. In the meantime, hit the links in the categories sections on the right side of your screen.


  • PCB Fab Lab
    • Brainstorming/spitballing ideas
    • Trying novel PCB prototyping methods
    • Most involve typical chemical etching, except…
  • CNC
    • CNC mill accurate enough to mill out PCBs
    • I originally started this when I was in school, around 2009-ish
    • The frame was built (very quickly) out of steel plumbing. It’s since been scrapped, it was pretty inaccurate
    • I’m now building a CoreXY platform to use with…
  • EDM
    • Nobody has really built a good open-source EDM
    • It’s totally do-able, and I’ve got ideas, yo
  • SHA1 Encrypter
    • Originally planned to be built out of 7400 series logic
    • This is stupid, so I redid it in VHDL
    • SHA1 works, slowing building out to encompass the entire WPA2 encryption scheme
    • (Source)
    • A couple years ago, the cheapest, easiest way to get LCD/Touchscreen combos was grey market Nintendo DS Lite screens
    • Nobody had reverse engineered them and published data
    • I did, but cheaper and better modules have come out since
    • Still have to do the last 10% to get it working with a Raspberry Pi or similar
    • Stalled, it is no longer the best option available.
  • Elapse
    • Standalone, inexpensive timelapse camera
    • Stalled at the moment
    • A board was designed and printed up, the microcontroller was programmed, the board was populated and everything debugged
    • It worked! And then a proprietary flex cable broke.
  • Relapse
    • Rotating, repeatable timelapse gimbal
    • Done, for now.
  • Lightbox
    • UV exposure box for etching PCBs
    • Finished
    • At some point I’d like to come back and clean it up
    • Functional and fine for its purpose, if not pretty
    • Tossed! I no longer etch my own PCBs, because professional options are cheap.

Leave a Reply