News:

LATEST RELEASE:  FPP 8.4 - Download from here - https://github.com/FalconChristmas/fpp/releases/tag/8.4

+-+-

+-User

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+-Site Stats

Members
Total Members: 16779
Latest: BWP
New This Month: 42
New This Week: 15
New Today: 3
Stats
Total Posts: 134925
Total Topics: 16874
Most Online Today: 186
Most Online Ever: 7634
(January 21, 2020, 02:14:03 AM)
Users Online
Members: 3
Guests: 146
Total: 149

RPI PICO AND WS2812B

Started by tjkaminski, November 24, 2022, 10:18:45 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tjkaminski

I am new to the forum and just found out about XLights and FPP.  I have long been a RPi fan and recently started using the Pico for WS2812 LED strip designs. I have developed Pico software that uses the 8 co-processors for WS2812 drive of 8 strings. 

I have tested the device and find that I can drive 8 strings of 300 pixels at 100 Hz update rate.  See the Google Drive video link to the prototype hardware below:

Pico X8 Strings

I am very impressed with XLights and I have been helping my son-in-law use the Kulp K16-AB.  Very nice hardware design and great FPP software!

As I understand it, the FPP software for the Raspberry Pi supports a "Channel" option for adding new remote controllers.  How can I find out more in order to develop a driver for my prototype? I am sure that the Pico and RPi can be set up to communicate at a pretty high rate.

I would be happy to release the software as Open Source.  It is based on the single channel Pico development kit code for driving WS2812 strings with a Pico co-processor with some custom code for glue.


 

tjkaminski

It looks like it is possible to code up either a Pixelnet-Open receive/driver on the Pico or a Generic Serial interface.   I have configured a Pi 3 Model B Rev 1.2 device with FPP 6.2 and attempted to use either the Generic Driver or Pixelnet-Open as a Channel Output.  I do not see /dev/ttyS0 in use on FPP.

I am a loss to see how to actually configure FPP to use the serial port.

tjkaminski

I now completed a "mini" tree with 8 strings of 150 pixels arranged as Wrap-2, 16 strings of 75 pixels.  I have measured the performance of the pico generating random pixel data and updating all 3600 channels at 166 Hz as shown in the attached Oscilloscope photo. Also shown is a picture of the pico with the Raspberry Pi 4 connected and the development/debugging processor.  The next step is to integrate it with the FPP running on a Raspberry Pi 3B.  I have applied for a DIY license, but I am still not clear how to use it.

Anyone interested in helping?

You cannot view this attachment. You cannot view this attachment. You cannot view this attachment.



neonexpresso

Just wanted to say, this is a really cool idea.  I'm not much help on any of your questions though 

tjkaminski

What impresses me is the pico sells for $4, with WiFi for $6 and there is tons of support and good documentation on how to use it.  For the Do-it-yourself crowd, this is a very impressive device.

tjkaminski

Current status:  The tree is up and working with the pico as a stand-alone player.  The video below shows the 8X300 LEDs being uodated at abo0ut an 80 Hz rate.  Still no idea how to connect to Pi running FPP. The "twinkle" effect is a random one-of-seven-color effect for off pixels with "fading" of lit LEDs each update cycle.

Twinkle_Random_Tree

MikeKrebs

I saw your other post on the DPIpixel issues and asked questions there but this one is probably more pertinent.

Did you open source this? I saw this https://mcuoneclipse.com/category/boards/raspberry-pi-pico/ and was toying with the idea of ordering some boards but would rather work it out with someone using it more directly for show purposes.

If you put a Pico W in there, you should be able to run a E1.31 controller as it is just standard IP stuff with a little bit of manipulating the incoming data into the correct buffer. I saw wiznet has a wired pico as well so that would be kind of cool to work on. I was also reading something today that some have pushed the USB interface speed into the area where it might be able to talk fast enough to handle the data from the rPi. The higher data rates seem very dependent on having the stars align at the moment though.

Did you take it beyond 8 channels?


tjkaminski

Sorry about the late reply, Mike.  I pretty much boxed uo the project after the holiday season.  I have been continuing work with the Pico and Pico-W and it is quite an impressive device.  

You are welcome to have the code I developed for the device.  It is basically an extension of the WS2812 example utilizing a full 8 channels.  Based on my measurements, you should be able to update strings with 600 tri-color LEDs at close to 40 Hz rates for all 8 channels, 4800 total LEDs.  

I did not exend it past 8 channels because the Pico has 8 I/O co-processors that are excellent at bit serialization.  SO the LED channels are assigned one to each co-processor.  It is likely possible to have the co-processors do more than one channel each, but it would take more manipulation to get bits packed correctly to send to the LED strings.  

The Pico has two independent cores.  The project I did used only one core and the LED strings update was a tight loop that was basically just reading a memory array, and stuffing the 3 bytes for each LED into a FIFO feeding the I/O co-processors.   For WiFi, the second core should be able to connect to the network and imlement the protocol to update the LED values to a share memory object.  What I don't know is what the WiFi update bandwidth would be. 

Old-Nick

Hi tjkaminski
I am a super old newbi here! I am exploring Pico and ws2812b pixels for xmas lights !
In this thread you say you would be happy to release your code as opensource
Can I have it please?

Old-Nick.

Support FPP

+- Recent Topics

FPP connecting to network issue by Santacarl
Today at 04:20:33 PM

Adding additional PSU to R2R F16v5 by k6ccc
Today at 03:46:27 PM

K32 & Soundblaster by Ryeguy
Today at 12:02:18 PM

GE Insane Cane Bars not following submodel in Xlights. by Suikoden
Today at 09:16:20 AM

can't find FPP after a router change by mrgimmeone
Today at 06:20:46 AM

How can I play one random playlist, selected from a playlist of playlists? by jedimasta
Today at 12:41:13 AM

Red status on E131 by TheMinionHouse
December 11, 2024, 06:34:56 PM

Length of pigtail before pixels by Todd
December 11, 2024, 01:51:00 PM

Disabling the 'built-in' e131 server? by sirwesley
December 11, 2024, 09:03:55 AM

picap V1 by darylc
December 10, 2024, 09:44:17 PM

Powered by EzPortal
Powered by SMFPacks Menu Editor Mod