Find file Copy path
9b10722 Nov 13, 2017
1 contributor

Users who have contributed to this file

108 lines (72 sloc) 3.85 KB


Porting the most important features of the Arduino API to the STM8S.

Within a few minutes you are ready to compile and upload your first STM8S-based project while still retaining the flexibility to use ST's SPL functions.

All you need to get started is a simple STM8S103F breakout board for 70 cents and a ST-Link V2 compatible flash programmer for $2.50. Three boards and one flash programmer together are available for well under five dollars including shipping on aliexpress.



The recommanded way of installation is now the Arduino Board Manager:

  • Open the Settings tab of the Preferences dialog
  • Enter as an Additional Boards Manager URL
  • Select sduino in the Boards Manager list (Tools->Board:...->Boards Manager)
  • Click on Install

Wait for the download to finsh and you are ready to blink:

  • Open the Boards list at Tools->Board:...
  • You should find a new entry "STM8S Boards".
  • Choose STM8S103F3 Breakout Board from the list
  • Open the standard Blink example from File->Examples->01. Basics->Blink
  • Compile it by hitting 'Verify'

Easy, isn't it?

In order to upload the compiled sketch to a connected board you need to install your flash tool.

Included libraries

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 API migration guidelines for details.


  • SPI: Real hardware-SPI up to 10MHz.
  • I2C: Port of the I2C master library by Wayne Truchsess
  • HardwareSerial: The standard serial interface.


  • LiquidCrystal: HD44780 based text LCDs
  • PCD8544: Monochrome graphical LCD based on the PCD8544 controller like the Nokia 5110 display. SPI mode only.
  • Mini_SSD1306: SSD1306-based monochrome OLED displays with 128x64 pixels. I2C support only.

Motor control

  • Stepper: Stepper motors with 2, 4 or 5 phases.
  • Servo: Up to 12 servos using only 1 timer.

Supported hardware

  • The one-dollar-boards: A simple STM8S103 breakout board build around a CPU STM8S103F3P6. It costs less than a dollar. The CPU features a 16MHz internal oscillator, 8kB flash, 1kB RAM, 640 byte EEPROM. It includes an UART, SPI, I2C, PWM, 10 bit ADC, 3 timer, and up to 14 I/O pins - quite similar to an Atmel ATmega8.

  • The ESP14 Wifi-boards are very similar. They are basically a variant of these boards with an added ESP-01 Wifi-module. Almost all programs should run on those chinese Wifi-enabled gems as well.

  • The STM8S105Discovery-boards are very similar to an Arduino Uno with an ATmega328 CPU. The support for the used STM8S105 CPU is still quite fresh but it should work now.


SDCC doesn't support C++. Some preprocessor magic is applied to close the gap between C and C++ syntax as much as possible, but this is not a 100% compatible drop-in replacement for full Arduino environments like for AVR or STM32. See Limitations and the migration guidelines for details.

Supported Systems

  • Linux 64 bit: Tested on Ubuntu 16.04
  • Linux 32 bit: Tested on Ubuntu 16.04
  • Windows: Tested on Windows 7. Sduino might work on XP (not tested), but the ST-Link/V2 driver is not available anymore for XP.
  • MacOS: Not tested, but should be very close to working. Will need a manual install, but IDE integration should be easy now. Any volunteers?
  • Raspian/Raspberry Pi: Untested. Will require a manual install.