Wireless Digital Radio Signaling
Like many projects, this was an opportunity to try out some technologies and make a fun toy in the process.
The objective was to create two boxes with wireless capabilities to allow two people to communicate with one another remotely.
Press a button on your box, the lights indicate a message on the remote box. And back and forth.
Technologies
Microcontroller – AVR Atmega328P (my first attempt at using one)
Programming in C++
433MHz RF modules (my first attempt at using them, or anything wireless)
I studied for and got my HAM radio license (KD2KDD) in preparation for this.
Oscilloscope / Analyzer – Saleae (excellent scope software, I recommend this)
Wireless Digital Protocol
5 byte message structure, 4 of which are to a lower-level wireless network protocol I basically made up for my apartment.
Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Realm | SRC MAC | DST MAC | Encapsulated
Protocol ID |
Data |
24 | – | – | 240 | 1 = MSG_ATTENTION
2 = MSG_FREE_TO_TALK 3 = MSG_YES 4 = MSG_NO |
2000 baud operation in software.
Measurements
The fading LEDs is handled in software through PWM signals implemented in C++ across many channels.
Had to buy an oscilloscope/analyzer (Saleae) to look at how some of the signals were looking during debugging and it was a lifesaver. Really great software and hardware, I do recommend.
225 microseconds, nice.
Github
Main application code (link)
Supporting libraries under here (link)
Build Photos
(prototype)
(actual build)
Full Gallery