logo

The Build - 3 - High level hardware

the core of the watch consists of 3 small boards, a microduino core +, a Bluegiga ble112 chip, and a voltage regulator.

I chose the microduino core + due to it's size, ability to run on 3.3v when modified to cycle at 8mhz, and larger memory / IO compaired to other Arduino Cores. The current board I have uses the ATmega644PA chip. That's 64K or flash memory (Double an Uno) 4K of ram, and 2K of eeprom. That provides a lot of room for code, and with the memory, it could run a Sharp Memory Display as well (which I may do for another build, as that's very power efficient.) I will move onto the ATmega1284P chip in the near future, with 128K of memory, 16k of ram, and 4K of eeprom. They both have some extra I/O pins, which although not needed yet make expanding it easy.

I spent a lot of time researching and testing different Bluetooth LE chips. I settled on the BlueGiga ble112, as it's small, powerful, and can operate both as a central and peripheral (important for different software needs) Also, Jeff Rowberg has written a great arduino library / BLE configuration setup as a base, so that helped a lot. (link to his library: BLE112 Arduino Library Some future versions may use the BLE113, as it's smaller and uses even less power, but it's a bit more of a pain to hand solder.

Finally, I added a voltage regulator to provide a clean 3.3v signal from the LiPo battery. This may not be 100% necessary, but it's a sound addition and can also protect the internal hardware from any voltage spikes.

Boards overlayed on a render of my 3D printed internal frame. logo

Once these three boards are connected, the microduino communicates primarily through a SoftwareSerial port to and from the Ble112. 2 of the input buttons are wired up using software pullup resistor (less parts is better) but the third button uses an external pull down resistor, and is on a hardware interrupt pin. This will let the arduino to be put to sleep, and waken up by either the BLE112 (also connected to interrupt pins) or a button input.

The Screen is connected to the microduino via predefined hardware SPI pins, providing the fastest graphical update. 2 LEDs are hidden in the case for both debugging and alert modes. Finally, a small vibration motor is included as well. A simple transistor circuit provides the needed amperage as the motor cannot be directly driven off of a pin.

I also added 2 breakouts to allow the Arduino to be programmed via a FTDI friend, and the BLE112 chip to be reprogrammed by a CCDebugger. The battery includes a switch and an extra charging jack. The switch has 2 modes, either on, or charging.

Next Page - Building the Logic Level

The Build