Adding Autonomo to PlatformIO: what to use for 'build' and 'upload' etc

I’m trying to add the Autonomo board to the PlatformIO IDE.

When trying to use the Arduino Zero as a board it doens’t function for 100%; writing to the Serial works, but eg blinking the LED on 13 doesn’t work.
As suggested in the PlatformIO-community I’m trying to add the board as a custom board. But there the doubt arises, as I don’t have a clue what to fill out for the build and upload params. Underneath i pasted the config for the Arduino Zero within PlatformIO, which looks like a good starting point… but then…
Anyone who could help me with this? Or even is using the Autonomo with PlatformIO.

In the end if I get this working, I’ll file an issue in the repo for the next develop-branch of platformIO so that it will be included by default.

"zero": {
    "build": {
        "core": "arduino_zero",
        "extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
        "f_cpu": "48000000L",
        "mcu": "samd21g18a",
        "cpu": "cortex-m0plus",
        "pid": "0x804d",
        "usb_product": "Arduino Zero",
        "variant": "arduino_zero",
        "vid": "0x2341",
        "ldscript": "flash_with_bootloader.ld"
    },
    "frameworks": ["arduino"],
    "name": "Arduino Zero (Programming Port)",
    "platform": "atmelsam",
    "upload": {
        "disable_flushing": true,
        "maximum_ram_size": 32768,
        "maximum_size": 262144,
        "protocol": "sam-ba",
        "require_upload_port" : false,
        "use_1200bps_touch": false,
        "wait_for_upload_port": false
    },
    "url": "https://www.arduino.cc/en/Main/ArduinoBoardZero",
    "vendor": "Arduino"

Interesting. This is the first time I hear about PlatformIO.
OpenSource is good. Linux support is vital (for me). I’m a Python fan. Heck, why haven’t I seen this then?

The configuration of the SODAQ boards is available in Github

https://github.com/SodaqMoja/SodaqCore-samd

So that’s the starting point. You’ll find the variant.h files of the various boards that we have. In there you can see that the pins for the LED_BUILTIN is different from the Zero

I Really like platformio and what it could be. Escpecially the integration with Atom.io and the versatility is really great.
Thanks for the link; looks a lot like gibberish to me as a C++ n00b. If I fill out the config file incorrectly, could I permanently damage my autonomo?

So, although the LED_BUILTIN both are correctly adressing pin D13; the D13 of the autonomo differs from the D13 of the Zero. Correct? And that distinguish is defined in the variant.h

You can’t do any more harm than you would normally be able to do. Not less either :smile:

About the pin numbers.
You use digital pin 13 on Autonomo exactly the same as digital pin 13 on the Zero.
But there may be boards that connect a led to a different digital pin. So it is better to use LED_BUILTIN.

I’ll have to dive into PlatformIO to be able to say more about it. Right now I’m overloaded with work, so it won’t be any time soon.

Thanks for the explanation. Can imagine you guys are busy with the LoRaOne! (To bad you need a Creditcard to back; wanted to back the project :frowning: )

I’ll try to see if I can get it to work: and share if I’m succesfull.

Hey @vannut,

did you have any luck with the PlatformIO board config?

Cheers,
Joscha

I created a platformio platform package for the SODAQ ONE - you can find more information here: SOLVED: PlatformIO setup/custom board parameters

Hi Josha,

To be honest i did not find time to pursue to Program with the autonomo/one.
Glad to hear you found a solution and shared it with us.

Richard