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.
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:
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:
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
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:
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:
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:
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
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!