Installation Guide - nickywongdong/wombat GitHub Wiki

Forewarning

Distracted driving may lead to accidents. Please obey all traffic laws and do not operate the system if system operation will affect your driving safety or the safety of other road users.

By continuing with installation and usage, you agree to these terms.

Jetson TX2

Ensure that the Jetson TX2 has been flashed with all options checked. L4T R28.1 is required at minimum.

Whilst logged into the nvidia profile of the Jetson:

  1. Clone this repository in the home directory. The repository path should be: /home/nvidia/wombat/.
  2. cd into the home directory and make all scripts executable using find ./ -name "*.sh" -exec chmod +x {} \;.
  3. Run the following install scripts with sudo privileges:
    • In the source/navigation/acm directory, run: sudo ./installCDCACM.sh.
    • In the source/install_tools directory, run: sudo ./installdep_media.sh, sudo ./installdep_ui.sh, and sudo ./installdep_data.sh. The Jetson will now reboot after installdep_data.sh has finished executing.
  4. Acquire the maps binary for your region here.
  5. Rename the downloaded binary namaps.bin and move the binary to the /home/nvidia/axolotl/maps folder on the Jetson (create any intermediate directories that don't exist).

Building the Infotainment System

Building with QtCreator

  1. Open the project file axolotl.pro in the folder wombat/source/Axolotl1.1 with QtCreator. QtCreator should already have been installed with the install script.
  2. In QtCreator, select "debug" as the release mode and select "Build Project".

Building via Terminal

  1. Build the infotainment system by navigating into the source/install_tools directory and running sudo ./install_builder.sh.

After the project has been built, an executable named Axolotl should appear in a folder labeled build-axolotl-KitRules-Debug. Building from Terminal will also add a symlink to Axolotl on the desktop.

Streamlining Bootup

In Ubuntu system settings, set the nvidia profile to auto-login on boot. Additionally, add the nvidia user to the sudoers file, and ensure that nvidia gets no-password access to sudo.

Raspberry Pi

Only do the following if using Raspberry Pis that were not delivered with the project.

Whilst logged into the pi profile of Raspberry Pi:

  1. Clone this repository in the home directory. The repository path should be: /home/pi/wombat/.
  • Or, if setting up NOOBS on the Raspberry Pi, download the rpidashcams folder and save it to path /home/pi/wombat/source/data_logging (creating any directories that don't already exist) to make it easier for yourself.
  1. Navigate to the /source/data_logging/rpidashcams directory and execute make.
  2. Navigate to the /home/pi/.config/autostart directory and create the file: axolotl_startup.desktop (create any directories that don't already exist).
  • This file should contain the below:
    [Desktop Entry]
    Encoding=UTF-8
    Name=rpidcd
    Exec=lxterminal -e "/home/pi/wombat/source/data_logging/rpidashcams/rpi#dcd"
    Icon=lxterminal
    Type=Application
    Categories=Utility;
    
  • If the current Raspberry Pi is meant to be the front dashcam, change # in the exec line to: 1 (i.e. rpi1dcd).
  • If the current Raspberry Pi is meant to be the backup camera, change # in the exec line to: 2 (i.e. rpi2dcd)..
  1. Make the boot file executable using chmod a+r /home/pi/.config/autostart/axolotl_startup.desktop.
  2. Open /etc/wpa_supplicant/wpa_supplicant.conf. Below update_config=1, remove any existing network configurations and add the following network configuration:
network={
	ssid="AxolotlWLAN"
	psk="123123123"
	key_mgmt=WPA-PSK
}
  1. Run ifconfig eth0, and write down the HWAddr (you'll need this later). Make sure you distinguish which MAC address belongs to which Raspberry Pi (i.e. the Pi that controls the front versus rear camera).
  2. Run sudo reboot on the Raspberry Pi.

Note: Please make sure that any and all compilation for the Raspberry Pi programs are completed on the Raspberry Pi. This will ensure that the resulting executables are compiled for the Raspberry Pi's ARM processor.

Whilst logged into the nvidia profile of the Jetson:

  1. Replace the first two MAC addresses in bluetooth_addresses with the Bluetooth addresses you've found. The first MAC should be the MAC of the front Raspberry Pi, the second MAC should be the MAC of the rear Raspberry Pi.

For Fresh Installs

Before running a fresh installation of Axolotl, navigate to the /home/nvidia/wombat/source/data_logging/wmanager directory on the Jetson and execute sudo ./set_ap_n.

This only needs to be executed once; the Jetson will remember the settings for future boots.

OBD Integration

Only do the following if using a different Bluetooth dongle than the one delivered with the project.

Whilst logged into the nvidia profile of the Jetson:

  1. Determine the MAC address of the Bluetooth dongle and replace the third MAC address in bluetooth_addresses with that address.

Note: OBDLink MX Bluetooth dongle is recommended.

Backup Camera Integration

The system's backup camera is designed to turn on when gpio298 is driven high (ideally, this uses a low-current and low-voltage line to reverse lights). If gpio298 is driven low, the backup camera will automatically turn off after 5 seconds.

Deep Sleep / Auto Wake Integration

The system will automatically enter deep sleep when the gpio481 pin is driven high. To wake the system, simply touch the touchscreen.

Note: Some unexpected behavior may occur during system sleep.

Camera Mounting

Each RaspberryPi should be connected to a USB power source that provides at least 5V and 1.2A. A 12V car adapter supplying 2.4A of current is recommended at minimum.

Vehicle Speaker Integration

It is recommended to use an external stereo sound card adapter to connect the NVIDIA Jetson TX2's audio output with the auxiliary input of your vehicle. This will allow all system audio output to be sent to your vehicle and controlled by your vehicle's volume knob, whilst also allowing for auxiliary media input into the Jetson itself from an aux-capable media device. An inexpensive USB external stereo sound card adapter can be found here.

FM Antenna Integration

Please use a USB-based FM antenna. This antenna simply needs to be connected to the Jetson before you attempt configuration of GQRX.

Configuration

GQRX

Launch GQRX from the Ubuntu applications drawer. If launched for the first time GQRX will ask you for your antenna. Find your USB antenna and click OK. Afterwards, access View menu and ensure that RDS is checked. Ensure a "RDS" tab is visible in the lower right hand corner of GQRX before exiting.

VLC

Launch VLC from the Ubuntu applications drawer, configure as normal. Exit VLC after the VLC media player opens and the layout is to your liking.

WiFi

Execute the WiFi script: set_ap_n.sh with sudo privileges. This file is located in the source/data_logging/wmanager directory.

Note: The Jetson will no longer be able to access a WiFi network at this point. If you wish to return WiFi to its original client-mode settings, execute the set_client.sh script in the same directory.

Using External Storage

USB drives or SD cards are recommended for external storage. When connecting an external storage device to the system, make sure the storage device is formatted in a format compatible with Ubuntu 16.04.

The storage device must be named AXOLOTLDCV (case-sensitive) and the user must be logged into the nvidia profile of the Jetson. The system will automatically scan for the flash drive and use it for data logging if connected.

If an external drive is not detected, the system will resort to logging data onto internal storage.

Warning: The system will automatically delete older logs to make space for newer logs if storage space is low on the internal storage volume (this does not apply if using external storage).

Note: For the most consistent logging performance, please only connect one external drive with the name AXOLOTLDCV.