Writing custom firmware

Hello all!

I have been gifted one of your really nice version 3 controllers. I really like the design and layout! I was hoping to be able to flash my own code to the unit that I wrote for the esp32 a few years ago in fastled. I was curious before hacking around if the boot-loader was locked or if I could flash from the USB or if I would need to use a serial programmer or if that would even work which i’m not sure why it would not.

Thanks in advance!

You can’t flash from the USB. Ben sells a (very inexpensive) programmer board that plugs in, same as the sensor board, and that works. If you wanted to wire your own, it’s pretty standard.

That said, why would you want to put other firmware on the board, when you could just use a normal esp32? Cheaper, and more of the pins are exposed. See the schematic on the GitHub.

I could understand if you were discussing doing this to the Pico, cause I haven’t found a board as tiny as that yet (I’ve bought others, looking hard, and nobody’s quite there).

My buddy bought this chip without knowing much. Very cool chip but i cant get the effects quite the way I want using the software built in. I’ve been using fastled for like 8+ years and have a huge code library built up.

I’m guessing it’s a FTDI serial programmer.

So guess my last question is it programable via Arduino-IDE ? or would I need to use the ESP-IDF?
Also do you know the data out pin #? I’m about to look in the schematic to trace it.

@meowcat ,
The PB doesn’t have USB serial built in - the USB on board is just power. This board can be used (CH340 based):

You can use any “esp programer” or even a 3.3v USB serial adapter with a few buttons (hold GP0 low while resetting it).

1 Like

Do you happen to know which pin is active for data for the arduino IDE?
Looking at the board is going to require me jumping on my windows machine as I don’t have any PCB stuff installed on this computer. I won’t have access to it till I get back to my office.

Thank again my Wizard friend!

Bought the last one in stock. I’ve got a ton of programmers but I wanted to help the maker as I really like the products he made. The pico is pretty cool. I rolled out some boards using the 328 and direct LED connect like this about 7-8 years ago. Wish someone else was making them then too much work for me to keep up with.

Thanks again!

1 Like

I was able to open the .sch and .pcb schematics in the free version of Eagle for Mac. There’s also the pdf schematic which I’ve used in the past.

On that PDF, I’ve always read it to assume that the serial programmer works by sending data via expansion port pin 4, which is labeled “RX”, and that’s shown as connected to RXD0, pin 34 on the ESP-32.

1 Like

Care to discuss this more? I’d be the first to admit some things are harder than others but I’m pretty convinced almost anything you can do in other tools, you can do in PB.

my fastled martix code just won’t port over correctly. I spent a few hours on it but just did not get it the way I wanted it. So defaulting to my known good code is just quicker for me currently. It just the WYCIWYG editor is not my preferred method.

The software is super ahead of others and I do really like it. I was able to get it todo some cool stuff and for most would be alot easier to get up and running.

i’m also flashing 10 units and they all need to be same I did not find a easy to make them all the same without doing tons of leg work.

Thank you!
I forgot all about eagle working on mac. This should save me some time!!!

  1. Your fast led matrix code is likely integer math based. PB is not, the matrix map is often (but not always) based on 0…1. yes, some of us have written array matrix type code, probably similar to your code. BUT… I’m convinced that the PB answer is often better.

  2. Wait, I’m confused, you now want to mirror this code onto 10 units? If you are seriously considering that scale, I’d say again, use a more generic ESP32 solution. I like the Quindor DigUno as a fleshed fused and complete solution, but a quick and cheap esp32 board can do it too. That said if you were talking standard PB code: the FireStorm tool (and the ports thereof like https://github.com/zranger1/pixelblaze-client
    for example)
    One of their functions is to push code to existing PBs. So it’ll do syncing as desired.

Anyway, it’s clear you have enough skills in FastLED to do it, so good luck on your project.

Oh trust me I know the scaling is all wrong. I normally roll my own boards but someone in the company decided they wanted to try a new approach by using some new hardware as they don’t understand hardware design or coding so this was as close as “they” could find to clone my setup. I left them with code and they again though they would be able to just make it work but unfortunately it’s not a simple port over as they thought. I had no knowledge of this product beforehand. It’s really nice I wish I had the pico a few years ago it would have saved me a ton of time. But anyways thanks for the info. I did check out that GitHub and was thinking of forking off a version and adding in my code.

Thanks again