Skip to content

Commit a0a5bba

Browse files
author
Jan Knipper
committed
Initial import
0 parents  commit a0a5bba

File tree

5 files changed

+441
-0
lines changed

5 files changed

+441
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/.vscode

Makefile

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Makefile for Arduino Nano Quantizer
2+
# Uses arduino-cli for compilation and upload
3+
4+
# Configuration
5+
ARDUINO_CLI ?= arduino-cli
6+
BOARD_FQBN = arduino:avr:nano
7+
SKETCH_DIR = .
8+
SKETCH = $(SKETCH_DIR)/eurorack-quantizer-software.ino
9+
PORT ?= /dev/ttyUSB0
10+
BAUD_RATE ?= 115200
11+
12+
# Default target
13+
.PHONY: all
14+
all: compile
15+
16+
# Compile the sketch
17+
.PHONY: compile
18+
compile:
19+
@echo "Compiling $(SKETCH)..."
20+
$(ARDUINO_CLI) compile -vt --fqbn $(BOARD_FQBN) $(SKETCH_DIR)
21+
22+
# Upload to Arduino
23+
.PHONY: upload
24+
upload: compile
25+
@echo "Uploading to $(PORT)..."
26+
$(ARDUINO_CLI) upload -vt -p $(PORT) --fqbn $(BOARD_FQBN) $(SKETCH_DIR)
27+
28+
# Compile and upload in one step
29+
.PHONY: build-upload
30+
build-upload: upload
31+
32+
# Open serial monitor
33+
.PHONY: monitor
34+
monitor:
35+
@echo "Opening serial monitor on $(PORT)..."
36+
$(ARDUINO_CLI) monitor -p $(PORT) --config $(BAUD_RATE)
37+
38+
# Clean build artifacts
39+
.PHONY: clean
40+
clean:
41+
@echo "Cleaning build artifacts..."
42+
rm -rf $(SKETCH_DIR)/build
43+
44+
# List available ports
45+
.PHONY: ports
46+
ports:
47+
$(ARDUINO_CLI) board list
48+
49+
# Check if arduino-cli is installed
50+
.PHONY: check
51+
check:
52+
@which $(ARDUINO_CLI) > /dev/null || (echo "Error: $(ARDUINO_CLI) not found. Install it from https://arduino.github.io/arduino-cli/" && exit 1)
53+
@echo "$(ARDUINO_CLI) found"
54+
55+
# Help target
56+
.PHONY: help
57+
help:
58+
@echo "Available targets:"
59+
@echo " make compile - Compile the sketch"
60+
@echo " make upload - Compile and upload to Arduino (uses PORT=$(PORT))"
61+
@echo " make build-upload - Same as upload"
62+
@echo " make monitor - Open serial monitor (uses PORT=$(PORT), BAUD_RATE=$(BAUD_RATE))"
63+
@echo " make ports - List available serial ports"
64+
@echo " make clean - Remove build artifacts"
65+
@echo " make check - Verify arduino-cli is installed"
66+
@echo ""
67+
@echo "Override PORT: make upload PORT=/dev/ttyACM0"
68+
@echo "Override ARDUINO_CLI: make compile ARDUINO_CLI=arduino-cli"
69+

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Arduino Quantize & Hold Synthesizer Module
2+
3+
This Arduino based module let’s you quantize and hold a given control voltage. There are controls for selecting different scales and transposing a note. The module can either continuously quantize a given voltage or hold it when triggered. It uses a 12-bit digital-to-analog converter (DAC). It is a great companion for sequencers with unquantized outputs or for quantizing other voltage sources.
4+
5+
[Find more details on my website](https://polykit.rocks/quantizer)
6+
7+
![Eurorack Quantize & Hold Module](eurorack-quantizer-module.jpg)
8+
9+
## Key features
10+
11+
- Quantizer
12+
- Arduino based, open-source software
13+
- Scale mode control, also per CV
14+
- Pass-through mode without quantizing (DAC precision)
15+
- Control for transposing a note -24 to +24 semitones, also per CV
16+
- Trigger input for holding a voltage
17+
- Gate output for voltage changes in continuous mode
18+
- CV input 0-5V
19+
- CV output 0-7V (1V/oct)
20+
- 4HP wide
21+
22+
## Install
23+
24+
To upload or modify the firmware, you’ll need the Arduino IDE (or any compatible toolchain) to compile and flash the code to the microcontroller. There is a Makefile that uses `arduino-cli` to compile and flash your microcontroller.
25+
26+
```
27+
$ make help
28+
Available targets:
29+
make compile - Compile the sketch
30+
make upload - Compile and upload to Arduino (uses PORT=/dev/ttyUSB0)
31+
make build-upload - Same as upload
32+
make monitor - Open serial monitor (uses PORT=/dev/ttyUSB0, BAUD_RATE=115200)
33+
make ports - List available serial ports
34+
make clean - Remove build artifacts
35+
make check - Verify arduino-cli is installed
36+
37+
Override PORT: make upload PORT=/dev/ttyACM0
38+
Override ARDUINO_CLI: make compile ARDUINO_CLI=arduino-cli
39+
```

eurorack-quantizer-module.jpg

2.47 MB
Loading

0 commit comments

Comments
 (0)