Case study -- the 'seahorse'

Earlier this year Jeremy Bennett of Embecosm asked me to design a follow-up to the 'cuttlefish' board. This is what Jeremy was looking for

  • Bare-bones Arduino compatible; based on the Shrimp
  • Battery powered
  • Wearable
  • Easy to solder
  • Gender neutral
  • Interactive and fun
  • Cheap
The 'cuttlefish' is the predecessor of the 'seahorse'. More images here.

The 'cuttlefish' is the predecessor of the 'seahorse'. More images here.

Jeremy intended for the board to be used to teach children and teenagers how to solder, and in doing so get them interested in electronics, hardware, software, and, eventually, optimising compilers. (This is a joke -- Jeremy's Embecosm is a leader in compiler optimisation.)

One is able to teach soldering on a single-sided board in a baggy from Maplin, but that won't be too engaging. There has to be more, something memorable and perhaps something familiar. It also has to be somewhat useful and playful so that it won't be thrown in a drawer and quickly forgotten.

First concept sketches

First concept sketches

My first set of concept designs resembled aliens and game-controllers -- engaging and familiar. Fairly early on I decided to use infrared transmit and receive as the primary interaction mechanism. This served two of the goals: it's cheap and can be easily explained using simple diagrams. Kids feel very comfortable with the concept of 'wireless' and so IR is one of the simplest ways to explain one of the many ways of 'wireless' communication. It is also relatively easy to follow code that controls the IR transmit and receive for those who want to dig in deeper. Generally, it's important to have people get a sense of achievement very early on, or they quickly lose interest.

Many ideas from this concept went on to the final design

Many ideas from this concept went on to the final design

I presented these concepts to Jeremy and we eventually decided that it's best to continue the ocean-themed designs (Shrimp, cuttlefish, etc.) I was tasked to find an ocean creature that has the right cartoonish shape to accommodate the physical requirements -- coin-cell battery and the long DIP package of the microntroller. After lots of image searches, I arrived to this concept design

The first concept sketch of the 'seahorse' that resembles its final form

The first concept sketch of the 'seahorse' that resembles its final form

Below is the final design as it looks in Inkscape after being designed with PCBmodE, our custom open-source PCB design software.

250 of these lovely boards arrived yesterday, and were manufactured by Eurocircuits

The two small break-out boards house an LED and resistor in series, each. Those can be regular or IR LEDs, and the idea is for them to be used for playing with others, creating unique IR transmit patterns and communicating with other boards that are around in line-of-sight.

There are three holes for attaching the board to a garment or something else. All the micro's pins are broken out to headers so that several other 'peripherals' can be attached to the board.

Placing the battery holder on the top allows the circuit board to be flat on the bottom and more convenient as a 'wearable'. Using my solder-dome technique, you can get rid of those pointy solder joints that would stick to clothing.

Finishing the solder points as domes make the board more comfortable to handle and it won't rip up or get stuck to clothing

Finishing the solder points as domes make the board more comfortable to handle and it won't rip up or get stuck to clothing

In terms of the circuit design, there were a few challenges. The board was to be programmed using a 6-pin serial adaptor, which can supply 5V to the board. Since the 'seahorse' is normally battery-powered, this is problematic -- you don't ever want to have both power rails be connected at the same time. An additional problem was that a coin cell only provides 3V, not high enough for running the ATmega328 at 16MHz, which is the Arduino standard.

For cost reasons we chose to use two thin CR2016 stacked into a CR2032 battery holder. This gives us 6V, which we dropped to ~5V using a diode -- a component that was already in the design elsewhere. The 5V from the programmer is 'jumperable' using a fishy solder-blob jumper.

The solder-blob jumper is the on top right; it connects the programmer's 5V to the power plain, and assumes no battery is connected!

The solder-blob jumper is the on top right; it connects the programmer's 5V to the power plain, and assumes no battery is connected!

The current capacity of the CR2016 isn't that high, and the board won't run too long on two of them -- particularly with the LEDs on -- but we concluded that it's 'good enough'. A possible alternative is to use a battery holder that can house two CR2032 batteries.

All the headers' holes are staggered, so that pin headers can be plugged and unplugged without soldering them to the board. This is particularly convenient for programming, so you don't need to have the header there during normal operation. The holes can be used for attaching conductive thread, although care must be taken not to short the contacts -- again, this was a usability/functionality compromise -- other 'wearables', like the Lilypad, have large separated pads to avoid this problem.

This is an open source hardware design, and the design files are on our GitHub repo. A photo album for the board is here.

Saar Drimer2 Comments