64 channel Arduino based Channel E1.31 PWM controller (for dumb pixels)

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
Following on from the Arduino based Pixel controller I posted yesterday, I would like to share my work on a dumb pixel controller i completed some time ago.


The breakdown cost per module is something around the $30-$40 mark depending on your skills and resourcefulness.



This one is based on 2 arduinos - One handles all of the E1.31 stuff and the other controls an array of shift registers. They speak to each other via i2c.


Why 2 arduinos? The main reason is that the shift registers need to use the SPI port and so does the ethernet module - The arduino only has one SPI port. It also allows the PWM stuff to be offloaded for faster operation.


Is this the best way to do it? Probably not but it works and is cheap. I have built 4 of these and they work well. See the end of this post for possible improvements/warnings etc. Also note that the ones I built were the first prototypes and are not the exact designs posted here. The pictures represent the initial design.


So, on to the show...


2014-10-04 10.05.15.jpg 2014-10-04 10.05.23.jpg 2014-10-04 10.05.43.jpg 2014-10-04 10.06.00.jpg


The boards were designed in sprint layout, there is a free viewer available from Abacom which enables you to print them out for etching your own PCBs but these particular ones were isolation routed on a CNC machine.


Parts sourcing
Each 'cube' requires:
2 X Arduino Pro Mini http://www.aliexpress.com/item/Free-shipping-5pcs-lot-New-pro-mini-electronic-building-blocks-Interactive-Media-ATMEGA328P-5V-16M-for/1832692835.html
1 X ENC28J60 Ethernet module http://www.aliexpress.com/item/ENC28J60-LAN-Ethernet-Network-Board-Module-25MHZ-Crystal-AVR-51-LPC-STM32-3-3V-free-shipping/1334967553.html
8 X 74CH595 Shift Registers http://www.aliexpress.com/item/Free-Shipping-10PCS-SN74HC595N-74HC595N-74HC595-DIP-16/1570657157.html
16 X PMV16UN FETS http://au.element14.com/jsp/search/productdetail.jsp?SKU=1894627RL
32 X Right angle 2 way push connectors http://www.aliexpress.com/item/Free-Shipping-100Pcs-lot-2-poles-2-54mm-pitch-right-angle-pcb-connector-Spring-termnal-block/1894179668.html
8 X 0.1uf Capacitors - Jaycar $0.4 each (or source some cheaper ones)
PCB - Jaycar sell a large sheet that is enough to build 4 of these for about $20

*** Note: The Arduino pro mini and ethernet modules are specific ones and not 'generic'. The ethernet module has an onboard 3.3v regulator so it will run from 5v and the arduino has a slightly different pinout from most pro minis. There's no reason this can not be changed but for 'plug-n-play' you will need these ones.

*** Note 2: These FETS are TINY. You will need a good soldering iron and a steady hand to be able to solder them. The technique I used was to tin the middle pad on the PCB and then use fine point tweezers to locate the FET in place and 'reflow' the solder to the middle pin. This is then enough to hold the chip in place to solder the remaining 2 pins, then come back to the middle pin to make sure it's properly soldered.


For final assembly I used some PCB risers from Jaycar but they are very expensive ~$10 for 25, I would suggest sourcing them from elsewhere.


I also used some 'pins' from an old multi-level PCB for the power, data and ground plane connections between the boards. Use what you want there. I have made the pads on the 5v and Gnd connections very large to allow for larger holes to be drilled for higher current capability.




PCB Files
http://woodcroftlights.info/files/Top Board.LAY
http://woodcroftlights.info/files/Sub Board.LAY


Arduino Sketches
http://woodcroftlights.info/files/ENC28J60_sACN_Rx.ino
http://woodcroftlights.info/files/slave_receiver.ino


Notes:
As you can see, in the picture from the bottom, I have added a fillet of solder to the ground plane to increase it's current handling ability. I have not tested these modules at full capacity but in theory, each channel is capable of switching about 5A at up to 20v. Do not go past these values or expect a slightly different type of light display.


If someone wanted to redesign the system, another way that could be more efficient would be to remove the 2nd arduino and replace the shift registers with WS2811 chips to drive the FETS instead. This might work better but would likely drive the price up.


I am not happy with the ground plane connections to the back set of FETs - Its a bit messy but it works. I used bent over PCB header pins to link them all. There is also a connection to the Capacitor in the middle of the board to connect with it too (red lines)


There is no protection from spikes, reverse polarity, interference etc. You may need to add capacitance on the main power feed to smooth power to the module and be extra cautious with power connections.


Ensure that if you are using multiple power supplies/voltages that all of the ground planes are tied together - For my setup I am using PC power supplies (or more specifically SERVER power supplies) capable of almost 100A on 12v rails and about 60A at 5v. These already have common ground between the output voltages.


Disclaimer: I am not an Electronic engineer, nor do I claim to be an expert of any sort in this subject. This information is provided as-is with no warranty of any kind, It's just something that works for me. You may not have the same results. I am not responsible for how you use this information in any way. (Reminds me of the Vixen license disclaimer)
 

AAH

I love blinky lights :)
Community project designer
Joined
Dec 27, 2010
Messages
3,593
Location
Eaglehawk
Nice post and great info and I'm glad that you decided to share the info here. A further note that most non engineers or experts won't pick up. The mosfets that you've used are rated at 5.8A but with the following specification. Device mounted on an FR4 Printed-Circuit Board (PCB), single-sided copper tin-plated, mounting pad for drain 6 cm2. Because you can't reasonably get that 6cm2 on the board the mosfets need to be derated to probably 1A or the "on" time limited to well under 100%.
Also, as per our PM's back and forth many weeks ago, the WS2801 is a much easier chip to pump data out to than the WS2811. Putting an inverter or buffer in between the pixel chip and the mosfet allows the gate of the mosfet to be driven harder which reduces the switching times and provides a more linear response.

As an edit. I just realised that if you are only using the 2nd board for the PWM control then you could easily get away with using 1 board and 2801 chips as it is dead easy to bit bang the data out to them and the timing isn't even remotely critical and you could do it with pretty well any 2 outputs.
 

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
AAH said:
Device mounted on an FR4 Printed-Circuit Board (PCB), single-sided copper tin-plated, mounting pad for drain 6 cm2.

Very right, I did miss that from the spec sheet. However, I have run them at 3A and have not noticed any heat buildup.
 

jtruax773

New elf
Joined
Oct 25, 2013
Messages
2
I'm not able to compile/upload ENC28J60_sACN_Rx.ino

I get the following error, any ideas?


'void sACNPacket(word, byte*, const char*, word)' was declared 'extern' and later 'static' [-fpermissive]


this is the line it doesn't like..
static void sACNPacket(word port, byte ip[4], const char *data, word len) {
 

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
I think the version of the ethercard library i used was older and some recent changes broke my code. Try an earlier release of the library. If you are totally stuck i can fix the code or send you the library i am using.
 

rusha34

New elf
Joined
Nov 25, 2015
Messages
1
I am having the same issues as jtruax773, I have also tried a few older versions but still cannot get it to work. el nino - are you able to send me a copy of the library you are using?
 

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
We worked out it is not the ethercard library but infact the version of the arduino ide casuing the conflict. Grab 1.6.1 and you will be fine
 

Lishfish

Full time elf
Joined
Dec 26, 2016
Messages
160
Location
Adelaide
Dont suppose you still have the coding for this or can point me in the right direction?
 

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
It's there right in the first post, just under the PCB Pictures.


If you want a leg up on one, I have one that is a bit damaged but salvageable...
 

elnino

Full time elf
Joined
Aug 1, 2014
Messages
142
Just set the IP and E1.31 universe and that is about it...
 

andy932

New elf
Joined
Dec 10, 2017
Messages
21
does anyone have the code. when I try go to the links it takes me sumwere else.
 

andy932

New elf
Joined
Dec 10, 2017
Messages
21
links still broken for the arduino code would like to build these but im no good at coding.
 
Top