Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Open source firmware for MIDIPLUS SmartPAD MIDI controller

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

DerFetzer/open-cleverpad

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!

Features

  • 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.

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/0 wherem can 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=0 wheren can be set with the buttons on the left andv works according toenc-lhere by default
  • Set encoder parameters:
    • sendcontrol_change channel=n control=112, value=0-4 to change the behavior of encoders of channeln to0=enc-r,1=enc-l,2=enc-2,3=enc-b as describedhere.When the value is4 encoders send absolute values. The current internal value can be set with the corresponding encoder message.
    • sendcontrol_change channel=n control=113, value=1-33 to change the value multiplier of encoders of channeln when they are moved fast (the default is 10)
  • Set encoder channel: sendcontrol_change, control=110, value=0-7
  • Set pad channel: sendcontrol_change, control=111, value=0-7
  • Set LED color: sendnote_on with the same channel and note as the pad/button generates,note_off disables the LED with any values
    • Buttons at the bottom: anyvalue greater 0 enables the LED
    • Pads:value is interpreted as0b0bbggrr

Installation

  • [Only once] This firmware is designed to be used with theHID-bootloader.
    • Download therepository.
    • Compile the bootloader by executingmake smartpad inside./bootloader/F1 folder 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 runcargo objcopy --release -- --bin open-cleverpad -O binary open-cleverpad.bin to generate the binary from source.
  • Flash the .bin file usinghid-flash tool from./cli folder 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].

Developer Documentation

  • 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.

Dependencies

  • rust-std components (pre-compiledcore crate) for the ARM Cortex-M3targets. Run:
$rustup target add thumbv7m-none-eabi

License

This crate is licensed under either of

at your option.

Credits

This crate is based on thecortex-m-quickstart template.

Contribution

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.

Code of Conduct

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

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp