Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ESP32 #58

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

swdmnd
Copy link

@swdmnd swdmnd commented Jun 21, 2020

  • 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