Hi all! I started playing around with Maple Mini clones because they are really cheap ($4 a pop) and have more flash and RAM compared to 8-bit Arduinos. There is some preliminary FastLED support for STM32 that I found digging through the issue tracker.
Problem: I tend to run FastLED and the IRRemote lib at the same time. This can cause interrupt conflicts when driving WS2812. I know that the STM32F103 that Maple Mini uses has several DMA channels. I’m wondering if the same Parallel Output approach that FastLED uses for Teensy boards could be applicable to STM32F103 by taking advantage of the DMA channels.
Is this possible? If so, I’d be willing to hire someone to make it happen. Thanks for your thoughts!
@Sam_Guyer Thank you, that’s interesting how with faster CPUs the IR polling kind of works. My solution right now is to have a secondary 328p that does the IR polling and it handshakes with the main CPU when it receives a code. I could free up cost and board space if I can do it all on one chip!
@Jordan_Applewhite Wow, that sounds like a cool solution – was it tough to get it all working?
If you really want to go for the ultimate solution, you could try using the ESP32 remote control peripheral to do both the IR input/output and drive the WS2812s. It should be doable! The ESP32 also has two cores, so it can effectively do what you’re doing now but in one board.
@Sam_Guyer I just ordered an ESP32 last night at your suggestion. Thanks!
The handshaking bit wasn’t hard at all. It just requires two pins between the IR module and LED module. One pin gets pulled down to indicate an IR code is ready, then it delays a preset amount of time for any LED updates to finish (I think I used 50ms), then SoftwareSerial is used on the other pin to transmit the code.