Tree @main (Download .tar.gz)
0x33.board firmware
See the documentation for information on how to use the firmware. The rest of this documentation contains information for firmware development.
Installation
- Make sure your board is in
dev_mode
(see below) - Copy all files from this repository to the CircuitPython drive
- Install the dependencies:
- using circup:
$ circup [--path /path/to/drive] install -r requirements.txt
- manually download the needed libraries from the Adafruit CircuitPython Library Bundle
and place them in the
lib
folder - Set hardware settings in
config.py
:
Import the module fromhex33board.boards
corresponding to the hardware revision you have.
Simulator
The simulator can be run directly in the repo and using CPython.
- (optionally) create and enter a venv
$ python -m venv --system-site-packages venv
$ source venv/bin/activate
The--system-site-packages
option allows you to use your distribution's Pillow packages. - install the dependencies:
$ pip install -r requirements.sim.txt
- run the simulator:
$ python simulator.py
- open the web interface (http://localhost:8000)
Boot modes
After a reset, boot.py
is executed. Depending on the dev_mode
value in config.py
and
whether the menu button (very top left of the board) is pressed, the board boots in different modes:
With dev_mode = False
and the button not pressed, the board starts in "normal mode".
The board will show up as a read-only flash drive on the computer,
and settings changed in the boards menu will be saved automatically.
When the button is pressed, the board starts in "dev mode". In this case the board shows up read-write on the computer and will autoreload as the firmware is changed. While "dev mode" is active, settings changed on the board aren't saved.
If dev_mode = True
in config.py
, things work the other way around:
the board goes into "dev mode" by default, but will start in "normal mode" when the menu key is held during reset.
Using the Simulator
Commit History
@main
git clone https://git.s-ol.nu/hw/0x33.board/firmware.git
- add 'simulator' board for testing on desktop s-ol 5 months ago
- automatically rename CPy drive s-ol 7 months ago
- detect dev_mode using storage.readonly (CPy 8) s-ol 8 months ago
- reorder menu s-ol 9 months ago
- add traditional piano layout s-ol 9 months ago
- add Jankó layout s-ol 9 months ago
- bottom-align value bar for settings s-ol 9 months ago
- menu.py cleanup s-ol 10 months ago
- move profile JSON files into subdirectory s-ol 10 months ago
- add .rw-test to gitignore s-ol 10 months ago
- handle profile setting separately s-ol 10 months ago
- group settings into categories s-ol 10 months ago
- add Slider16Setting for MIDI CH s-ol 10 months ago
- restore defaults when loading new profile s-ol 10 months ago
- fix profile saving s-ol 10 months ago
- detect & display dev_mode s-ol 10 months ago
- menu improvements s-ol 10 months ago
- basic i2c Key syncing s-ol 10 months ago
- add setting to flip everything 180° s-ol 10 months ago
- add r3 board rev s-ol 10 months ago
- fail gracefully if no display is installed s-ol 10 months ago
- auto-name virtual drive s-ol 10 months ago
- Use official USB VID/PID pair (1209:2609) s-ol 11 months ago
- license under MIT s-ol 1 year, 1 month ago
- add various RGB effects s-ol 1 year, 2 months ago
- dont crash in boot.py with stock CircuitPython s-ol 1 year, 2 months ago
- use config.py for board rev selection, dev mode s-ol 1 year, 2 months ago
- add board revision abstraction s-ol 1 year, 2 months ago
- update for PCB rev defcd99 s-ol 1 year, 2 months ago
- automatic formatting s-ol 1 year, 3 months ago