Close
0%
0%

Stupid Simple Alert Watch

A TI ez430 Chronos watch is the perfect platform for an emergency alert device for an ill family member...

Similar projects worth following
I was looking for a simple device that a sick family member who lives alone could use to notify us if they need help.

I thought it'd be an easy internet search, but the devices I found ranged from fancy smartwatches, to devices requiring costly subscription services.

My requirements were:
- stupid simple to use. this is for someone who is not tech-savvy and may have fallen or be in pain when the alert is made.
- alert me immediately and directly, preferably via text messaging
- no subscription service
- last months between charging and/or battery replacement (this is what killed off most of the commercial products out there - charging every day or week is not feasible)
- off-the-shelf ready to use... no time to scratch-build something
- non-descript, fairly rugged and comfortable to wear.

I found something another Hackaday.io user built a while ago, but there were no details avaialable.  Then I remembered the old TI ez430 Chronos watch that was sitting in my cabinet, collecting dust!

The chronos watch was the perfect device to satisfy my requirements:  it's a simple, mono-LCD watch that lasts for many months on a battery and I could re-program the firmware to do as much or as little as I wanted.  Not exactly ready-to-use, but it's the closest I could find.

The idea was the watch would transmit - using it's 915mHz cc1101 radio - and a computer with the cc1111 dongle would listen for alerts.  Upon receiving an alert, a program would be invoked to send an email and a text message to a configurable list of family members. 

But I also needed to make it stupid simple for my family member to use the watch, which meant I had to prevent it from getting into any function that might be difficult to clear or get out of... the ability to send an alert is the primary focus and must always be immediately available.

I decided to remove ALL of the watch functionality - except the time - and make a "two-step" alert to help eliminate false-positives.  I figured I only needed a "Help" button and a "Send" button:

  • The top left shiny chrome button is the Help button... pressing it shows "HELP" on the watch
  • The top right button is the "Send" button and pressing it sends the alert
  • The Help alert can be cancelled by pressing the Help button again
  • Pressing any other button will make a beep, but won't do anything else

Programming the watch was easy... I installed the TI dev software on my machine, opened the chronos firmware source, and basically skipped over all the functions I didn't need.

Instead of having a computer on all the time, I found a cc1101 library that allowed me to use a raspberry pi as a base station.  The pi receives the Help alert and uses some python scripts to send out the proper notifications... more on the code in a later log.

The great thing about using the ez430 watch is that it is a finished product.  It fits comfortably and the platform just works out of the box (albeit without my custom code).  I didn't have time to prototype, debug and build the hardware and software for an alert device, so this watch was just perfect. 

Code for my project can be found on github:  https://github.com/ogdento/alertwatch

  • code posted on github

    ogdento02/26/2020 at 23:07 0 comments

    I added a link to the code up in the details section, but here it is again:

    https://github.com/ogdento/alertwatch

  • Raspberry PI Code

    ogdento02/17/2020 at 00:23 0 comments

    The raspberry pi is responsible for sending email notification(s) when an alert event is received from the watch.  I booted up a fresh install of Raspbian and created an ~/alerter folder to house my code.

    Inside the ~/alerter folder is an alerter.py script that runs at startup to listen for chronos events, and it is based on the following code:

    https://web.archive.org/web/20130222052925/http://chemicaloliver.net/programming/receiving-ti-ez430-chronos-button-presses-in-processing-and-python/

    When an "S1" button press is received, alerter executes sendalert.py which calls a function in email_handler.py to actually send the email. The recipients are hard-coded in sendalert.py. Email_handler.py uses the smtplib, MIMEMultipart and MIMEText libs to handle sending - more info and instructions can be found here:

    https://iotbytes.wordpress.com/programmatically-send-e-mail-from-raspberry-pi-using-python-and-gmail/

    I set up a special gmail account for sending the alert emails and the information for that account is stored in a settings.ini file. The destination addresses can be any valid email address... I'm using a destination address from my mobile phone provider that converts the email to sms, so I get a text message when there's an alert.

    To run the alerter.py script at startup, I modified the /etc/rc.local file with the following line: python /home/myrpi/alerter/alerter.py

    /home/myrpi/alerter/alerter.py

  • TI Chronos Code

    ogdento02/17/2020 at 00:20 0 comments

    My chronos code strips down the UI on the watch to the barest essentials - showing the time and allowing the user to select and send an alert.

    The watch runs on a modified version of the ez430_Chronos software that comes on the device and thankfully, their code is pretty easy to follow.

    Here's a comment from their code that illustrates what shows on the display as you scroll through functions by pressing the * (top left) and # (bottom left) buttons:

    LINE1: [Time] -> Alarm -> Temperature -> Altitude -> Heart rate -> Speed -> Acceleration
    LINE2: [Date] -> Stopwatch -> Battery  -> ACC -> PPT -> SYNC -> Calories/Distance --> RFBSL

    I didn't need any of that stuff, so I changed the function pointers in the menu options to skip over anything I didn't want when you pressed the * or # button.  

    My new help function was added in a new set of help.c/.h files, and I inserted that function into the linked list of menu options mentioned above.  The help function uses the same SimpliciTI code that was used to send the power point commands.

    I also disabled bluerobin and changed the processRequests function in the main.c file, to skip the temperature, pressure and altitude measurements, since I didn't care about that either.

    For confirmation that the Help alert is being sent, the watch flashes while it transmits and beeps five times upon completion of the transmission.  There is no acknowledgement from the pi that an alert was received - might be something for later, but it hasn't been necessary so far.

View all 3 project logs

Enjoy this project?

Share

Discussions

ogdento wrote 02/19/2020 at 18:19 point

Hey Dan, thanks for the comment.  I hear you for sure... a Casio digital watch was one of my prized possessions back in the 80s, but man did it have tiny buttons.  The ones on the Chronos - and particularly the silver button that initiates help - are huge in comparison.  Even still, I wouldn't mind them being bigger but I couldn't find a better option.

I added a link to the device I found on Hackaday.io, and it has a single large red "help me" button.  This is what I originally envisioned, but unfortunately the project was discontinued... the case is still commercially available, and building the device wouldn't be terribly difficult - but I only had a couple of days to get it working.

https://hackaday.io/project/27850-wifi-ble-esp32-panic-sos-wrist-button 

  Are you sure? yes | no

Dan Maloney wrote 02/19/2020 at 17:50 point

I really like this, especially since my parents are getting up there and might need something like this.

One question: have you considered that elderly fingers hay have a hard time with small buttons? Those actually look fairly large for a watch, but I'm just recalling the trouble I often had finding and pressing the buttons on my Casio watches, and that was when I was much younger. Sometimes getting access to the button in the right direction to apply force could force the hand into an uncomfortable position, especially for arthritic hands.

Not a criticism, mind you - just a thought. I think this is a great idea and want to see it succeed.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates