I've been meaning to make a binary wall clock for a while and to also try out kerf bending with the laser cutter. What put me off creating kerf bends before I found OpenSCAD, was the manual creation of all the lines in the right places. It's the kind of repetitive, uniform task computers were made to do.
Above was what I wanted to create; a square matrix formed from one length of plywood, with the curves creating some organic interest to an otherwise boring shape. I opened Vim and started away in lines of OpenSCAD.
I ended up creating script that could create a one-piece design but would also split the length into divisions. I did this because the length was too big for the cutter bed. For the initial build, each (of four rows) row is separate and then they are all glued together. If I make another I'll add a dovetail so that each section can be joined, it's more complicated because you have to alternate the teeth/dents on the middle male components.
There was some tweaking involved of the kerf spacing to get it strong yet bendable but overall it was a reltively pain-free construction.
The controller is an Arduino Micro with a DS1307 RTC and the W2812B LED chain connected to pin 6.
After I'd completed it I felt like porting it to the Raspberry Pi and Pimoroni's Unicorn Hat. I was already using the Arduino Makefile so had a header with declarations unlike most Arduino projects. The main changes were the GPIO functions to actually set the matrix. Thankfully a WS2812 Driver exists with the same functions as the NeoPixel library, so the task wasn't all the difficult. Rather than referencing the pixels object, the functions are directly called since it's straight C.
Because the <em>Unicorn Hat</em> is an 8x8 (twice the size of mine), it allowed me to ensure the code scaled to any size matrix and the process created improvements that I carried back to the Arduino code.
I'm pleased with the result. The clock is stable and has so far been running for days without issue. It's a Christmas present for the lab but my parents want one too so I'll make another. The next one will be one piece with <em>dovetail</em> joints between sections amongst other points I'd like to improve on:
* Clock set routine invoked from tactile switch or even better a hand wave across one of the cells (the one with the controller in).
* Alarm routine that can be remotely set via phone app - I'd use a bluetooth module for this.
UPDATE: I've added both! http://engineer.john-whittington.co.uk/2015/05/setting-wooden-bits-via-ble-and-esp8266