diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ce82a1cf..99e2e3694 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,6 +42,7 @@ jobs: arduino-cli core install arduino:mbed_giga -v arduino-cli core install arduino:mbed_rp2040 -v arduino-cli core install arduino:mbed_portenta -v + arduino-cli core install arduino:mbed_opta -v arduino-cli core install arduino:renesas_uno -v arduino-cli core install arduino:mbed_nano -v arduino-cli core install esp32:esp32 -v @@ -92,6 +93,10 @@ jobs: arduino-cli compile --fqbn arduino:renesas_uno:minima /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn arduino:renesas_uno:unor4wifi /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn arduino:renesas_uno:unor4wifi /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + arduino-cli compile --fqbn arduino:mbed_opta:opta /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v + arduino-cli compile --fqbn arduino:mbed_opta:opta /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + arduino-cli compile --fqbn arduino:mbed_opta:opta /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_ethernet -v + # Build micro-ros_publisher-wifi_at for WiFi non-native board with ESP-AT arduino-cli compile --fqbn arduino:mbed_rp2040:pico /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi_at -v diff --git a/README.md b/README.md index 755b3af83..ec9a3823e 100755 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Community contributed boards are: | [Arduino Giga R1](https://store.arduino.cc/products/giga-r1-wifi) | - | [@gbr1](https://github.com/gbr1) | | `colcon.meta` | | [Arduino UNO R4 WiFi](https://store.arduino.cc/products/uno-r4-wifi) | - | [@gbr1](https://github.com/gbr1) | | `colcon.meta` | | [Arduino UNO R4 Minima](https://store.arduino.cc/products/uno-r4-minima) | - | [@gbr1](https://github.com/gbr1) | | `colcon.meta` | +| [Arduino Opta](https://store.arduino.cc/products/opta-wifi) | - | [@gbr1](https://github.com/gbr1) | | `colcon.meta` | You can find the available precompiled ROS 2 types for messages and services in [available_ros2_types](available_ros2_types). diff --git a/examples/micro-ros_publisher_ethernet/micro-ros_publisher_ethernet.ino b/examples/micro-ros_publisher_ethernet/micro-ros_publisher_ethernet.ino index 77f8a56e2..f00445f4d 100755 --- a/examples/micro-ros_publisher_ethernet/micro-ros_publisher_ethernet.ino +++ b/examples/micro-ros_publisher_ethernet/micro-ros_publisher_ethernet.ino @@ -7,8 +7,8 @@ #include #include -#if !defined(TARGET_STM32F4) && !defined(ARDUINO_TEENSY41) && !defined(TARGET_PORTENTA_H7_M7) -#error This example is only available for Arduino Portenta, Arduino Teensy41 and STM32F4 +#if !defined(TARGET_STM32F4) && !defined(ARDUINO_TEENSY41) && !defined(TARGET_PORTENTA_H7_M7) && !defined(ARDUINO_OPTA) +#error This example is only available for Arduino Portenta, Arduino Teensy41, STM32F4 and Arduino OPTA #endif #if defined(ARDUINO_TEENSY41) diff --git a/examples/micro-ros_publisher_wifi/micro-ros_publisher_wifi.ino b/examples/micro-ros_publisher_wifi/micro-ros_publisher_wifi.ino index 79e2fb447..725399c77 100755 --- a/examples/micro-ros_publisher_wifi/micro-ros_publisher_wifi.ino +++ b/examples/micro-ros_publisher_wifi/micro-ros_publisher_wifi.ino @@ -8,8 +8,8 @@ #include -#if !defined(ESP32) && !defined(TARGET_PORTENTA_H7_M7) && !defined(ARDUINO_GIGA) && !defined(ARDUINO_NANO_RP2040_CONNECT) && !defined(ARDUINO_WIO_TERMINAL) && !defined(ARDUINO_UNOR4_WIFI) -#error This example is only available for Arduino Portenta, Arduino Giga R1, Arduino Nano RP2040 Connect, ESP32 Dev module, Wio Terminal and Arduino Uno R4 WiFi +#if !defined(ESP32) && !defined(TARGET_PORTENTA_H7_M7) && !defined(ARDUINO_GIGA) && !defined(ARDUINO_NANO_RP2040_CONNECT) && !defined(ARDUINO_WIO_TERMINAL) && !defined(ARDUINO_UNOR4_WIFI) && !defined(ARDUINO_OPTA) +#error This example is only available for Arduino Portenta, Arduino Giga R1, Arduino Nano RP2040 Connect, ESP32 Dev module, Wio Terminal, Arduino Uno R4 WiFi and Arduino OPTA WiFi #endif rcl_publisher_t publisher; diff --git a/library.properties b/library.properties index ddb8026e1..b81d8351d 100755 --- a/library.properties +++ b/library.properties @@ -7,4 +7,4 @@ paragraph=micro-ROS Arduino library url=https://github.com/micro-ROS/micro_ros_arduino precompiled=true category=Other -architectures=stm32,OpenCR,Teensyduino,samd,sam,mbed,esp32,mbed_portenta,mbed_giga,renesas_uno +architectures=stm32,OpenCR,Teensyduino,samd,sam,mbed,esp32,mbed_portenta,mbed_giga,renesas_uno,mbed_opta diff --git a/src/micro_ros_arduino.h b/src/micro_ros_arduino.h index 5a86897dc..9b0fd0d36 100755 --- a/src/micro_ros_arduino.h +++ b/src/micro_ros_arduino.h @@ -56,11 +56,11 @@ static inline void set_microros_transports(){ #include #endif -#if defined(TARGET_PORTENTA_H7_M7) +#if defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_OPTA) #include #endif -#if defined(TARGET_STM32F4) || defined(ARDUINO_TEENSY41) || defined(TARGET_PORTENTA_H7_M7) +#if defined(TARGET_STM32F4) || defined(ARDUINO_TEENSY41) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_OPTA) extern "C" bool arduino_native_ethernet_udp_transport_open(struct uxrCustomTransport * transport); extern "C" bool arduino_native_ethernet_udp_transport_close(struct uxrCustomTransport * transport); extern "C" size_t arduino_native_ethernet_udp_transport_write(struct uxrCustomTransport* transport, const uint8_t * buf, size_t len, uint8_t * err); @@ -95,9 +95,9 @@ static inline void set_microros_native_ethernet_udp_transports(byte mac[], IPAdd #endif -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) || defined(ARDUINO_UNOR4_WIFI) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) || defined(ARDUINO_UNOR4_WIFI) || defined(ARDUINO_OPTA) -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_OPTA) #include #include #elif defined(ARDUINO_NANO_RP2040_CONNECT) @@ -116,7 +116,7 @@ extern "C" bool arduino_wifi_transport_open(struct uxrCustomTransport * transpor extern "C" bool arduino_wifi_transport_close(struct uxrCustomTransport * transport); extern "C" size_t arduino_wifi_transport_write(struct uxrCustomTransport* transport, const uint8_t * buf, size_t len, uint8_t * err); extern "C" size_t arduino_wifi_transport_read(struct uxrCustomTransport* transport, uint8_t* buf, size_t len, int timeout, uint8_t* err); -#ifndef TARGET_PORTENTA_H7_M7 +#if !defined(TARGET_PORTENTA_H7_M7) && !defined(ARDUINO_OPTA) struct micro_ros_agent_locator { IPAddress address; int port; diff --git a/src/native_ethernet_transport.cpp b/src/native_ethernet_transport.cpp index ecc2cf096..ab3a953b8 100755 --- a/src/native_ethernet_transport.cpp +++ b/src/native_ethernet_transport.cpp @@ -10,13 +10,13 @@ #include #include #endif -#ifdef TARGET_PORTENTA_H7_M7 +#if defined(TARGET_PORTENTA_H7_M7 ) || defined(ARDUINO_OPTA) #include #include #include #endif -#if defined(TARGET_STM32F4) || defined(ARDUINO_TEENSY41) || defined(TARGET_PORTENTA_H7_M7) +#if defined(TARGET_STM32F4) || defined(ARDUINO_TEENSY41) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_OPTA) extern "C" { #include diff --git a/src/wifi_transport.cpp b/src/wifi_transport.cpp index c86bc9592..800de60f2 100755 --- a/src/wifi_transport.cpp +++ b/src/wifi_transport.cpp @@ -1,8 +1,8 @@ -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) || defined(ARDUINO_UNOR4_WIFI) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) || defined(ARDUINO_UNOR4_WIFI) || defined(ARDUINO_OPTA) #include -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_OPTA) #include #include #elif defined(ARDUINO_NANO_RP2040_CONNECT)