1 | 1 |
|
2 | 2 |
# <mmm-embed facet="title" nolink></mmm-embed>
|
3 | 3 |
|
4 | |
When the board is in <mmm-link path="/0x33.board/hacking">dev mode</mmm-link>,
|
|
4 |
When the board is in <mmm-link path="/0x33.board/hacking" facet="#dev-mode">dev mode</mmm-link>,
|
5 | 5 |
the `config.py` file can be changed to set advanced settings that are not available from the interface.
|
6 | 6 |
|
7 | 7 |
## dev mode
|
8 | 8 |
|
9 | |
<mmm-link path="/0x33.board/hacking">dev mode</mmm-link> can be enabled permanently by setting the `dev_mode` variable to `True`.
|
|
9 |
<mmm-link path="/0x33.board/hacking" facet="#dev-mode">dev mode</mmm-link> can be enabled permanently by setting the `dev_mode` variable to `True`.
|
10 | 10 |
Whatever the setting is, it can be overriden for a single boot by holding the menu key down while starting, which will invert the setting.
|
|
11 |
|
|
12 |
## SysEx key sync
|
|
13 |
|
|
14 |
SysEx key-press synchronization can be enabled by setting the `sysex_key_sync` variable to `True`.
|
|
15 |
See the <mmm-link path="/0x33.board/hacking" facet="#simulator">simulator section</mmm-link> on the firmware hacking page for more information.
|
11 | 16 |
|
12 | 17 |
## board parameters
|
13 | 18 |
|
|
19 | 24 |
|
20 | 25 |
The board parameters are:
|
21 | 26 |
|
22 | |
- `Matrix`:
|
23 | |
a class to instantiate for reading the key matrix. Will be constructed as `Matrix(*matrix_pins)` and
|
24 | |
should implement a `scan_for_changes()` generator method that yields `(int, bool)` tuples of the
|
25 | |
pressed key indices and the value they changed to when the state changes.
|
26 | |
- `matrix_pins`:
|
27 | |
a tuple of arguments to pass when initializing `Matrix`
|
28 | |
- `pixels_pin`:
|
29 | |
a CircuitPython GPIO Pin for driving the RGB lighting
|
30 | |
- `display_pins` (optional):
|
31 | |
a dictionary with `sda` and `scl` keys pointing to CircuitPython GPIO Pins connecting to the OLED module
|
32 | |
- `midi_pins` (optional):
|
33 | |
a dictionary with `tx` and `rx` keys pointing to CircuitPython GPIO Pins for UART MIDI
|
34 | |
- `i2c_pins` (optional):
|
35 | |
a dictionary with `sda` and `scl` keys pointing to CircuitPython GPIO Pins for external I2C I/O
|
|
27 |
- `Keyboard`:
|
|
28 |
a class to instantiate to start firmware execution.
|
|
29 |
The constructor will be passed the config module as the only argument.
|
|
30 |
After instantiation, `keyboard.run()` will be invoked.
|
|
31 |
|
|
32 |
This should usually simply be `hex33board.Keyboard`.
|
|
33 |
- `create_matrix(board)`:
|
|
34 |
a function to instantiate a key matrix object.
|
|
35 |
The returned object should implement a `scan_for_changes()` generator method that yields `(int, bool)`
|
|
36 |
tuples of the pressed key indices and the value they changed to when the state changes.
|
|
37 |
- `create_pixels(board, **kwargs)`:
|
|
38 |
a function to instantiate a `neopixel.NeoPixel`-like object for RGB lighting
|
|
39 |
- `create_display(board, **kwargs)`:
|
|
40 |
a function to instantiate a `displayio.Display`-like object for the main display
|
|
41 |
- `create_midi_usb(board)`, `create_midi_trs(board)`:
|
|
42 |
functions to instantiate `adafruit_midi.MIDI` ports
|
|
43 |
- `create_audio_out(board)`:
|
|
44 |
a function to instantiate a `audiopwmio.PWMAudioOut`-like object
|
|
45 |
- `create_i2c(board, **kwargs)`, `create_i2ctarget(board, **kwargs)`:
|
|
46 |
functions to instantiate `busio.I2C` and `i2ctarget.I2CTarget` instances
|