THE PRE-FLASHED IMAGE.
Every NeoRacer ships with an image on its SSD that boots straight to JetPack 6.2.1, Ubuntu 22.04.5 LTS, Python 3.10.12, ROS 2 Humble, and JupyterLab running as a . So you can power on, SSH in, install the neoracer_ros2_driver, and start writing code on the same day it arrives.
WHAT RUNS AT BOOT.
Four services auto-start at boot once the neoracer_ros2_driver is installed: the robot stack itself (neoracer-teleop), the watchdog that restarts failed nodes, the health dashboard on port 8080, and JupyterLab on port 8888. Every on the ROS 2 driver page is live from power-on, with no terminal involved.
# brings up controller, gamepad_node, mux_node,
# throttle_node, camera, led_matrix, lakibeam1
racecar teleopbrings up the full driver stack: thecontrollernode owns the ESP32 serial link (publishes /imu, /odom, /joy and subscribes to /motor), plusgamepad_node,mux_node,throttle_node,camera,led_matrix, and the Lakibeam .- The watchdog supervises every node and restarts a dead one. The web dashboard at
http://neoracer.local:8080shows per-node liveness, topic rates, and Jetson temperature. - JupyterLab logs route through
journalctl -u neoracer-jupyter -f, no separate log directory to track.
FLASH A FRESH CARD.
The car ships flashed. You'll only re-flash to bring one back to a known-good state, and it is a two-stage job: the base system image first, then the driver setup on top.
bash# 1. Flash the base system. The car boots from its NVMe SSD, and the base # image is Seeed's reComputer J401 build of JetPack 6 (Ubuntu 22.04). # Follow Seeed's reComputer J401 flashing guide, which runs from a Linux # host over the Jetson's USB-C recovery port. # 2. On first boot, follow Getting Started from the top: # console + internet, clone neoracer_ros2_driver, bash scripts/setup_all.sh # That installs ROS 2, the services, JupyterLab, and the student library. # 3. racecar setup networking gives the fresh car its networks back.
FIRST-BOOT DEFAULTS.
Hostname
192.168.10.100 on the cudy router, or 10.42.0.1 on its own access point.Default user
neobotics. If the car will share a classroom space, it's worth setting a new one on day one.Time + locale
Wi-Fi access point
SSH IN AND VERIFY.
bash# 1. Confirm you're in (after joining the car's neoracer-[Car ID] network). ssh racecar@192.168.10.100 # or: 10.42.0.1 on the access point # racecar@neoracer:~$ # 2. JupyterLab service is healthy? racecar service status # all four active # 3. ROS 2 graph is up? (run "teleop" first) ros2 topic list # /camera /scan /imu /odom /battery /joy /drive # 4. Try a single LiDAR scan. ros2 topic echo /scan --once | head -20
RECOVERY AND RE-FLASH.
Recovery is a re-flash of the NVMe over the Jetson's USB-C recovery port, the same two-stage flow as section 02: base image first, then the driver setup on top. Your calibration files live on the MCU (microcontroller unit)'s flash, not on the SSD, so the car is ready to drive the moment it boots.
- Boot loops usually point at a corrupted image on the NVMe rather than a Jetson fault, so a re-flash is the first thing to try.
- AP not coming up after re-flash? Connect an ethernet cable, SSH via
racecar@neoracer, runracecar setup networkingto rebuild the access point. - Lost the password? A re-flash is the way back in. The password lives on the NVMe, so a fresh image gives you the default again.
- Calibration gone? It's not. The motor trim and servo center live on the MCU. Re-flashing the NVMe does not touch them. See Motor trim.
