Author Topic: FPP driving P10 panels over Ethernet via a $30 ColorLight 5a-75B receiver board  (Read 8855 times)

Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
So I stayed up way too late last night, but I now have a working beta version of a new FPP Channel Output for the ColorLight 5a-75 receiver board.  This board drives LED panels such as the P10 modules people are using with the Octoscroller and Pi Matrix hats.  The 5a-75 can drive up to a 256x256 pixel array, which means it should be able to drive twice as many 32x16 P10 panels as a BBB/Octoscroller combination.  The 5a-75 can be driven via a sender card attached to the HDMI/DVI output of a computer or it can be directly driven via standard ethernet.  The new FPP Channel Ouput utilizes the ethernet method.

Here's a quick video of it in action:

https://vimeo.com/198405952

There are some limitations, some we can work around and some we are stuck with.

These boards are designed to have each output connector driving a single row of LED panels, so they don't support wrapping as far as I can tell.  I should be able to add that functionality in software as I have done for the Octoscroller and Pi Matrix hats.  I actually drive 3 separate matrices off a single BBB currently with one matrix having both horizontal and vertical oriented panels, so I will definitely need to enhance the 5a-75 Channel Output if I want to use it in my display.

The network protocol uses one network packet per row of display per frame, so for displays less than 200 or so pixels wide, they are less efficient than E1.31.  This shouldn't be an issue because a Pi 2 B or 3 B can send 256 network packets in around 15ms.

This board requires a Gigabit Ethernet connection, it will not work over 100Mbit ethernet.  This means that you can't plug a 5a-75 directly into a Pi and have it work, you need a Gigabit switch in the middle.  Once we have official support for some other hardware platforms like the Odroid and Pine64 that have Gigabit Ethernet NIC's, you could potentially plug one of those directly into a 5a-75, possibly only needing an Ethernet crossover cable.

The network protocol used by the boards is not TCP or UDP or even IP, it is a raw ethernet packet and acts like a broadcast.  Because of this, you don't want to run this on your home network, because these packets go everywhere, through every port of every switch.
-
Chris

Offline garyh

  • Jr. Member
  • **
  • Join Date: Dec 2015
  • Location:
  • Posts: 87
  • Kudos: 4
Thanks for the update and your time working on this! 

Offline ThreeSizes

  • Developer
  • ******
  • Join Date: Dec 2015
  • Location: Fulton, MD
  • Posts: 532
  • Kudos: 30
This board requires a Gigabit Ethernet connection, it will not work over 100Mbit ethernet.  This means that you can't plug a 5a-75 directly into a Pi and have it work, you need a Gigabit switch in the middle.  Once we have official support for some other hardware platforms like the Odroid and Pine64 that have Gigabit Ethernet NIC's, you could potentially plug one of those directly into a 5a-75, possibly only needing an Ethernet crossover cable.


You could use a USB2/3 to Gigabit Ethernet Adapter. You will not get the 1000mbps throughput (it would be limited to USB2 speeds under 480mbps) but more importantly it will still train up to gigabit ethernet so it should link up with the 5a-75 board without a switch in-line.




"And what happened then? Well, in Whoville they say that the Grinch's small heart grew three sizes that day."

Offline garyh

  • Jr. Member
  • **
  • Join Date: Dec 2015
  • Location:
  • Posts: 87
  • Kudos: 4
Seems like a Pine64 would be an ideal route, then again I like to overbuild stuff.

Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
You could use a USB2/3 to Gigabit Ethernet Adapter. You will not get the 1000mbps throughput (it would be limited to USB2 speeds under 480mbps) but more importantly it will still train up to gigabit ethernet so it should link up with the 5a-75 board without a switch in-line.

I want to do some additional testing with this as well.  When I plugged the receiver board into my network on a Gig-E switch, the Windows software was able to discover the board.  I moved the receiver to a 100Mbit switch and it couldn't, but I believe I got a link on the 100Mbit switch.  I do plan to check to see if the Pi will get a link when I plug the receiver directly into the Pi.

Offline Unibits

  • Falcon Beta Team
  • **
  • Join Date: Apr 2013
  • Location:
  • Posts: 71
  • Kudos: 3
Do any of the other receiver cards out there work this same way?  I have a linsn setup here that I could help test with if it does. 

(Actually, I have a full blown Pine 64 in the box too.) 

Thanks

Offline ThreeSizes

  • Developer
  • ******
  • Join Date: Dec 2015
  • Location: Fulton, MD
  • Posts: 532
  • Kudos: 30
You could use a USB2/3 to Gigabit Ethernet Adapter. You will not get the 1000mbps throughput (it would be limited to USB2 speeds under 480mbps) but more importantly it will still train up to gigabit ethernet so it should link up with the 5a-75 board without a switch in-line.

I want to do some additional testing with this as well.  When I plugged the receiver board into my network on a Gig-E switch, the Windows software was able to discover the board.  I moved the receiver to a 100Mbit switch and it couldn't, but I believe I got a link on the 100Mbit switch.  I do plan to check to see if the Pi will get a link when I plug the receiver directly into the Pi.


I have seen similar behavior with devices that appear to train and the switch says link up but does not actually pass traffic.




Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
Do any of the other receiver cards out there work this same way?  I have a linsn setup here that I could help test with if it does. 

According to their web site, the Linsn cards can also be driven directly from a Gigabit Ethernet card without having to have a sender card:  http://www.linsn.com/case_view.aspx?TypeId=29&Id=235&FId=t4:29:4 

The Linsn receiver cards appear to be around the same price as the ColorLight.

I haven't found any protocol information for the Linsn cards, but I did find a german web site where people were discussing the protocol.  Google didn't translate it well enough though, and it appears they never actually wrote any code.  They did post a small network capture of the data going to the receiver card but that is a little hard to follow since I don't know what size panel array they were driving.

If you have a working Linsn setup and can get a packet capture of the data being exchanged between the computer and receiver then I could take a look at the data and see if I think it can be supported.   I can see a sequence or row number incrementing in the data packets and what appears to be pixel data as well

Offline darylc

  • Supporting Member
  • ******
  • Join Date: Oct 2013
  • Location: Australia
  • Posts: 113
  • Kudos: 4
 
If you have a working Linsn setup and can get a packet capture of the data being exchanged between the computer and receiver then I could take a look at the data and see if I think it can be supported.   I can see a sequence or row number incrementing in the data packets and what appears to be pixel data as well

Anything in particular you want run on the panels for the capture?

Offline Unibits

  • Falcon Beta Team
  • **
  • Join Date: Apr 2013
  • Location:
  • Posts: 71
  • Kudos: 3
Do any of the other receiver cards out there work this same way?  I have a linsn setup here that I could help test with if it does. 

According to their web site, the Linsn cards can also be driven directly from a Gigabit Ethernet card without having to have a sender card:  http://www.linsn.com/case_view.aspx?TypeId=29&Id=235&FId=t4:29:4 

The Linsn receiver cards appear to be around the same price as the ColorLight.

I haven't found any protocol information for the Linsn cards, but I did find a german web site where people were discussing the protocol.  Google didn't translate it well enough though, and it appears they never actually wrote any code.  They did post a small network capture of the data going to the receiver card but that is a little hard to follow since I don't know what size panel array they were driving.

If you have a working Linsn setup and can get a packet capture of the data being exchanged between the computer and receiver then I could take a look at the data and see if I think it can be supported.   I can see a sequence or row number incrementing in the data packets and what appears to be pixel data as well



Chris


Later this week, I will go to the sign that I support.  Long story on it.  The original supplier basically screwed the guy over and walked away.  He tried to double charge the guy after they agreed on a price for the installed package.   They called me and I figured it out and got it working.  That was my first experience with the LINSN stuff.  I suppose I could even test there if you want.

Personally,  I have a 8 panel by 8 panel matrix running with a BBB.  It is not yet configured to use the LINSN stuff as I got a hold of the LINSN stuff but have not yet attempted installation on my application.  I need to figure out the con file for my configuration.

 The working sign is a 2 sided outdoor P10 panel setup.  I will get all the info that I can find on it as well as capture the traffic being sent to it.  I am in the middle of producing a ballet at our theater and just don't have the time until later this week.  I believe that I will be able to do this by Friday

Thanks for looking into this



Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
It doesn't matter really what is being displayed as long as I know the dimensions of the display and you can describe or get a screen capture of what is displaying.  If I can figure out the data format I can probably write a quick script to decode the captured packets into an image.  The colorlight sends one packet per line of display but I can't tell if the Linsn is ding the same thing from the unknown sample capture I found.  There appear to be 274 packets per frame in the capture but that doesn't work out to an even multiple of 8, 16, or 32 row panels.  The packet size is also very large so I am wondering if the Linsn packs data to fill up packets for efficiency.

Offline darylc

  • Supporting Member
  • ******
  • Join Date: Oct 2013
  • Location: Australia
  • Posts: 113
  • Kudos: 4
 
So I stayed up way too late last night, but I now have a working beta version of a new FPP Channel Output for the ColorLight 5a-75 receiver board. 

Is the code in github somewhere?  My colorlight cards should be here shortly and I'd like to have a play with it.

Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
So I stayed up way too late last night, but I now have a working beta version of a new FPP Channel Output for the ColorLight 5a-75 receiver board. 

Is the code in github somewhere?  My colorlight cards should be here shortly and I'd like to have a play with it.

I just merged it to master, but if you saw my other post, this branch is in a state of flux.  You can manually configure the new channel output by following the sample channeloutputs.json file in the docs/samples directory..  Channel test mode is working and basic sequence playback is working to a point, so I think you can test a sequence via the test page.  You should be able to put FPP in E1.31 bridge mode and talk through to the ColorLight, but I would advise using two network interfaces in the Pi because the ColorLight data will saturate the network interface.  I used a 100Mbit USB NIC for my testing.  I connected to the system over the built in Ethernet and configured the ColorLight Channel Output to use the USB NIC.

Offline lwillisjr

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 78
  • Kudos: 0
Is there any advantage of driving panels this way?


The only thing I could think of would be able to stream live video to a particular display.

Offline JonB256

  • Supporting Member
  • ******
  • Join Date: Mar 2013
  • Location: Granbury, Texas
  • Posts: 3,672
  • Kudos: 77
    • Granbury Christmas Lights
The ColorLight board (and the LINSN) supports panel refresh rates and sizes that the BBB and RasPi don't support. 4:1 refresh would let you use many other panels. Plus that faster refresh means brighter and smoother output.

 

Back to top