Skip to content

Board Bring Up Software

andy diller edited this page Jul 31, 2023 · 26 revisions

Bringing Up the Software Development Enviroment for FujiNet

News

May 2023 - moved project to PIO 6.x

This document will take you thru the steps needed to build, modify and deploy the FujiNet project onto the ESP32 system that is the heart of the FujiNet Hardware Device. Even if you are builing a raw devkit with an ESP32 dev board Board Bring Up Hardware or if you are using a retail FuijNet purcahsed from one of the many vendors selling them, you will have to build the same project and upload it to your device.

You can build new versions of FujiNet firmware on:

  • Linux
  • OSX
  • Windows

The #FujiNet firmware is being written in Platform.IO. If you want to help work on it, you'll need to build and flash a version of the code on your hardware.

If you are upgrading there is a guide

Guide for upgrading from 3.4 to 6.1

Building in CLI

Tired of waiting for VSCode to do unimaginable things with PIO and waste cycles of your CPU and your brain? If so just run build with the nice build script included with every git clone! The script was created by Mark J. Fisher back in Dec. 2022. Thanks Mark!

Quick Setup:

start a terminal; go to your repo

dillera@trashcan ~/code/fujinet-platformio_6.1 (master) $ export PATH=$PATH:$HOME/.platformio/penv/bin
dillera@trashcan ~/code/fujinet-platformio_6.1 (master) $ ./build.sh  -um

Above is the absolute minimum to build a Firmware image and flash. PIO will detect any file changes and compile/build as required. You can see from the full set of commands below that you can build without flashing as well as flash the UI (filesystem) when required. If you are using these commands it's best to not have VSCode running at the same time as there will be contention with files. The same goes with the FujiNet-Flasher app- don't run it at the same time you are using these commands to monitor the output via USB or there will be device contention.

More Details:

 $ ./build.sh  -h
Usage: build.sh [-b|-e ENV|-c|-m|-x|-t TARGET|-h]
   -b       # run build
   -c       # run clean before build
   -d       # add dev flag to build
   -m       # run monitor after build
   -u       # upload image (device code)
   -f       # upload filesystem (webUI etc)
   -x       # exclude dep graph output from logging
   -e ENV   # use specific environment
   -t TGT   # run target task (default of none means do build, but -b must be specified
   -h       # this help

Of course these commands assume you have configured your platformio configuration setup for a target and have the proper usb device set for your local system. These will not work with the default sample ini file.

If you just clone the repo and try to build you will see this:

(master) $ ./build.sh  -b
NotPlatformIOProjectError: Not a PlatformIO project. `platformio.ini` file has not been found in current working directory (/Volumes/512M2/code/fujinet-platformio). To initialize new project please use `platformio project init` command

Do not run the platformio project init command just copy the sample file:

(master) $ cp platformio-sample.ini platformio.ini

Now edit the platformio.ini file as described here in the wiki guides; set a target and set your USB device.

Clone this wiki locally