II.3.3. Writing Button Event Handler

Button’s event handler should be written if any change of the button’s state/value should trigger some task. For example, if we have to indicate the change by LED indicator or to compute some intermediate parameter value. To write the handler, we have to define the handler function void onButtonChange(int buttonIndex) inside the effectModule descendant class. Here is the example code: […]

Read more

II.3.2. Adding Foot Switch Control

Adding Main Foot Switch Button. Main user switch port (H13) is always available for the main button function. From the software point of view, the main button object is always available as button[0], but it need to be set up inside the init() function.button[0].mode is BM_TOGGLE, BM_MOMENTARY, or BM_TAPTEMPO. Without setting it up then its value will stay in its […]

Read more

II.3.1. Writing Simplest Effect Processor

The simplest effect processor is an input-output device without any control. When the device is powered, it would simply work to process the input signal and deliver the processed signal to the output. Here is the steps to write such simple effect processor: Include the library header <blackstomp.h> Define an effect module derived from effectModule class with process() and init() […]

Read more

II.2.2. Compile, Upload, and Run The Example Sketch

Connecting The Pedal Before compiling and uploading the compiled sketch, the pedal should be connected to the PC/laptop: Connect the PC/laptop to the pedal using USB-to-TTL cable or converter. On the Arduino IDE, go to menu Tools > Port and select the correct port (which is associated with the USB-to-TTL cable/converter. Compiling and Uploading To compile ad upload the compiled […]

Read more

II.2. Getting Started

Using the development-mode pedal, developing and testing a digital effect application is very easy. Please note that this guide uses the latest Arduino IDE version (1.8.13 at the time of writing), so if you use other version then it might has different details of the application menu. II.2.1. Setting Up The Board Configuration Turn on the PC/laptop and run the […]

Read more

II.1.3. Using ESP-IDF

Advanced development need to use ESP-IDF tools chain because it has more controls of the Arduino core and features. ESP-IDF framework with Arduino component enables the implementation of secure boot and flash encryption. It also enables the direct use of ESP-DSP library component (provided by Espressif) to take the benefit of ESP32-machine-optimization on various DSP functions. The latest Arduino component […]

Read more

II.1. Development Tools and Library Installation

Developing Blackstomp effect application can be done using Arduino IDE (integrated development environment) or ESP-IDF tools chain. Arduino IDE is recommended for easy and fast setup and compilation, but ESP-IDF tools chain is recommended for advanced user. Arduino IDE doesn’t support secure boot implementation for ESP32, but once the developed sketch in Arduino IDE has been successfully compiled and run, […]

Read more

I.10. Printed Circuit Board (PCB)

You can design your own PCB since we have provided the complete schematic diagram of the circuit, but you can always support the Blackstomp development by purchasing our BLACKSTOMP Multi Purpose (BSMP) PCB (as shown in the Figure 7) from Deeptronic. You can also buy the fully assembled board (Figure 8), or the ready-to-use development-mode pedal (Figure 9). They are […]

Read more

I.9. Recommended Development-Mode Pedal Wiring

The recommended wiring for development-mode pedal is shown in the Figure 6. The schematic diagram shows the wiring of the off-board components. Here is the bill of (off-board) materials: NUM PART NAME QTY. Connection Reference Connection Description 1 DC socket for 9V DC input. 1 H7.1 DC input 2 SPST (normally open, momentary) foot switch 2 H13.2, X2.4 Main and […]

Read more

I.8. UART (Serial TTL) and MIDI Port

The universal asynchronous receiver transmitter (UART) is primarily used to write the program into the flash memory, but it also handles other functions. The same port is also used for debug monitoring and MIDI communication. The J1 jumper connector is provided to enable alternate use of UART and MIDI interface: To use an UART/Serial interface, connect the serial pinout of […]

Read more

I.7. I2C Port

I2C port X1 is designed primarily for 4 pin I2C OLED display, which can be connected directly to the port (see Figure 5). Beside interfacing with the display, I2C port can used to expand the controls and LED indicators as well. As the result, you can implement almost unlimited number of control knobs, switches, buttons, and indicator LEDs through I2C […]

Read more

I.6. Encoder Port

Encoder port X2 can be connected to a rotary encoder with click button (EC11 or compatibles). Figure 4 shows the EC11 connection to this port. If we don’t use any rotary encoder then this port can be used for connecting 3 push button as described in the previous section (see section I.4, Figure 2).

Read more
1 2 3 4 5 9