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
jacqueline
4247c9fe7d
store the screen brightness in nvs
2 years ago
jacqueline
773f285767
Don't fade for brightness slider changes
2 years ago
jacqueline
8ee5e781e7
Use gamma correction for display brightness
2 years ago
jacqueline
1200479045
one weird trick to avoid 5khz tone
2 years ago
jacqueline
3a0c42f924
Move battery measurement to its own class
2 years ago
jacqueline
0f5cf25e73
More performance and usability tweaks
...
- pin ui and decoder to opposite cores
- disable touch wheel when controls are locked
2 years ago
jacqueline
3b3bc64d19
Add modal dialog support
2 years ago
jacqueline
079b2b53d4
Improve DAC startup for r6
2 years ago
jacqueline
58854bc55d
Improve centre button responsiveness
2 years ago
jacqueline
ee949829d9
Add battery % with change events
2 years ago
jacqueline
588857fef8
good idea to unmute the dac!
2 years ago
jacqueline
764b01e913
Add idle->standby support when locked and no music
2 years ago
jacqueline
27f329a9db
Add an app console triggered shutdown
2 years ago
jacqueline
cad7060540
Add interrupts for samd changes
2 years ago
jacqueline
697ec3c584
Fix no battery detection
2 years ago
jacqueline
65a1f09a90
Support app console commands for the samd
2 years ago
jacqueline
62dce8d9fc
Save current output mode to nvs
2 years ago