13 October 2012

Project "Solder : Time II™ watch kit, by SpikenzieLabs" (2/2)

i have been spending the past few weeks integrating and programming the SolderTime2 to work with a BMP085 barometric pressure and temperature sensor and it finally works the way i want it to. it now functions like a (very) poor man's Tissot T-Touch (okay..just the barometric functions and not the touch functions).



the I2C port on the SolderTime2 makes it possible to add a whole lot of other I2C sensors (gyroscope, compass, humidity) to the watch as long as the additional modifications to the program does not bust the total amount of memory available on the watch which is 32kbytes.

i removed the worm animation mode as well as the scrolling text mode on the watch to free up some space in the flash and i have already used up about 26kbytes but i think it is largely due to my inefficient code! (still a work in progress)

i bought the sensor from adafruit.com here:

https://www.adafruit.com/products/391

it requires either a 5V or 3.3V source so i also got a CR2032 battery holder from adafruit to power the sensor:

https://www.adafruit.com/products/653



amazingly i also found that a tin of Milton Pastilles Candy (commonly sold in Singapore) has the exact diameter of the watch's front cover, give or take a millimeter or two, and can be modified to fit the watch with the additional sensor. i haven't worked on the tin yet but that will come later on when i have the time to get around to do it.




the positive end of the battery goes to Vin and the negative goes to ground. after some simple circuit tracing, i found that the SCA and SCL ports can be wired to from the two resistors on the top left of the watch. the left resistor being SCL and the right resistor being SCA.

the ground of both batteries have to be connected together for the sensor to be able to recognize the data coming from the watch. i did not know this and spent a long time troubleshooting before my brother explained to me that it is required otherwise the sensor has no common reference to zero and any signal i send over is unrecognized. (wasted good portion of my life finding that out)




*EDIT* i forgot to mention that the BMP085 sensor board from adafruit includes 10k pullup resistors for the I2C ports and they need to be removed by simply touching a solder to the resistor and taking them off. 10k pullup resistors are already provided on the watch, in fact the modification wires are soldered to the resistors themselves.

i have programmed the watch with an additional mode "ALT" to display the altitude above sea level in meters and also to be able to set the localized sea level pressure (obtained from any local country's weather website, also known as QNH). in this case, the pressure in singapore at the time of making the video posted at the beginning of this blog post was 1,008.14mb and when i set it to that pressure it displays 48.5 meters above sea level which should be correct as my location was situated on top of a hill.

it also has a mode "TEMP" displays the current temperature of the sensor, and the temperature goes up when i put my finger on the back of the sensor's PCB.

i will be happy to share the codes with anyone interested to make this modification to their SolderTime2, just drop me an email and i will send them over!

(link to page 1/2)