Project: Smart Watch – PCB Paper Mockup

mock1Because I don’t enjoy making PCBs and want to get this right first time, I printed the board out on paper to check everything lined up nicely on the board. Everything seems okay to me.


mock2

It’s held together with bluetac which means it is a tad fragile and hopefully the real board will be less all-over-the-place, but I think this demonstrates it nicely.

Project: Smart Watch – Circuit Board

The watch has to be skinny, and compact. I wanted as many LEDs as possible and a minimum of 2 switches, but 4 would be best.

In this vein I delved for the first time into surface mount (SMD) components. In the end I ordered 5 red, yellow, green and blue SMD LEDs from ebay as well as some nice SMD 680Ω resistors and some titchy little SPST switches.

Tiny SMD Switch

…Talk about tiny…

I had to check that I can even solder these, so I grabbed some strip board and my soldering iron.

I have to say it wasn’t as bad as I thought! Although I have no idea how to tell the polarity of an SMD LED. Google? So that includes a switch, an LED and a resistor – nuts. It runs at about 4mA according to my ammeter, which is on the boundary of acceptable, and if anything its too bright!

So time to design the PCB. I’ve etched a number of circuit boards at home before, but it’s never gone well. I always set my sights too high and make it too compact for home etching. I wish I was still at school with proper etching equipment.

My PCBs sometimes work out alright, after a few attempts

My PCBs sometimes work out alright, after a few attempts

Hopefully, being a small circuit board, it wont be too much of a gamble as to how well it etches.

Before I have always used Express-PCB to design my boards but since it isn’t installed on my new PC, I took that as an excuse to try out Eagle PCB.

My (hopefully final) design is as follows:

pcb

So this design basically includes 20 DIL Through-the-Hole pins to allow the arduino to connect by its header rails and 4 SIL TTH pins to allow the bluetooth module to connect by a header. Everything else is surface mount. There are 4 switches, 6 LEDs and 6 accompanying resistors. Begrudgingly I had to use jumpers as far as I can see in order to get the power to the bluetooth module without increasing the area of the board. On the plus side, the arduino has internal pull-up resistors meaning I don’t need extra space for them. The rectangle represents the area I will remove to make room for the micro-usb port on the arduino.

I hope to etch it next week.

Project: Smart Watch – Basic Layout

So I had two basic options as to how to lay out the internals of the watch:

Stacked or adjacent.

A stacked layout will provide a skinny appearance but will be taller and potentially more annoying.

An adjacent layout will be wide and flat which could be equally annoying.

After playing with some cardboard models etc I decided that it would be best to stack the design.

watch structure

This is the design I settled on. I reckon I can get it down to around 7mm thick which could be ok.

The battery will be mounted on the underside of the wrist with wires coming through the straps. (Probably won’t work).

Projects: Smart Watch – Power

So, I spent a LONG time looking around the internet for suitable batteries. They had to be small and have decent capacity.

I decided 150mAh was the minimum. And in the end I settled on these little 3.7v Lithium-Polymer cells with 250mAh.

250mAh LiPo Battery

Since these are only 3.7v each I either have to put two in series OR use a voltage booster to achieve the 5.5-12V range.

A nice little voltage booster like this should do.

The batteries haven’t actually arrived yet – I ordered them from China so it could be a week or two still before they turn up. There’s no point buying a voltage booster until then.

But I actually had very little idea how much my circuit used. So I tested it using my ammeter and as it turns out, the Bluetooth module uses 5mA when connected and idle, ~20mA when connected and transceiving, and ~35mA when unconnected.

5mA is acceptable and so I will do my best to keep data transmission to a minimum in order to minimize power usage.

I was pretty shocked to find that the arduino uses around 30mA when running even the simplest of loops. And so I spent a couple of days sorting this out.

I found that if I put the arduino into “sleep mode” the power consumption dropped to about 0.5mA which is much more up my street. Luckily, the serial pin on the arduino could be used as an interrupt to wake the module up from sleep, so all I have to do is send some junk data to the arduino so it wakes up in time to catch the real data.

However, in the periods when the arduino was awake, ie when flashing LEDs, transmitting data etc it still used about 30mA which is pretty unacceptable.

By reducing the clock frequency from 16MHz to 1MHz, this can be reduced to around 16mA which is just about acceptable as hopefully it will be asleep most of the time. I daren’t reduce it any more.

So, as it turns out there are approximately 3 general states the watch can be in:

Completely idol using approximately 5mA

Idol but with the bluetooth module awake using approximately 16mA

and fully going for it at 32mA.

Overall I estimate that the average usage will be around 8mA which should give a battery life of well over 20 hours. Yay.

On top of this will be the LEDs, but by using largish resistors I hope to keep the current down to 2-4mA each and they shouldn’t be on too long anyway.

Project: Smart Watch – Basic Testing and Software

So I used a nice android app called Blueterm to test out the bluetooth functionality of the JY MCU. Works like a charm: I type it on my phone and it squirts out the serial port on the JY MCU into the arduino. So I got together some LEDs and made a little serial protocol to control each LED by sending certain bytes from the phone to tell the Arduino if the led should be on/off/flashing.

My board

Messy (and over-exposed), I know.

But I can’t use Blueterm forever so I went ahead and wrote an Android app which runs as a service on a phone (ie in the background) which monitors phone profile, call state, SMS count etc and flashes LEDs in order to convey this information.

Finally I also added some basic switches to the board which, when pressed, tell the board to either, answer the phone, speak the time (using android’s build in Text-To-Speech), read out the latest text or control music.

The software isn’t too exciting so I’ll leave it at that for now.

Projects: Smart Watch – Intro

Ok, so:

I have been using Atmel AVR chips for a while now and recently to switched to Arduino boards for convenience.

I’ve also been meaning to mess around with Bluetooth for a while now.

Smart watches are all the rage.

So I decided to build a simple smart-watch. I don’t want anything too fancy. Some LEDs, some buttons, a good 20 hour battery life and good functionality.

The main components I settled on are a Pololu A-Star 32u4 board with a JY-MCU bluetooth module (these can be found all over the interweb for around £7).

Pololu A-Star 32u4

The A-Star is based on the Atmel Atmega 32u4 and allows for 15 I/O pins, 5.5-12V input running at 16MHz.

JY MCU

The JY-MCU is a neat little board which is simple to use, if not a tad undocumented. It uses the Bluetooth Serial Interface to appear as a serial port on paired devices and works with Windows and Android but is not supported on IOS.

Anyway, I hope to find a way to mount these components on my wrist in a (potentially vain) attempt to make my life that little bit easier,