Skip to content

Supported Hardware

Dario Di Maio edited this page Jan 6, 2020 · 38 revisions

Supported Hardware

Souliss is written in C++ and is partially based on the Arduino cores, its operational functionality are strictly related to the network transceiver and relevant drivers. The following list the microcontrollers that are actually supported in Souliss, for each of them there is a specific set of drivers and interfaces.

  • Arduino AVR Boards with supported network transceiver
  • Expressif ESP8266 WiFi (code running directly over ESP8266)
  • Expressif ESP32 WiFi (code running directly over ESP32, no Bluetooth support)

You can mix the following microntroller and transceiver to get a full network node running Souliss. The code has been written to compile with the Arduino IDE, ensure that cores relevant the microcontroller of your interest are included in your IDE.

Arduino AVR-based Boards

As general rule, all the AVR ATmega microcontroller that has an Arduino core can run Souliss, restrictions apply on flash and RAM size, the following are supported in Souliss and has the relevant core installed in any Arduino IDE.

  • Atmel AVR ATmega328P
  • Atmel AVR ATmega32U4
  • Atmel AVR ATmega2560

Drivers for listed network transceiver are provided in the framework

  • Nordic nRF24L01 and nRF24L01+ (via Hardware SPI or Software SPI)
  • Wiznet W5100 (Ethernet)
  • Wiznet W5200 (Ethernet)
  • Wiznet W5500 (Ethernet)
  • Atmel AVR USART
  • Ciseco XRF 900 MHz Radio (through USART)
  • Any differential RS485 transceiver (through USART)

Legacy Support

The following transceiver are supported in Souliss but are not getting the latest features:

  • Atmel AT86RF230 (Wireless - 2.4 GHz IEEE 802.15.4)
  • HopeRF RFM69HW (Wireless 800-900 MHz)
  • Microchip ENC28J60 (Ethernet)
  • Microchip MRF24WB0MA (WiFi) up to firmware release 0x120C

As general note Microchip transceiver doesn't include a TCP/IP stack and for this reason runs on uIP TCP/IP, this stack support only static IP configuration (doesn't include DHCP), for the same there is no provision of Dynamic Addressing features to assign at runtime the vNet address.

Additional Atmel ATmega AVR Microcontroller

The following ATmega microcontroller are not included in the Arduino IDE and can be added manually:

Expressif ESP8266 based board

The ESP8266 is a SoC that include a microcontroller and a WiFi radio, board based on this IC doesn't need additional transceiver.

Drivers for listed network transceiver are provided in the framework

  • ESP8266 embedded WiFi radio
  • Any differential RS485 transceiver (through USART)

Expressif ESP32 based board

The ESP32 is a multi-core SoC that include a microcontroller a WiFi radio and multiple other interfaces, board based on this IC doesn't need additional transceiver. Actually only the WiFi radio is supported and there is no plan to extend to other interfaces supported in the SoC.

Drivers for listed network transceiver are provided in the framework

  • ESP32 embedded WiFi radio

Supported Cores

Starting from Arduino IDE 1.6.4 the cores are no longer bundled with the IDE itself and shall be downloaded from the Board Manager. The following table list the supported core for Souliss, using a different core release may result in unstable behavior or compilation errors.

Is reccomended to use the Arduino IDE in portable mode, create a folder called portable into the Arduino IDE main folder to have all cores and libraries locally with the IDE.

Verify the supported Arduino.cc IDE release and relevant cores for the Souliss release that you are using:

Microcontroller IDE Release Core Release Core Mantainers Souliss Release
Arduino AVR 1.6.5 1.6.5 Arduino.cc v7.1.x
Moteino AVR 1.6.5 - LowPower Lab v7.1.x
Arduino AVR 1.6.12 1.6.14 Arduino.cc v7.2.x
Arduino AVR 1.8.10 1.8.1 Arduino.cc v7.3.x
ESP8266 1.6.5 1.6.5-947-g39819f0 ESP8266 Team v7.0.5 - v7.0.6
ESP8266 1.6.5 1.6.5-1160-gef26c5f ESP8266 Team v7.1.x
ESP8266 1.6.12 2.3.0 ESP8266 Team v7.2.x
ESP8266 1.8.10 2.6.3 ESP8266 Team v7.3.x
ESP32 1.8.10 1.0.4 ESP32 Team v7.3.x

Previous release of Souliss compiles in Arduino IDE 1.6.x and 1.5.x.

Clone this wiki locally