TI eZ430 Chronos Watch + Python Library + Remote Control

Around one year ago I ordered some of those supposedly wonderful TI eZ430 “Hackable” Watches but only received them last October since I had to wait for the 433Mhz version.  Three months later I finally decided to have a go at trying it out and wrote a Python library for in the process.

Silly video first…

It is quite a neat little watch for $50, the default factory firmware has enough features on it for most purposes that you wouldn’t need to touch it to use it in a typical application.  I know someone who is using it as a watch…

There’s enough information floating on the Internet about this already, with very useful information on the TI Wiki.  Annoyingly though, most of the information floating around is in bits and pieces and in some cases plain wrong.  I ended up writing a quick Python library and was pleasantly surprised at how easy it was to access most of the watch functions, the main ones of being able to read the accelerometer and button press data.

With a Python library in hand, I tried using it to remote control the Mecanum Wheel Rover.  And as seen in the video above, not very impressive results and the problem wasn’t in my code.

I’m not sure if it is the 433Mhz version and the fact that there isn’t enough space for a decent antenna, but the range was horrendous.  I would lose complete control of the rover at around 2.5 metres and anything over 1.5 metres was hit and miss.  Considering the average human height, the Chronos (or at least my 433Mhz one) is pretty must useless for direct remote control purposes.  Using it as a wireless door lock mechanism?  That’s probably a good use for it 🙂  Any other ideas what I can use this watch for?

Back to WiFi/RFM12Bs and nRF24L01+s for remote control!

If anyone is interested, here is a slightly messy Python library for interfacing to it :-
TIChronos.py_2010-01-09

I’ll tidy it up later when I have time or when I come up with a use for the watch 🙂

21 thoughts on “TI eZ430 Chronos Watch + Python Library + Remote Control”

  1. hi madox I can u explain to me how your python script control the Mecanum Wheel Rover?? I mean then hardware setup.
    some theory would do.. thanks..

  2. Great work!

    Still trying to catch up – got lowpricerc pars ordered and Infocast – need to print wheels. Tempted to order that watch, but got to mind my attraction to bright-shiny-things. 😉

    Idea:to improve traction you can use heatshrink tubing.

    1. Nah the plasti-dip is working great. Only two coats of it and it is pretty thin. Heatshrink would change the geometry too much [You’ll have to reduce the roller diameter] for it to all work.

      Its a bit slow because I’m using REALLY old NiCd batteries and only 4 cells instead of 5/6.

  3. Hello Madox!

    Nice job!
    I use 915MHz version and the rf range is around 50-70 meters inside a building, outside i did no try yet.

  4. Hi Madox

    I read on other forums that you have used the cheaper nRF24L01+ breakout boards available on ebay (not the sparkfun version with the 3.3v regulator) to interface with the arduino. I’ve been trying for weeks using the Mirf and Spi libraries to no avail – have you got these working, any tips?

    1. Hi Fellow Aussie 😛

      I have my own nRF24L01+ libraries as I could not get the ones on the internet to work. It took me hours to figure out why it doesn’t work (unsuccessfully) and in the end I wrote my own drivers from scratch in 1-2 hours using the datasheet.

      Do you want those [Works on Sparkfun modules] now, or would you wait for me to try them out first?

      1. I’m getting more consistent errors at the moment but still no success… It would be great if you could send your libraries over over, anything to help would be greatly appreciated

  5. Hello, I also have the 434Mhz version of the watch, which version of nRF24L01+ is the best for interfacing with an arduino?
    I didn’t understand if you were using a PC to comunicate between the devices….I want directly comunicate from my watch to an arduino.

  6. Hi madox,

    I tried to use your Python Class TIChronos … it works fine for acceleration measurements, but I detect pressed buttons only sporadically. I run the chronos.get_data() all 200 ms in a loop, the watch is working in the acc mode.

    chronos = TIChronos()
    chronos.AP_start()
    while not rospy.is_shutdown():
    data = chronos.get_data()
    print data
    time.sleep(0.2)

    What is wrong?
    Thanks for your help

    Best wishes

    Poseidonius

    1. This is from my code :-
      while True:
      time.sleep(0.05)
      Data = TIC.get_data()

      Apparently I used a 50ms poll period as the button presses aren’t latched until read and if you don’t poll quick enough you will miss the button press.

      1. can i please get your code…. im doing project on fall detection and monitoring using vpython.. may be your code will give me some idea…

  7. hello madox i need your help i need your python script to see how you are done this because i want to do the same with my watch

  8. Hey! I’m using your library and I’ve been trying to send speed and distance values to the watch for over a week now and it’s just not working. Heartrate works just fine but when it comes to speed & distance it doesn’t work. Any ideas?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.