Reflashing Jetson Nano Development Kit 4GB#

This chapter describes how to re-flash the on-board computer.

What you will need

  • Completed Software dependencies installation with Ubuntu running natively.

  • An NVIDIA Jetson Nano Developer Kit (4 GB) with eMMC memory.

  • A power source for the Jetson Nano.

  • A Micro USB cable with data connections that can connect to your computer or a Micro USB to USB type A adapter.

  • A method for shorting pins (e.g., jumper, F-F Dupont cable, stripped wire, paper clip, screwdriver, etc.).

  • (optional) An HDMI cable and screen.

  • (optional) A serial cable that can connect to your computer (to see detailed UART logs).

What you will get

A re-flashed NVIDIA Jetson Nano Developer Kit (4 GB) with eMMC memory.

Attention

After running this procedure, it will be necessary to re-flash the SD card. The minimum sufficient firmware version is 1.4.2.

Warning

Do not proceed with these instructions unless your Jetson Nano is affected by the booting problem described below. This procedure applies to a specific use case and will irreversibly alter your Jetson Nano’s on-board filesystem. Instructions to revert the effects of these instructions are not provided. If uncertain, follow Troubleshooting or reach out to the Duckietown team.

Procedure#

What will this procedure do?#

This procedure will re-flash the Jetson Nano’s eMMC memory so that it can boot from the SD card.

When should this procedure be performed?#

This procedure should be performed if your Duckiebot does not seem to perform the first boot procedure and, upon connecting the Jetson Nano to a screen with an HDMI cable, you only see an NVIDIA logo (white or black background) occasionally flickering (constantly rebooting). Upon further debugging (e.g., looking at the UART logs during boot), the 4 GB Jetson Nano seems to be recognized as a 2 GB Jetson Nano. This procedure will not be useful in fixing problems such as your Duckiebot not connecting to a network or moving.

Why should this procedure be performed?#

“Recent” (post February 2025, to the best of our knowledge) 4 GB Jetson Nanos have a different memory module that requires a specific patch to be recognized. Without installing this patch, the on-board memory is not recognized correctly and “nothing works”.

A Duckiebot that does not boot correctly, connected to a screen that shows an NVIDIA logo.

Fig. 49 A Duckiebot that does not boot correctly, connected to a screen that shows an NVIDIA logo.#

Note

This procedure is normally performed by the Duckietown team at the manufacturing stage, so that users do not need to worry about it. Occasionally, issues arise that slip through quality control, requiring the Jetson Nano to be re-flashed by the user. In particular, Jetson Nanos received between February and April 2025 may need to be re-flashed.

Preparing the flashing environment on your computer#

Note

This step needs to be performed only once, even if you are re-flashing multiple Jetson Nanos.

On your computer, run:

mkdir -p /tmp/duckietown/jn/overlay
cd /tmp/duckietown/jn
curl -LO "https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.6/t210/jetson-210_linux_r32.7.6_aarch64.tbz2"
curl -LO "https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.6/t210/tegra_linux_sample-root-filesystem_r32.7.6_aarch64.tbz2"
curl -Lo overlay_32.7.5_PCN211181.tbz2 "https://drive.google.com/uc?export=download&id=1Kmocz6tPmEaepPIvwKc3bT7MpJqpwkvv"
tar -xpf jetson-210_linux_r32.7.6_aarch64.tbz2
tar -xpf tegra_linux_sample-root-filesystem_r32.7.6_aarch64.tbz2 -C Linux_for_Tegra/rootfs
tar -xpf overlay_32.7.5_PCN211181.tbz2 -C overlay
cp overlay/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg Linux_for_Tegra/bootloader/t210ref/BCT
cp -r overlay/Linux_for_Tegra/kernel/dtb/. Linux_for_Tegra/kernel/dtb
./Linux_for_Tegra/apply_binaries.sh
tar -xpf overlay_32.7.5_PCN211181.tbz2 -C Linux_for_Tegra

Preparing the Jetson Nano and connecting it to your computer#

To start, make sure that the Jetson Nano is turned off. If your Duckiebot is already assembled, remove all USB cables plugged into the Jetson Nano and HUT (detach the battery).

Note

The fan in the figures below is unnecessary for this procedure and can be ignored.

A Jetson Nano Developer Kit (`4 GB`) with a third party carrier board.

Fig. 50 A Jetson Nano Developer Kit (4 GB) with a third party carrier board.#

Identifing the FC REC pin#

To (over)write the Jetson Nano’s (carrier board…) on-board memory, which in the case of this document is assumed to be a 16 GB eMMC hard drive, we need to turn the Jetson Nano on while in forced recovery mode. To do so, we need to first identify the FC REC pin placed underneath the Jetson Nano module, near the SD card slot, as shown in Fig. 51.

The `forced recovery` mode pin is labeled `FC REC` and needs to be shorted with the pin labeled `GND`.

Fig. 51 The forced recovery mode pin is labeled FC REC and needs to be shorted with the pin labeled GND.#

Shorting the FC REC and GND pins#

The Jetson Nano will boot into forced recovery mode when the FC REC and GND pins are shorted before it turns on. Short the pins using, for example, a jumper or cables (neither are provided in the Duckiebox).

Note

Any expedient to bridge those two metal pins with a conductive material (e.g., metal) will work (e.g., using the tip of a screwdriver, a paperclip, etc.). Make sure to only bridge these two pins while the Jetson Nano is turning on. After it has booted, you can safely remove the connection.

The `FC REC` and `GND` pins on a Jetson Nano being shorted using a jumper cable.

Fig. 52 The FC REC and GND pins on a Jetson Nano being shorted using a jumper cable.#

Preparing to turn the Jetson Nano on#

These Jetson Nanos can only be powered through the DC jack, or the 5V and GND GPIO pins. While DC jack cables are not included in the Duckiebox, we can use the HUT to conveniently access the GPIO power pins. Place the HUT onto the GPIO pins of the Jetson Nano, making sure to perfectly align the HUT’s header with the Jetson Nano’s pins to avoid erratic behaviors.

Connecting the HUT to the GPIO pins of the Jetson Nano.

Fig. 53 A HUT connected to the GPIO pins of a Jetson Nano.#

Establishing a data connection between the Jetson Nano and your computer#

Connect the Jetson Nano to your computer using a Micro USB cable with a data channel.

Note

Not including the USB type A to USB type A connection of the “Y” shaped cable, the USB cables provided in the Duckiebox are power only. If you have a USB type A to Micro USB adapter, you can use the USB type A to USB type A connection of the “Y” shaped cable.

A Micro USB cable connected to the Jetson Nano.

Fig. 54 A Micro USB cable connected to a Jetson Nano.#

The "Y" shaped cable provided in the Duckiebox.

Fig. 55 The “Y” shaped cable provided in the Duckiebox.#

(optional) Further debugging probes#

Note

This passage is not necessary, and can be skipped.

To gain a better understanding of what will happen in the next steps, you can perform either or both of the following two steps:

  1. Connect the Jetson Nano to a screen through an HDMI cable (not shown in the figure below).

  2. Connect the Jetson Nano to your computer through a serial connector (example), making sure to “flip” the transmission (TXD) and receiving (RXD) channels between the connector and the Jetson Nano (i.e., connect: GND ↔︎GND, TXD ↔︎RXD, RXD ↔︎TXD). These pins are on the same array as the FC REC pin and are labeled UART TXD and UART RXD, respectively.

A UART serial cable connected to a Jetson Nano.

Fig. 56 A UART serial cable connected to a Jetson Nano.#

To visualize the UART logs on your computer, run:

sudo apt install screen
screen /dev/ttyUSB0 115200

Note

Depending on your computer, the number after ttyUSB could be different. Check /dev/tty* after establishing the UART connection and powering the Jetson Nano to find the right one.

Turning the Jetson Nano on#

Connect a 5 V 2 A charger to the 5VRASPI port of the HUT.

Note

You should see a (previously faint) green LED shining brightly on the HUT and a new green LED on the Jetson Nano, near the power cable, turn on.

A Jetson Nano being powered through a HUT's `5VRASPI` port.

Fig. 57 A Jetson Nano being powered through a HUT’s 5VRASPI port.#

Checkpoint 1#

Attention

This checkpoint is critical!

Test

From your computer, run:

lsusb

Expected Result

...
Bus 001 Device 012: ID 0955:7f21 NVIDIA Corp. APX
...

Attention

If a line containing NVIDIA Corp. APX is not present, the Jetson Nano is not connected to your computer. Follow Troubleshooting.

Flashing the Jetson Nano#

From your computer, run:

sudo ./flash.sh -x 0x21 jetson-nano-emmc sda1

Note

The resulting output should look like the following:

...
[ 207.0591 ] Flashing completed

[ 207.0592 ] Coldbooting the device
[ 207.0622 ] tegradevflash --reboot coldboot
[ 207.0635 ] Cboot version 00.01.0000
[ 207.0673 ]
*** The target t210ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.

Note

The Jetson Nano should restart immediately after the process has completed. If you have an HDMI cable and screen plugged in and would like to see if the process worked, remove the short from the FC REC and GND pins while the board is being flashed (it is safe to do so).

Checkpoint 2#

Test

Method 1: Remove the jumper, data cable and power cable from the Jetson Nano, connect it to a screen using an HDMI cable, plug the power cable back in and then look at the screen.

Expected Result

A green NVIDIA logo with a white background followed by boot information (as long as it moves past the NVIDIA logo, you may proceed).

Test

Expected Result

Your Duckiebot boots successfully.

Attention

This procedure updates the NVIDIA Jetpack version to 4.6.6, requiring a Duckiebot with firmware version 1.4.2 or newer. You can find the firmware version number in the Dashboard or from the name of the file downloaded when initializing the SD card (e.g., dt-nvidia-jetpack-v1.4.2-4gb).

Troubleshooting#

Troubleshooting

SYMPTOM

The Jetson Nano is not showing up after running lsbusb.

RESOLUTION

Make sure that it is in forced recovery mode and that the Micro USB cable connected to your computer has a data channel.

Troubleshooting

SYMPTOM

The Jetson Nano takes over a minute or two to show up with after running lsbusb.

RESOLUTION

The Micro USB cable connected to your computer could be finnecky, as the process should be instantaneous. Therefore try using a different cable.

Troubleshooting

SYMPTOM

The Jetson Nano shows up after running lsusb but if I unplug and re-plug the data cable, it does not show up anymore.

RESOLUTION

Remove the power cable before plugging the data cable back in.

Troubleshooting

SYMPTOM

The Jetson Nano shows up after running lsusb but the flashing procedure gets stuck.

RESOLUTION

Make sure that you are running Ubuntu natively.

Troubleshooting

SYMPTOM

I believe that I have completed the procedure successfully but the Jetson Nano still does not work (e.g., a static NVIDIA logo on screen). In particular, I see from the logs that it is recognized as a 2 GB Jetson Nano.

RESOLUTION

The overlay patch has not been applied correctly. Try again, while following the instructions more carefully.

Additional information#