Visible Light Communication using PURPLE board
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

What is this repository for

This repository contains hardware and software for building practical Visible Light Communication system. The PURPLE board is a cape that works with BeagleBone Black embedded computer. With PURPLE, one can send and receive information using visible light.


The hardware design is available in the eagle folder.

What's included

  • Firmware running on PRU including both transmitter and receiver
  • User-space program to run on embedded Linux environment
  • Hardware schematic
  • Partlist to assemble your own cape Digi-Key
  • PCB ordering OSH Park


  • config/

This directory contains all configuration files used before make.

  • docs/

This directory contains all documents and notes used as instructions and tutorials deployed in class.

  • example/

This directory contains the userspace program to send and receive msgs through light.

  • firmware/

This directory contains the binary files that's going to run on PRU

  • pcb/

This directory contains the hardware schematic and the PCB layout as well as the partlists.

  • src/

This directory contains the source file that needs to be compiled into the binary file under firmware folder.

  • test/

This directory contains the test and debugging file in user space for the PRU source code.

How do I get set up?

  • Configuration
  • Dependencies
  • Deployment instructions
    1. LED installation.
    2. Photodiode installation.

How to get started

Step 1: Insert SD card to BBB board. Make sure SD card has been flashed with the purple image.

Step 2: Boot Up the BBB board and connect the board to your PC/Laptop. Make sure you have successfully installed the drivers for BBB.

Step 3: SSH to the board. ssh debian@

ssh debian@

Step 4: When you login, Change to root.

sudo -s

Step 5: Go to purple repository.

cd purple

Step 6: Reload the pru remoteproc kernel module.

rmmod pru_rproc

modprobe pru_rproc

Step 7: Compile the code.

make clean

Step 8: Make sure the code got compiled succesfully.

Step 9: Start listening on incoming messages on one purple board.

cd example

Step 10: Start sending the messages on other purple board.

cd example
./send "hello world"

Step 11: Make sure the message got received correctly.

Step 12: Congratulations. You've completed this short tutorial.

Who do I talk to?


Exploring Beaglebone




arduino VLC

PRU mailing list