micro_ros_arduino icon indicating copy to clipboard operation
micro_ros_arduino copied to clipboard

Added support for ESP32 with Husarnet TCPv6 transport

Open DominikN opened this issue 3 years ago • 8 comments

DominikN avatar Jan 21 '22 00:01 DominikN

Hello @DominikN, thanks a lot for the contribution.

Can you detail the reasons why the old ESP toolchain is needed? Related: https://github.com/micro-ROS/docker/pull/76

@Acuadros95 in general this LGTM, what about all the style change at src/micro_ros_arduino.h?

pablogs9 avatar Jan 21 '22 07:01 pablogs9

@mergify backport main foxy

pablogs9 avatar Jan 21 '22 07:01 pablogs9

backport main foxy

🟠 Waiting for conditions to match

  • [ ] merged [:pushpin: backport requirement]

mergify[bot] avatar Jan 21 '22 07:01 mergify[bot]

In general I agree with @pablogs9:

  • It would be nice if the same toolchain could be used for all ESP projects
  • We should get rid of the style change of src/micro_ros_arduino.h, so the PR looks cleaner
  • I would leave stdout traces out, or maybe add a conditional debug interface in the future

Acuadros95 avatar Jan 21 '22 09:01 Acuadros95

Hi guys, in the https://github.com/micro-ROS/docker/pull/76 - I added a toolchain for building microros static library based on the same toolchain version as used for a current version of Husarnet for ESP32.

We are in the process of making Husarnet working as a standard Arduino library working with the latest releases of https://github.com/espressif/arduino-esp32 . Right now Husarnet uses this fork: https://github.com/husarnet/arduino-esp32. Main issue behind using a custom fork was a poor support of IPv6 in the past, but it has changed (also due our PRs) and in the following months we will get rid of our fork.

By this time I will also make a PR to get rid of esp32_5_2_0 folder (and building with older toolchain) in this repo.

I would like to present Husarnet, micro-ROS and ESP32 during my presentation at ROS 2 Embedded Working Group working with micro-ROS based on the https://github.com/micro-ROS/micro_ros_arduino and not on my fork.

DominikN avatar Jan 21 '22 11:01 DominikN

In general I agree with @pablogs9:

* It would be nice if the same toolchain could be used for all ESP projects

* We should get rid of the style change of `src/micro_ros_arduino.h`, so the PR looks cleaner

* I would leave stdout traces out, or maybe add a conditional debug interface in the future
  1. This is a temporary workaround, that will not brake anything but will allow to make working Husarnet TCPv6 transport in platformio projects out of the box. In the previous message I wrote why I did it.
  2. Yea, sorry guys, my auto code formatting settings where different than yours. What code formatter do you use? Everybody have different prefferences when it comes to code editor, but what do you think about providing settings for VSC in the repo (in .vscode folder that is automatically handled by VSC after opening a project)? Something like that I have added to one of my previous projects: https://github.com/DominikN/ros2_docker_examples/tree/main/.vscode
  3. Totally agree.

DominikN avatar Jan 21 '22 11:01 DominikN

Hi @DominikN,

we have been discussing this internally and the best option is to wait until we can have this built with the mainline compiler version. As soon as this transport is compatible with the version of the ESP32 compiler we will merge this.

Regarding the EWG, do not worry about using local branches, we can say that all the shown features will be available as soon as the compiler issue is solved.

pablogs9 avatar Jan 24 '22 07:01 pablogs9

Sure, that's fine. Thanks for your reply.

DominikN avatar Jan 25 '22 09:01 DominikN