Using Jetson Orin Nano Dev Kit with ROBOTIS Hardware and Software

In the Volume 2 of my Engineer Books ( https://www.amazon.com/Projects-Guide-ROBOTIS-ENGINEER-2/dp/0999391860 ), I have documented how to use the Jetson Nano 2 GB with ROBOTIS hardware and software. Recently, I got a Jetson Orin Nano 8 GB, so I was curious about how well (or not well) all the previous documentations (ROBOTIS and mine) are “holding up” when the Orin Nano Dev Kit is used. This post and future updates are meant to update the ROBOTIS community with my successes and/or failures with the Orin Nano.

UPDATE 4/28/2023
I got my Orin Nano from Arrow, and right now it looks like most users using the SD-card-boot approach are stuck with an older firmware that will access RAM only up to 6.3 GB, instead of 7.2 GB supposedly. See Nvidia posts below:


The Orin Nano Boot Loader is of an UEFI type, so at boot up, the user can get into the Boot Manager if needed:

IMG_021252

Curiously enough, it thinks that it is an Orin NX instead of an Orin Nano and it reported 0 MB RAM.


The Orin Nano Dev Kit can still fit OK on an ENGINEER SPI robot:

IMG_021228


Via “dmesg”, the ROBOTIS USB modules such as USB2Dynamixel (FT232RL), LN-101 (FT232RL), BT-410 Dongle (FT232RL), and U2D2 (FT232H) are recognized and enabled OK as “ttyUSBx” devices.
If the CM-550 is plugged into the Orin Nano via a USB Cable, it is recognized as “ttyACM0”.


The pre-installed tools of interest to ROBOTIS users are of the following versions:
“gcc” is at V 9.4.0
“opencv4” is at V. 4.5.4

Consequently and regarding the installation of the DXL SDK, there are two changes in the corresponding MakeFiles (C and C++) that needed to be made before the DXL SDK can be compiled properly with the “make” tool – more details are posted here

Then the current Linux version of DXL SDK (3.7.51) can be compiled into the needed libraries

IMG_021268


I use CodeBlocks (V. 20.03) for my IDE. Surprisingly, the Project files provided with my Vol. 2 book can be used “unchanged” for the Orin Nano! This means that ROBOTIS users can keep on developing robot codes for the Nano 4 GB Dev Kit and then should be able to port them with minimal efforts to the Orin Nano when their budgets permit, or when they need higher performances or AI features.

So far, I used the following physical setup:

TestSetup_1

The CM-550 is used just to power the two 2XL-430s. A U2D2 is used to control the DXLs. And I used a DisplayPort display emulator so that I can used the Orin Nano in a “headless” mode via the “NoMachine” services setup on the Orin Nano (server) and a Windows 11 PC (client).

I have tried the sample program “sync_read_write.cpp” and it compiled and executed fine:

SWC_16ms_OK_3

Please note that the USB Latency Timer was still set at the default value of 16 ms.

I managed to change the USB Latency Timer to 1 ms:

latency_timer_change_confirmed

Please note that the DXL libraries had to be recompiled with the 1 ms value for the Latency Timer too (see this link DYNAMIXEL SDK ) .

The run-time performance is of course much better

SWC_1ms_OK

For my next update, I’ll try to make a complete SPI robot work with RPi Camera (V.2 and V.3) along with a CM-550 as co-processor to handle the Motion Pages for this hexapod. So stay tuned!