2D software GPU for Arduino (or Desktop)
Today a lot of code is written for Arduino, and we all know limitations of these platform,
for example extremely slow drawing on LCD screens, not enough ROM, huge SD libs and other!
But what if You want to use these MCUs longer, and you have no choise exept to select another MCUs or get much bigger MCUs?
That is why this sGPU coprocessor project was created!
Created for simple MCUs (like AVR) to help accelerate 2d graphics on LCDs
by using powerful MCUs like ARM STM32.
sGPU coprocessor can save ROM space, RAM, release MCU_CPU from executing code for LCD and left more resources for main application!
For maximum simplicity serial port (UART) was selected as main communication interface.
There are lot of realizations of this interface (as hardware as software) for all type of MCUs and even Desktop!
Flexible baudrate selection allows to match from lowest to highest transfer speed (some MCUs has no resonators and required low speed).
Only two lines is used to communicate (even one line is possible).
Just send commands to UART like it's an LCD and sGPU do it's job.
Host libs was written on C, C++ and Python, so it can be simply ported to where you want!
All this allow to use Host even like AVR ATtiny family, isn't cool huh?
Also code for STM32 was writed in System Workbench(sw4stm32) with SPL to get maximum of hardware!
####Benchmarks on Desktop via Python this link
- STM32F103C8T6 (Mapple mini) as mini version
- STM32F103VET6 (ministm32) as mini2 version
- STM32F407VET6 (Black dev. board with nrf24L01) as Pro version
- Any capable board with Arduino IDE: Uno, nano, STM32, e.t.c.
- PC with USB2UART or Bluetooth UART
- Anything what have Rx, Tx and GND lines
- Anything what support as software as hardware serial port (UART)
- All above must be 3v-5v tolerant
- C version(C_AVR_Libs), mostly optimized for ATmega328p or similar (also works in Arduino IDE)
- C++ version(Arduino_lib), support most of know MCUs, even STM32!
- Python version(Desktop), can run same things on Posix/Windows machine, instead of MCUs
- stm32_sGPU for stm32f1xx MCUs
- stm32_sGPU_Pro for stm32f4xx MCUs