Code Monkey home page Code Monkey logo

hdzero-goggle's Introduction

HDZero Goggle Firmware

Environment Setup

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.

Devcontainer Setup

This repository supports the vscode devcontainer integration. To get started install docker, vscode and the decontainer extension. A prompt to reopen this repository in a container should appear.

Native Setup

CMake is required for generating the build files. A bash script is supplied to take care of the bootstrap process:

~/hdzero-goggle$ ./setup.sh

Building the Firmware

In either of the above scenarios the firmware can be built via make. An appropiate vscode build task ships with this repository as well.

~/hdzero-goggle$ cd build
~/hdzero-goggle/build$ make clean all -j `nproc`

The firmware is generated as ~/hdz_goggle/code/out/HDZERO_GOGGLE-x.x.x.bin Where x.x.x is the OTA_VER.RX_VER.VA_VER

Loading the Firmware

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
/HDZGOOGLE

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

Building the Emulator

Goggle source code can be built natively on the host machine and used for debugging.

Library required

Requires build-essential tools and SDL2 development libraries (libsdl2-dev for debian) to be already installed.

sudo apt-get install build-essential libsdl2-dev

Build and Run

~/hdzero-goggle$ mkdir build_emu
~/hdzero-goggle$ cd build_emu
~/hdzero-goggle/build_emu$ cmake .. -DEMULATOR_BUILD=ON -DCMAKE_BUILD_TYPE=Debug
~/hdzero-goggle/build_emu$ make -j `nproc`
~/hdzero-goggle/build_emu$ ./HDZGOGGLE

Emulator Keys

a = right button press w = wheel up s = wheel down d = wheel center press Use F11 to toggle full screen where applicable.

Support and Developer Channels

Join the official Discord server here:

https://discord.gg/kGsnEDMb2V

Or the official Facebook group:

https://www.facebook.com/groups/hdzero

hdzero-goggle's People

Contributors

ligenxxxx avatar sumolx avatar master92 avatar pkendall64 avatar nikolas-s avatar pitts-mo avatar bkleiner avatar ychen1206 avatar shannonbaker avatar razzeee avatar cruwaller avatar knifa avatar krizmyass avatar rquellet avatar creecedev avatar evilc avatar nerdcopter avatar saidinesh5 avatar fog-yamato avatar kissultra avatar asyncnomi avatar lavalit avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.