USB 2.0 and 3.0 on Jetson NANO Custom Baseboard

I am designing a custom baseboard for the Jetson NANO module. So far, I successfully designed the Gigabit Ethernet interface, the supply to the board (including power sequencing and on/off logic) as well as HDMI and DP for display.
Now I am in the stage of USB design. I want a USB 2.0 port and a High speed USB 3.0 port. My plan is to use the USB0 interface for the USB 2.0 port (USB Type-A female) host only, the USB1 interface for the USB 3.0 backward compatibility with USB 2.0 and finally, the USBSS interface for USB 3.0.
The Jetson NANO official design guide provide the following schematic:


My only concern if it’s possible to omit the micro USB-B at USB0 (I am aware that this is used for USB recovery mode which I am not planning to use).
The only reason I am not using the USB2 interface for USB2.0 is because I needed for the M.2 Key E for Wi-Fi.
Am I missing something? This is the conceptual design:

I am no hardware guy. But how will you expect this module to get flashed?

Hello man, It is by default flashed through SD Card. Boot from USB is an additional feature. I have never used the micro USB to flash the Jetson NANO official carrier board that I have.

Hi,

I think you are not in the right direction.

  1. First, you can use sdcard to boot because you are lucky that your bootloader software didn’t get broken. If that bootloader software get broken, then your sdcard won’t save it anymore. You must flash the board with usb port.

  2. We expect a custom board is for emmc module but not not sdcard module. If this is just for personal use, then I am okay with that.

1 Like

This answers all my questions.
What I am planning to do then is:
1- Implement a USB 3.0 hub so I can have 2x USB 3.0 ports (backward compatible with USB 2.0)
2- Implement a USB 2.0 Device mode to boot from USB
3- Implement an M.2 E-Keyed slot for Wi-Fi (which will use one USB 2.0 interface)
This design will use all USB 2.0 and 3.0 interfaces.

Regarding the storage and considering this design, what might be the best option for storage? Do I have enough interfaces to add a storage medium?

Hi,

There is a mistake in 2nd point.

2- Implement a USB 2.0 Device mode to boot from USB

This is not “boot from usb”. The board is either boot from sdcard or the emmc. The role of the usb port here is to let the other x86 host PC flash data to sdcard or emmc through usb. Nothing is boot from “usb”.

The rest of design looks okay to me.

You didn’t answer my questions that is this just for your personal use or you will use emmc nano module for production.

If you cannot understand what is emmc module, I can explain more. Just make sure your really understand it before making conclusion.

I am designing a custom baseboard for production (in a robot system for the company I work in), I feel like I am a little bit lost after our discussion on the forum.
I want to have Wi-Fi capabilities and 2× USB3.0 ports.
I can’t understand eMMC, flash and boot from USB and it is confusing for me. I have been reading through the design gyide for a week now and I am getting nowhere.
Could you provide me with some explanation and guidance on this?

What I understood from you reply is that the USB0 will be used to flash the storage medium (NVMe, SD Card or eMMC module). I also agree about the need of a storage unit other than the SD card for reliability. Am i missing something?

There are two kinds of modules from NVIDIA.

First one has only sdcard slot on it. This one is not sold alone and always comes with NV devkit board.

Second one has only internal emmc storage on it which has no sdcard slot. This one is sold alone and target for production.

When you do your production, there won’t be a sdcard slot and will only be emmc on it.
For this case, you need to use recovery mode to flash your emmc. No sdcard image can help in your case.

The current situation is we should firstly discuss the basic point. How will you flash your emmc on the jetson nano module if you don’t want to design a recovery port on usb0?

Sorry in advance if I misunderstood you. I just feel you are totally not aware of the need to design recovery mode port on USB0.

I understood now, I need the USB 2.0 port (device mode USB0) for USB recovery.
I will make my design so I expose 1x USB 2.0 for flash, and 2x USB 3.0/2.0 from USBSS.
The remaining USB interfaces are 1× USB 2.0.
I will use it for the M.2 Key-E module for Wi-Fi.

With this design in mind, what changes do i need to make for the kernel to recognize my hardware?

document over here:

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3273/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/adaptation_and_bringup_nano.html#wwpID0E0DM0HA

1 Like

You are aware of the fact that Jetson Nano software support is dead? You are stuck on Jetpack 4 and Ubuntu 18.04 (which doesn’t get updates from Ubuntu since May 2023) and Kernel 4.9 als long as you don’t use unsupported hacks.

You really should target Orin Nano. This will receive at least Ubuntu 22.04 (support until May 2027) and Jetpack 6, is much more powerful, has 3 or 4 PCIe and 3 USB3.

Downside: no EMMC any more. You will need an extra NVME SSD. $ per TB has gotten lower on SSDs than on EMMCs, and this might be the reason why NVidia left the EMMC footprint unpopulated.

Other then that ist quite similar. You still need USB0 for flashing, pinout has changed slightly, but not too much.

1 Like

Thank you for the insight, really helpful.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.