Developing Custom Firmware
For the Jetson Orin Nano
Flashing
Notes: - Current Design constraints:
- Based off of the availability of parts in JLCPCB. Possibility of parts not being found or existing. -
- Flashing is done with the flash.sh script through the following command
$ sudo ./flash.sh <board> <rootdev> where board is the actual board (Jetson-Nano-XX, etc.)
rootdev determines what type of device is being flahed. Use mmcblk0pc1 to flash a local storage device (eMMC or SD card) - TO begin flashing, put the device into force recovery mode and then press reset. - Run the flash script using the previous command specified.
Flash using a convenient script: - To avoid having to specify the rootdev and the board configurations, can use the custom flashing script:
-
Using GPIO Pins to program protocol: - you can use the rasberry pi libraries to interface with the pins, configuring them to whatever layout that is needed.
- Example: it is possible to direclty interface with the i2c system in the nano by using the linux terminal itself.
Current Game Plan:
- mess around with the programming of the GPIO pins: Figure out if there are ways to choose access teh data that the GPIO pins are Or Receiving.
Test if it is possible to reconfigure the pins on the jetson on the firmware side
Build Time: - On a single Nvidia Nano, it takes about 45 mins - 1 hour to complete the build. The build is encrypted through RSA. The source is still accesssible and every time changes are made to the source files and want ot be reflected, the build files have to be remade. Current goal (Figure out if there's a way to make specific build files to decrease development time).
Notes: - Need to install libssl-dev (depends on whether the certain packages are included when running the script)