/** @defgroup boards_sodaq-autonomo SODAQ Autonomo @ingroup boards @brief Support for the SODAQ Autonomo board. ## Overview The `SODAQ Autonomo` is a board by SODAQ featuring a ATSAMD21J18A. The SAMD21 is a ARM Cortex-M0+ micro-controller. It has 256Kb of flash memory and 32Kb of RAM. The Autonomo is available from the SODAQ [shop](http://shop.sodaq.com/). ## Hardware ![sodaq-autonomo image](http://static.webshopapp.com/shops/104792/files/050759716/sodaq-sodaq-autonomo.jpg) ### MCU | MCU | ATSAMD21J18A | |:------------- |:--------------------- | | Family | ARM Cortex-M0+ | | Vendor | Atmel | | RAM | 32Kb | | Flash | 256Kb | | Frequency | up to 48MHz | | FPU | no | | Timers | 6 (1x 16-bit, 2x 24-bit, 3x 32-bit) | | ADCs | 1x 12-bit (8 channels) | | UARTs | max 6 (SERCOMs shared with SPI and I2C) | | SPIs | max 6 (see UART) | | I2Cs | max 6 (see UART) | | Vcc | 1.8V - 3.6V | | Datasheet | [Datasheet](http://www.atmel.com/Images/Atmel-42181-SAM-D21_Datasheet.pdf) | ### User Interface 1 LED: | Device | PIN | |:------ |:--- | | LED0 | PA19 | ## Implementation Status Please refer to [this tracker](https://github.com/RIOT-OS/RIOT/issues/1646) to see which projects are work in progress and who is the contact person for this. Notice that the initial support for the Autonomo was based on samr21-xpro. At some point we will add a separate issue to track changes for this board. | Device | ID | Supported | Comments | |:------------- |:------------- |:------------- |:------------- | | MCU | samd21 | partly | Energy saving modes not fully utilized| | Low-level driver | GPIO | yes | | | | PWM | yes | | | | UART | yes | two UARTs by now| | | I2C | yes | | | | SPI | yes | | | | ADC | yes | PA04 & PA05 disabled by default due to EDBG's use of them for UART, can be enabled from `periph_conf.h`| | | USB | no | | | | RTT | yes | | | | RTC | yes | | | | RNG | no | no HW module | | | Timer | yes | | ## Features of the board Besides the SAMD21 the board has the following features: | Feature | Description | |:------ |:--- | | Compatibility | Arduino M0 compatible | | Size | 58.5 x 33.5 mm | | Operating Voltage | 3.3V | | Digital I/O Pins | 16, with 12 PWM, UART, SPI and TWI (I2C) | | Analog Input Pins | 6, 12-bit ADC channels | | Analog Output Pins | 10-bit DAC | | External Interrupts | Available on all pins except pin 4 | | DC Current per I/O pin | 7 mA | | EEPROM | Up to 16KB by emulation | | Clock Speed | 48 MHz | | Debug | Serial Wire Interface | | Communications | Bee compatible slot for communication modules with software switchable power | | Storage | 16Mbit Dataflash Module and Micro SD card holder | | Power | 5V USB power and/or 3.7V LiPo battery | | Power switch | Software switchable power for connected devices up to 1A | | Charging | Solar charge controller, up to 500mA charge current| | LED's | Yellow charge LED and green LED on pin 13 | ## Flashing the device The Autonomo has a 10 pin header compatible with the Atmel-ICE. The standard method for flashing RIOT to the sodaq-autonomo is using OpenOCD. For this to work properly, **you have to make sure to use a very recent version of OpenOCD**. Arduino-IDE comes with openocd v0.9.0 which is known to work. Also Ubuntu 16.04 has openocd v0.9.0. Refer to https://github.com/RIOT-OS/RIOT/wiki/OpenOCD for building OpenOCD and make sure "cmsis-dap" and "hidapi-libusb" are enabled. ## Supported Toolchains To build software for the autonomo board we strongly recommend the usage of the [GNU Tools for ARM Embedded Processors](https://launchpad.net/gcc-arm-embedded) toolchain. ## Known Issues / Problems ### Stack sizes The default stack sizes have not been tuned properly yet. If in doubt why your application crashes try increasing the default stack sizes and use `ps` to find out how much stack is being used. Tracked in https://github.com/RIOT-OS/RIOT/issues/2228 */