A python script sends the captured screen over USB to the STM32 microcontroller, then that data is displayed on ST7789 display. FPS is not that high, but I made it good enough after several optimizations.
I made this project because I'm learning USB now and this is a fun project to practice USB stuffs. I still know almost nothing about USB. To get started, follow this tutorial: https://medium.com/@manuel.bl/usb-for-microcontrollers-part-1-basic-usb-concepts-519a33372cc9
- STM32F103 MCU (Bluepill)
 - ST7789 SPI Display (240x240 resolution)
 
| ST7789 | STM32 | 
|---|---|
| SDA | PA7 | 
| SCL | PA5 | 
| RESETn | PA4 | 
| D/Cn | PA2 | 
| BLK | PA3 (unused) | 
- Compile the firmware and flash the microcontroller
 - Follow the instruction in host_python_scripts folder to run the host software.
 - Connect microcontroller to PC using USB cable. Host software will start the stream.
 - Enjoy your tiny monitor :)
 
- Optimize the device (mcu) firmware. Buffer the incoming packets befoe sending to SPI bus.
 - Write host software in C/C++ to get higher performance
 
Feel free to modify the code and do whatever you want with this useless project.
