Using RB-150 with PlatformIO?

Issue:

I would like to use the RB-150 board with PlatformIO. It works well with the Arduino environment through adding the JSON to the board manager and downloading. Can you please let me know how to configure this in the platformio.ini file?


DYNAMIXEL Servo:

XL430-W250-T


DYNAMIXEL Controller:

OpenRB-150


Software Interface:

Arduino / PlatformIO

Information on how to configure the Platformio.ini is available on PlatformIO’s official documentation.

The technical specifications for the OpenRB-150 are available on the ROBOTIS eManual, including the architecture information needed to create a platformio.ini.

I understand, but writing a custom board description is far beyond my ability, that’s why I was asking for help (ideally by someone who had done this before).

Yes. The procedure I used was:
Create a “boards” directory under .platformio.
In this dir, create OpenRB-150.json with this contents:

{
    "build": {
        "arduino": {
            "ldscript": "flash_with_bootloader.ld"
        },
        "core": "arduino",
        "cpu": "cortex-m0plus",
        "extra_flags": "-DARDUINO_OpenRB -D__SAMD21G18A__ -DUSE_ARDUINO_MKR_PIN_LAYOUT",
        "f_cpu": "48000000L",
        "hwids": [
            [
                "0x2F5D",
                "0x2202"
            ]
        ],
        "mcu": "samd21g18a",
        "usb_product": "Robotis OpenRB-150",
        "variant": "OpenRB-150"
    },
    "frameworks": [
        "arduino"
    ],
    "platforms": [
        "atmelsam"
    ],
    "debug": {
        "jlink_device": "ATSAMD21G18",
        "openocd_chipname": "at91samd21g18",
        "openocd_target": "at91samdXX",
        "svd_path": "ATSAMD21G18A.svd"
    },
    "name": "Robotis OpenRB-150",
    "upload": {
        "disable_flushing": true,
        "maximum_ram_size": 32768,
        "maximum_size": 262144,
        "native_usb": true,
        "offset_address": "0x2000",
        "protocol": "sam-ba",
        "protocols": [
            "sam-ba",
            "blackmagic",
            "jlink",
            "atmel-ice"
        ],
        "require_upload_port": true,
        "use_1200bps_touch": true,
        "wait_for_upload_port": true
    },
    "url": "https://en.robotis.com/shop_en/item.php?it_id=902-0183-000",
    "vendor": "Robotis"
}

This is based on the mkrwifi1010 board file

From the Arduino OpenRB-150 Board manager package, locate the variants/OpenRB-150 directory (OpenRB-150/variants/OpenRB-150 at master · ROBOTIS-GIT/OpenRB-150 · GitHub) and copy this directory under .platformio\packages\framework-arduino-samd\variants

I think that was it. I can now find the OpenRB-150 under boards in PlatformIO in VSCode and select it for new projects. You will need the Dynamixel2Arduino library as well.

My platformio.ini for a small test project looks like this:

[env:OpenRB-150]
platform = atmelsam
board = OpenRB-150
framework = arduino
lib_deps = robotis-git/Dynamixel2Arduino@^0.7.0

Hope this helps.