I2S-parallel example: Drive a 64x32 display
-
- Posts: 9759
- Joined: Thu Nov 26, 2015 4:08 am
Re: I2S-parallel example: Drive a 64x32 display
Yes, these displays usually can be daisy-chained using an 14-pin ribbon cable. Needs some software rework; I'm sure you can figure out that bit
-
- Posts: 263
- Joined: Sun Jun 19, 2016 12:00 am
Re: I2S-parallel example: Drive a 64x32 display
I see, yeah I'll figure it out. Sorry for bombarding you with questions. ^_^
-
- Posts: 19
- Joined: Mon Sep 18, 2017 4:48 pm
Re: I2S-parallel example: Drive a 64x32 display
Yes, they daisy chain like one long shift register. Of course, the software needs to change at that point.
-
- Posts: 19
- Joined: Mon Sep 18, 2017 4:48 pm
Re: I2S-parallel example: Drive a 64x32 display
Taking Sprite_tm's work and adding extra colour(s).
Jinx is a ... well it's a little hard to describe. It's a LED performance application that allows you to send fun graphics to LED and other lighting devices. All the processing is done on a PC and then it sends frames to the device.
It can talk a few protocols, of which I've picked TPM.net since this is over IP and the simplest one.
I took Sprite_tm's app and hacked in receiving tpm.net frame reception, resulting in this:
It doesn't look too bad at all, even through this dodgy GIF conversion from iphone video. In real life, the colours are lovely.
Some issues:
- Dropped packets hurt it of course- this is on my home wifi network, so can't imagine why there would be too many dropped UDP packets, but there are. Certainly the esp32 handles it better with fewer packets in a row, but I would be delighted to find that I've done UDP reception wrong and is easily fixed
- Even without the dropped frames, the regulation in making frames regular isn't great, so sometimes it's fine, sometimes it's not, again, I've done no work on making this better
- The frame display mechanism has a few issues - the left most (zero) pixel seems to be wrapped from the right hand side of the display (should be easy to fix) and there are some ghosting issues especially with green (not sure where this is coming from)
Certainly needs some work but shows the capabilities of the chip and a cheap display.
For Jinx:
- Choose File | Open, choose the demo.jnx. Do this first, since the display settings are embedded in here.
- Choose Setup | Matrix Options , enter 64 x 32, and 1 and 1 for pixel step and space
- In Setup | Output Devices, choose add, and enter tpm-net, the IP address of your esp32, channels = 6144 (which is 64x32x3) and Chan/Block of 1024. This determines how many UDP packets per frame are sent, so if you say "1" then you'll get 6144 UDP packets per frame. Seems to max out at packet size of 1500 (actually it lets you put in any value but then just fails to send packets), which is a shame since I'd hoped the wifi max of 1536 would mean one less packet per frame
- Now go to Setup | Output Patch, make sure red, green, blue are 0, 1 2, and hit Fast Patch. Enter 64 x 32, Linewise Top Left, RGB and 0, and OK. All the "pixels" in this window should show green.
- In View menu, turn on Scene list and Chase list.
- Find the Chase list window and press Play.
Finally, from the Setup menu, turn on Start Output.
Jinx should start sending packets to your ESP32 and you'll get pretty pictures. You can even set it up to take live video from your webcam or the actual screen output and shove it on the display.
Code is attached. Warning, ugly, hacked code for the purposes of seeing if I could get this working in an afternoon.
Ian.
Jinx is a ... well it's a little hard to describe. It's a LED performance application that allows you to send fun graphics to LED and other lighting devices. All the processing is done on a PC and then it sends frames to the device.
It can talk a few protocols, of which I've picked TPM.net since this is over IP and the simplest one.
I took Sprite_tm's app and hacked in receiving tpm.net frame reception, resulting in this:
It doesn't look too bad at all, even through this dodgy GIF conversion from iphone video. In real life, the colours are lovely.
Some issues:
- Dropped packets hurt it of course- this is on my home wifi network, so can't imagine why there would be too many dropped UDP packets, but there are. Certainly the esp32 handles it better with fewer packets in a row, but I would be delighted to find that I've done UDP reception wrong and is easily fixed
- Even without the dropped frames, the regulation in making frames regular isn't great, so sometimes it's fine, sometimes it's not, again, I've done no work on making this better
- The frame display mechanism has a few issues - the left most (zero) pixel seems to be wrapped from the right hand side of the display (should be easy to fix) and there are some ghosting issues especially with green (not sure where this is coming from)
Certainly needs some work but shows the capabilities of the chip and a cheap display.
For Jinx:
- Choose File | Open, choose the demo.jnx. Do this first, since the display settings are embedded in here.
- Choose Setup | Matrix Options , enter 64 x 32, and 1 and 1 for pixel step and space
- In Setup | Output Devices, choose add, and enter tpm-net, the IP address of your esp32, channels = 6144 (which is 64x32x3) and Chan/Block of 1024. This determines how many UDP packets per frame are sent, so if you say "1" then you'll get 6144 UDP packets per frame. Seems to max out at packet size of 1500 (actually it lets you put in any value but then just fails to send packets), which is a shame since I'd hoped the wifi max of 1536 would mean one less packet per frame
- Now go to Setup | Output Patch, make sure red, green, blue are 0, 1 2, and hit Fast Patch. Enter 64 x 32, Linewise Top Left, RGB and 0, and OK. All the "pixels" in this window should show green.
- In View menu, turn on Scene list and Chase list.
- Find the Chase list window and press Play.
Finally, from the Setup menu, turn on Start Output.
Jinx should start sending packets to your ESP32 and you'll get pretty pictures. You can even set it up to take live video from your webcam or the actual screen output and shove it on the display.
Code is attached. Warning, ugly, hacked code for the purposes of seeing if I could get this working in an afternoon.
Ian.
- Attachments
-
- led_panel_example_jinx_v2.zip
- (70.73 KiB) Downloaded 1641 times
Re: I2S-parallel example: Drive a 64x32 display
Looks awesome!
How do you wire the ESP32 to one of these displays? I would imagine more than 10 pins have to be used (RGB*3+ABCD+LAT+CLK) but I not sure how.
Any plans to also make an Arduino library?
It would be great if we could use the Pixel Led Art app to send animations via bluetooth.
How do you wire the ESP32 to one of these displays? I would imagine more than 10 pins have to be used (RGB*3+ABCD+LAT+CLK) but I not sure how.
Any plans to also make an Arduino library?
It would be great if we could use the Pixel Led Art app to send animations via bluetooth.
Re: I2S-parallel example: Drive a 64x32 display
@Jeroen ( no hurry )
nice work, my panel was delivery.
now i can test your code.
did you pullup or pulldown any of the pins ( r1, g1, b1, r2, g2, b2, a, b, c, d, clk, lat, oe ) ?
why i ask:
i try the I2S parallel sample on a 64x32 ( P3-(2121)64*32-16S-D1.0 3mm LED Panel.
i used different boards ( nano32, jesp32nano )
nano32 have a led on GPIO16 example ( r2 ).
i think this disturb the line.
i get not a clear pic/animation.
in the bottom lines the led is more green.
a second try with jesp32nano the bottom lines now more ok.
but the cat is in bottom middle not white, it is more blue.
and the rows i think are gone 1-2 rows to the left side.
i must studdy first the shematic of jesp32nano, can be there are some pullups/pulldowns in the line
cause comes with debug modul on topside.
what you mean,
can you say, which pins must have pullup, pulldown, or which does not need/do not use pullup, pulldown?
R1 (02)
G1 (15)
B1 (04)
R2 (16)
G2 (27)
B2 (17)
A (05)
B (18)
C (19)
D (21)
LAT(26)
OE (25)
CLK (22)
i think, it is different which board is using, which board you using jeroen?
my next step is using "empty" wroom32 modul without a led or other.
my connect was: best wishes
rudi
nice work, my panel was delivery.
now i can test your code.
did you pullup or pulldown any of the pins ( r1, g1, b1, r2, g2, b2, a, b, c, d, clk, lat, oe ) ?
why i ask:
i try the I2S parallel sample on a 64x32 ( P3-(2121)64*32-16S-D1.0 3mm LED Panel.
i used different boards ( nano32, jesp32nano )
nano32 have a led on GPIO16 example ( r2 ).
i think this disturb the line.
i get not a clear pic/animation.
in the bottom lines the led is more green.
a second try with jesp32nano the bottom lines now more ok.
but the cat is in bottom middle not white, it is more blue.
and the rows i think are gone 1-2 rows to the left side.
i must studdy first the shematic of jesp32nano, can be there are some pullups/pulldowns in the line
cause comes with debug modul on topside.
what you mean,
can you say, which pins must have pullup, pulldown, or which does not need/do not use pullup, pulldown?
R1 (02)
G1 (15)
B1 (04)
R2 (16)
G2 (27)
B2 (17)
A (05)
B (18)
C (19)
D (21)
LAT(26)
OE (25)
CLK (22)
i think, it is different which board is using, which board you using jeroen?
my next step is using "empty" wroom32 modul without a led or other.
my connect was: best wishes
rudi
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
Re: I2S-parallel example: Drive a 64x32 display
(limit 3 attached files)
append post
it looks like this best wishes
rudi
append post
it looks like this best wishes
rudi
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
Re: I2S-parallel example: Drive a 64x32 display
@jeroen
figured it out.
after identifying your gif,
it had to be DevKitC.
after I remodeled everything
and DevKitC
tata:
your cat is "dancing in the night"
I have not used pullups / pulldowns now.
DevKitC was taken as it was.
Thanks for the example, come at the right time.
if you have a time frame (single frame)
perhabs you can suggest your mind to pullups/pulldown
usually and better to use mind from you is very welcome
what you mean,
can you say, which pins must have pullup, pulldown, or which does not need/do not use pullup, pulldown?
R1 (02)
G1 (15)
B1 (04)
R2 (16)
G2 (27)
B2 (17)
A (05)
B (18)
C (19)
D (21)
LAT(26)
OE (25)
CLK (22)
@wobblyboots
i will try your example, cause DMX and UDP was my way from begin,
so your example is very welcome too. txs!
best wishes
rudi
figured it out.
after identifying your gif,
it had to be DevKitC.
after I remodeled everything
and DevKitC
tata:
your cat is "dancing in the night"
I have not used pullups / pulldowns now.
DevKitC was taken as it was.
Thanks for the example, come at the right time.
if you have a time frame (single frame)
perhabs you can suggest your mind to pullups/pulldown
usually and better to use mind from you is very welcome
what you mean,
can you say, which pins must have pullup, pulldown, or which does not need/do not use pullup, pulldown?
R1 (02)
G1 (15)
B1 (04)
R2 (16)
G2 (27)
B2 (17)
A (05)
B (18)
C (19)
D (21)
LAT(26)
OE (25)
CLK (22)
@wobblyboots
i will try your example, cause DMX and UDP was my way from begin,
so your example is very welcome too. txs!
best wishes
rudi
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
-
- Posts: 9759
- Joined: Thu Nov 26, 2015 4:08 am
Re: I2S-parallel example: Drive a 64x32 display
@Rudi: Sorry, haven't seen this earlier than now. You shouldn't need pullups/downs, as the ESP32 actively drives the pins all of the time. However, keep in mind that you're playing with pretty sensitive high-speed signals here; if stuff happens that delays a signal too much or 'blunts the edges' (by somehow introducing parasitic capacitance on some or all wires) you can get strange effects.
Re: I2S-parallel example: Drive a 64x32 display
@Jeroen
thank you! all works now like a charme to me. many txs for this example, now I2S parallel mode on ESP32 goes more and more clear to me, this I2S mode is a high pulse for data. the esp32 works with this pretty good, more as i have thinked; and btw wifi works parallel without a problem here - this SoC is pure a "big work station/machine" , Jeroen thank you again.
@wobblyboots
see it from my face:
txs for the tip to JINX!, this helped for the start in this.
btw:
i changed from station mode to ap mode, so the esp32 is SoftAP and Server at sime time and i need no extra AP.
(app_main.c)
@BuddyCasino
the audio theme is here very interessted too - audio vu ...
final, i want use 9 panels ( 3x3 ) , price ( 20 USD/p3panel) or if price (25-29 USD/p2.5panel) is good, perhabs 16 ( 4x4 )
at first steps i will try out for 4 panels ( 128x64 )
first i must search right cheap power supply, XT power supply or other i think.
but will look for bigger (64x64) and finer ( p2) RGB offers too.
just in time, i connect a second 64x32 panel and try out to config the code for more as one panel.
best wishes
rudi
thank you! all works now like a charme to me. many txs for this example, now I2S parallel mode on ESP32 goes more and more clear to me, this I2S mode is a high pulse for data. the esp32 works with this pretty good, more as i have thinked; and btw wifi works parallel without a problem here - this SoC is pure a "big work station/machine" , Jeroen thank you again.
@wobblyboots
see it from my face:
txs for the tip to JINX!, this helped for the start in this.
btw:
i changed from station mode to ap mode, so the esp32 is SoftAP and Server at sime time and i need no extra AP.
(app_main.c)
Code: Select all
//~rudi
// can we create a SoftAP too?
// yes - so we need not an extra AP in the network
wifi_init_softap();
// wifi_init_sta();
the audio theme is here very interessted too - audio vu ...
final, i want use 9 panels ( 3x3 ) , price ( 20 USD/p3panel) or if price (25-29 USD/p2.5panel) is good, perhabs 16 ( 4x4 )
at first steps i will try out for 4 panels ( 128x64 )
first i must search right cheap power supply, XT power supply or other i think.
Code: Select all
Panel Area I Power
-----------------------------------------
1 64x32 4A 5Vx4A= 20W
4 128x64 16A 5Vx16A= 80W
9 192x96 36A 5Vx36A= 180W
16 256x128 64A 5Vx64A= 320W
just in time, i connect a second 64x32 panel and try out to config the code for more as one panel.
best wishes
rudi
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
Who is online
Users browsing this forum: No registered users and 14 guests