element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Building a Network-Aware RGB LED Strip with Open Hardware and Python
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: cstanton
  • Date Created: 17 Sep 2026 9:12 AM Date Created
  • Last Updated Last Updated: 17 Sep 2026 11:56 AM
  • Views 43 views
  • Likes 3 likes
  • Comments 1 comment

Building a Network-Aware RGB LED Strip with Open Hardware and Python

There are some things in electronics that Clem simply does not like.

Bright LEDs are one of them. Bright LEDs that blink are worse. Bright LEDs cycling endlessly through rainbow effects while illuminating the inside of a computer case rank somewhere near the bottom of his personal list. Unfortunately, colourful LEDs remain overwhelmingly popular, which left only one option: build an LED project anyway.

Rather than following the well-trodden path of addressable LEDs, ESP32 modules and pre-packaged firmware ecosystems, Clem took a completely different approach. Instead of building another Wi-Fi connected lighting project, he designed an Ethernet-controlled RGB LED strip controller from scratch, combining a Microchip ENC28J60 Ethernet controller with an ATtiny3226 microcontroller and exposing the entire system through a lightweight network API.

The result is not just a decorative lighting controller. It's a general-purpose network-controlled visualisation platform capable of acting as a notification system, a network activity monitor, a status indicator and potentially much more.

Hack the Visual Planet!

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Starting With Ordinary RGB Strips

One of the more unusual aspects of the build is what Clem chose not to use.

Rather than selecting modern addressable LED strips, the design uses inexpensive analogue RGB strips. These strips operate by independently driving red, green and blue channels and can typically be found in voltage variants ranging from roughly 12 V to 24 V. They lack per-pixel control but offer simplicity, low cost and broad availability.

As Clem explains:

"These are the cheapest ones that you can get. It's not any fancy new pixel stuff. These are just power on one end and you pull down the colour that you want to activate." 

This decision dramatically simplifies the hardware while still providing all the functionality required for network-controlled status indication and ambient lighting.

image

Designing Around Ethernet

The heart of the project consists of an ATtiny3226 paired with an ENC28J60 Ethernet controller. The choice is interesting because neither component is especially new or fashionable.

The ENC28J60 communicates over SPI, making it ideal for small 8-bit microcontrollers. While newer Ethernet devices are available, the chip benefits from years of community support, mature software libraries and a well-understood design process.

The firmware itself deliberately avoids complexity. Rather than embedding application-specific logic into the controller, the device simply accepts colour commands over the network.

This architectural decision is perhaps the most interesting engineering aspect of the build.

Instead of forcing integrations into individual applications, services or cloud ecosystems, the controller becomes a generic endpoint. Any application capable of sending a simple HTTP request can change the colour of the LEDs. The intelligence remains elsewhere while the hardware remains simple, reusable and easy to maintain.

image

Why an LDO Won the Design Review

Another notable design decision concerns power regulation.

Most modern projects would default to a switching power supply for efficiency reasons. Clem chose a linear regulator instead.

At first glance this appears inefficient, but his reasoning is grounded firmly in practical engineering considerations.

The controller must operate across the voltage range commonly found on RGB strips, reaching up to approximately 24 V input. Using an LDO allowed him to reduce this voltage to the 3.3 V required by both the microcontroller and Ethernet hardware with minimal design complexity.

More importantly, it eliminates another potential source of debugging headaches.

As Clem notes:

"It avoids having to debug any interference issues between the switching and my Ethernet lines. So those could couple in and I'm not ready to debug that yet." 

For a prototype that isn't intended to run continuously, the additional efficiency of a switching supply simply wasn't worth the additional cost, complexity or potential EMI concerns.

image

Ethernet Is More Than Just An RJ45 Socket

One of the lessons reinforced throughout the project is that Ethernet hardware demands attention to detail.

Connecting an Ethernet controller directly to an RJ45 connector is not sufficient. Ethernet requires isolation transformers, termination networks and supporting circuitry to meet signalling requirements and maintain reliability.

To reduce complexity, Clem selected a BEL MagJack, integrating the Ethernet magnetics directly into the connector assembly. This significantly reduced component count and simplified PCB layout. The MagJack used in the design appears in the BOM as part number P01-0002-01. 

During the PCB routing stage, the differential Ethernet pairs required careful handling:

"You have to route them as pairs in KiCad and tune their length to each other so the signals take the same time to travel the distance." 

Although the trace lengths on this design were relatively short, the project serves as a useful demonstration of real-world differential pair routing practices.

image

Community Review Prevents A PCB Mistake

Before manufacturing the final PCB revision, Clem shared the design publicly for review. What followed demonstrates exactly why community feedback is important.

A community member noticed that one of the Ethernet transmit pair connections had been reversed. Clem had been preparing to point out his missing ESD protection circuitry when another engineer spotted the far more serious wiring issue. 

As Clem explains:

"The viewer pointed out that I connected TPR and TPR backwards to my MagJack. I didn't realise until then." 

The boards were reordered before assembly, preventing what could otherwise have become a costly debugging exercise.

image

Turning LEDs Into Debugging Tools

One particularly elegant feature of the project is the diagnostic system.

Without a dedicated serial interface available, the LEDs themselves became the debugger.

The controller communicates its status entirely through colours:

  • Red indicates communication failure with the Ethernet controller.
  • Blue indicates Ethernet hardware is present but has not connected successfully to the network.
  • Green indicates successful operation and network connectivity. 

When the board stubbornly remained blue, considerable effort went into investigating software, networking and protocol issues before the real problem emerged.

A bad solder joint.

After extensive experimentation, reheating and reflowing the board solved the issue completely. 

The experience serves as a familiar reminder that sophisticated faults often have surprisingly simple causes.

image

Software That Lives Outside The Device

A particularly clever architectural decision was keeping application logic away from the firmware. The project downloads listed in the support files include:

  • color_control.py
  • network_monitor.py
  • notification_blink.py 

The browser-based colour controller provides a lightweight web interface for selecting colours and sending them directly to one or more EtheRGB devices. 

Beyond that, Clem created two more practical demonstrations.

The first monitors network traffic and visualises network activity through colour changes.

The second watches Ubuntu desktop notifications and causes the strip to blink whenever a notification appears.

"You don't have to log into your applications or have to use their weird API. You can just use a little function in Ubuntu itself." 

Because all application logic exists externally, additional uses become straightforward to develop. CPU utilisation, GPU activity, build completion alerts, server monitoring and workflow notifications become simple software exercises rather than firmware modifications. 

image

More Than Decorative Lighting

What begins as a reluctant LED project ultimately becomes an interesting lesson in embedded networking, PCB design and system architecture.

The hardware itself is intentionally simple. An ATtiny3226, an ENC28J60, a MagJack and a handful of supporting components create a network-connected endpoint capable of accepting colour commands and storing persistent settings. 

The real intelligence lives elsewhere.

That separation allows a single controller design to support an unlimited number of applications without requiring firmware changes. Whether displaying network traffic, signalling incoming messages, highlighting completed builds or simply providing ambient lighting, the same hardware serves every purpose.

In the end, Clem may still not like RGB lighting quite as much as the Internet does.

But he did build a surprisingly capable Ethernet-controlled RGB LED platform, and along the way delivered a practical lesson in Ethernet hardware design, community-driven debugging and the value of keeping embedded systems simple.

Supporting Files and Links

-  Episode 732 Resources - Building a Network-Aware RGB LED Strip with Open Hardware and Python  

Project Parts and Bill of Materials

Product Name Manufacturer Quantity Buy Kit
P01-0002-01 Magjack BEL 1 Buy Now
ENC28J60-I/SO Microchip 1 Buy Now
ATTINY3226-SU Microchip 1 Buy Now
UA78M33CKVURG3 TI 1 Buy Now
MCSJK-7E-25.00-8-10-60-B-10 multicomp pro 1 Buy Now
MMZ1608Y152BTA00 TDK 1 Buy Now
MCT06030D4999BP500 vishay 1 Buy Now
C0603C104K3RACTU kemet 4 Buy Now
ERJ3EKF2321V panasonic 1 Buy Now
GRM188R60J106ME47D murata 2 Buy Now
MC0603N8R0D500CT multicomp pro 2 Buy Now
 

Additional Parts

Product Name Manufacturer Quantity
LED strip (RGB non adressable) 1

  • differential pair routing
  • ethernet led controller
  • ubuntu notifications
  • DIY electronics project
  • network controlled lighting
  • e14presents_mayermakes
  • network activity monitor
  • magjack
  • attiny 3226
  • rgb led controller
  • embedded ethernet project
  • microchip ethernet controller
  • pcb design
  • friday_release
  • ethernet rgb led strip
  • enc28j60
  • local network api
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
  • dougw
    dougw 1 hour ago

    As much as I like LED efficiency, flexibility and reliability, I agree bright LEDs are usually very annoying. Designers need to realize this.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube