Underglow in ZMK on Seeedstudio Xiao BLE not working
Hey all.
I am currently prototyping a keyboard with the Seeedstudio Xiao BLE (nrf52840). I configured the shield config correctly & got it working. However, my RGB won’t turn on (followed the ZMK documentation on RGB underglow)
Does anybody have a pointer to a project that got RGB working with Seeedstudio Xiao BLE & RGB?
I have successfully driven a chain of RGBs from a Xiao controller, although not running ZMK. One thing you could do is write a little Arduino program to just drive the RGBs, and that will let you isolate whether it's the hardware or ZMK.
One easy thing to check on the hardware side: Are you running the power to the RGBs at 5v or 3.3V? The logic voltage of the Xiao is 3.3v, so you either need to power the RGBs from the 3.3v pin (out of spec but it will work fine, probably) or if you are powering the RGBs from 5v then you need to shift the voltage level of the data pin up from 3.3v to something closer to 5v. The RGBs compare the voltage on the data line to their power voltage to decide what's a 1 vs 0 on the data line. 3.3v is low enough below 5v that the RGBs will interpret the digital signal as entirely 0s
I am using this trick to convert the logic input to 5V, so that should work. Super hacky, but as far as I checked, every piece of this hack is entirely in spec for the components used.
I'll check with a simple Arduino program first I guess
UPDATE: Arduino program works, so it is not a hardware issue (lucky me)
Are you feeding the leds with 5v or 3.3v? I've had issues with 5v and no shift registers as the led won't pickup the high state of the leddata without a shift register.
https://github.com/WainingForests/zmk-config-xiao/tree/Xiao_rgb
I have successfully done LEDS just fine. Per key is a misnomer though. ZMK doesn't allow individually addressing each key. Instead, you'll be using underglow to apply effects to the whole "chain."
See my other response for how I am driving the LEDs :) (Works fine with an Arduino program so that is not the issue here)
It seems to me that I get this line wrong: NRF_PSEL(SPIM_MOSI, 0, 16). I would read this as "Set pin P0.16 as SPI MOSI", however I cannot find a pin P0.16 exposed on the Xiao BLE https://wiki.seeedstudio.com/XIAO_BLE/
Can you give me a pointer where I am wrong?
(my RGB pin is P1.11 / D6, so I would've assumed that I should change this to NRF_PSEL(SPIM_MOSI, 1, 11), I know that the use of low frequency pins is discouraged by ZMK docs)