adafruit/Adafruit_Protomatter

Not compatible with esp32 version 3.0.0

Closed this issue · 8 comments

I recently updated to version 3.0.0 of Espressif's 'esp32' package (after being prompted to by the IDE).

When building Protomatter with this new version, I see the following errors:

In file included from /Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/arch/arch.h:190,
                 from /Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/core.c:33:
/Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/arch/esp32-common.h: In function '_PM_esp32commonTimerInit':
/Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/arch/esp32-common.h:92:19: error: too many arguments to function 'timerBegin'
   92 |     core->timer = timerBegin(_PM_timerNum, 2, true); // 1:2 prescale, count up
      |                   ^~~~~~~~~~
In file included from /Users/CHOCK/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0/cores/esp32/esp32-hal.h:84,
                 from /Users/CHOCK/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0/cores/esp32/Arduino.h:36,
                 from /Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/arch/arch.h:166:
/Users/CHOCK/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0/cores/esp32/esp32-hal-timer.h:35:13: note: declared here
   35 | hw_timer_t *timerBegin(uint32_t frequency);
      |             ^~~~~~~~~~
/Users/CHOCK/Documents/Arduino/libraries/Adafruit_Protomatter/src/arch/esp32-common.h:94:3: error: too many arguments to function 'timerAttachInterrupt'
   94 |   timerAttachInterrupt(timer, &_PM_esp32timerCallback, true);
      |   ^~~~~~~~~~~~~~~~~~~~
/Users/CHOCK/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0/cores/esp32/esp32-hal-timer.h:50:6: note: declared here
   50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
      |      ^~~~~~~~~~~~~~~~~~~~

exit status 1

The workaround is to go into the Boards Manager, find 'esp32', and downgrade to version 2.0.17.

Same issue for me. Could you fix this?

Hi,
An issue came up here
WorldFamousElectronics/PulseSensorPlayground#195
Similar to the one you are posting about.

Does the other thread solve your problem?

Hi, An issue came up here WorldFamousElectronics/PulseSensorPlayground#195 Similar to the one you are posting about.

Does the other thread solve your problem?

@biomurph No but I found a fix. You can download Adafruit_Protomatter-master.zip and install it manually in the Arduino IDE.
The patch is already in the repo but has not been released in a new version.

@lboue
I am getting a runtime error:
E (127) gptimer: gptimer_start(348): timer is not enabled yet
It seems the timer is not turned on? Or not started?
After that serial message, it sends the following:

Refresh FPS = ~205
Refresh FPS = ~204
Refresh FPS = ~205
Refresh FPS = ~204

Which means that it is in the loop. I am not sure about the significance of the FPS number?

I am targeting ESP32-S2 Dev Generic.
The ESP32-S2 is mounted on a board labeled FK-8F1. Link provided for reference. I have managed to reverse engineer the connections from ESP to level shifter to HUB75 pinout.

The Matrix is 32 pix tall and 160 pix wide (5 32x32 panels).
This is what it looks like when I run the ‘simple’ sketch.
It is clearly scanning the rows correctly, because I can see single row lit up on power-down.

First Try

When I roll back the ESP32 board files to v2.0.17, I don’t see the gptimer error, but I get the same patter of lights…

UPDATE:

In my decoding of the pin connections, I must have accidentally crossed some wires.
After dragging an exacto blade tip between all of the ESP32 pins (I know) I am finally getting something!

Second Try

Hi, An issue came up here WorldFamousElectronics/PulseSensorPlayground#195 Similar to the one you are posting about.
Does the other thread solve your problem?

@biomurph No but I found a fix. You can download Adafruit_Protomatter-master.zip and install it manually in the Arduino IDE. The patch is already in the repo but has not been released in a new version.

@biomurph Hello, This fixed my "error: too many arguments to function 'timerBegin' 92 | core->timer = timerBegin(_PM_timerNum, 2, true); // 1:2 prescale, count up".
Arduino IDE 2.3.2
Board: Adafruit Metro ESP32-S2
@lboue Thank you for reporting the issue on Github. #79

@lboue I am getting a runtime error: E (127) gptimer: gptimer_start(348): timer is not enabled yet It seems the timer is not turned on? Or not started? After that serial message, it sends the following:

Are you still seeing this error? I'm running into this as well

I've published 1.7.0 with IDF 5 (in Arduino ESP 3) support.