I've started exploring Falcon Player (FPP) for my LED string controller. I wish to document here some of the trouble I had getting things going as it took a lot of effort to figure it out - maybe others will benefit from my experience.
I had already written a Python program using the neopixel library to run my light string (details here). The test LED string is 2 Alitove WS2811 50 bulb strings connected in line. The control signal is driven directly from the GPIO 18 (pin 12) on the rPi. My program was able to accurately control the test string, so I know the hardware works.
Now I did a brain-transplant, installing a new micro-sd card that had been configured with FPP. I was not able to get anything meaningful on the LEDs.
I did eventually find the problem, but let me describe the symptoms
and what expectations you should have so as to help people find this
page. I did:
could not initialize output type
RPIWS281X. Check your logs.
. I eventually figured out how
to check logs, but did not find anything that seemed to be
related.
Input/Output Setup->Channel Outputs
Pixel Strings
at top leftEnable String Cape
Pin 12 - GPIO18-00", 1, 50, 3
" and
default the rest. Note that there is no magic in this text field,
it's just an arbitrary name.Pin 12 -
GPIO18-01", 51, 50, 3
, etc.Save
Restart FPPD
Status/Control->Display Testing
Start Channel
and End
Channel
are 1
and 100
Chase Pattern R-G-B
Enable Test Mode
When I did this, just the first 3-4 lights came on. random color, and did not change again.
Sequence
page doesn't seem to do anything at
this point.) I finally found the answer
here: PiCap
and rPI-28 cannot initialize rpiws2801X.Quite simply, my rPi 4B was too new - it was purchased in Jan-2022. My installed FPP was v5.5 (circa Jan-2022), and it didn't know about this rPi board**.
To fix:
Help->About
on top rightUpgrade FPP
Now since there's an offered option to upgrade the OS, I'll do that too. Bear in mind I'm operating "headless". I took that option, waited it out. After a while it showed that it was done and said it would restart. I tried going back into the browser a few times, no go. I came back about half an hour later, still no good. I powered down, gave it a minute to reboot, still no go. I went and dug around for a spare monitor and cable, plugged them in, and did a powerdown reboot. This time it came up ok. Found it - after the OS upgrade, you must have a screen long enough to:
Status/Control->FPP Settings
Audio/Video
for Video Output Device
**Ok, now here's my unsoliceted rant. If you look through my previous
attempts at this project, I went through this same problem, in a
slightly different form, about a year ago in my DIY version. The
Canakit rPi 3B+ I had, did not exist in the neopixel configuration
file. If you look at the source code, it's a humungous "case
statement" that calls out the capabilities of each specific rPi model
and ancillary chipset. That's fine. But there's no reasonable
default! I understand that it's reasonable to return an error so
as to ensure that the programmer can notify the user that the full
capabilities may not be accessible. However, it is not reasonable to
simply return no error, and no legit data. This means that the
innocent user gets stuck like I was - a useful error message should
have been delivered. The way it is now, one must perpetually chase an
ever-increasing list of specific hardware. Assume the basic
capabilities, dammit! *done with rant*.