You don’t need another computer to program your Arduino. You can do it from your Jetson! Looky here:
Background
Having a true microcontroller in addition to a Jetson Dev Kit can be very powerful combination. Microcontrollers are great at many low level, real time tasks that can be difficult for a SBC like a Jetson or Raspberry Pi due to the differences in architecture.
In the microcontroller world, the Arduino is what Makers turn to when the need strikes. The Arduino is the number one ecosystem in the world for interfacing with sensors and different devices. And while the Arduino is available in many configurations with different levels of sophistication, at heart they are microcontrollers. Which means that higher level, more sophisticated computing devices prove useful when more compute intense tasks arise. Tasks like machine learning and vision processing, for example.
That’s why the Jetson and the Arduino make a good pair. If your application requires a lot of I/O with the real world, a lot of compute power, and low energy consumption, the duo are hard to beat!
While the Arduino IDE in the Ubuntu ARM repository does not currently support the Jetsons, it’s easy to install pre-built versions from the Arduino website. As usual, the source for the IDE is available on Github. Thanks to Stephen Warren (a NVIDIA engineer), the Arduino supports the Jetson Dev Kits starting with version 1.8.9. The current release is 1.8.10.
Installation
While you can install the using the directions on the Arduino website, the JetsonHacksNano account on Github has a repository installArduinoIDE. The repository includes an install script.
$ git clone https://github.com/JetsonHacksNano/installArduinoIDE
$ cd installArduinoIDE
$ ./installArduinoIDE.sh
After a couple of minutes, the installer script will ask you to reboot the Jetson. There is a desktop shortcut to launch the Arduino IDE (you can also lauch it from the Ubuntu Dash). After selecting your board and port from the tools menu, you’re ready to go!
Conclusion
It’s nice to have the option of programming the Arduino from your Jetson. It makes things much simpler if everything is wired together and you don’t have to rewire everything to upload a different script to your Arduino.
Notes
- In the video, a Jetson Nano is shown
- L4T 32.2.1/JetPack 4.2.2
- Arduino SDK/IDE 1.8.10
4 Responses
Hi JetsonHacks, thanks for all of your great content. Your tutorials helped give me the confidence and know how to start working with the Jetson Nano. Would you recommend using the Arduino IDE on the Jetson Nano as shown in the video to couple the Nano with a WS2813 RGB Individually Addressable LED Strip, or could you recommend any solutions involving just the Nano?
Thanks again for your work!
Thank you for your kind words. The easiest solution is an Arduino/Teensy interface. The Nano *can* do what you are looking for, but requires some systems level type of work. See the Adafruit article NeoPixels on Raspberry Pi. On the Nano you would have to enable the PWM signal by modifying the default device tree on the Jetson. Good luck on your project!
in the git repository, it directs to a Jetson Nano. I am using a Jetson TX2. Is there any difference in functionality between the Nano and TX2 when it comes to putting the arduino IDE on it?
The script installs the aarch64 version of the IDE, which will run on all of the Jetsons. It should run on your TX2. Thanks for reading!