https://github.com/etiennetremel/stm32-sequencer
Modular music CV/Gate sequencer prototype using the STM32F103C8 chip (blue pill)
https://github.com/etiennetremel/stm32-sequencer
electronic music rtic rust sequencer stm32 stm32f103
Last synced: about 1 year ago
JSON representation
Modular music CV/Gate sequencer prototype using the STM32F103C8 chip (blue pill)
- Host: GitHub
- URL: https://github.com/etiennetremel/stm32-sequencer
- Owner: etiennetremel
- Created: 2022-11-06T14:37:13.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-15T20:16:45.000Z (over 3 years ago)
- Last Synced: 2025-03-26T09:51:18.631Z (over 1 year ago)
- Topics: electronic, music, rtic, rust, sequencer, stm32, stm32f103
- Language: Rust
- Homepage:
- Size: 2 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Music sequencer based on stm32 blue pill
========================================
> Modular music CV/Gate sequencer STM32F103C8 (blue pill) written in Rust.
## Overview

Keyboard is a custom PCB mounted with Cherry MX keys. It is based on the
following schematic:


## Pinout
Currently only 2 DACs in use:
```
STM32 PIN
PA0 COL0 (keypad)
PA1 COL1 (keypad)
PA2 COL2 (keypad)
PA3 COL3 (keypad)
PA4 COL4 (keypad)
PA5 COL5 (keypad)
PA8 ROW0 (keypad)
PA9 ROW1 (keypad)
PA10 ROW2 (keypad)
PB13 DAC1 & DAC2 SPI SCK (MCP4921)
PB15 DAC1 & DAC2 SPI MOSI (MCP4921)
PB12 DAC1 CS (MCP4921)
PB14 DAC2 CS (MCP4921)
PA6 LED data in (WS2812)
```
## Keyboard control
| Key | Description
|---------------|--------------------------------------------------------------
| Shift+Fn1 | Switch between recording mode: gate or cv
| Shift+Fn2 | Clear steps
| Shift+Forward | Next track
| Shift+Back | Previous track
| Fn1+Forward | Toggle play/stop
| Fn1+Back | Toggle play/pause
| Fn1+Step | Select track number
| Fn2+Step | Randomize CV or Gate with probability based on the selected step
| Forward | Next octave
| Back | Previous octave
## Development
### Getting started
```bash
cargo install cargo-embed
rustup target add thumbv7m-none-eabi
cargo embed --release
```
### Debugging
```bash
cargo embed
```