Up and Running!

Oak Hills Lights officially started on Saturday night, Nov. 28th!

It’s been an uphill battle the last couple of weeks, as I noted in my previous post. The problems have primarily been syncing issues, scheduler issues, and problems with our WiFi SparkleBalls.

Our display is running now through Jan. 3rd. Current hours (subject to change based on traffic and impact on neighbors) is 6-9pm Sun.-Thur., 6-10pm Fri.-Sat. It’s a repeating playlist that lasts about an hour.

Syncing Issues

The real problem is the BeagleBone SBCs that run Kulp controllers appear to poor audio timing, making the audio run slower than on other controllers, such as Raspberry Pi. If you are ONLY running Kulp controllers, or only a single controller that doesn’t require syncing- then it all works, but if you are mixing controllers and using FPP (Falcon Player)- it gets bad.

UPDATE (January 2021):
While I found some references online to BeagleBone audio timing problems, it is also possible this was just the result of issues with FPP (there were several new releases and a lot of reports of syncing issues at the time). It may just as likely be a problem with the Raspberry Pi’s audio/video playback.

There were also ongoing WIFI issues affecting everything. I believe theses are more the result of interference in my area (there are a LOT of APs around here thanks to our cable company). I’ve had issues with my drone too, which also uses WIFI frequencies to communicate.

In any case- these issues were resolved by the new configuration I outlined here…

I started out using the Kulp K16A-B as a “Master”, with my projector virtual matrix/video system as a “Remote”. This just doesn’t work well. The projector was quickly up to 1-2 seconds faster than the lights and main audio, and would have to keep jumping back.

I originally thought this was a WiFi issue- so I wired everything together. It wasn’t, but at least I’ve got the extra network cabling done for next year…

I partially resolved this by setting up a new “Master” Raspberry Pi show-runner controller that does nothing but scheduling and syncing playback to the Kulp and projector’s Raspberry Pi in “Remote” mode. This helped a lot, but audio was still consistently getting out-of-sync. It seems like the Beagle Bone’s audio playback issues are just a bit too much to overcome.

I have also been having problems with audio sync on the controller itself. The lights would actually end up as much as 2 seconds ahead of the audio, even on the same controller! The audio would then skip ahead, and things would stay in sync again for maybe 10-15 seconds before drifting off again. I know the Daniel Kulp and others working on FPP are trying to fix this problem, but as of now- it’s a mess. I was using the FM transmitter add-on for the Kulp board too, which meant my audio was never really synced well to the lights, and the corrections resulted in frequent audio glitches. 🙁

I ended up pulling the FM transmitter from the Kulp board and setting up another stand-alone transmitter on the Master. I’m hoping the audio might stay in sync with the lights now. I won’t find out for sure until the show runs tonight. I’m kinda bummed because the FM option on the Kulp does RDS- so I could send greetings and song information to most modern car stereo displays. The old transmitter I had to set up again doesn’t do this. The quality isn’t as good either, so I may need to look into new options for FM.

The Kulp FM transmitter is actually the same as this: https://www.adafruit.com/product/1958

Since I was very happy with its performance- I might try to hook it up to a NodeMCU or RPi so I can take advantage of RDS again.

Scheduler Problems

The first two nights I had to manually start the show playlist. I run “static” light and inflatable “displays” before and after the main show. Even though the show is at the top of the playlist- it wasn’t overriding the lower “static” displays like it is supposed to. I had all of the playlists set for “Graceful Stop”, so they should exit after the current sequence, but they don’t. They don’t even exit at the end of the loop. Basically the whole scheduler hierarchy doesn’t work with any sort of graceful stop option. I did find that it does work if you set the lower playlists to “Hard Stop”. This has been filed as a bug in FPP.

WiFi Sparkleballs

My whole show was originally on WiFi, but it broke down as I added more elements to it. Some have successfully run large shows on WiFi, but I just keep striking out. I’ve followed all of the best practices outlines by Shelby Merrick and others, but it just doesn’t work. It’s possible there is just too much interference in my area, although I have the show network set up on the least-congested channel.

The last hold-out was the SparkleBalls. There are seven of them hung along the front of the house, and they play important roles in several of our sequences. Well- they just don’t work consistently. They will work great for maybe half of a sequence, and then just stop, or they will just become hopelessly out of sync with the rest of the show. I’m running the latest v.11 build of WLED and they are now on DDP (instead of e1.31), but they still can’t keep up.

I’m still running my power relays over WiFi using e1.31 over Multicast. They work fine, but just receive infrequent on/off data, and not fast-moving sequence data.

WLED has a lot of overhead. ESPixelStick may work better, and supports ESP32 now. I may try to build some new node controllers running ESPixelStick firmware for key SparkleBalls and see if it makes a difference. Unfortunately there isn’t any way for me to flash different firmware OTA, so I will need to build new ones or dismantle the existing ones to get it loaded.

Otherwise, I’m going to have to wire the SparkleBalls to the controller. This will be a pain because they aren’t wired to be daisy-chained (and I’m not pulling them apart to do it), so they will take up seven channels, with seven cables. That’s a lot of extra Cat. 5 cable!

Still, it’s working!

Despite these issues, the show actually looks and sounds great! It’s just a bit off sometimes, which may bother me a lot more than those who have stopped by to watch it. Right now we are just averaging a couple of cars at a time, but I’m hoping word will get around and we will get some more viewers. Hearing little kids singing the songs and people clapping when a sequence is over really makes our day!

Here are a couple of pictures. I’m planning to set up a YouTube channel soon to post a few sequences. A couple of them are part of this year’s xLights Around the World Project.