Quoted from Rdoyle1978:
That’s pretty remarkable that you got this working, although I guess I shouldn’t be too surprised since DMDMK66 is so uh, similar... to Pin2DMD
Although it uses almost the same components (M4 ARM CPU, RGB LED panels) it is very different on the software side. DMDMK66 is based on RGB.DMD from ecurtz which uses the smartmatrix library for the output part. I tried to use that code also for the output but soon found out that it not really suitable. Smartmatrix is very flexible but that brings a lot unneeded overhead. I ended up porting my own output routine to NXP MK66 which wasn´t as easy as I thought. One could think that both STM32F4 and MK66 are arm processors and should be able to do the same, but what makes the difference is not the core but the flexibility of the peripherals the processor offers. For example MK66 can only generate a single interrupt for a port group of 16 pins. Those ports then all share the same priority. STM32 can give different priorities to different pins and if you design it right this can be a big advantage in such a realtime application. Another example is the SPI interface. The NXP MK66 implementation is missing a lot of features like DMA doublebuffering, software slave select to clear the shift registers and support for both MSB and LSB slave input. Of course you can always rebuild the missing functionalities in software but that is just not the same when it comes to performance. Anyways I don´t think that this firmware will be of great use, because of the complicated installation procedure, but who knows. For me it was a great journey and helped me to optimize my own STM32 code because almost all had to be reviewed.