Skip to content

History

Greig Sheridan edited this page May 18, 2019 · 9 revisions

History

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 was a white-board rendering of the interaction between the components:

image

This then evolved into a still very high-level hand-drawn circuit. Note the later addition of the 'running' line in blue: image

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 found itself cable-tied to a piece of 3mm MDF:

image

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.

I2C

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.)

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:

image

From here we jumped to veroboard/stripboard, and it's this version that's currently (as at May 2019) installed in NZ:

image

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:

image

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:

image

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.

image

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.