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.
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
|24||–||–||240||1 = MSG_ATTENTION
2 = MSG_FREE_TO_TALK
3 = MSG_YES
4 = MSG_NO
2000 baud operation in software.
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.
Main application code (link)
Supporting libraries under here (link)