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