Adam Honse

@CalcProgrammer1
564 Followers
168 Following
1.4K Posts
Software Engineer, Linux Enthusiast, @OpenRGB Developer, and Gamer
YouTubehttps://www.youtube.com/CalcProgrammer1
LocationGardner, Kansas, USA
GitLabhttps://gitlab.com/CalcProgrammer1
Pronounshe/him

I made a video discussing and demonstrating my RP2040 ARGB splitter and showing off some upcoming #OpenRGB features.

https://www.youtube.com/watch?v=esm0mUjiIu4

Raspberry Pi Pico RP2040 ARGB Smart Splitter, OpenRGB Status Update

YouTube
I designed a PCB! I ordered some #RP2040 Zero (Waveshare clones) because I didn't feel like soldering a bunch of tiny SMD components when a tiny module with them already soldered could be had for under $3. Just needed to route everything out to connectors to make a functional ARGB hub, which could also act as an ARGB controller from the RP2040-Zero's USB port (though it is meant to be powered from the incoming ARGB connector).

The code is now available on GitLab here:

https://gitlab.com/CalcProgrammer1/RP2040-ARGB-Splitter

Adam Honse / RP2040 ARGB Splitter · GitLab

Raspberry Pi RP2040 ARGB (WS2812) Smart Splitter

GitLab
Yesssss! All it needed was the idle reset and to fix an off by one error on the bit counter! Successfully splitting a 30 LED WS2812 stream into two 15 LED streams (actually the controller is sending 255 LEDs but #OpenRGB is only driving 30). Now to rig up a third output to make sure subsequent switches still work.
Made some more progress for the night. I split the output muxing and clock counting into two separate state machines so they can use their X and Y regs as current and next value, meaning when the PIO interrupts the CPU it doesn't need to respond instantaneously. I got it to where it's switching channels back and forth, and I could feed in different clock counts for each segment in the ISR. Next step is to detect idle time and reset state machines.
ARGB splitters suck. They just duplicate the same signal to all outputs and ruin the addressable in ARGB. I'm attempting to use the #RP2040 PIO to create a smart ARGB splitter by counting the bits and outputting the signal to multiple pins. I attempted this years ago on an ATTiny, but it was too slow. PIO is fast enough to pass through the WS2812 signal unharmed as well as able to count the bits to know when to switch outputs.?
@GrapheneOS After a lot of trial and error, I'm now on track to get a successful OpenRGB compile directly on Termux. Had to set some env vars for pkg-config to work. The Linux VM is still a bit too rough around the edges to do serious work in (limited RAM, missing keycodes, fixed resolution, no VPN) but Termux runs Plasma well, though in X11 and system paths are a mess due to being in the Android environment not a dedicated chroot or VM.
@GrapheneOS Big oof. The Linux VM does not seem to have access to VPNs running on the Android side and I can't get NetworkManager managed OpenVPN connections to work inside of it. So much for being able to remote into my desktop from away. This VM setup is so close to perfect but also so far away in the weirdest ways.
@GrapheneOS It does, however, handle waypipe fairly well, so it is good for running qtcreator on my desktop while away from home. With a decent connection this will be a very usable environment for waypipe.
@GrapheneOS Also 4GB allocated RAM absolutely sucks. I wish this VM had a settings page to configure this stuff. 720p and 4GB RAM on a phone with a huge screen and 12GB is just sadness. My Qt Creator build just got killed due to OOM.