jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
1 year ago
jacqueline
55bde70b96
add accurate esp and samd versions + expose this info to lua
1 year ago
jacqueline
44fdf69674
tweak wheel sensitivity, improve AKS for centre button
1 year ago
jacqueline
09eacb71f0
bringup r8 muting
1 year ago
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
1 year ago
jacqueline
44e6aee722
fix yet more mono i2s issues
1 year ago
jacqueline
5f0e16e97a
Support changing the usb msc state
1 year ago
jacqueline
d4a0085753
Fix some dither clipping issues
1 year ago
jacqueline
876db2e7eb
Add the touchwheel button to the AKS channel
1 year ago
Robin Howard
ae72566c0e
Have the unit not immediately sleep when starting up.
1 year ago
jacqueline
64b106c13e
add a cool lua repl
1 year ago
jacqueline
5a2f0b08e0
Centralise which level is 'locked'
1 year ago
jacqueline
230721cd62
Periodically check int lines instead of relying on interrupts
1 year 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
1 year ago
jacqueline
8a0a167adb
Convert the main menu screen to lua lol
1 year ago
Robin Howard
91d16b3ff5
haptics: don't wait when initialising the driver.
1 year ago
Robin Howard
135185f12b
haptics: adds a wrapper for the DRV2605L haptic motor driver
...
... with facilities to trigger effects via the system fsm.
1 year ago
jacqueline
2b19e57034
Ensure the GPIO ISR is in IRAM
...
The shared interrupt is flagged as IRAM-capable, so this handler should
be too.
1 year ago
jacqueline
c6f2b52331
Improve bt scanning responsiveness
1 year 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
jacqueline
020d42d431
Be tolerant of SAMD timeouts
2 years ago
jacqueline
f0d82cfb09
Fix display buffers not actually being in DMA ram
2 years ago
jacqueline
02c1eb4be3
Tweak display DMA buffer size
2 years ago
jacqueline
0032896251
Move UI task to priority 0 during playback
...
Also other misc task cleanup
2 years ago
jacqueline
d5d6e3993c
Support changing max volume, persisted to nvs
2 years ago
jacqueline
cccee29c3a
Turn the touchwheel back on after sleep
2 years ago
jacqueline
320fdeb9d8
Use a service locator instead of passing around subsets of drivers between FSMs
2 years ago