Notes on the steps I took to add my apps to phazorville.
I believe the first time I used the arduino ide and the “old” method to create a firmware then likely manually uploaded it.
I tried today to use the “new” way. I did the following:
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
python3 get-platformio.py
Which installed pio at :~/.platformio/penv/bin/pio
I could then compile with:~/.platformio/penv/bin/pio run -e pewpewpew
This placed the compiled firmware at :.pio/build/pewpewpew/o_C-phazerville-v1.7_phz-410d674dirty.hex
I added my own applets by putting the code into :
O_C-Phazerville/software/src/applets
and updating:
Update July 5, 2025
start fresh on macos:
git clone https://github.com/djphazer/O_C-Phazerville.git
cd O_C-Phazerville
ensure ~/.platformio/penv/bin/
exists
cd software
complile with:
~/.platformio/penv/bin/pio run -e prod
or to upload after build
press the program button on the teensy on the module
~/.platformio/penv/bin/pio run -e prod -t upload
you’ll need the teensy loader installed on your computer.
To add a new applet:
1. Create a new AppletName.h file in :
O_C-Phazerville/software/src/applets/
all the code (yes, the code) will go in the .h file
2. edit O_C-Phazerville/software/src/hemisphere_config.h
– add new lines for :
#include “applets/AppletName.h”
DeclareApplet<AppletName>{314, 0x02},
From Claude:
Steps to Add a New Applet
Create the applet file in /software/src/applets/YourAppletName.h
Use the boilerplate template from software/src/applets/Boilerplate.h.txt as your starting point
Implement required methods:
applet_name() – Return name (max 9 chars)
Start(), Controller(), View()
OnEncoderMove(), OnDataRequest(), OnDataReceive()
SetHelp()
Add include to software/src/hemisphere_config.h
Register the applet in the AppletRegistry with a unique ID and category flags
Optionally add documentation in docs/_applets/ The system uses inheritance from HemisphereApplet base class and template-based registration. Each applet gets a unique ID and category flags (0x01=Modulator, 0x02=Sequencer, etc.).