Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This chapter will cover the basics of connecting to the NavQPlus.
For a quick setup guide follow the instruction on the previous chapter. For more detailed information follow the hardware reference section.
Connecting to the serial console
The NavQPlus kit comes with an FTDI type USB-C to UART adapter cable and a small adapter board for this cable to the serial port JST-GH connector . This adapter is used for a serial debugging console on the NavQPlus.
Executive Summary: Connect the included USB to UART adapter to the UART2 port on the NavQPlus, and open your favorite serial console application (e.g. PuTTy for Windows users, Minicom on Linux). Open a serial console and set the baud rate to 115200. If there is no output on the screen, try to press enter to get a log-in prompt.
Connect USB cable+ adapter to your computer. Then plug in the JST-GH connector from the adapter into UART2 (A53 Debug/Console) port on NavQPlus.
Use your favorite serial console software such as PuTTY (Minicom, MobaXTerm, or screen) to access the NavQPlus serial console directly.
The baud rate is 115200.
The serial console may be used to observe the full boot sequence including uboot. BONUS!: The terminal program on your PC should not disconnect on reboot or reset of the NavQPlus since the connection at the PC is really to the USB-UART adapter board (inside the TTL-232R-USB cable).
If correct code was loaded, and the boot switches also set back to the correct boot source (SDCARD vs EMMC), then in the terminal software you should see the Linux boot details printing out.
The system will ask for the username and then the password. The default username/password is as follows:
At this point you can start using Linux on the NavQPlus.
How to boot the board
NavQPlus should boot normally after applying power. While booting, the device will output detailed status information to the serial console, accessible on the UART2 connector. Using the console can provide invaluable debugging information that is difficult to find elsewhere. Once the boot process has completed, the system console is also available by starting an SSH session over (USB-)ethernet or Wi-Fi.
There are DIP switches on board that select the boot source as either SD card or on-board eMMC memory. Ensure their settings match your intentions.
If the applied voltage at PWR_IN is too low, the boot process could hang upon initializing the CPU in the Linux kernel. Please make sure that your power input is 5-20V. The NavQPlus has relatively low current requirements and typically will not draw more than 4 watts of power when all on-chip peripherals are enabled, however the board may also supply power to external devices. Ensure that your power source is able to maintain a stable voltage level at the requested current.
If powering from USB-C it is possible with some Linux kernel/boot configurations that the USB-C port hardware is limiting current, or switches modes as software progresses. This may result in a hang or a reboot. If you suspect this is the case, try powering from the PWR_IN port instead.
The boot process starts with U-Boot, loading the device trees in the boot partition and loading the Linux kernel. If you desire to observe the complete boot process, you will need to monitor the serial console output on UART2 by using the provided USB to serial converter cable.
Once the NavQPlus has booted to the shell, the default login credentials are as follows:
Username: user Password: user
Powering NavQPlus
NEVER use USB-C to USB-A cables without a hub or blocking device. In this embedded platform software has complete control over USB-PD and it is POSSIBLE to provide power >5V on the USB-C connector without handshaking. USB-A is only 5V tolerant and this can damage certain devices.
There are two ways to power the NavQPlus. You can power it through the PWR IN
port or through the middle* USB-C port (*dependent on software image loaded)
It is preferred to power the board through the PWR IN port for highest reliability.
This is because it is possible that the USB-C power management logic may be configured in software in a manner that limits current or resets the power management in the time between the bootloader running and the Linux image running . This leads to unexpected behavior at power up. If you suspect something unusual is occurring on power up or you see the board rebooting, please try powering through PWR_IN first.
The PWR IN port accepts an input in the 5V-20V* range. (Technically higher (24V?), but has not been fully validated or characterized)
The PWR IN port pinout schematic is as follows: (center pin is unused). Pin 1, 2 are the power input, Pin 4, 5 are negative (GND).
The input power voltage connection PWR_UNREG is 5V-20V
If you encounter unexpected resets, it could be any of the following issues
That your power supply is not able to provide enough current for the board or the board + peripherals resulting in a brownout condition when internal blocks, interfaces, peripherals turn on and draws additional current.
Supplying power with a LiPo battery may help debug if you have a bench or wall adapter power supply limitation.
The PWR IN port is connected to an onboard power control switch that can sense reverse current spikes on the power supply and de-assert a power good signal, causing a reset. This may happen when another device is sharing the power supply and "glitches" the power supply when plugged in live. A reverse blocking diode and additional bulk capacitors on a power distribution board or inline with the power cable may be desired.
As mentioned above, when powering from USB-C, the specific Linux image should be checked to ensure that the Linux Kernel is not resetting the USB power when it starts up after the bootloader is completed. (i.e the bootloader configures USB-C, then the Linux Kernel may also be set to re-configure/reset the USB-C also and in the process switching it off again.
Changing the NavQPlus firmware and booting from SD Card or EMMC flash
When new images are released, we will provide a link to them. To flash NavQPlus, normally there are two options. You can either flash the eMMC chip on-board, or flash the SD card included with the kit. The eMMC runs faster but is not removable like the SD card. The SD card is easily removeable and can be programmed quickly and directly from a PC. It is up to you to choose which one to use.
The official source for linux on NavQPlus *will eventually be NXP Linux Factory, however at the time of this writing it is a work in progress.
This NXP Linux Factory enablement is a work in progress. Meanwhile, links to images that can be downloaded and used on the NavQPlus are provided below. Building from scratch using NXP Linux Factory and Yocto requires some advanced knowledge and is not documented at this time. NavQPlus is similar to the 8MPlus EVK, but with some minor changes to the memory type, and the dtb files describing the board interfaces.
See below for instructions on how to flash the SD card or eMMC.
The following images are prepared by 3rd parties and support the NavQPlus.
For use with iRobot Create3 (AKA Turtlebot4)
For use with NXP MR-B3RB
https://www.emcraft.com/products/1222#releases
https://staging.voxelbotics.com/releases/
https://github.com/rudislabs/navqplus-create3-images/releases/
The NavQPlus typically comes with a 16GB SD card or larger that you can flash with the pre-built Ubuntu 22.04 image. See below for instructions to flash your SD card on each platform.
You must have an SD card reader available on your system to perform these instructions. Low-cost USB dongles or hubs with SD Card slots are available.
Several free programs are available to flash an SD card with an image, we use Win32DiskImager.
Once you have downloaded Win32DiskImager, insert your SD card into your computer, open the program, and select the navqplus-image-{vX.X}.wic
file as your image.
Next, select your SD card under Device.
Make CERTAIN that your Device selection is the correct drive letter for your SD card!!! You don't want to erase your hard drive! Only click "Write" after double checking for the correct drive letter!
Once the flashing process has finished, you should get a message saying that the write was successful.
To flash your SD card with the image you downloaded in step 1, we suggest using dd
.
To do this, open a terminal and navigate to the folder that you downloaded the
navqplus-image-{vX.X}.wic
file.
Once you are there, insert your SD card, and find the device path for it. Typically, it will be something like /dev/sdX
on Linux or /dev/diskX
on Mac.
Be VERY careful that you select the correct drive path when using dd to flash your SD card. You can confirm with the "Disks" app on Ubuntu or the "Disk Utility" app on Mac.
Once you have found your device path, run the following command in your terminal to flash the SD card:
Once this is done, your SD card will be flashed with the image.
Remember to check that your boot switches are set to boot from SD.
To flash the eMMC on your NavQPlus, you will need to download uuu, a tool created by NXP to flash NXP boards. Make sure to download the correct application for your platform. The file titled "uuu" with no file extension is a binary file for use on x86/64 Linux.
After downloading uuu, find the boot switches on your NavQ+ and flip them to the "Flash" mode.
Connect NavQ+ to your computer using the centermost USB-C port.
Run the following command to make sure that the NavQ+ is recognized by uuu:
<TODO: Add image of output>
You should see that there is a device detected. If so, you can continue flashing. To flash your board, use one of the commands below depending on how the image was supplied:
When flashing the EMMC an additional .bin file is needed in addition to the .wic file. Recently the latest uuu was upgraded so these two files can now be included in a single zip and used without uncompressing. You may be supplied the .zip or the two separate files.
The SDCARD image also has a .wic file extension, so be sure you are using the correct file! You cannot flash this to EMMC without the corresponding .bin file, but you can use the EMMC .wic file to program an SDCARD, it is the same image.
Once this process has finished, make sure that the flash was successful by comparing to the image below. If so, configure your boot switches to boot from eMMC.
TODO: Add image
To connect NavQPlus to a WiFi network, use the nmcli
command. The interface is relatively straightforward, to connect with nmcli
, run the following command:
If struggling to connect to a network, see if it is visible by running:
Once connected to the WiFi network the NavQPlus will continue to connect to that network even after a reboot.
The netowork connections will be saved and NavQPlus will automotically connect to these networks when they are present. Note that the priority of connections can be set as well as removing connections. For more information see the nmcli linux command. https://manpages.ubuntu.com/manpages/noble/en/man1/nmcli.1.html
To see what Wifi network the NavQPlus is currently connected to run without sudo
:
nmcli device wifi list
Or if running with sudo
it will be the network preceeded with a star.
Once setup to connect over a local WiFi network, SSH into the NavQPlus over WiFi by running:
Or depending on network setup:
Take an image using the camera
NavQPlus models typically ship with one Omnivision camera module which is either from Innowave or Google Coral Camera. 3rd parties may also have other cameras. An additional camera can also be added to the second MIPI port. Note that other USB or Ethernet cameras can also supply image data to the NavQPlus. Please refer to NXP.com documentation for i.MX 8M Plus for details on camera usage in LInux.
To take an image using an attached MIPI camera module on NavQPlus, use the gstreamer
command. An example command is as follows:
Setting up the NavQ+ to connect to WiFi
An alternative tool to connect NavQPlus to your local Wi-Fi network is the nmtui
command. This command presents a GUI in your terminal to connect to Wi-Fi. The interface is relatively straightforward. To run nmtui
, run the following command:
The preferred method as mentioned earlier is to use the non-GUI way to connect to Wi-Fi or manage your network connections, use nmcli
by running the following command:
Once you are finished connecting to your local WiFi network, you can exit the application. Your NavQPlus will continue to connect to this WiFi network even after a reboot.
Connecting the NavQ+ with ethernet
The NavQPlus has the ability to connect via ethernet in several different ways.
NEVER use USB-C to USB-A cables without a hub or blocking device. In this embedded platform software has complete control over USB-PD and it is POSSIBLE to provide power >5V on the USB-C connector without handshaking. USB-A is only 5V tolerant and this can damage certain devices.
Through the IX Industrial® Type A port. The provided IX to RJ45 adapter cable will allow connecting to RJ45 *Preferred
Using the USB-C port with "gadget bode" Ethernet over USB
Through the 100 Base T1 automotive ethernet. A media converter such as RDDRONE-T1ADAPT, or a switch such as MR-T1ETH8 would allow connection to a typical RJ45 100Base-T port.
Using a USB-C Ethernet adapter dongle
Here is an example of how the NavQ+ can also be connected through the USB-C port. For this method, a separate adaptor is required to convert the USB-C to RJ45.
To be able to connect to the board through SSH it must be connected to the same network. This is possible by using a router and connecting your network cable to it then the NavQ+ and your PC to it. With this connection SSH can be established between your PC and the NavQ+. Below is an example of how the router could be connected.
Not all USB to Ethernet adapters are supported . In some cases you may also find that the board reboots when powering up with an unsupported adapter. While still sub-optimal, you can try circumventing the reboot by unplugging the ethernet and letting the board boot first. Once it is booted up you can retry attaching the adapter and connecting ethernet.
After everything is connected correctly a connection can be made through SSH. This is done with the following code, on your PC terminal:
or you can input the IP address of your NavQ+:
You will be asked to input the password.
The default password is user.
You can also find your IP address using the command: ifconfig
At this point you may want to consider following steps to connect the NavQPlus WiFi to a local network.
Using DIP switches to set boot source
NavQPlus can be configured to boot from either SD card or eMMC. It also has a flash mode that allows you to flash either the eMMC or SD card over USB-C®. See the table below for the boot switch configuration.
(NOTE: This boot switch table is referenced from several locations in this gitbook)
Mode | Switch 1 | Switch 2 |
---|---|---|
SD
ON
ON
eMMC
OFF
ON
Flash
ON
OFF