lateral_led_controller
PublicLoading…
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
8parallel data outs and up to12DMX universes for max control over2000leds ! - 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
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
- 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:
- my artnet_led_mapper application
- resolume
- touch designer
- QLC+
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
- im using KF2EDG RIGHT ANGLE 3.5MM PLUGGABLE terminals in my kits, but this is up to you - standard screw terminal (non-pluggable) like this could also fit..
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 filebutton - 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
platformioto 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: Uploadshould 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
ledspwledsleds- 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 tryhttp://192.168.4.1if 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
No comments yet. Be the first to ask about this board.