- Notifications
You must be signed in to change notification settings - Fork6
Open source firmware for MIDIPLUS SmartPAD MIDI controller
License
Apache-2.0, MIT licenses found
Licenses found
DerFetzer/open-cleverpad
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
An open firmware forMIDIPLUS SmartPAD (being a pretty cheap launchpad-like MIDI-controller)
This project is developed and maintained byDerFetzer.Feature and pull requests are very welcome!
- All pads, encoders and the buttons at the bottom generate standard MIDI messages when used.
- Pads support 64 colors instead of only 8 with the stock firmware.
- All LEDs can be fully controlled via MIDI messages.
- Left buttons set the channel for encoder messages.
- Right buttons set the channel for the pads.
- Switch the channels via MIDI messages.
Have a look at the includedArdour MIDI map to get an idea of how it could be used.
- Pads:
note_on/note_off channel=m note=0-64 velocity=127/0wheremcan be set with the buttons on the right - Buttons at the bottom:
note_on/note_off channel=8/9 note=0-3 velocity=127/0 - Encoders:
control_change channel=n control=1-8 value=v time=0wherencan be set with the buttons on the left andvworks according toenc-lhere by default - Set encoder parameters:
- send
control_change channel=n control=112, value=0-4to change the behavior of encoders of channelnto0=enc-r,1=enc-l,2=enc-2,3=enc-bas describedhere.When the value is4encoders send absolute values. The current internal value can be set with the corresponding encoder message. - send
control_change channel=n control=113, value=1-33to change the value multiplier of encoders of channelnwhen they are moved fast (the default is 10)
- send
- Set encoder channel: send
control_change, control=110, value=0-7 - Set pad channel: send
control_change, control=111, value=0-7 - Set LED color: send
note_onwith the same channel and note as the pad/button generates,note_offdisables the LED with any values- Buttons at the bottom: any
valuegreater 0 enables the LED - Pads:
valueis interpreted as0b0bbggrr
- Buttons at the bottom: any
- [Only once] This firmware is designed to be used with theHID-bootloader.
- Download therepository.
- Compile the bootloader by executing
make smartpadinside./bootloader/F1folder or use the precompiled binary from thebin folder. - Important: The original firmware will be lost after this step and cannot be restored!
- Flash the resulting binary via SWD as describedhere or with any other method you are comfortable with.
- In order to enter bootloader mode you have topush and hold the first pad in the third row during power up for about 1 second.
- Use the precompiled binary from thebin folder or run
cargo objcopy --release -- --bin open-cleverpad -O binary open-cleverpad.binto generate the binary from source. - Flash the .bin file using
hid-flashtool from./clifolder with something like the following:hid-flash open-cleverpad.bin tty0. Just use any serial device and ignore messages likeerror, counldn't open [/dev/tty0].
The used STM32F103RBT6 unfortunately has flash read protection activated andthere is a function that resets the microcontroller when there is activity on the SWD interface.
There is an update mechanism in the original firmware but I did not look at it for long.Current updater can be downloaded atMIDIPLUS homepage.
s0len0id assembled a great documentation of stock firmware functionhere.
In order to remove read protection you have to mass erase the device,so the original firmware will be lost.You have to try during startup with something like the following:
$openocd -f /usr/share/openocd/scripts/interface/stlink-v1.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg -c init -c"reset halt" -c"flash banks" -c"stm32f1x mass_erase 0" -c"stm32f1x unlock 0"- For reverse engineered information about the used hardware seehardware folder.
rust-stdcomponents (pre-compiledcorecrate) for the ARM Cortex-M3targets. Run:
$rustup target add thumbv7m-none-eabiThis crate is licensed under either of
Apache License, Version 2.0 (LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT orhttp://opensource.org/licenses/MIT)
at your option.
This crate is based on thecortex-m-quickstart template.
Unless you explicitly state otherwise, any contribution intentionally submittedfor inclusion in the work by you, as defined in the Apache-2.0 license, shall bedual licensed as above, without any additional terms or conditions.
Contribution to this crate is organized under the terms of theRust Code ofConduct, the maintainer of this crate,DerFetzer, promisesto intervene to uphold that code of conduct.
About
Open source firmware for MIDIPLUS SmartPAD MIDI controller
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.