Skip to content

releyshic/STMGPU

 
 

Repository files navigation

STMsGPU

2D software GPU for Arduino (or Desktop)


Logo

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


Used MCU for sGPU:
  • STM32F103C8T6 (Mapple mini) as mini version
  • STM32F103VET6 (ministm32) as mini2 version
  • STM32F407VET6 (Black dev. board with nrf24L01) as Pro version
As Host can be used:
  • 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
There are three Host libs:
  • 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
Also there are two projects for stm32:
  • stm32_sGPU for stm32f1xx MCUs
  • stm32_sGPU_Pro for stm32f4xx MCUs
GPIO pinout for sGPU can be find in:
❗ ATTENTION! ❗
* This project is still unstable and not ready for production! 🪲
* Any changes in main protocol are possible at any time,
* and no backward capability is guaranteed!

About

2D GPU for Arduino

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 92.3%
  • HTML 3.0%
  • C++ 2.7%
  • Python 1.2%
  • Other 0.8%