Skip to the content
PCBKitNew board
2 layers52.7 × 101.6 mmOctobridge, the printed circuit board in 3D

Build and program an LED panel the easy way!

Size
52.7 × 101.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
19
Pads
96
Tracks, vias
180, 0
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
1 Apr 2024
Updated
12 May 2025

Overview

Octobridge is an open-source printed circuit board by jocobuilds, from the jocobuilds/easy-led-panel repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 52.7 × 101.6 mm with 32 parts on 19 nets, routed with 180 tracks and 0 vias.

It is built around the RJ45. Its parts include 8 capacitors and 8 resistors.

Main components

1

README

README.md

Contributors Forks Stargazers Issues MIT License LinkedIn


Easy LED Panel

Assemble, program and simulate up to 8 LED strips driven by a Teensy board
View Demo · Report Bug · Request Feature

What is it?

This repository aims to

  • provide guidelines for assembling and programming a simple LED panel using LED strips,
  • give public access to the PCB files of a component (the Octobridge),
  • provide a way to simulate your LED panel on your computer, allowing easy tests without hardware,
  • suggest some program snippets that can be directly uploaded to your LED panel. (TBD)

I had the chance to put this project to practice with my improv team. By aligning 8 strips of 150 LEDs and with a little programming, we put on a great show! :sunglasses:

How to build your own LED panel

Caution

  • LED strips can be dangerous for the human eye, as they produce very bright light. Be careful. Place a diffusing material in front of the LEDs to attenuate the light.
  • LED strips draw a lot of power. Be careful. Incorrect or unsafe wiring can be dangerous.

Working principle

A Teensy-driven LED panel is made up of 3 main parts:

  • Power supply, needed for producing light,
  • a microcontroller, needed for controlling the RGB values of each LED,
  • WS2811b LED strips aligned on top of one another, needed for creating a 2D grid of LEDs.

To make the bridge between these parts, and to facilitate cable work, I designed a printed circuit board I called the Octobridge. As shown in the simplified illustration below, the Octobridge receives power and data, and distributes it to the LED strips.

In practice, the power received comes from a 5V DC power supply, and data comes from a Teensy board using two CAT6 Ethernet cables. This is shown in the illustration below.

The top four LED strips are powered by the top power input and driven by the top CAT6 Ethernet cable. The bottom four LED strips are powered by the bottom power input and driven by the bottom CAT6 Ethernet cable.

The data sent to the WS2811b chips consists of a series of digital pulses, with each pulse representing a bit of information. The timing and sequence of these pulses encode the color and brightness data for each LED. Each LED interprets the data intended for it and adjusts its color and brightness accordingly.

By being individually addressable, the WS2811b LEDs can be programmed with high flexibility. Programming is particularly easy under the Arduino framework as explained in the LED programming section.

List of required components

  • A Teensy board, mounted on an OctoWS2811 Adaptor,
  • two CAT6 Ethernet cables,
  • a 5V DC power supply (that can draw up to 40A),
  • thick wires for connecting the power supply to the Octobridge (the thicker, the better. Too thin wires will burn or cause incorrect LED colors),
  • WS2811b LED strips,
  • an Octobridge (the PCB files can be found here),
  • passive components to be soldered on the Octobridge, that is
    • eight 100ohm resistors,
    • eight 1000µF capacitors (6.3V, 3.5mm lead spacing),
    • two single-port, tab-up (not down!) RJ45 connectors (through-hole, 8P8C, shielded, right-angle),
    • eight S3B-XH-A JST connectors,
    • eight JST XH 2.54mm 3-pin wired connectors.

Step-by-step assembly

  • Make sure you have all the components needed. They can be ordered from the following suppliers:

    • PJRC: for the Teensy board,
    • JLCPCB: for the Octobridge (the PCB files can be found here),
    • Amazon, Aliexpress, etc.: for the rest.
  • Once you have gathered all the components,

    • solder the passive components on the Octobridge (watch out for the polarity of your capacitors!),
    • solder the JST XH 2.54mm 3-pin wired connectors to your LED strips (make sure the pin mapping is respected. Refer to the wiring circuit or to the image below),

    • turn off the power supply and wire it to the Octobridge (watch out for the right GND and 5V connections, as shown in the image below),

    • connect your LED strips and your Teensy board to the Octobridge.

We're all set!

How to program your own LED panel

The last part of the project is also the most fun: you get to program your own LED animations :sunglasses:.

  • Install and run the Arduino IDE on your computer,
  • from the Arduino main window, go to the Boards Manager and install the Teensy extension by Paul Stoffregen (as shown in the image below),

Your first LED animation

  • go to Manage Libraries ... under the Tools menu, and install the FastLED and the OctoWS2811 libraries,
  • open your first LED animation file by going to File→Examples→OctoWS2811→BasicTest_FastLED.
  • in the code, edit the value of NUM_LEDS to your total number of LEDs.

Finally, plug your Teensy to your computer, upload the sketch, and power up the Octobridge (after checking the wiring). Congratulations, you just brought life to your LED panel! :rocket:

Programming custom animations

You can create your own animations using the FastLED and/or the OctoWS2811 libraries. Possibilities are endless! Have fun :grinning:

How to simulate your own LED panel

Want to test an idea without wiring up hardware? You have come to the right place!

I have made available a Python script that simulates an LED panel. The downside of this simulator is that it is not using Arduino, which means you will have to re-write the program if you want to upload it to your Teensy board. However,

  • Python is awesome (change my mind),
  • you can test your ideas quickly and easily without hardware,
  • resulting animations can be easily visualized and shared,
  • programming simulated animations is very similar to programming in Arduino. In other words, translating the Python program to Arduino is fast. For example, see the how the main loop of the scrolling text animation written in Python
text
# Python prototyping
def scrollingTextProgram(leds):
    BLUE  = [0, 0, 255]
    RED   = [255, 0, 0]
    YELLOW = [255, 255, 0]
    PAUSE = 40 # milliseconds
    scrollText(leds, " EASY LED PANEL ", RED, BLUE, PAUSE)
    scrollText(leds, " EASY LED PANEL ", YELLOW, RED, PAUSE)
    scrollText(leds, " EASY LED PANEL ", BLUE, YELLOW, PAUSE)
}

compares to the same one written in Arduino

text
/*Arduino implementation*/
void loop() {
  int BLUE   = 0x0000FF;
  int RED    = 0xFF0000;
  int YELLOW = 0xFFFF00;
  int PAUSE  = 40; // milliseconds
  scrollText(" EASY LED PANEL ", 16 /*char array size*/, RED, BLUE, PAUSE);
  scrollText(" EASY LED PANEL ", 16 /*char array size*/, YELLOW, RED, PAUSE);
  scrollText(" EASY LED PANEL ", 16 /*char array size*/, BLUE, YELLOW, PAUSE);
}

Requirements

You will need to install Python by downloading and running their latest installer. See this repository for a complete tutorial for installing Python on common operating systems. The simulator depends on Pygame which you also need to install. This is easily done using the command

text
pip install pygame

from the terminal.

Your first simulation

Once you have installed all requirements, run the animation example script with the command

text
python animationExample.py

from the terminal. A window will pop, displaying the following LED animation:

Congratulations, you just brought life to your simulated LED panel! :rocket:

Programming custom simulated animations

You can create your own animations using the simulator. I would recommend doing so in a new Python script of your own in the simulator directory. A great way to start would be to copy the animation example and edit it in a new file.

Parts

32
QtyValueFootprintReferences
81000uCapacitor_THT:C_Radial_D8.0mm_H11.5mm_P3.50mmC1, C2, C3, C4, C5, C6, C7, C8
8100RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8
8~Connector_JST:JST_XH_S3B-XH-A_1x03_P2.50mm_HorizontalSTRIP1, STRIP2, STRIP3, STRIP4, STRIP5, STRIP6, STRIP7, STRIP8
4MountingHoleMountingHole:MountingHole_2.5mmH1, H2, H3, H4
25VTerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-5.0-H_1x02_P5.00mm_HorizontalPower1, Power2
2RJ45Connector_RJ:RJ45_Amphenol_RJHSE538XRJ1, RJ2

Questions

How big is the Octobridge PCB?

It measures 52.7 × 101.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Octobridge use?

32 parts, built around the RJ45. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Octobridge KiCad files?

From the jocobuilds/easy-led-panel repository on GitHub, at the commit this page was made from: the board is kicad/octobridge.kicad_pcb and its schematic kicad/octobridge.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Octobridge design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers33.7 × 97.8 mmHAN ESP TSS721, the printed circuit board in 3D

    HAN ESP TSS721

    UtilitechAS/amsreader-firmware

    ESP8266 and ESP32 compatible firmware to read, interpret and publish data to MQTT from smart electrical meters, both DLMS and DSMR is supported

    29 parts470
  • 4 layers84 × 82 mmToad, the printed circuit board in 3D

    Toad

    travisgoodspeed/goodfet

    An embedded bus adapter for various microcontrollers and radios.

    241 parts333
  • 2 layers100 × 100 mmCANBuster, the printed circuit board in 3D

    CANBuster

    GBert/misc

    miscellaneous stuff / unsorted

    182 parts99
  • 2 layers50 × 55.4 mmCasserole, the printed circuit board in 3D

    Casserole

    puddly/casserole

    Control GE appliances

    23 parts94Apache-2.0
  • 2 layers67.9 × 47.8 mmPlatine, the printed circuit board in 3D

    Platine

    nv1t/standing-desk-interceptor

    I wanted to intercept the communication between my Flexispot standing desk buttons. This is the progress on the project

    11 parts52CC0-1.0
  • 4 layers90 × 75 mmCM4 2 Backup, the printed circuit board in 3D

    CM4 2 Backup

    olvint/CM4-NAS-MiniPCIE

    Raspberry Pi CM4 based NAS solution board

    21 parts51
  • 4 layers73.9 × 84.5 mmAei, the printed circuit board in 3D

    Aei

    Severson-Group/AMDC-Hardware

    Circuit board designs for controlling advanced motor systems

    54 parts51
  • 2 layers99 × 60 mmPwr, the printed circuit board in 3D

    Pwr

    mfkiwl/KiwiSDR_PCB

    KiCAD PCB files for KiwiSDR project including active antenna and bias tee

    64 parts46