The firmware can either be built in a devcontainer or natively on a linux machine.
Note: decompressing the repository in Windows system may damage some files and prevent correct builds.
This repository supports the vscode devcontainer integration. To get started, install docker, vscode and the devcontainer extension. A prompt to reopen this repository in a container should appear.
CMake is required for generating the build files. A bash script is supplied to take care of the bootstrap process:
~/hdzero-goggle$ ./setup.sh
In either of the above scenarios the firmware can be built via make. An appropiate vscode build task ships with this repository as well.
Compiling HDZero Goggles:
~/hdzero-goggle$ cd build_goggle
~/hdzero-goggle/build_goggle$ make clean all -j $(nproc)
The firmware is generated as hdzero-goggle/build_goggle/out/HDZERO_GOGGLE-x.x.x.bin Where x.x.x is the OTA_VER.RX_VER.VA_VER
Compiling HDZero BoxPro:
~/hdzero-goggle$ cd build_boxpro
~/hdzero-goggle/build_boxpro$ make clean all -j $(nproc)
The firmware is generated as hdzero-goggle/build_boxpro/out/HDZERO_BOXPRO-x.x.x.bin Where x.x.x is the OTA_VER.RX_VER.VA_VER
The nix build system can be used to build the firmware on any linux system.
Make sure that nix is installed, and the flakes feature is enabled.
No bootstrapping or installation of any tools is required.
Use this command to build the firmware
nix build .#goggle-appAfter this succeeds, the firmware can be found under ./result in the current directory.
Firmware can be either flashed via goggle menu or alternatively be executed via the SD Card with a custom development script. An example of this development script is provided below. The goggles automatically checks to see if the develop.sh script exists in the root of the SD Card and if found develop.sh is then executed.
The following files must be placed in the root of SD Card in this example. This script will then check to see if HDZGOGGLE binary has been found during bootup and if found then executed.
Otherwise, if the HDZGOOGLE binary is not detected, the goggles will continue to load the built-in executable which was previously flashed.
SD Card File Hierarchy:
/develop.sh
/HDZGOGGLE
Development script (develop.sh):
#!/bin/sh
# Load via SD Card if found
if [ -e /mnt/extsd/HDZGOGGLE ]; then
/mnt/extsd/HDZGOGGLE &
else
/mnt/app/app/HDZGOGGLE &
fi
Goggle source code can be built natively on the host machine and used for debugging.
Requires build-essential tools and SDL2 development libraries (libsdl2-dev for debian) to be already installed.
sudo apt-get install build-essential libsdl2-dev
Emulator support for both Goggle and BoxPro is supported by setting the appropriate compilation switches.
~/hdzero-goggle$ mkdir build_emu
~/hdzero-goggle$ cd build_emu
~/hdzero-goggle/build_emu$ cmake .. -DEMULATOR_BUILD=ON -DCMAKE_BUILD_TYPE=Debug -DHDZ_GOGGLE=ON -DHDZ_BOXPRO=OFF
~/hdzero-goggle/build_emu$ make -j $(nproc)
~/hdzero-goggle/build_emu$ ./HDZGOGGLE
a = right button press
w = wheel up
s = wheel down
d = wheel center press
Use F11 to toggle full screen where applicable.
Join the official Discord server here:
Or the official Facebook group: