Compiling phazorville

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.).

Leave a comment

Your email address will not be published. Required fields are marked *