diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 587ab304..613473e6 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,10 +35,15 @@ jobs: curl -fsSL https://www.pjrc.com/teensy/package_teensy_index.json -o /github/home/.arduino15/package_teensy_index.json curl -fsSL https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json -o /github/home/.arduino15/package_seeeduino_boards_index.json export PATH=$PATH:/github/workspace/bin:/__w/micro_ros_arduino/micro_ros_arduino/bin + arduino-cli core install OpenCR:OpenCR -v arduino-cli core install arduino:samd -v arduino-cli core install arduino:sam -v - arduino-cli core install arduino:mbed -v + 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:renesas_uno -v + arduino-cli core install arduino:mbed_nano -v arduino-cli core install esp32:esp32 -v arduino-cli core install teensy:avr@1.59.0 -v arduino-cli core install Seeeduino:samd -v @@ -65,10 +70,10 @@ jobs: arduino-cli compile --fqbn teensy:avr:teensy41 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_time_sync -v arduino-cli compile --fqbn teensy:avr:teensy41 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_types_handling -v # Build one demo for each platform - arduino-cli compile --fqbn arduino:mbed:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v - arduino-cli compile --fqbn arduino:mbed:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_decibels -v - arduino-cli compile --fqbn arduino:mbed:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_IMU_ML -v - arduino-cli compile --fqbn arduino:mbed:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + arduino-cli compile --fqbn arduino:mbed_nano:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v + arduino-cli compile --fqbn arduino:mbed_nano:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_decibels -v + arduino-cli compile --fqbn arduino:mbed_nano:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_IMU_ML -v + arduino-cli compile --fqbn arduino:mbed_nano:nanorp2040connect /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v arduino-cli compile --fqbn teensy:avr:teensy31 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn teensy:avr:teensy35 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn teensy:avr:teensy36 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v @@ -77,10 +82,16 @@ jobs: arduino-cli compile --fqbn arduino:samd:arduino_zero_native /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn arduino:sam:arduino_due_x /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v # arduino-cli compile --fqbn arduino:mbed:envie_m4 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v - arduino-cli compile --fqbn arduino:mbed:envie_m7 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v - arduino-cli compile --fqbn arduino:mbed:envie_m7 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + arduino-cli compile --fqbn arduino:mbed_portenta:envie_m7 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v + arduino-cli compile --fqbn arduino:mbed_portenta:envie_m7 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v arduino-cli compile --fqbn esp32:esp32:esp32 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v arduino-cli compile --fqbn esp32:esp32:esp32 /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v arduino-cli compile --fqbn Seeeduino:samd:seeed_wio_terminal /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + arduino-cli compile --fqbn arduino:mbed_giga:giga /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher -v + arduino-cli compile --fqbn arduino:mbed_giga:giga /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi -v + 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 # Build micro-ros_publisher-wifi_at for WiFi non-native board with ESP-AT - arduino-cli compile --fqbn arduino:mbed:pico /github/home/Arduino/libraries/micro_ros_arduino/examples/micro-ros_publisher_wifi_at -v + 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 ac73b5c6..381eb9b1 100755 --- a/README.md +++ b/README.md @@ -48,6 +48,10 @@ Community contributed boards are: | [Raspberry Pi Pico](https://www.raspberrypi.com/documentation/microcontrollers/) | - | [@maehara-keisuke](https://github.com/maehara-keisuke) | with [ESP-AT](https://www.espressif.com/en/products/sdks/esp-at/overview) | `colcon_verylowmem.meta` | | [Seeed Studio XIAO SAMD21](https://wiki.seeedstudio.com/Seeeduino-XIAO/) | - | [@maehara-keisuke](https://github.com/maehara-keisuke) | with [ESP-AT](https://www.espressif.com/en/products/sdks/esp-at/overview) | `colcon_verylowmem.meta` | | [Seeed Studio XIAO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040/) | - | [@maehara-keisuke](https://github.com/maehara-keisuke) | with [ESP-AT](https://www.espressif.com/en/products/sdks/esp-at/overview) | `colcon_verylowmem.meta` | +| [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` | + 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_wifi/micro-ros_publisher_wifi.ino b/examples/micro-ros_publisher_wifi/micro-ros_publisher_wifi.ino index eafce53c..79e2fb44 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_NANO_RP2040_CONNECT) && !defined(ARDUINO_WIO_TERMINAL) -#error This example is only available for Arduino Portenta, Arduino Nano RP2040 Connect, ESP32 Dev module and Wio Terminal +#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 #endif rcl_publisher_t publisher; @@ -18,7 +18,11 @@ rclc_support_t support; rcl_allocator_t allocator; rcl_node_t node; -#define LED_PIN 13 +#if defined(LED_BUILTIN) + #define LED_PIN LED_BUILTIN +#else + #define LED_PIN 13 +#endif #define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){error_loop();}} #define RCSOFTCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){}} diff --git a/examples/micro-ros_publisher_wifi_at/micro-ros_publisher_wifi_at.ino b/examples/micro-ros_publisher_wifi_at/micro-ros_publisher_wifi_at.ino index 9621a963..63dcd962 100755 --- a/examples/micro-ros_publisher_wifi_at/micro-ros_publisher_wifi_at.ino +++ b/examples/micro-ros_publisher_wifi_at/micro-ros_publisher_wifi_at.ino @@ -21,7 +21,7 @@ #include -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) || defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) #define BOARD_HAS_NATIVE_WIFI #endif diff --git a/library.properties b/library.properties index a0147594..b6c8b700 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 +architectures=stm32,OpenCR,Teensyduino,samd,sam,mbed,esp32,mbed_portenta,mbed_giga,renesas_uno diff --git a/src/default_transport.cpp b/src/default_transport.cpp index 82b15cdb..aa9b4908 100755 --- a/src/default_transport.cpp +++ b/src/default_transport.cpp @@ -4,7 +4,7 @@ extern "C" { #include #include - #include + #include int clock_gettime(clockid_t unused, struct timespec *tp) __attribute__ ((weak)); bool arduino_transport_open(struct uxrCustomTransport * transport) __attribute__ ((weak)); diff --git a/src/micro_ros_arduino.h b/src/micro_ros_arduino.h index d7c00605..d7b87f04 100755 --- a/src/micro_ros_arduino.h +++ b/src/micro_ros_arduino.h @@ -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_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) +#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) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) #include #include #elif defined(ARDUINO_NANO_RP2040_CONNECT) @@ -108,6 +108,8 @@ static inline void set_microros_native_ethernet_udp_transports(byte mac[], IPAdd #include #elif defined(BOARD_WITH_ESP_AT) #include +#elif defined(ARDUINO_UNOR4_WIFI) +#include #endif extern "C" bool arduino_wifi_transport_open(struct uxrCustomTransport * transport); @@ -121,7 +123,7 @@ struct micro_ros_agent_locator { }; #endif -static inline void set_microros_wifi_transports(char * ssid, char * pass, char * agent_ip, uint agent_port){ +static inline void set_microros_wifi_transports(char * ssid, char * pass, char * agent_ip, uint32_t agent_port){ #if defined(BOARD_WITH_ESP_AT) ESP_AT_SERIAL_PORT.begin(ESP_AT_BAUDRATE); diff --git a/src/wifi_transport.cpp b/src/wifi_transport.cpp index a295e60c..c86bc959 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_NANO_RP2040_CONNECT) || defined(ARDUINO_WIO_TERMINAL) || defined(BOARD_WITH_ESP_AT) +#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) #include -#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) +#if defined(ESP32) || defined(TARGET_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) #include #include #elif defined(ARDUINO_NANO_RP2040_CONNECT) @@ -13,6 +13,8 @@ #include #elif defined(BOARD_WITH_ESP_AT) #include +#elif defined(ARDUINO_UNOR4_WIFI) +#include #endif #include