-
Smol Version with 42 LEDs
05/28/2026 at 18:39 • 0 comments![]()
I have a CH32V003 version.with 42 LEDs now and could not get Arduino to work with it before. I now looked into it again and am very close to uploading to the SAO from Arduino.First I had to make the compiling for the Adafruit_Neopixel library work. There's an issue with the hardware flag. You have to change the library slightly to work with the arduino core.
Arduino Core: https://github.com/openwch/arduino_core_ch32
Fix: https://forum.arduino.cc/t/ch32v003p4-sleep-and-wakeup/1290315/18
Change anything in .c and .h file from defined(ARDUINO_ARCH_CH32) to this: defined(ARDUINO_ARCH_CH32) || defined(CH32V00x)Then I had to change some doubles to floats variables, hopefully all the libs still work. Also added a const to the fixed variables to move them to Program Flash.
The Arduino compiler is missing a flag for the CH32V003 to run with the internal 48MHz oscillator - something I later noticed by testing the hackaday CH32V003 supercon addon with a simple 1sec blink sketch. Reading this issue I thought it was fixed, but the blink don't lie. So following the issue I added the following flag to the compiler steps. This will basically break compiling for every other CH32 chip though, so be aware.https://github.com/openwch/arduino_core_ch32/issues/27
# the tag: -DSYSCLK_FREQ_48MHZ_HSI=48000000 compiler.S.flags= -DSYSCLK_FREQ_48MHZ_HSI=48000000 ... compiler.c.flags= -DSYSCLK_FREQ_48MHZ_HSI=48000000 ... compiler.cpp.flags= -DSYSCLK_FREQ_48MHZ_HSI=48000000 ...Uploading with the linux computer works, but with my mac I run into a libusb problem, that complains about the installed libusb architecture of my computer being wrong. After a few "chatGPT tells me to install new homebrew versions with rosetta" episodes I just gave up. You can also just upload the binary file you can export from arduino onto the CH32V003 by using minichlink.
./minichlink -w whateverfile.ino.bin flash
Side note: I had to again update the LED arrangement array
const uint8_t circular[4][12] = { { 0, 1, 2, 3, 4, 5, 255, 255, 255, 255, 255, 255}, { 8, 9, 13, 14, 18, 19, 29, 24, 34, 35, 39, 40 }, { 7, 10, 12, 15, 23, 20, 28, 25, 33, 30, 38, 41 }, { 6, 11, 17, 16, 22, 21, 27, 26, 32, 31, 37, 36 } }; -
revived for congress 38C3
12/24/2024 at 19:53 • 0 commentsWe needed some decorations for congress and I remembered that I have these PCBs flying around somewhere. Too bad I couldn't find all 50 PCBs, so I came up with making some with LED strings as well - with folding the strip carefully, you just have to solder the cable on.
![]()
davedarko
