tenbaht / sduino

An Arduino-like programming API for the STM8
http://tenbaht.github.io/sduino/
GNU Lesser General Public License v2.1
351 stars 217 forks source link

Sduino: Small Devices Arduino

Getting started on the STM8 the easy way.

An Arduino-like programming API that can be used from within the Arduino IDE or for Makefile-controlled builds.

Since this project is based on the SDCC Small Devices C compiler, I called it "Small Devices -uino" or "Small-duino". It is entirely based on free tools that are available for Linux, MacOS, and Windows: SDCC, make, and stm8flash.

This project is not supposed to be “better than Arduino”. It’s purpose is to give you a head start into a different CPU architecture if you happen to have a professional need or a private desire for it.

Installation

Starting with version 0.3.0 automatic IDE integration is supported via the Arduino Boards Manager. This is the recommanded way of installation now. For a manual non-IDE installation please check the manual installation instructions.

Start the Arduino-IDE. In File->Preferences, Settings tab, enter

https://raw.githubusercontent.com/tenbaht/sduino/master/package_sduino_stm8_index.json

as an Additional Boards Manager URL.

Now you should find a new entry STM8S Boards in the list at Tools->Board:...

Known issues

The Arduino IDE version 1.8.7 is buggy, use 1.8.8 instead.

IDE error message select upload port first (IDE v1.8.7 only): Update to IDE >= 1.8.8 or apply this workaround.

Very slow compilation after using "save as" (IDE v1.8.7 only): After saving a file under a different name the CPU load maxes out for one CPU core and the IDE reacts extremly slow. Exit the Arduino IDE and re-open it. Update to IDE >= 1.8.8.

bash.exe: warning: could not find /tmp, please create!: Shows up on windows systems when using SDuiono versions < 0.5. Annoying, but harmless. Update to release v0.5.

Included libraries

Most parts of the Arduino core system and some Arduino libraries are already ported to C-syntax. The resulting API is still very close to the C++ version and porting an existing application is not hard. Check out the migration guide for details.

Communication

Displays

Storage

Motor control

Compatibility with the Arduino world

Since there is no free C++ compiler for the STM8, it is impossible to do a full 1:1 port of the whole enviroment as is has been done for the STM32 and the ESP8266.

This is not a drop-in replacement for an AVR, but thanks to some C preprocessor magic the programming API is still very, very similar and it is often enough to just move over the opening bracket of the class instanciation statement and to replace the dot in a method call for an underscore. Check the migration guide for an overview.

Supported Systems:

Arduino IDE versions 1.8.11, 1.8.8, 1.8.5 and 1.6.13 are tested, but most versions >=1.6.6 should work.

Avoid using Version 1.8.7, it contains some known bugs. It might require a workaround if you see an error message "select upload port first".