Instructables

Control an Arduino With a Wristwatch (TI eZ430 Chronos)

Featured
The watch
The Texas Instruments eZ430 Chronos is a cool gadget. It has bidirectional radio communication, and a whole bunch of sensors: temperature, pressure, acceleration.

In fact, it is a development kit for the MSP 430 (a low-power microcontroller), that TI packaged as a watch (pure genius!), and delivered with plenty of tools. Its firmware can be modified to implement new features into the watch.

Even without developing anything on the watch, it is a terrific toy:
- the watch alone is pretty cool --and has the TI logo ;-),
- the default features allow for a wide range of cool experimentations and developments around it.

The RF communication has a quite short range, and quite low consumption. It is not Bluetooth, but SimpliciTI[TM]  or BlueRobin[TM].

Pretty much documentation about the watch (sample code, specifications, schematics) can be found on the Web. Google is your friend.

Watch to PC
The watch comes along with an access point (i.e. the peer device the watch can talk to) in the form of a dongle, incorporating a TI chip that can, on one side, talk to the watch via RF, and on the other side, talk to the PC via an USB slave interface.

When the access point is plugged into a PC, a PC application provided by TI can exploit it to communicate with the watch: graph sensors, set the watch time, calibrate sensors, send fitness data. The nice thing is that TI wrote it in a scripting language (venerable Tcl/Tk) to run on multiple OS-es.

It is very easy to write your own PC application, as shown by some examples written in Python. There are numerous such examples that can be found on the web.

Watch to Arduino
What about using an Arduino instead of a PC? You could make completely pocket-sized projects!

Surprisingly, I could not find any clue about it on the web.

I evaluated several USB host libraries, and finally found the right application source code to get started (ACM on CDC, for modem, by Circuits@Home, http://www.circuitsathome.com; Oleg, thanks for the library, examples, and for the help!).

It finally works, it's very simple, and that's what I'm covering with the present post.

Just basic Arduino knowledge is required. However, this post is not an Arduino tutorial.

Enough said, let's get to the point!
 
Remove these adsRemove these ads by Signing Up
johnmx3 months ago

Here can I find the file eZ430_basic.zip? Cannot find any attached file...

modi-salman7 months ago

can you give me the description of the code because there are many commands that i don't understand pleaseeeeeeeeeeeeeeeeeeeeeeee ?

i need it for my project :(

litooangel11 months ago
Hello, i just recieved my arduino and it works! Buy i need some help to changue the program for activate LED's. What's the name that you have for the X value when you receive that?. I dont know what variable can i use for activate LED's, than you. Pdt: what pinouts are better to use?
laxap (author)  litooangel11 months ago
To control an LED, please study the "Blink" example (File -> Examples -> 01.Basics -> Blink). Then if you still have questions, feel free to ask.
litooangel11 months ago
Hi! I want to connect my RF with a PIC, do you know if this PID/VID is the same that the arduino? (The PIC that i want to use is pic18f4550, it have USB port). When i connect my RF to the pic, it lights for a moment and then off. I think that the problem is the PID/VID. Thank you!
dlg9212 months ago
Hello!. Can you say me what is the VID/PID of the RF module for connect with an Arduino board? We have problems with the connect. Thank you very much!
laxap (author)  dlg9211 months ago
VID=0451 (Texas Instruments, Inc.)
PID=16a6 (BM-USBD1 BlueRobin RF heart rate sensor receiver)
cvoneat1 year ago
So, I am running the host shield with the Uno (model R3). When I looked at the step for update library, I understood that I didn't need to do anything with this part and that I should leave those segments commented out. Is that incorrect? Any other ideas? Thank you, by the way, for responding so quickly.
billgeo1 year ago
PERFECT!!!! AWESOME!!!
This community needs more eZ430 Chronos projects!!!!
cvoneat1 year ago
Hello - Thanks for putting this together. I have a question with running the program I am hoping you can help me with. Running the program is very finnicky. Sometimes it runs fine for several seconds before stopping, and other times I see on the Arduino Com screen that the program is starting but it quickly stops with various progress ending with lines such as "OnInit:", "Start", or "OSCOKIRQ failed to assert". Restarting my computer usually results in getting it to work a little more consistently, but it never lasts long. Is this something you can help with. I appreciate any help you might be able to give. Thank you.
laxap (author)  cvoneat1 year ago
Did you customize the USB host library for your board?
Please check step2: Edit the library file avrpins.h
lazybiker1 year ago
Thank you very much! That fixed it. Great instructable by the way.
lazybiker1 year ago
When I try to run this I encounter the following error:

eZ430_basic.ino: In function 'void print_frame(char*, uint16_t, uint8_t*, char*)':
eZ430_basic:133: error: no matching function for call to 'PrintHex(unsigned char&)'

How is this fixed?
laxap (author)  lazybiker1 year ago
OK, there has been an update of USB host library. I will need to update my project archive, but in the mean tiime, please replace lines 41 to 54 of my code by:
#if DEBUG
#define DPRINT       Serial.print
#define DPRINTLN     Serial.println
#define DPRINTHEX(x) PrintHex(x, 0x80)
#else
#define DPRINT       if(0) Serial.print
#define DPRINTLN     if(0) Serial.println
#define DPRINTHEX(x) if(0) PrintHex(x, 0x80)
#endif

// Regular messages over serial console
#define PRINT       Serial.print
#define PRINTLN     Serial.println
#define PRINTHEX(x) PrintHex(x, 0x80)
Miggles1 year ago
Holy crap I just got this watch thinking I was going to have to spend quite a bit of time figuring out how to interface it with the arduino. I guess now I can go straight into programming the arduino! Thanks so much!
meanpc1 year ago
Good stuff. I've been thinking about getting one of those TI watches for awhile now. This should work with the new Arduino Due I think. Might give it a try.
golovny5001 year ago
veri good
scci1 year ago
vote for this guys, this is awesome
AWESOME! I got one of these watches a while ago and always contemplated trying to interface it with my Arduino. So glad you did all the legwork for me!
Tomdf1 year ago
Oh dang it, another must have toy! There are so many possibilities with the watch/arduino combo, thanks for the introduction!