Replies: 7 comments 3 replies
-
NightDriver uses SmartMatrix3 for the low level matrix I/O, and the pins are defined in
MatrixHardware_ESP32_Custom.h
They’re currently defined as follows, but this is a custom board. Just revise with whatever your actual pinout is, and it should work like a charm.
#define R1_PIN GPIO_NUM_35 // Cannot test - rmt assertion
#define G1_PIN GPIO_NUM_34 // Cannot test - rmt assertion
#define B1_PIN GPIO_NUM_32 // GOOD
#define R2_PIN GPIO_NUM_25 // GOOD
#define G2_PIN GPIO_NUM_33 // GOOD on blue board, NO RESPONSE on missing lines board
#define B2_PIN GPIO_NUM_27 // GOOD
#define A_PIN GPIO_NUM_5 // GOOD
#define B_PIN GPIO_NUM_4 // GOOD on blue board, NO RESPONSE on missing lines board
#define C_PIN GPIO_NUM_19 // GOOD
#define D_PIN GPIO_NUM_18 // GOOD
#define E_PIN GPIO_NUM_26 // GOOD
#define LAT_PIN GPIO_NUM_21 // GOOD
#define OE_PIN GPIO_NUM_23 // GOOD
#define CLK_PIN GPIO_NUM_22 // GOOD
Cheers,
Dave
If you have multiple panels, it already supports it, but assumes they are stacked top to bottom. You can swap that around to your heart’s content in ledmatrixgfx.h, but suggest you do so in a #define for your project rather than changing the defaults for everyone:
static const uint8_t kPanelType = SMARTMATRIX_HUB75_32ROW_MOD16SCAN; // use SMARTMATRIX_HUB75_16ROW_MOD8SCAN for common 16x32 panels
static const uint8_t kMatrixOptions = (SMARTMATRIX_OPTIONS_BOTTOM_TO_TOP_STACKING); // see http://docs.pixelmatix.com/SmartMatrix for options
I’ve done it before, but it’s been a while. I’m guessing that if you specify SMARTMATRIX_HUB75_32ROW_MOD16SCAN if then knows the panel is 32x16, so if you define it as 32x32 overall, it knows that it’s two panels… but it’s a little hazy now.
- Dave
… On Jan 22, 2023, at 1:42 PM, DanMan32 ***@***.***> wrote:
I've been trying to follow Dave's YT video where he builds a clock.
Problem is, he didn't specify the prerequisite settings in order to run the patternClock
I cloned the latest nightDriver from Dave's Github and found that PatternClock was already there,
I noticed too in the video that he was using the PlatformIO 'mesmerize'
All well and good, but:
Where is it defined what pin(s) you're using for the matrix? I noticed the board for Mesmerize is esp-wrover-kit, but that section of the platformIO doesn't define the pin(s) that send data to the matrix.
I want to use the TTGo that I have wired to use pin 21, which works great for the spectrum display.
So where does the matrix data pin get defined so that you can customize it?
For that matter, where do you define your matrix in general?
Total size is easy to figure out, that's right in the PlatformIO environment sections.
But how do you define the size and orientation of your panels if more than one?
Or if you split your panels into multiple channels?
I'm going to try adding -DLED_PIN0=21 to mesmerize, much as he did for laserline, even though I found nightdriver had defines set LED_PIN0 specifically set if MSTICK was defines and set.
Need NightDriver for dummys.
—
Reply to this email directly, view it on GitHub <#201>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF4DWTCUUEFB6U5CGQLWTWSTXANCNFSM6AAAAAAUDGQX5U>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
Wow, all those pins? I take it you're not using a matrix that uses standard addressable LEDs? |
Beta Was this translation helpful? Give feedback.
-
Correct. You CAN do matrixes with individual ones, but Mesermizer expects a HUB75 matrix. Spectrum, on the other hand, expects individually addressable. Ideally the code should be able to draw to both, but probably a few missing links for that to work!
… On Jan 22, 2023, at 3:33 PM, DanMan32 ***@***.***> wrote:
Wow, all those pins? I take it you're not using a matrix that uses standard addressable LEDs?
—
Reply to this email directly, view it on GitHub <#201 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF73WBFBAH7MEXI2AP3WTW7THANCNFSM6AAAAAAUDGQX5U>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
I started reviewing the HUB75, I wish I had understood it or easily came across video tutorials for it. However moving to HUB75, not sure I'd find panels that would give me the size I am looking for. Closest thing I could find on Adafruit was 64x32 which if I used 5 panels, would be 2x the LEDs since the rows would be double my original design, but size would be smaller than I want. I'd only get 6ft x 7.5:" But really, all I though for the clock was to use the same addressable matrix used by the spectrum display. After all, the spectrum matrix is 48W x 16H, with the striping rather weird since its going top to bottom, bottom to top. |
Beta Was this translation helpful? Give feedback.
-
Here’s why it won’t work currently: PatternClock uses mgraphics(), which is specific to the HUB75 matrices. I really only uses circle and line calls, however, which I bet are avalable on the GFXBase since it inherits from AdaFruit_GFX.
If I were you, I would try something link the following:
Change
auto g = mgraphics();
to
auto g = graphcis();
It should still build and compile. Try including PatternClock.h and then add PatternClock to your effects table in effects.cpp, and there’s a good chance it’ll “just work”.
Looks to me like the call to mgraphics() isn’t needed because the basic graphics() interface supports Line and Circle already.
- Dave
… On Jan 22, 2023, at 5:01 PM, DanMan32 ***@***.***> wrote:
I started reviewing the HUB75, I wish I had understood it or easily came across video tutorials for it.
I've been working on a rather ambitious project for a rather large matrix 16ftx10in using 16 300 addressable strips.
However moving to HUB75, not sure I'd find panels that would give me the size I am looking for. Closest thing I could find on Adafruit was 64x32 which if I used 5 panels, would be 2x the LEDs since the rows would be double my original design, but size would be smaller than I want. I'd only get 6ft x 7.5:"
But really, all I though for the clock was to use the same addressable matrix used by the spectrum display. After all, the spectrum matrix is 48W x 16H, with the striping rather weird since its going top to bottom, bottom to top.
—
Reply to this email directly, view it on GitHub <#201 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF4NJHVWEHO3WQ6DAXTWTXJ5RANCNFSM6AAAAAAUDGQX5U>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
So I followed my advice (except I just moved the include of patternclock outside ‘if USE_MATRIX’ instead of adding it). Works great, though this individually addressable matrix is pretty low res.
I’m actually pretty impressed that it all works, it’s the first example of a HUB75 effect running on WS2812B. The drawing is completely different but it’s all abstracted in xy() and setPixel, etc. I just never tried it!
- Dave

… On Jan 22, 2023, at 6:58 PM, Dave Plummer ***@***.***> wrote:
Here’s why it won’t work currently: PatternClock uses mgraphics(), which is specific to the HUB75 matrices. I really only uses circle and line calls, however, which I bet are avalable on the GFXBase since it inherits from AdaFruit_GFX.
If I were you, I would try something link the following:
Change
auto g = mgraphics();
to
auto g = graphcis();
It should still build and compile. Try including PatternClock.h and then add PatternClock to your effects table in effects.cpp, and there’s a good chance it’ll “just work”.
Looks to me like the call to mgraphics() isn’t needed because the basic graphics() interface supports Line and Circle already.
- Dave
> On Jan 22, 2023, at 5:01 PM, DanMan32 ***@***.***> wrote:
>
>
> I started reviewing the HUB75, I wish I had understood it or easily came across video tutorials for it.
> I've been working on a rather ambitious project for a rather large matrix 16ftx10in using 16 300 addressable strips.
>
> However moving to HUB75, not sure I'd find panels that would give me the size I am looking for. Closest thing I could find on Adafruit was 64x32 which if I used 5 panels, would be 2x the LEDs since the rows would be double my original design, but size would be smaller than I want. I'd only get 6ft x 7.5:"
>
> But really, all I though for the clock was to use the same addressable matrix used by the spectrum display. After all, the spectrum matrix is 48W x 16H, with the striping rather weird since its going top to bottom, bottom to top.
>
> —
> Reply to this email directly, view it on GitHub <#201 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF4NJHVWEHO3WQ6DAXTWTXJ5RANCNFSM6AAAAAAUDGQX5U>.
> You are receiving this because you commented.
>
|
Beta Was this translation helpful? Give feedback.
-
Just a heads-up: the HUB75 must be driven by DMA memory, of which there’s not a great deal available on the ESP32, so you’re limited to about 64x64 for matrix size.
Here are a couple of demos of NightDriver’s Memserizer config running a HUB75:
https://www.youtube.com/watch?v=MaMEF5zJrJk&t=62s&ab_channel=Dave%27sGarage
Mesmerizer ESP32 Demo 2
youtube.com
https://youtu.be/d167nRxdCJ0
Mesmerizer ESP32 Demo v0.5
youtu.be
… On Mar 3, 2023, at 4:14 PM, Edawen ***@***.***> wrote:
I started reviewing the HUB75, I wish I had understood it or easily came across video tutorials for it. I've been working on a rather ambitious project for a rather large matrix 16ftx10in using 16 300 addressable strips.
However moving to HUB75, not sure I'd find panels that would give me the size I am looking for. Closest thing I could find on Adafruit was 64x32 which if I used 5 panels, would be 2x the LEDs since the rows would be double my original design, but size would be smaller than I want. I'd only get 6ft x 7.5:"
If you you want a large display, but not that many pixels, you could use HUB75 panels with a higher pitch. the P# is the pitch, or distance in Millimeters between LEDs. Adafruit doesn't offer that much variety, Aliexpress has the widest variety, widest pricing and widest delivery dates, but Amazon is starting to have more of the unusual panels, like P10. For instance, one panel is RGB-Full Color (some are single color), P10, 32x16 Pixels (LEDS) 320 * 160mm (or 12.6 by 6.3 inches). There are other pitches if you want more LED per inch and there are square panels (64x64 P4, or 500x500 P3.91, even special P2.5 panels with 45 degree sides to make corners, (or boxes.)).
For fun google "p10 led panel RGB site:amazon.com"
Hope this helps with your sizing issue.
—
Reply to this email directly, view it on GitHub <#201 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF4BVCTCVDKEBMTBKV3W2KCNJANCNFSM6AAAAAAUDGQX5U>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I've been trying to follow Dave's YT video where he builds a clock.
Problem is, he didn't specify the prerequisite settings in order to run the patternClock
I cloned the latest nightDriver from Dave's Github and found that PatternClock was already there,
I noticed too in the video that he was using the PlatformIO 'mesmerize'
All well and good, but:
Where is it defined what pin(s) you're using for the matrix? I noticed the board for Mesmerize is esp-wrover-kit, but that section of the platformIO doesn't define the pin(s) that send data to the matrix.
I want to use the TTGo that I have wired to use pin 21, which works great for the spectrum display.
So where does the matrix data pin get defined so that you can customize it?
For that matter, where do you define your matrix in general?
Total size is easy to figure out, that's right in the PlatformIO environment sections.
But how do you define the size and orientation of your panels if more than one?
Or if you split your panels into multiple channels?
I'm going to try adding -DLED_PIN0=21 to mesmerize, much as he did for laserline, even though I found nightdriver had defines set LED_PIN0 specifically set if MSTICK was defines and set.
Need NightDriver for dummys.
Beta Was this translation helpful? Give feedback.
All reactions