Introduction: The Light Radio

The Light Radio is a device which helps to visualize concepts related to how radio communication works.

Radio systems are comprised of two primary components, the Transmitter and the Receiver. Let's think about this in the context of an FM broadcast radio station. On the transmitter side, there is someone who talks into a microphone. This is known as the INPUT. Their voice is then ENCODED into radio waves through frequency modulation (FM). When encoding a specific radio frequency, the radio station, is chosen to modulate the input around. This frequency is called the carrier frequency. By using different carrier frequencies that are different enough, many different radio stations can transmit at the same time without interference. The now encoded voice is TRANSMITTED by sending out the modulated radio signal from a transmission tower.

To listen to the signal, the first step for the receiver is to tune their radio to the correct frequency for the station that they want to listen to so that they can RECEIVE it using its antenna (e.g., FM 99.7). The station frequency is the carrier frequency that is used by the transmitter to send the signal. The radio then DECODES the signal removing the carrier frequency and extracting the original audio signal. This audio signal is then DISPLAYED to the be person listening to the radio as the voice coming out of the radio speakers.

These six steps – Input, Encode, Transmit, Receive, Decode, and Display–are the core elements of a radio transmission. Tuning is also an important part that happens between the transmission and receiving if multiple radio signals are present at the same time. 

The Light Radio is comprised of 3 main parts: the transmitter, the receiver, and the filter.

Let's Look at the Light Radio’s Transmitter. Instead of sending voice, the Light Radio sends an image. Using the keypad, a person turns on and off pixels of the image. This is the INPUT. The image is then ENCODED into a sequence of blinking lights. Just how we can have different frequencies for radio stations, here we can have different frequencies of light for our light radio stations. We see different frequencies of light as different colors. The light radio has two stations, Red (650 nm) and Blue (400-450 nm). These colors are used because their frequencies are far apart. The light radio can now TRANSMIT the image by flashing a colored LED.

To tune the light radio to the station that we want to see, we need to filter out the frequency of that station. To do this, a pair of 3D glasses are used because they have both red and blue filters built in. If we want to tune to the blue station, we use the blue filter as it only lets blue light through, blocking out the red, so that the light radio can receive the blue station clearly.

Once we have selected the filter we want and put it between the LED and the photo transistor, which is like the antenna of our Light Radio, the Light Radio can RECEIVE the Station. The flashes of the LED are then DECODED. The image that was drawn on the transmitter keypad is then DISPLAYED on the keypad of the receiver. If we wanted to see the image that is being transmitted on the red station, simply put the red filter in between the LED and the photo transistor.




"This material is based upon work supported by the National Science Foundation under Grant No. 2053160. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.”

Supplies

Supplies

The majority of the components for the Light Radio can be purchased from Adafruit. Quantities are listed first. 

2x | Adafruit 4x4 NeoTrellis Feather M4 Kit Pack

2x | Tiny breadboard

1x* | Photo Transistor Light Sensor

1x* | Diffused RGB (tri-color) LED - Common Anode

1x | Through-Hole Resistors - 10K ohm 5% 1/4W - Pack of 25

2x | USB A/Micro Cable – 2m

1x | Red/Blue 3D glasses

1x | Duel USB Battery pack (Optional)

*For some of the small parts it does not hurt to get a few extra 

Tools

Tools for cutting and stripping wire

Soldering iron and solder

Small Philips head screwdriver

Tape (optional)

Step 1: Assemble the Keypad

The first step is to assemble the two keypads that will become the Transmitter and the Receiver. These instructions are based the set found here but differ so please use the following instructions here.  

Step 2: Prep Work: Remove the Backing

Remove the backing paper off of the laser cut case parts. You will not need one of the side panels

Step 3: Prep Work: Cut the Stemma Wire

Cut the STEMMA wire included in the kit in half.

Step 4: Prep Work: Strip & Tin

Strip and tin the cut end of both ends of all the wires

Step 5: Soldering the Keypad Wires

All the wires you will be soldering will need to approach from the bottom of the board and soldered from the top side.

Start with the half of the wire with the STEMMA connector attached. Solder the wire to the Feather M4 in the following order. You will do this for both Feather M4 boards.

Black (GND) - GND

Red (VIN) - USB

White (SDA) - SDA

Green (SCL) - SCL


Step 6: Soldering the Transmitter and Receiver Wires

Up until this point the same wiring has been attached to both Feather M4 boards. The next steps will differentiate one board to become the transmitter and one to become the receiver.

Step 7: Soldering the Transmitter

Select one of the Feather M4 boards, this will become the Transmitter

To connect to the transmitting LED we will use the other half of the STEMMA wire with the header pins.

These wires need to be attached to specific pins on the board in the same manner as the wires for the STEMMA connector, from bottom to top and soldered on the top.

  1. Attach the red wire to the 3V rail on the proto area of the board
  2. Attach the black wire to pin 12
  3. Attach the white wire to pin 11
  4. Attach the green wire to pin 10


Step 8: Soldering the Reciever

Select the other Feather M4, this board will be the receiver

To connect to the receiving photo transistor we will use the other half of the STEMMA wire with the header pins.  You will need the red, black and green wires

These wires need to be attached to specific pins on the board in the same manner as the wires for the STEMMA connector, from bottom to top and soldered on the top.

  1. Attach the black wire to the GND rail on the proto area of the board
  2. Attach the green wire to pin A2
  3. Attach the red wire to 3V

Step 9: Case Assembly

For the assembly of the case, reference this image for labeling of the parts.

Step 10: Bottom Assembly

  1. Collect the M2.5 hardware (four smaller black screws, four black nuts, and four white standoffs)
  2. Find the bottom plate A, The board will be installed with the top of the board facing into the plate so that the battery connector fits into the plate and the reset button is accessible
  3. Insert the four M2.5 screws through the base from the bottom and lay it on the table, if you need to tape the screw heads so that they stay in
  4. Add the white standoffs to the screws
  5. Place the board bottom side up on the screws and secure it with the nuts
  6. Collect the four black threaded standoffs and four of the eight M3 Screws
  7. Attach the standoffs to the bottom plate with screws coming through from the bottom

Step 11: Inner Side Assembly

See the labeled Image for reference of which side piece is which. The pieces themselves are not labeled so pay close attention to the shape of each piece. The Transmitter and Receiver are assembled differently so make sure you do so correctly. The case is double walled in order to support the keypad. Both the transmitter and receiver will have the same inner walls but different outer walls.

Find the two side pieces (B & C) and fit them into place on the bottom


Step 12: Inner Front and Back Assembly

Find the front and back inner walls (D & E) and slot them into place. The one with the large cutout (D) fits over the Feather.


Step 13: Outer Side Assembly: Transmitter

For the TRANSMITTER ONLY Find the outer side wall (F) This side wall is going fit on the side closest to the Feather. In order to install it you will need to slightly lift the inner walls to slot everything in correctly.



Step 14:

For the RECEIVER ONLY Find the outer side wall (F) This side wall is going fit on the side furthest from the Feather. In order to install it you will need to slightly lift the inner walls to slot everything in correctly.



Step 15: Outer Front and Back Assembly

Find thefront and back outer walls (H & I) and fit them into place in a similar manner to the previous side wall.



Step 16: Connect the KeypadPCB

Plug the STEMMA connector into the Socket on the Keypad PCB


Step 17: Transmitter Wire Routing

For the TRANSMITTER ONLY take the four wireswith pins on them and hang them over the edge of the inner wall, furthest from the Feather, in the groove on that wall. This should be on the side that does not have a side panel


Step 18: Receiver Wire Routing

For the RECEIVER ONLY take the three wireswith pins on them and hang them over the edge of the inner wall, closest to the Feather, in the groove on that wall. This should be on the side that does not have a side panel


Step 19: Fitting the Keypad

  1. Position the housing so that the USB Port is at the top and carefully fit the Keypad PCB into place. Be careful fitting the wires into the case and that the wires from steps 1 or 2 are still hanging out the side. The numbers on the Keypad PCB should appear upside-down with respect to the case, I.e. “16” will be at the top left
  2. Carefully fit the Keypad PCB onto the inner walls so that it sits flush. Be careful about making sure the wires fit into the case. You might need to use a screwdriver to stuff them back in. Again, make sure that the wires with header pins that are hanging out of the side are sitting the in grove in the inner wall.


Step 20: Install the Button Pad

Install the button pad over the keypad PCB. The button pad has protrusions on the bottom which line up with holes on the PCB. The button pad should sit flush on the Keypad PCB



Step 21: Fitting the Top Pieces

  1. Fit the top piece (J) over the Button Pad making sure that the buttons do not catch and that all the tabs and slots on the side walls fit in
  2. Fit the black layer (K) on top of the Button pad
  3. Use the 4 remaining M3 Screws to hold the top in place. Getting one screw in will help hold everything together while you do the others.

Step 22: Add the Rubber Feet

Add the 4 rubber pads to the bottom just inside the screws so that the keypad has some feet and does not move around.

Step 23: Tranmitter Breadboard

We will now be assembling the breadboard for the transmitter.

First you will need to find the transmitter keypad, the one with 4 wires coming out of it.

You will also need a mini breadboard and the RGB Led

Step 24: Placing the Transmit LED

Fit the 4 legs of the RGB LED into the first bread board. Pay special attention to where you put the long leg (3V). See the Image for LED Pin Numbering

Step 25: Wiring the Transmit LED

Plug the Black wire into the breadboard to connect it to Pin 1 on the LED. This is going to be the same column of 5 on the breadboard

Plug the Red wire into the breadboard to connect it to Pin 2 (the long leg) on the LED

Plug the White wire into the breadboard to connect it to Pin 3 on the LED

Plug the Green wire into the breadboard to connect it to Pin 4 on the LED

Step 26: Bend the Transmit LED

Bend the LED over so that it is at 90 degrees

Step 27: Receiver Breadboard

We will now be assembling the breadboard for the receiver.

First you will need to find the receiver keypad, the one with 3 wires coming out of it.

You will also need a mini breadboard, resistor, and the phototransistor.

Step 28: Placing the Phototransistor

Fit the photo transistor into the second breadboard. Pay special attention to where you put the long Leg.

Step 29: Placing the Resistor

Place a resistor into the breadboard with one leg of the resistor connected to the long leg of the photo transistor and one leg in an open spot on the breadboard

Step 30: Wiring the Phototransistor

Plug the Red wire into the breadboard to connect it to the short leg of the photo transistor

Plug the Green wire into the breadboard to connect it to the long leg of the photo transistor and the resistor

Plug the Black wire into the breadboard to connect it to the other end of the resistor

Step 31: Bend the Phototransistor

Bend the Photo Transistor over so that it is at 90 degrees

Step 32: Upload the Code

The encoding and decoding Code is based on https://github.com/SaadOjo/DIY_Li-Fi

The keypad code is based on https://learn.adafruit.com/adafruit-neotrellis/arduino-code

Upload the LightRadio_Reciever.ino to the Feather M4 in the Receiver Keypad

Upload the LightRadio_Transmitter.ino to the Feather M4 in the Transmitter Keypad

The Keypads do not need to be connected to a computer to work but they should be connected to power. The USB battery pack is a great way to power the system and allow it to be portable

Step 33: Position the Breadboards

Position the breadboards so that the LED of the transmitter is facing the photo transistor with about an inch between them.

Step 34: Power Up the Keypads

Plug in the USB cords for the Transmitter and the Receiver

Plug the USB cords into a power source

Both Keypads should play a rainbow pattern

The LED on the transmitter should start flashing

Step 35: Drawing an Image on the Transmitter

On the transmitter keypad the opposing corners should begin dimly lit in red and blue

Pressing on one of these corners will select the “Pen Color” for the input, that button will get brighter

Pressing a key will turn it the color of the “Pen Color”. Pressing it again will remove that color from the key

Where Blue and Red overlap the key will turn purple.

You can think of each of these colors as different Light Radio Stations

Step 36: Receiving the Signal

Nothing will be happening on the receiver at this

Step 37: Tuning the Light Radio

Inserting the Blue side of the 3D glasses between the LED and the photo resistor will “Tune” the Receiver to the Blue Station. The Receiver will Light up in white with the same image as what is in blue on the Transmitter

Inserting the Red side of the 3D glasses between the LED and the photo resistor will “Tune” the Receiver to the Red Station. The Receiver will Light up in white with the same image as what is in red on the Transmitter

Step 38: Troubleshooting

The receiver is not showing anything

           Try moving the transmitter LED very close (almost touching) to the receiver phototransistor

           Load the AnalogSerialRead example onto the receiver (Change the pin to A2)

                       Look at the value that you are getting on the serial monitor

                       If you are receiving you should see a “high” number and some “low” numbers

                       Open the Reciever Code

                       Change line 34 “THERSHOLD” so that the number is above your “low” number but below your “High number”