Skip to content

Conversation

@ariefatkhur
Copy link

  • Timer0 interrupts is used and configured with assumption the frequency of ESP32 is 80 MHz
  • PWM channel 0 is used to control noe pin.

- Timer0 interrupts is used and configured with assumption the frequency of ESP32 is 80 MHz
- PWM channel 0 is used to control noe pin.
#define ESP32_TIMER0 0
// run counter to increment every 1 microseconds
#define ESP32_TIMER0_PRESCALER 80
// call scan_running_dmds every 250 microseconds on ESP32
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

250 ms is too fast. changing back to 1000

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interrupts need IRAM_ATTR functions, so this is definitely not gonna work. One solution is to use RTOS task scheduling, but I don't have the resources to test it now since my project is already done. I was using beginNoTimer() and call scanDisplay() in loop function.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, I have found your ESP32 port and I am attempting to use it to drive a DMD with my ESP32, but I can not find the complete wiring. Looking in the code, I found these: pin_noe == 14 && pin_a == 27 && pin_b == 26 && pin_sck == 25
But the panel also has CLK and R(1) pins. Where do those go?
Thank you very much in advance!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure CLK and R(1) are SPI pins. R(1) is the data pin if you want to use red led and B(1) is for blue led (if any).

Copy link

@adricl adricl Apr 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found the 250ms is good for one panel if you want to use more than one panel you need to change this to 500ms or higher depending on how many screens. If you have 250ms as the value it will freeze when you add more than one panel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants