Ingridients:
-STM32 nucleo f446re
-circular oled display (Raystar, REX128128BWPP3N00000) - 4bit grayscale (16 colors)
-few passive components to run the display
-3D library (I wrote my own for educational purposes)
-stl reader library (also wrote it myself)
The code uses two screen buffers stored in stm32 ram, data is sent to the display through SPI using DMA at 20MHz and while the first buffer is sent the second is redrawn by the library.
STL library requires that the binary stl file is converted to array without the first 80 bytes of header. Conversion is done by some simple PowerShell script that outputs the code to be included (e.g. static const uint8_t pikachu_1gen_flowalistik [20684] = { 0x53, 0x54, 0x4C....} )
At the moment the library has a function to hide faces that are not facing front.