Loading…

README

lateral_led_controller

hardware network controller for addressable led installations

  • this circuit is distributed by UNDERSCORES - an open video hardware label : it is available to purchase - as a pcb, kit or assembled unit - at underscores.shop
  • the schematic for the circuit can be found here
  • the pcb gerber files for the lastest version can be found here
  • interactive BOM is here
  • consider donating to the underscores project to help us continue creating for the commons

description

lateral_led_controller is a hardware interface that converts Art-Net, a network protocol for transmitting DMX data over network, into signals that drive addressable LEDs. it can be combined with mapping software (such as my artnet_led_mapper) to send arbitrary video onto an led strip canvas

features include:

  • receives artnet data via ETHERNET, WIFI or ACCESS_POINT
  • natively drive addressable leds WS281X and APA102
  • supports up to 8 parallel data outs and up to 12 DMX universes for max control over 2000 leds !
  • local web interface for easily configuring network / led settings
  • flexible dc power input - between 5v to 12v with low-heat / efficient on-board step-down converter
  • open source hardware and firmware - can be customized to meet your specific needs

background

this controller is a companion to my artnet_led_mapper application that converts a video feed into artnet for addressable led strip installations. it was built for lateral movement club nights such as seen here:

you can find some more background on this install and process here: WORKS IN PROGRESS 04 - talk about controlling addressable leds for art installation

demo video

image

hardware options

hardware options

besides this controller there are some more bits of hardware you will need to realize an addressable led installation - i will outline some suggestions here based on my experience but this will depend on your specific requirements - feel free to email me if you would like individual consulting on this.

led strips

this controller is configured to support two types of addressable led strips (more can be added by firmware update):

WS281X

ie neopixels, WS2813 (5v) or WS2815 (12v)

  • these strips are cheapest - around 5usd for 60/m on aliexpress
  • data to them is sent over a single wire (D) but is quite slow (around 800kbps)
  • this means that a maximum of around 240 of these leds can be addressed in series before the refresh rate drops below 30fps
  • this controller is designed to be able to address up to 8 seperate WS281X led strips in parallel (outputs D0-D7 on board) for maximum 1920 number of leds in total

APA102

ie dotstar , SK9822

  • these strips cost more - around 10usd for 60/m on aliexpress
  • data to them is sent over two wires : ( __D__ata and __C__lock ) but is very fast - (around 24Mbps )
  • the controller is designed to address a single APA10 led strip by connecting D0 -> Data, D1 -> Clock
  • at those speeds there is no need to have parrallel outputs can easily address 2000 leds in series (may need to look into power injection tho)
  • they also claim to draw around 1/5 of the power as WS281X (i havnt tested this myself)

power supply

we ended up using a switching power supply like this

  • choose voltage based on your strip type (likely to be either 5v or 12v)
  • and then power based on the requirement for total number of leds you are using
  • you should power the lateral_led_controller from the same supply thats powering the leds (its designed to safely take 5v - 12v input) or atleast ensure the GNDs are connected
  • take note on the recommended power wire thickness based on how much current is passing through it (if you use 12v strips then less current is required and therefore thinner wires)

light diffusers

for most installation settings it is prefered to use some kind of diffuser to help to evenly distribute light. there are many options and information about this topic online

wiring and connectors

the data lines from lateral_led_controller uses Pluggable Screw Terminals - standard wire (22awg etc) can connect these lines from controller to the strip

theres also the option to use cat5/6 cables to carry multiple data lines from the lateral_led_controller - these are quite cheap, come in long distances and have twisted pairs which should allow for longer runs

personally i prefer running power lines seperately (on red+black paired wire ) - and using these kinds of barrel / screw connectors to easily plug in / unplug from the installation

most led strips come with these SM JST 4 connectors pre-soldered to both ends. one option if you dont want to resolder wires / new connectors onto each strip would be to just get some extra of these and create breakouts

custom adapter boards

i made two little pcb adatpers that may help you with format convertion also - see below for some examples of how you could wire them

software options

software options

any software that can output artnet over a network can be used with lateral_led_controller. some programs i have tested it with include:

documentation

this project is fully open-source hardware - all the files required to build it are included in this repo for free. if you have the time and/or skill you can contribute back by collaborating on / testing new designs, improving these docs, making demo videos/other creative content etc. you can also support the project financially by donating directing, or purchasing through the web shop.

depending on whether you are going fully diy or buying an assembled and tested unit, some of the following guides will be relavent to you. the flow would be:

ordering parts

parts sourcing guide (w/ notes on pcb fabracation ) - start here if you are building fully from scatch or have purchased a pcb

i try to source all the parts i can from either:

  • tayda ; cheaper for common parts like resistors etc, also good for mechanical parts like switches and buttons
  • mouser ; has lots more options, speciality video ic's, can sometimes cost more (free shipping on orders over 50euros)
  • other ; ocationally there will be parts which will need to be sourced elsewhere - usaully either aliexpress, ebay or amazon etc...

take a look at the full_bom for this project to see where i am sourcing each part from

import into tayda

  • go to the tayda quick order and in bottom corner choose add from file

  • select the file tayda_bom.csv in the BOM folder (you will have to download it first or clone this repo)

  • after importing select add to cart

  • NOTE: the minimum value for resistors is 10, so you may need to modify these values to add to cart (or if they are already modified here you will need to see the full_bom for actual part QTY)

  • OPTIONAL: it is a good idea to add some dip-ic sockets and 2.54pin headers/sockets to your tayda order if you dont have them around already

sourcing other parts

this circuit has a few specific parts that can not be sourced from tayda/mouser:

WT32-ETH01 micro-controller

we are using a WT32-ETH01 ESP32 controller with the LAN8720A chip / ethernet port already attached - this is because it requires specific routing that is easier to get in a module like this - heres some more general info about this uC - it should be easy to find with a search on ali/amazon/ebay/etc - if you get it without header pins you can solder the controller straight on to the pcb (using the castellated edges)

MP1584EN_5v_stepdown

another pre-soldered module used in this circuit is this MP1584EN_5v_stepdown - 3A Step-down 5v

its a useful module that allows a wide range of voltage inputs and is much more efficent than standard linear regulators (so producing less heat - which is important for installation work) - you can also solder the board directly onto our pcb with the castellated edges - take note of the direction indicated by arrow on bottom of module

WeMos_CH340G_USB_to_SERIAL

since the WT32-ETH01 doesnt have an on-board usb-to-serial on the module for uploading firmware this board is designed to work with this WeMos_CH340G_USB_to_SERIAL one - we are using this because it outputs the command signals that allow for auto-uploading (so we dont need to manually switch to boot mode every time) - you may need to join some pads with solder on the module to select DTS mode for it to work

terminal jacks

the footprints on the pcb for the data line outputs are spaced for 3.5MM

ordering pcbs

you can support this project by buying individual pcbs from the shop. if you would rather have pcbs fabricated from gerbers directly the file you need is here

  • i get my pcbs fabricated from jlcpcb - 5 is the minumum order per design
  • upload the zip file with the add gerber file button
  • the default settings are mostly fine - set the PCB Qty and PCB Color settings (you can check that the file looks correct with pcb veiwer)
  • it may be best to combine orders with other pcbs you want to have fab'd since the shipping can cost more than the items - also orginising group buys is a good way to distribute the extra pcbs /costs

i often use jlcpcb because they are reliable, cheap and give you an option of colours. remember though that the cheapest Chinese fab houses are not always the most ethical or environmently friendly - if you can afford it consider supporting local companies.

assembly guide

assembly guide - start here if you have purchased a diy kit

interactive BOM for build guiding

follow this link to view the interactive BOM

general solder advice

  • remember to heat pad first (2-3seconds), then add solder, then continue to heat (1-2seconds)

  • Checkout the web-comic soldering is easy for more soldering advice

order of assembly

  • both the WT32-ETH01 controller and the MP1584EN_5v_stepdown module can be soldered directly to the board using the castellated edges (if you would rather use pins/sockets this is fine also - just be aware you may need to use higher standoffs if also mounting a front panel) - these should be soldered before anything else

  • next i would solder the resistors, capictors (take note of direction), diodes, transistors etc

  • finally would finish with ic's and interface parts - sockets, buttons etc...

firmware guide

firmware guide - for editing the code & flashing it to your micro-controller

flashing firmware onto the micro-controller

if you have got a kit from the shop the default firmware will be pre-configured - still it could be useful to know how to update firmware / customize your controller.

install guide

all underscores projects with micro-controllers use platformio with visual studio code to edit, flash and monitor the code.

  • first download (and unzip) the code in this repo - easiest is as a zip or you can clone using git if you are comfortable with this
  • next download, install and open visual studio code
  • now open the extension tab within vscode on left vertical menu (or press ctrl-shift-x) and search for platformio to install this extension

  • connect the micro-controller to computer via usb with the WeMos_CH340G_USB_to_SERIAL port, open the software folder of this project (ctrl-k ctrl-o) in vscode and find the platformio commands (either in left vertical menu under platformio or little tick/arrow symbols along bottom blue bar) - PlatformIO: Upload should flash the default code to your micro-controller

operating guide

operating guide - start here if you have purchased an assembled unit

access settings interface for first time

  • power on the circuit by plugging in a 5-12v dc supply into the POWER IN
  • using a computer / phone connect to the ACCESS_POINT created by the controller: default name leds pw ledsleds - you should see the blue network connected led come on when you have connected to this network
  • in a browser go to http://leds.local (also try http://192.168.4.1 if that doesnt work ) - you should now see the web interface!
  • from here you can set up which connection mode to use, see your controllers ip and also set which led protocol & layout to use - make sure the led settings (led type, number of data lines and number of leds per line ) reflect your installation setup.
  • for most installation settings it will be preferable to use wired ethernet connection to send data into this controller - make sure the IP/SUBMASK/GATEWAY settings reflect the ethernet settings being used on the computer this controller is connecting to. auto assign ethernet connection worked from my linux machine but i could not get windows to assign an ip (act as dhcp) - maybe there is some setting or maybe it needs to be done manually from some operating systems such as windows.

reset button

soft reset

on the controller board next to the NETWORK CONNECTED led is a CONTROLLER RESET button - pushing this will reboot the controller -> you should see the network connected light go off for a momement while it resets

hard reset

if you hold down the CONTROLLER RESET button for 5 seconds then release it you should see the NETWORK CONNECTED led flashing -> then short pressing the CONTROLLER RESET again from this mode will perform a hard reset this means that the NETWORK TYPE is reset back to ACCESS_POINT and all settings are restored to default (you will need to connect to leds with pw ledsleds again to set up your controller)

this can be helpful if you accidently put the controller into a state with network settings that you can not access the page any more.

(if you get to the flashing led state but do not want to do a hard reset just power down the controller while flashing and your settings will not be wiped)

more info

how the circuit works

[coming soon]

contributing guide

if you would like to contribute back to these projects in some way but dont know how the best thing (for now) would be to reach out to me directly ( [email protected] or @cyberboy666 on scanlines forum) - i will be happy to help

credits & more info

This circuit is distributed through UNDERSCORES – open video hardware label – visit underscores.shop for more info

The pcb was designed using KICAD , the booklet was created in LibreOffice Draw

Everything from gerbers, cad files, panels and documentation is freely available online and distributed under CC-BY-SA / open-source licenses – help us contribute to the commons !

Ask any questions or start discussions related to this project on the scanlines.xyz forum – an online community space dedicated to diy av / electronic media art

You can contact me directly at tim (at) cyberboy666 (dot) com Please get in touch if you are interested in hosting a workshop !

thanks to Tor for user testing + detailed feedback and suggestions + help with web interface design. thanks to the Lateral Movement Crew: Leo, Teesh, Wendy, Luke, Sean - for all the work into making these parties happen

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.