Wednesday 20 January 2016

Turtle watches

Turtle watches
No automatic alt text available.
Something I have been building in my free time over Xmas for some friends. Some wireless smart watches that can be used to help find friends and communicate at festivals and other locations outside of mobile range or places too loud to use radios. 


They create their own wireless mesh network so no need for anything more than just a few of them, also has a beeper and vibration motor so they can vibrate and beep when you come into range of someone you have not seen for a while

And because I like a challenge all coded on an 8bit processor with <30KB flash and 2KB ram (and still have room to grow). This allows me to get 48hrs battery life but also has USB charging without using and advanced power optimization in code (like sleep or synchronized time slotted wireless).

No automatic alt text available.No automatic alt text available.


Decided to change the form factor to a more candy bar shape as would be much more durable than a watchNo automatic alt text available.No automatic alt text available.


No automatic alt text available.
Prototype/relay node. These guys are much bigger but have proven to have a range of over a km from 

basestation

Text messaging
Unlike messaging on most devices the watches work on a word list (text fragment) system.
This means that most sentences can be formed using the following structure:
[Who/Name]  & [Action]  & [Location/Item] & [State/Extra]
This means using predefined text fragment system you can create a messages like
"Robert" "bring" "snacks" "please"
or
"Everyone" "meet at" "camp" "1hr"


Having word lists allows a user to generate a message by selecting the text fragment they want from the from the word list using the arrow keys. This also allows messages to be transmitted as a single 4byte payload and message storage to be just as small. 


Radio
The original hardware design was to have it as a dual radio device utilizing both a nRF24L01+ 2.4Ghz and a SI4432 433Mhz radio and the network stack designed to be able to support this as well as radio bridging and basic meshing but with testing I found the SI4432 radios suffered from bad packet loss issues and performed worse than the nRF24L01+ so it was dropped from the final design.

For the next design I have some LoRa radio modules that I am going to use. I will still use the nRF24L01+ for proximity detection but the ESP32 does look to have a many features like WiFi and Bluetooth that could also be used as well as having a much more powerful processor for the same power cost.   


For future versions I am planning on going to a star network topology, This should improve message delivery as a single gateway in the centre of the network can receive, buffer and deliver the message for users that are out of range. This will also allow me to implement a wireless synchronized time slotted protocol so I can reduce the device power consumption when idle by sleeping the radio and processor to increase the battery life from days to months.