OTTO Beta Working docs
=======================
# TODO:
- [ ] Firmware
- [ ] LED reliability
- [x] USB MIDI client
- [ ] Encoder accelleration!
- [ ] Hardware
- [x] Mechanical design
- [x] determine locations for all parts that need to have a specific location
- [x] LEDs above buttons
- [x] single LED channel, works with WS2812D-F5 and PL9823-F5 with a solder jumper that switches LEDs' I/O
- [x] current button layout is:
OOOOO OO
OOOOO OO
OOOOO OO
- [x] adjust PCB and Pi header for less height (optional)
- [x] encoders can be detentless or with detents, but no haptic feedback yet
- [x] only DC barrel jack power input
- [x] Integrate MCU and audio on board
- [x] add STM32F407VGT6 MCU
- [x] change schematic for the new MCU
- [x] find out suitable pins for various I/O
- [x] add WM8731 audio codec
- [x] add TRS line in, TRS line out, TRRS headphone+mic jack, internal mic
- [x] add header for external I2S sound cards
- [x] Expansion header
- [x] determine useful connections for the expansion header
- [x] external ICs/MCUs: secondary I2C
- [x] CV/gate: 2x DAC and 2x ADC, 4x GPIO for gate I/O
- [x] power routing/battery: MCU RESET, primary I2C, some GPIO for power switching, 2x GPIO for charging LED
- [x] find out how power routing can work with *and* without expansion header
- [ ] Schematic
- [x] GIT REPO
- [x] clean up parts numbers
- [x] finish schematic without button matrix
- [x] make annotations/comments for others
- [ ] PCB
- [x] place all parts
- [x] route everything without button matrix
- [x] route button matrix
- [ ] Toggle switch for power?
- [ ] move rpi/USB/power jacks 2mm down
- [ ] add silkscreen design/annotations
- [ ] Front panel
- [ ] Ready for LCSC and JLCSMT ordering
- [ ] Beta test
- [ ] order boards
- [ ] solder boards
- [ ] program MCU
- [ ] test boards
- [ ] Linux stuff
- [ ] power loss resistance
- [ ] read only root fs?
- [ ] updating the otto software without reflashing
- [ ] Meta
- [ ] otto-project.github.io
- [ ] A Walkthrough video of basic features
- [ ] A text Manual
- [ ] Could be partially outsourced to the community
- [ ] A Developers guide to the software
- [ ] Binary releases of raspberry pi builds and emulator builds for linux and OS X
- [ ] Set up the subreddit, which will be the main place to interract with beta testers (we want to keep github for developers only)
- [ ] Software/feature presentation
- [ ] merge otto-input into otto-core
- [ ] UI cleanup / refresh?
- [ ] Identify weakest points
# Timeline
- [x] Nov 1st: corev2 is finished by Tobias, and Jonatan starts work on converting the engines to the new system
- [ ] semi-met. the core of itc (the new name for whats central in corev2) has been finished, but the integration proved to be more involved than anticipated. Tobias currently working on things like the engine dispatcher etc, and jonatan is porting engines
- [ ] December 10th: engines finished (except sequencer/sampler)
- [x] Everything but arp and Goss UI 12th of dec
- [ ] Arp, dec 16th (_slightly over deadline, but begun /jonatan_)
- [ ]
- [ ] December 24th: Firmware is feature-complete and can mostly be regarded as finished
- [ ] January 1st: Main OTTO software is feature-complete. PCB Schematics done!
- [ ] February 1st: Walkthrough/manual/documentation
- [ ] February 14th (T-1 week): All software and hardware complete!
- [ ] Last week: Binary releases, writing announcements, preparing videos etc.
- [ ] February 21st: RELEASE!
# Status
## Jonatan. Last updated Jan 3rd 2020
- [ ] MASTER COMPRESSION / OVERDRIVE!
- [x] Voicemanager simplified and ported to ITC
- [ ] Engines:
- [ ] Synths:
- [ ] Goss: Needs a UI redesign. DSP is finished.
- [x] Potion: Will not be included in the Beta.
- [x] ~~Rhodes:~~ has been cancelled for beta
- [ ] Still needs screen implementation. Might generalize to bigger physical modeling synth to make other "tine-based" instruments such as marimba, glockenspiel, etc. _(note: call it tines? /tobias)_
- [x] ~~Subtractive synth.~~ cancelled for beta
- [ ] Still in development. If I figure out a good way to do modulation, it will be included in the Beta.
- [x] Effects:
- [x] Wormhole Reverb: Ported by Tobias.
- [x] Chorus: jp from Discord did most of it. Jonatan cleaned up.
- [x] Master FX (soft-clip + volume)
- [x] Arps:
- [x] Arp: Needs to be ported and do a round of bugfix. Should write tests for this. _Done. Didn't end up writing tests, sorry._
- [x] ~~Euclid: Needs a slight redesign and port. Code should be cleaned up as well.~~ Cancelled for beta.
- [x] Sends
- [x] Probably requires new graphics
- [x] How to do processing/busses? _For now, just have four floats and do computations in the engine_manager_
- [x] Line-In with its own send
- [x] Placeholder screens for all buttons
- [ ] Screen stack in `UIManager`
## Tobias, last updated Dec 12th, 2019
- [ ] Last itc features
- [x] Added `AudioSender`, `GraphicsSender` and `EngineSender`, which take a lot of boilerplate out of the engines.
- [x] Thread safe action queue
- [ ] Is technically thread safe now, but probably still fairly slow. Measurements should be made, and we can probably find a queue implementation to use so we dont have to do manual locking
- [ ] Porting engine dispatcher
- [x] Redesign of selection screen
- [x] OFF option
- [x] Integration with preset manager
- [ ] _new preset_ screen
- [x] Basic `WriterUI` implemented
- [x] needs to be hooked up to preset manager
- [ ]
- [x] FM: Only porting for now and rewriting for new voicemanager voice style. Should be easy/fast.
- [x] Graphics (_still a few improvements to be made, but good enough for now /jonatan_)
- [ ] UIManager -> {GraphicsManager, UIManager}
- [ ] Started writing some documentation, still a lot to do
- [x] Core of itc.
# Next status update: dec 10th
# Loose Ends (Software)
- [x] Clockmanager fixes
- [x] Should include/contain all notes right after starting.
- [x] BPM changes in a few big steps. Probably there are some fishy things going on in the counter
# SEQUENCER / SAMPLER
The plan is to finish the porting and a lot of the loose ends before taking a two-day sprint to design and implement the first version of this.
- [ ] fuck.
- [ ] ~~This has been marked *maybe* for the beta~~
- [ ] Definitely not in beta v0.1
- [ ]
## Steven, last updated December 16th, 2019
- [x] Schematic from Bastian uploaded to github
- Current ToDo:
- [ ] Add 3.3V buck rail
- [ ] Add LED power switch
- [ ] Pick all part numbers
- [ ] Set up BM Export
- [ ] Board Layout
- Done:
- [x] Added 5V buck-boost to power circuit
# The Big Post-Beta To-Do-List
- [ ] Engines
- [ ] Porting:
- [ ] Rhodes
- [ ] Subtraction
- [ ] Euclid
- [ ] Writing
- [ ] Delay FX
- [ ] Chord/Arp-engine... thing.