With almost 12 months having passed from conception to the v1 public release, the hardware has evolved through a fairly standard development process. We love a "making-of", and we're pretty confident that others will appreciate seeing some of the steps that went into making the finished product.
Our first record of the concept is a white-board rendering of the interaction between the components:
This then evolved into a still very high-level hand-drawn circuit. Note the later addition of the 'running' line in blue:
This initial circuit had an 8V main power rail and two Vreg's, but those plans were scuppered with the unanticipated failure of what turned out to be an almost impossible to replace 8V solar charger, which was that that stage charging a pair of 18650 Li-ion batteries. With its death we ditched the idea of the camera-friendly 8V rail and migrated to a more viable 12V battery and main rail, adding a 7.5V Vreg dedicated to the camera.
The first bench prototype was simply an aerial spaghetti-mess of jumper leads between the Pi and Arduino. This quickly proved itself far too fragile, so the components were cable-tied to a piece of 3mm MDF:
The shield with the optos was scavenged from another project, hence the three (disused) transistors. The white cable leaving the shield through the P-clamp is the same one returning top left, plugging into the camera's release cable. Bottom centre is the reed switch, which would later be glued inside the Pelican case. Bottom right on the MDF sheet is the RTC module, covered in a protective plastic bag.
The circuits above and below fail to show all the to-ing and fro-ing regarding the voltage levels of the I2C bus. The 5V version of the Arduino Pro Mini was toyed with for a while but eventually abandoned due to its higher current consumption & the requirement for logic-level converters on the Pi's 3.3V IO lines.
The downside is a slower CPU speed and a hobbled bus, with "inefficient" delays deliberately added in the Python code to reduce the demands on the poor slow Arduino.
The circuit also shows external pullup resistors on the I2C bus, however it transpires these have already been implemented in hardware in EVERY version of the Pi. (Look for the 1.8k pullups on the BCM2835 in the published circuits.)
The software interaction between the two micros took some debugging, and we were lucky to have on-hand a Salaea logic analyser which faithfully reported what was 'on the wire'. (There's some more about that on the 'Design Decisions' page.)
With the above resolved, we evolved into the more specific circuit, albeit still hand-drawn, complete with bad handwriting and problems remembering how to draw a TRS socket:
From here we jumped to veroboard/stripboard, and it's this version that's currently (as at May 2019) installed in NZ:
The two 3-way headers at the left-hand edge are actually 'utility' power rails of 3.3V and ground, to help testing and debugging. (The logic probe spent some time powered by these as the interop between Arduino and Pi was fine-tuned.)
Extended testing took place, and rather than exercise the camera's shutter unnecessarily, the bench digital counter was employed to register and count the shots:
This setup confirmed that the timer was firing as expected. It also meant we could leave the setup running overnight or for days, and the expected count on the LEDs confirmed success.
Note in this image the MDF prototype kinda discarded at the left. And yes, my desk normally looks something like this, with phones, monitors, keyboards, etc strewn everywhere. The keyboard IS a genuine IBM "Cherry" keyboard, still in use today. The black box with the red button is a 10-minute utility LED timer we built in the 90s. It uses a NatSemi 74C92x multiplexed clock and (from memory) a 555 running fast, divided by the clock chip down to be a 1s source. No, there's no micro-controller here.
Having reached this point, PCB art was the next step, and the first official PCB prototype:
You'll notice this isn't all that dissimilar to the final prototype (below). The only additions are a resistor overlooked earlier, a few test points, plus the extra pads for all the 2.5mm PCB-mounting sockets we could find.
Improvements to this version (visible as '11.10' on the component side) in the first public release of the board board are only cosmetic: some drill hole sizes enlarged and screen-print labels moved.
Of course once it's all built, you need to test it, right?
Here it is taking a shower... The round white object visible on the front is the matching white magnet for the reed switch inside. This circular magnet - normally designed to be mounted in a door - is in this test being used to 'plug' (and seal) the cable gland. The gland doubles as a handy holder for the magnet when you're shipping it.