![]() |
7 months ago | |
---|---|---|
src | 7 months ago | |
.clang-format | 7 months ago | |
.clang-tidy | 7 months ago | |
.gitignore | 7 months ago | |
Makefile | 7 months ago | |
Makefile.conf | 7 months ago | |
README.md | 7 months ago | |
build.conf.example | 7 months ago |
README.md
Heck Daisy Template
Daisy project template featuring:
- toolchain setup
- dependencies setup
- build scripts
- upload (DFU and JTAG)
- debug
- clang-format
- clang-tidy
git started
to use git, either die or use hecks git-ui.
heck-git-ui: https://gitea.heck.live/heck/HeckBashSetup/src/branch/master/bash_profile.d/git.sh
Alternatively, you can avoid using git... TODO
Toolchain Setup
Compiler
compiler used is gcc for arm:
Options:
- install version specified by electro-smith: https://developer.arm.com/downloads/-/gnu-rm
- install the latest version: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
IMPORTANT: Do NOT use any OTHER gcc-arm toolchain than these ones!!! There is a pitfall that is quite hard to debug. I used the gcc-arm from macports. There is NO libc-nano shipped with it, because its not GPL. BUT the daisy build scripts specify the use of libc-nano.
Programmer / Debugger
on macos:
port install dfu-util openocd
dfu-util
is the program that is invoked by the Makefiles to program the thing via DFU.
openocd
is the program that is invoked by the Makefiles to program the thing via JTAG.
openocd
also is the debugger we use.
Flashing
Can be flashed via:
- DFU: all you need is a micro-usb-cable
- JTAG: any JTAG programmer will work, but the STLink v3 is the fastest.
DFU
No magic, you just need a program called dfu-util
.
TODO...
JTAG
no magic, you just need a programm called openocd
TODO:
The JTAG method is heavily recommended since JTAG is faster than DFU, and if you use the (product ad ahead warning, sorry)
STLink v3 its even faster. Its the fastest method i know of.
Benchmark DFU vs. JTAG
DFU: 15.725s
JTAG: 1.850s
JTAG is at least 8.5 times faster (since there is constant time overhead)
[heck@YOOROOX::~/src/DaisyExamples/seed/Blink] (master ?M) $ time m program-dfu;
dfu-util -a 0 -s 0x08000000:leave -D build/Blink.bin -d ,0483:df11
blabla...
...
real 0m15.725s
[heck@YOOROOX::~/src/DaisyExamples/seed/Blink] (master ?M) $ time m program;
openocd -s /opt/local/bin/openocd/ -f interface/stlink.cfg -f target/stm32h7x.cfg -c "program ./build/Blink.elf verify reset exit"
blabla...
...
real 0m1.850s
Debugging
TODO:
Daisy Coding
- C++ bare metal like any STM32 - needlessly brutal
- C++ and libDaisy - libDaisy is the electro-smith hardware abstraction
- Pure-Data patch compiler
- JUCE
- FAUST for DSP algo
- Max-msp gen~ (proprietary $hit)
C++ Bare Metal
Just code like for any STM32 - needlessly brutal
TODO: add hecks STM32 project
C++ and libDaisy
libDaisy is the electro-smith hardware abstraction and is basically what makes the daisy be the daisy. TODO:
Pure-Data Patch Compiler
this here: https://github.com/electro-smith/pd2dsy
TODO: Marc? anyone?
JUCE
TODO: anyone?
e.g. https://github.com/electro-smith/Daisy-Juce-Example
FAUST
This here: https://faust.grame.fr/ stahl has workflow/project
Max-Msp gen~
max is the proprietary version of pure-data, but dont want to exclude them just for that. gen~ alone will cost you extra $$$ after even you paid for max. just so you know, hu?
Daisy-Hardware
TODO: PLEASE everyone share their hardware HERE!
Various
Stahl and Marcs fire synthesizer. Now with sausage mode: https://wiki.sgmk-ssam.ch/wiki/F%C3%BC%C3%BCr_Synthie_mit_Daisy_Seed