jacqueline
7fbb2162ee
Start keeping lock switch polarity in nvs
...
i will use this to do a sneaky trick; in-place upgrading brendan,
hailey, and erin's devices
2 years ago
jacqueline
f2df12836f
tweak pipeline buffers rather than i2s dma buffer
...
this maintains the bluetooth changes to buffer sizes, but keeps the most
important i2s buffer the same size
2 years ago
jacqueline
f4d8b2b04a
hey i found 40KiB SRAM behind the couch!
2 years ago
jacqueline
968d545d67
hand off the sd card to the samd properly, and remount when it's finished
2 years ago
jacqueline
c399199bfc
Improve handling of sd card changes during runtime
...
- mount if an sd card is inserted
- unmount if it's removed
2 years ago
jacqueline
08d16e8580
whoops
2 years ago
jacqueline
71b4673039
all screens basically working, but bluetooth is rough
2 years ago
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
2 years ago
jacqueline
55bde70b96
add accurate esp and samd versions + expose this info to lua
2 years ago
jacqueline
44fdf69674
tweak wheel sensitivity, improve AKS for centre button
2 years ago
jacqueline
09eacb71f0
bringup r8 muting
2 years ago
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
2 years ago
jacqueline
44e6aee722
fix yet more mono i2s issues
2 years ago
jacqueline
5f0e16e97a
Support changing the usb msc state
2 years ago
jacqueline
d4a0085753
Fix some dither clipping issues
2 years ago
jacqueline
876db2e7eb
Add the touchwheel button to the AKS channel
2 years ago
Robin Howard
ae72566c0e
Have the unit not immediately sleep when starting up.
2 years ago
jacqueline
64b106c13e
add a cool lua repl
2 years ago
jacqueline
5a2f0b08e0
Centralise which level is 'locked'
2 years ago
jacqueline
230721cd62
Periodically check int lines instead of relying on interrupts
2 years ago
jacqueline
5c7f07e638
Use a non-IRAM-safe interrupt for gpio changes
...
AFAICT this *should* be IRAM-safe, but there's an xQueueReceiveGeneric
within esp-idf that doesn't appear to be allocated internally
2 years ago
jacqueline
8a0a167adb
Convert the main menu screen to lua lol
2 years ago
Robin Howard
91d16b3ff5
haptics: don't wait when initialising the driver.
2 years ago
Robin Howard
135185f12b
haptics: adds a wrapper for the DRV2605L haptic motor driver
...
... with facilities to trigger effects via the system fsm.
2 years ago
jacqueline
2b19e57034
Ensure the GPIO ISR is in IRAM
...
The shared interrupt is flagged as IRAM-capable, so this handler should
be too.
2 years ago
jacqueline
c6f2b52331
Improve bt scanning responsiveness
2 years ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
2 years ago
jacqueline
912f9c0757
Free the i2s dma channel when it's not in use
...
It turns out this is why bluetooth playback keeps running out of memory
/facepalm
2 years ago
jacqueline
7523772886
Decouple play/pause from output on/off
...
I think this was the cause of toggling play/pause making audio go away.
Or at least I can't repro that bug anymore, anyway.
2 years ago
jacqueline
c851b789fa
Write up the new input modes to NVS and settings
2 years ago
jacqueline
09f129662e
Add scroll velocity + more input methods
2 years ago
jacqueline
3df4cc9e3d
Make accessors in RelativeWheel const
2 years ago
jacqueline
ba940baa0a
Add a lock around the SPI bus
...
This seems to have been the cause of recurring deadlocks that have been
difficult to repo.
2 years ago
jacqueline
252f685ef1
Make NVS access synchronous again
...
Everything relevant is back in internal ram, and likely to stay there.
2 years ago
jacqueline
abc626c1da
Place a2dp stream callback into IRAM
2 years ago
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2 years ago
jacqueline
4d99d22e10
std::string -> std::pmr::string in psram
2 years ago
jacqueline
c00e7e37d9
Fix incorrect palette introduced by hardware screen rotation
2 years ago
jacqueline
7ffeea4009
Don't acquire the spi bus in the display driver
...
Interrupt-based transactions don't need it, and it causes issues.
2 years ago
jacqueline
f57a9688c9
Allocate display spi buffers statically
...
It works okay now :)
2 years ago
jacqueline
972edd7468
Rotate the display in hardware instead of software
2 years ago
jacqueline
b192975cb1
make bluetooth pairing ui functional
2 years ago
jacqueline
0ea358ab81
Make the onboarding flow basically work. Much still to do!
2 years ago
jacqueline
ad74a45921
Use only one buffer for lvgl's display driver
...
We weren't actually making use of the double buffering, and it's a pain
to implement properly.
2 years ago
jacqueline
86296c187f
Use interrupt-based spi for the display
...
This solves our "audio stutters while scrolling" problem better! Turns
out the real root cause was the polling SPI driver blocking a whole CPU
during playback.
2 years ago
jacqueline
b0d745d02d
Flesh out onboarding a little, and add a way to get into it
2 years ago
jacqueline
e8a972cc7f
Just wait for touchwheel reboot instead of being clever
2 years ago
jacqueline
6b9fb9edac
Support retries for samd and touchwheel i2c
2 years ago
jacqueline
4b627acee6
Reset the touchwheel during boot
2 years ago
jacqueline
a9008884c9
Improve dac startup sequencing to reduce the clicky poppy
2 years ago