-
Notifications
You must be signed in to change notification settings - Fork 174
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
Chipset ICN2037 / Driver 5958 #117
Comments
When I unplugg A, B and C pins, and I touch them with my fingers, the test_pattern appears sometimes. Strange... |
Here is a video of unplug A pin : https://photos.app.goo.gl/4xqDg5gXukx6tXMZA |
I try to connect A, B, C to GND and to VCC, no way... The only way to get the test pattern is touching the wire with my fingers.. |
Could you help me to understand datasheet of ICN2037 : http://en.chiponeic.com/content/details36_245.html |
The datasheet of 74HC245 specify that it has 3 states output (High Impedance) . I modify the code like that :
With this code I can display Test_pattern, but nothing else... |
I think it is a problem of voltage level. I will order 3,3->5v level shifter. |
No difference with the level shifter. |
If it works if you touch the wire it sounds like a grounding issue. Make sure that esp32 and panel ground are connected property. |
Thanks you, I was my first idea, but no way. I grounded, all unused pins and ESP32 to power supply ground, no way ! The only pins that I don't ground are Hub75 outputs... I will try ! |
it does not work |
I think the issue is about the mux. Could you explain me in which order the chips are linked : ICN2037 , 74HC245, RT5957. Thank you. |
Sorry ... very busy atm .... |
Chip ICN2037 is a 16 bits output register, your library use 8 bits , that's right ? |
Seems to be related to issue 119 and the ICN 2037 chip although these should be fully compatible according to data sheets and don't require the triple clocking like the fm6126 and icn2038s. I have trying to work through the code and see where it fails. If I look at the comments by Brian in his article the issue relates to pin E required even though 16 scan, but I have set that and still not working. Can happily populate the even numbered rows 0,2,4,6 but not the odd 1,3,5. |
Thank you, I set 1/8 scan , because with 1/16 a white pix because 3 pix red, blue, screen. I connect ABC pins, E si grouded and D is usefull... |
hello, here is the result of : @texynz : as you say : Can happily populate the even numbered rows 0,2,4,6 but not the odd 1,3,5. |
Hi ..maybe this is related to #119 ? You could try adding some delay... |
thanks, i read it. I try adding 1/2 µs, before/after, A and C mux, no way |
Instead of using the fillscreen function can you try just populating the rows manually in a for loop. As it is a timing issue, the fillscreen maybe adding additional timing. |
@texynz thank you, I try :
strange result for a vertical line populating : https://photos.app.goo.gl/7nxpjen948Jk1UgK8 |
You can try the latest master. I added an option to control the delay in every stage of the multiplexing. Try adding display.setMuxDelay(0,1,0,0,0); after display.begin() . |
Thank you for your work. I try with : |
I try to modify code of mux and latch, no way ! Any idea to modify the code of scan pattern ? thanks |
Ok...try to re-assign the B Wire to a differen pin |
thank you for your help, same issue with pins 21, 22 or 23 |
I think the issue don't provide from ICN2037 chip, but from RT5957 like in this post: https://community.pixelmatix.com/t/led-module-p2-128-64-1-32-driver/414/5 |
Great work @xsrf ... Thanks for looking into this |
I check my wiring, It is good.
I'll try your sequential wiring this afternoon |
I don't think ESP32 or ESP8266 would make much of a difference.
|
I try with sequetial wiring, I is not better : https://photos.app.goo.gl/5NnexyGFxLynS23W6 |
Interesting... I don't get why the mux data ends up in the pixels. |
okay, is this parallel or sequential wiring? Are you using fast update or not? |
Colored pixels can't be explained by this. This means that pixeldata actually got corrupted, usually because of noise on the data/clock lines. This is also a typical issue if your supply voltage is too high. But I guess you haven't changed anything on your power supply? If you can adjust your 5V supply, try to go lower and make sure your ESP has at least 3.3V. Just to make sure... I need some time to think about what might cause pictures like this, especially the one with the red ghosting.... :) |
Okay, I don't have adjustable power suply |
Hmm.. I've updated the code: https://github.com/xsrf/PxMatrix/tree/4fae26a12178a86949a12da6831dc248ab83eddf You can now select from three mux patterns,
I'll do more investigations on timing. One critical factor actually is the time between latching row/pixel data and enabling outputs. This should be as high as possible... The sequential wiring with three panels actually introduces a propagation delay for the row mux selection that may cause the row to be selected after LEDs were enabled. |
So, just to be clear here... Parallel/sequential wiring gives you exactly the same result. fast_update on creates ghosting/bleeding across all 8 muxed rows which is most visible on red channel. fast_update off creates actually the intended result but with random twinkling colorful pixels? Can you provide the complete code for the ChroPro example? I'll grad an ESP32 and do some timing measurements there... Also, despite the fact that it works most of the time, I wouldn't recommend a 5.2V power supply. Everything above 5V is way out of spec. The panel I have already starts twinkling at ~5.05V. |
not exactly, but near
yes
yes
There are 3 chips 74HC245 on every input pin, this chip play as level converter, no ?
my code : //#define double_buffer false // = false pourse libraire < 1.5, ligne commentée pour libaririe >= 1.5 #ifdef ESP32 // Pins for LED MATRIX uint16_t NOIR = display.color565(0, 0, 0); #ifdef ESP32 void setup() { #ifdef ESP32 display.setTextColor(BLANC, NOIR); } void loop() // Afficher sur fond noir (SUPER sur ESP32 même avec rafraichissement 0,1s / clignote sur ESP8266) |
No, they are buffers - or in this case bidirectional bus transceivers. They make sure the input signal is strong enough for the following circuit and also all following panels. This is also why all digital outputs of the first panel are actually 5V. However: The buffer is not a level converter. If you look in the datasheet of the 74HC245 you'll see that V_IH is 0.7 * V_cc. Examples in the datasheet list 3.15V for 4.5V Vcc and 4.2V for 6V Vcc. Sure, at 5V Vcc they convert 4.5V logic levels to 5V levels... A 3.3V to 5V logic level converter would have a V_IH of about 2.0V... Thx for the code |
Okay, so here is the timing for the code (attached below) with @pyzimmer Can you confirm the first one still has issues, while the second one does not?
The only critical timing I see is the time between latching pixel data and enabling the output, which in both cases is ~125ns, but that has never changed. Code
|
Wahoo, pretty timing graphs ! I test your last version of library :
But with 2600µs I loses a lot of brightness... |
good to know I haven't messed that up ;)
Yeah almost...
So worse than yesterday? 🤔 Did you actually change the wiring between SE and PA settings or did you leave it the same because yesterday I said it wouldn't make a difference regarding code? While this is still the case, electrically it makes small timing differences.
I'll look into that, thx.
Yeah. Keep in mind that with your three panels, 8 mux rows and without fast_update
Interesting... so no random noise... Can you try again, but this time with adapted code
|
I'm really not sure what happens here... Since the LEDs only glow red, which I also noticed on the brighter image above, something must run into a current limit causing the voltage applied to the LEDs to break down. Only the red one light up because they have the lowest forward voltage. |
I've just read through the code at #179 which suggests that the Latch I assumed was connected to Pin B may not exist. This would explain why parallel wiring would not work at all, because in PA wiring the last bytes of the picture buffer would end up in the register for the row mux. Sequential however still should work without a separate latch if you are not using fast_update. In fast_update data is pushed to the SPI bus while the LEDs are lit. This would cause all rows to be selected randomly (depending on the picture buffer) for most of the time the LEDs are lit but finally settling in the right row selection. This actually would explain your picture from April 20. |
Okay, I've just read the datasheet of the RT5957 again. As you said, B is connected to BK and the Datasheet says: BK: Current output enable signal terminal |
Also, this means the code could me optimized... Instead of shifting out 16 bits for a 1/16 display every time, shifting out one bit (1 if row is 0, 0 otherwise) would be enough. This should work as long as the rows are selected incrementally - which is the case for the regular display() call. Only the test patterns may have to be adapted. |
Good job ! Sometimes we have to take a break and take a step back... |
I've pushed an update to https://github.com/xsrf/PxMatrix/tree/shift-mux which contains the optimization for SHIFTREG_ABC. Not optimized code (allows random row access): Optimized code (only works with incremental row access, which is fine in normal operation): You don't have to do anything for using the optimized code. Can you try SHIFTREG_ABC again if it still works (faster)? |
Very good job, It works fine. |
Hi, just bought panel with same IC and a driverd board from electrodragon for my ESP32. Nothing is displayed on my panel :( |
Hiya folks - I have the same Chipset ICN2037B. I know this issue is marked as closed but looks like the changes made in #192 are no longer applicable? Is there a way to get these to work? |
Hello, I bought this panel with SMD 2525 : https://fr.aliexpress.com/item/32836331716.html?spm=a2g0s.9042311.0.0.232f6c37cu1lnO
I am able to diplay something (1 line on 2) but unable to diplay test_pattern !
The seller said me to use 5958 decoding, i think it is that : http://www.ti.com/lit/ds/symlink/tlc5958.pdf
I send you picture the chips :
The text was updated successfully, but these errors were encountered: