/MidiPedalBoard

USB Midi Pedal board based on STM32 with 10 buttons, 8 potentiometers and 2 expression pedals

Primary LanguageCOtherNOASSERTION

MidiPedalBoard

Overview

This repository contains a USB Midi Pedal board based on a STM32F407G-DISC1 with 10 buttons, 8 potentiometers and 2 expression pedals

It is USB MIDI class-compliant, so you can add MIDI port without drivers(Windows, iOS, Android, etc...)

Sample Image

The USB-MIDI Class Driver is based on mimuz-tuch project (c) D.F.Mac. @TripArts Music.

I got great inspiration from 2 open source projects:

Specifications

Features

  • 10 buttons (9 general purpose + Page2)
  • 8 potentiometers (7 general purpose + Mode)
  • 2 expression pedals
  • USB MIDI class-compliant

How to use it

  • Page2/Looper Btn
    • When activated (Led on) use second page for other buttons
    • No CC is sent when pressed
  • Mode potentiometer (#8, the last one)
    • Left => Normal mode: Btn sends 127 when activated (Led On) and 0 on deactivation
    • Right => Bypass mode: Btn sends 0 when activated (Led On) and 127 on deactivation
    • Half => Disable potentiometers CC
    • No CC is sent when rotated
  • Button CC values (excluded Looper/Page2 Btn)
    • {51, 52, 53, 54, 55, 56, 57, 58, 59}
    • {61, 62, 63, 64, 65, 66, 67, 68, 69}
    • Buttons 65 to 69 (Second page, front buttons) are stateless and only send value=127, this is better for some looping commands
  • Potentiometers CC values (excluded Mode Pot)
    • {18, 19, 20, 21, 22, 23, 24};
  • Expression pedal CC values
    • {16, 17};

Building Information

Making hardware

See Presentation

Basically you should work some wood:

Sample Image

And connect about 30 wires:

Sample Image

Building software

Install STM32CubeIDE, import Project files. When building the binary file will be created in /stm32/Debug/ or /stm32/Release/

File Location

NOTICE

VID/PID

Vendor ID(VID) and Product ID(PID) in <usbd_desc.c> should be unique pair for each USB devices. Default VID 0x1209 and PID 0xDACA is experimental IDs from http://pid.codes . When distributing or selling, you must get your own IDs, and change to your own IDs in order to avoid conflicting to other USB devices.

Copyrights

Author

(c) 2021 Daniele Caltabiano ( Website )

License

  • USB MIDI Class Driver: CC BY 4.0
  • STM32 CubeF4: BSD-3-Clause based.
  • USB buffer libs: GPLv3
  • Other Codes, Hardware, Schematic: MIT

See also LICENSE.md

Update History

  • (2021/05/21)
    • Added documentation in pdf format, improved readme and fixed code structure.
  • (2021/05/19)
    • Initial Release.