Hey, I’ve done this. It’s not too difficult, but took a while to figure out.
When I did it I was too chicken to overwrite the shipped SD card, so I bought another one.
That took some of the stress away. The newer image is large so I recommend a 64GB card.
- You should start with the 4.4.1 JetBot image. That’s way easier.
I installed the 4.4.1 Jetbot SD card image from Nvidia and followed the instructions to install the wifi module from here:
- You need to apply some fixes. You need at least the wifi driver:
https://learn.sparkfun.com/tutorials/ad … jetson/all
( I needed to install dkms, this obviously needs to be done over ethernet, but if I recall correctly you can use ssh if you can figure out the ip address the jetbot gets )
I also did the following to fix the pink tint to the camera:
wget https://www.dropbox.com/s/u80hr1o8n9hqe … s.isp?dl=0
mv camera_overrides.isp* camera_overrides.isp
sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/
as well as did this:
sudo sh -c 'echo "[keyfile]
unmanaged-devices+=interface-name:wlan1" > /etc/NetworkManager/conf.d/10-no-wlan1.conf ’
sudo service NetworkManager restart
To prevent network manager from crashing the wifi connection by scanning wlan1. That problem may have been unique to my network, but it can’t really hurt if you don’t plan on using the wlan1 interface.
For what it’s worth, the camera and network manager problem affected the sparkfun image also.
- Apply sparkfun files to the docker container:
Once you get that up and running the docker images will be working, but there are still a couple of fixes you need.
The jupyter container needs:
pip3 install sparkfun-qwiic
cp robot.py /usr/local/lib/python3.6/dist-packages/jetbot-0.4.1-py3.6.egg/jetbot/robot.py
cp motor.py /usr/local/lib/python3.6/dist-packages/jetbot-0.4.1-py3.6.egg/jetbot/motor.py
where robot.py and motor.py come from the sparkfun image (or the zip file on the product page).
You must copy while inside the container or you will be a sad, confused hacker. It works OK if you launch a terminal from the jupyter server.
(You can also copy the files to the host image, but you can’t really run much from there as a lot of the jupyter stuff is only in the container)
- Mess around with docker (optional)
You also need stats.py for the display container to get the oled working, but you need to access the separate display docker image to do that. That’s a bit more involved, I’m not going to go into that, but it’s easy if you are familiar with docker.
If you want to get fancy you can create your own docker image with the mods above on to of the exiting one. This is useful in case you want or need to restart the docker image. If you don’t create your own docker image you’ll need to re-apply the fixes when you enable/disable the docker images using the enable.sh disable.sh scripts inside the jetbot github area. On the other hand, as long as you don’t restart the docker container, the fixes will still be there (even after crash/reboot). I figured out how to do it, but I had to do a bit of reading to figure it out.