pixelmatix / SmartMatrix

SmartMatrix Library for Teensy 3, Teensy 4, and ESP32
http://docs.pixelmatix.com/SmartMatrix
611 stars 161 forks source link

Merge wsandor's improvements that help with large displays #118

Closed embedded-creations closed 3 years ago

embedded-creations commented 4 years ago

https://github.com/wsandor/SmartMatrix/tree/work_ws

Changes:

Larger fonts can be used (based on sources from others) On the Scrolling Layer the text could have a background color also. Bypassed the 1024 byte DMA length limitation with a little dirty trick (bringing timerValues to the beginning of rowBitStruct and shift out the whole - it sends out 5 extra bytes per row,but it isn’t a big problem as they shifed out from the display. To be able to use larger displays (e.g. 192x32 and so on) I rewrite some parts to work with lower bit depths - for my application 16 or 32 color is enough. Now it is working with 3, 6, … 24, 48. Because of speed issues, I implemented a mechanism that stores the output lines and send the stored ones until something changes. (this is experimental and working, but as this is my first Arduino/Teensy-Arm/C++ project may not be the best solution - maybe someone could improve on it or at least correct my errors if there are any…) This version looks stable - at least with my test program, but previously I experienced strange hung-ups. For example I started the featuredemo.ino and it went round 5 times then it hung. And it hung at the same place when nothing changed - but if I changed size, bit depth or compiler optimalization the hung-up place went to somwhere else. With small sizes (e.g. 64x32) there were no hung-ups. I can’t find the reason, but it seems that the above mentioned line storing solved it somehow

https://community.pixelmatix.com/t/size-limit-with-teensy-3-6-and-32x16-mod-4-panels/555/9?u=louis