Firmware to test the graetli beta hardware. The firmware has two modes, Debug and Normal (see below).
- This repository uses submodules for libDaisy and DaisySP. Thus, clone this project using
git clone --recurse-submodules git@github.com:IIP-Group/graetli-tester.git
(alternatively, if you already cloned this repository, you can run git submodule update --init --recursive to load the submodules).
- In order to match the flash size constraints, compile libDaisy with the
-Oscompiler flag. To this end, change line 75 in libDaisy/Makefile as follows:
- OPT = -O3
+ OPT = -Os
Don't forget to compile the library afterwards with task build_all. Alternatively, there are two other options to reduce flash usage, if certain features are unused:
- If the SD card is not used, then consider removing
USE_FATFS = 1from the project Makefile and remove the respective code in the project. - If the
printf()is not used with floats, then consider removingLDFLAGS += -u _printf_floatfrom the project Makefile.
The Debug mode only implements a simple bypass (with level detector), no UI communication is carried out. To enter the Debug mode, connect GPIO23 to GND on boot. After booting, GPIO23 is used to control the bypass relais:
- GPIO23 connected to GND: relais in fx enabled position
- GPIO23 open: relais in bypass position
In the Debug mode, the Seed implements a digital bypass with a level detector. If the peak input sample reaches -6 dBFS (= 50 %FS of the ADC), then the onboard Seed LED lights up for 1s.
In the Normal mode a wide variety of features are implemented to test all the hardware of the graetli (see table below).
- SD card: write and read test
| UI element | function |
|---|---|
| main screen | The main screen shows a ticker that lists the most recent UI actions that were detected, e.g., buttons pressed, MIDI message received, etc. |
| footswitch bypass | Controls bypass relais. |
| footswitch a | Controls Seed bypass mode: passthough, fx (clip), mute. |
| footswitch b | no function (except ticker message) |
| button preset | no function (except ticker message) |
| button menu | no function (except ticker message) |
| button page up | no function (except ticker message) |
| button page down | no function (except ticker message) |
| encoder rotation | Counts rotation steps. |
| encoder button | Press and hold the button to enter the light test modes: If the current number of encoder steps is non-negative, then the graetli UI will blink with all lights 10000 times (the current number of steps determines the blink delay). If the current number of encoder steps is negative, then the graetli will turn on all the lights for 10s. |
| poti 1 | CLIP GAIN: The gain applied before the digital soft-clip fx is applied. |
| poti 2 | DRY LEVEL: Controls the level for the analog signal bypass (implemented with analog potentiometer). |
| poti 3 | MIDI NOTE: Controls the current MIDI note being sent at the MIDI out. |
| poit 4 | EXP PDL: The LED ring shows the expression pedal input signal. |
| poti 5 | CV INPUT: The LED ring shows the CV input signal. |
| poit 6 | CV OUTPUT: Sets the CV output signal. |
| MIDI out | Sends note-on and note-off events when poti 3 is turned. |
| MIDI in | Received messages are show on the ticker. |
The graetli-tester firmware is released under the MIT open source license (for details see LICENSE document).