derkalle4 / python3-idotmatrix-client

reverse engineered python3 client to control all your 16x16 or 32x32 pixel displays (experimental)
GNU General Public License v3.0
188 stars 40 forks source link

512 bytes limit for png and gif on new 32x32 panel from Ali Express #50

Open TomCat666 opened 2 weeks ago

TomCat666 commented 2 weeks ago

Hello

I have a problem with a new 32x32 panel I bought from AliExpress:

https://www.aliexpress.com/item/1005006130862334.html?spm=a2g0o.order_list.order_list_main.29.6c191802RhNszc

For some reason only png and gif files that are smaller than 512 bytes work on it. If I send bigger png's then I get black screen, if I send bigger gif animations then it goes directly to the default animations on the device. Don't know what to do but as soon as the file is bigger than 512 bytes I can't send anything. Clocks, countdowns, score panel, etc. all work fine.

Note: All animations from the iDotMatrix app and everything there works fine, so there is a problem somewhere else when sending data, I think.

Also I can import the same gif animations from photos to the iDotMatrix APP and it will display them perfectly, so definetly not a size problem on the device. But it is such a shitty APP ... I would love to be able to just use my rPI and send the gif's to the device in random order with a simple bash script.

TomCat666 commented 2 weeks ago

Note: tried chaning the png_chunks = self._splitIntoChunks(png_data, 4096) 4096 to 512 or 256 and I got the same result... no difference

TomCat666 commented 1 week ago

I did a build on Windows, just to see if there is something wrong with my rPi3 build and I get the same problem - as soon as the PNG/GIF is bigger than 512 bytes it doesn't want to upload. But on windows I get an actual error when using bigger files than 512:

11.10.2024 02:04:36 :: DEBUG :: idotmatrix.connectionManager :: sending message(s) to device 11.10.2024 02:04:36 :: ERROR :: idotmatrix.modules.image :: could not upload the unprocessed image: [WinError -2147024809] The parameter is incorrect

TomCat666 commented 1 week ago

More investigation... In the method _createPayloads as soon as the whole payload that is created extends 512 bytes I get the error. Is there a possibility to get the info of the reverse engineering of how the payload is sent ? Was reverse engineering done on the code or on the actual BT data that was sent to the device?

TomCat666 commented 5 days ago

Found a github repository https://github.com/8none1/idotmatrix It has a working implementation of GIF and image upload that works with ANY file size (even bigger than 4096) ... so if anyone wants to bug fix this repository then check it out. I haven't had time to actually check it yet.

Won't be closing this issue until someone fixes it.

derkalle4 commented 5 days ago

Hi @TomCat666 you're right. This still is an ongoing issue. However, I am still not able to work as much for this project as I wanted to. I'll mark your issue and will look into it :)