-
Notifications
You must be signed in to change notification settings - Fork 15
Development environment
The best way to try euphonium is to flash a prebuilt version. However, if you want to build it yourself, or help out with development, you will need a few dependencies to get this project to build.
First, a required step is to setup all of the dependencies required to build the web UI.
-
nodejs
in version of at least 14 yarn
Installation of both is platform specific, but mostly just comes down to installing them through a package manager.
Depending on the target platform, esp32 or cli targets differ in required dependencies.
-
python
withpip
pip3 install grpcio-tools
- PortAudio library
- OpenSSL library
both can be installed with a package manager.
-
esp-idf
in version4.4-rc1
. Please follow Espressif's guide.
For a desktop run, please run the following commands
cd targets/cli
mkdir build && cd build
cmake ..
make
This will output a binary euphoniumcli
which can be later executed to run the platform. The web-ui will be available on port 80
.
For ESP32 target, please run following commands (with esp-idf in the PATH)
cd targets/esp32
sh build_recovery.sh
sh build_app.sh
For full flash (recovery + app)
sh flash_all.sh {serialport}
For app only flash
sh reflash_app.sh {serialport}
For spiffs only flash (berry scripts, webui, configuration)
sh reflash_spiffs.sh {serialport
There are a few tricks to make the development faster
Every flash of the spiffs partition will reset the internal configuration. It's a bit of a pain when dealing with esp32, as you have to deal with reconfiguration of the system through the AP network with every flash. To avoid this, you can preconfigure the WiFi settings (any any other setting!) to be included in the flashed partition.
To configure WiFi, create a file inside of euphonium/scripts
folder, named wifi.config.json
, containing following data
{
"ssid": "YOUR NETWORK SSID",
"password": " YOUR NETWORK PASSWORD"
}
After rerunning the reflash_spiffs
script WiFi is going to be preconfigured :)