Jetson Nano reComputer J1010 — Expanding storage with SSD

RoboFoundry
4 min readJul 19, 2022

--

Here is a quick article documenting my journey of getting a new Seeed Studio J1010 reComputer that is basically a Jetson Nano you can purchase in cheapest form. A few weeks ago I saw an announcement from Seeedstudio that they were going to have these reComputers that have Jetson Nano in stock. I had been looking to get a Jetson Nano for a while but due to semi-conductor shortages and may be even crypto demand they were nowhere to be found at a reasonable price through mainstream outlets. So as soon as I saw the announcement, I jumped in head first and placed my back order for a J1010 recomputer for $199 plus shipping. The reComputer was actually delivered a week before the expected timeline so I was really pleased and wanted to start working with it.

J1010 with Samsung T7

Obviously, the first thing I wanted to do with my Jetson Nano was to use it as a robot computer as my goal is to build a Nanosaur based on Jetson. However, the J1010 only comes with a hard wired eMMC with 16 GB of storage and the ROS2 Humble docker image I tried to pull is about 10 GB so even after going through cleanup described to free up storage space on my reComputer I was not able to free up enough space to do anything significant or useful for ROS.

So I started to look at the alternatives to either add an SD Card or an external drive to expand the storage. My ultimate goal was to be able to boot Jetson from SSD drive and if that is not possible at least use the SSD drive as bigger storage combined with eMMC.

I came across a lot of good articles and youtube videos from jetsonhacks. These articles and videos below describe the process pretty well so I won’t repeat it here and it gets you 98% there but not 100%.

Cool thing about these articles and videos is — it guided me to SSD instead of thinking about an traditional spinning external drive or an SD Card reader. The SSD is much faster than both of those options and particularly the Samsung T7 recommended by Jetsonhacks can reach 1100 mb/sec, I have not verified this. I stayed with 500 GB version instead of going with 1 TB as Seeedstudio recommends to stay < 512 GB due to power requirements.

After purchasing and going through the steps to format and copy over the contents of eMMC and rootfs to SSD and finally rebooting the reComputer/Jetson Nano, I realized that it won’t boot from SSD drive as eMMC was still taking preference.

Important: It was a user error on part. Initially, I didn’t understand how the Jetson Nano boot process works but after reading the docs from Seeedstudio carefully I realized what I was doing wrong. My error was — I was modifying the extlinux.conf file on the SSD drive directories while I should have done that from /boot/extlinux/ directory while the Jetson Nano was booted from eMMC drive. This made sense because the first part of boot process still uses eMMC, it’s not modified. When the second part of boot process starts it is pointed to the partition on the SSD drive for further boot process using the extlinux.conf file we modified. After I modified the file on eMMC and rebooted everything worked fine and the lsblk command showed correctly that /dev/sda1 which is SSD drive was the boot partition.

I was able to download the ROS2 humble jetson image with machine learning capabilities by running this single command:

docker pull dustynv/ros:humble-ros-base-l4t-r34.1.1

Here is the link to full github repo with links to various docker images for different ROS versions.

After that you can start the container using standard docker commands to attach to container and start using ROS2. It comes with base version of ROS2 Humble so if you want to run demo nodes or some examples, you will have to install desktop version of Humble and then update your image so your changes persist for next time you start the docker.

This is pretty cool because you are running Ubuntu 18.04 on Jetson and on top of that you are running docker container that is running Ubuntu 22.04 which is required by Humble distro binaries.

I was also thinking about trying out Rocker which I have heard good things about from ROS developer community but I have not yet tried it myself.

Next step would be to build a small 3D printed mount that can be installed/braced on top of reComputer to hold the Samsung T7 in place if its mounted on a robot. That would be a cool project in itself.

Hope that helps someone else who is in a similar situation like me, in wading through the options available.

Conclusion

  1. If you are ordering reComputer go with at least J1020 or better so it comes with NVME drive option that you can choose the storage size of that additional drive. Do not make the same mistake as I did to order J1010
  2. I was able to meet my goal of at least using external SSD drive as boot drive with more storage.

Acknowldegments

--

--

No responses yet