jacqueline
984b874d7e
Fix some issues with the splash screen
...
- fix a use-after-free involving the alerts container that was
happening when showing the first screen
- fix some issues where the splash screen wouldn't come up as early as
it needs to when another bootup task was making heavy use of the spi
bus
10 months ago
jacqueline
e58dcf6dc5
WIP fix issues introduced by lvgl version bump
11 months ago
jacqueline
72344b5777
no more acquire_spi :)
11 months ago
jacqueline
39460931d8
Remove spi locking hack + increase max sd frequency
...
These two changes (mostly the former) dramatically increase
responsiveness when doing database updates; previously we were suffering
from some nasty priority inversion.
afaict the underlying need to acquire_spi seems to be fixed? i.e. spi
bus acquisition is working properly. fingers heavily heavily crossed.
11 months ago
jacqueline
26eb580043
move driver includes into a subdir as well
12 months ago
jacqueline
db9e5cce1f
Improve handling of the display
...
- Blank the display when locking to prevent burn-in
- Delay turning the display on until *exactly* after the first lvgl flush
- Init the display in the ui task to avoid blocking the rest of boot
1 year ago
jacqueline
4cd3c187f9
Add exact display size to nvs, since it can vary
1 year ago
Nano
c423817334
fixes for my green-tab adafruit ST7735R
1 year ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
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
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
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
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
320fdeb9d8
Use a service locator instead of passing around subsets of drivers between FSMs
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
10120f9a92
ux fixes
2 years ago
jacqueline
371f0a20ca
Clean up gpios interface
2 years ago
jacqueline
7e96482087
fix shared peripheral interrupts causing hangs
2 years ago
jacqueline
1f903accd9
Flesh out audio state machine for playback
...
Also fix mono playback
2 years ago
jacqueline
2a568846bd
Cute brightness fade to avoid ugly startup :)
2 years ago
jacqueline
d2e5d2ab3c
Fix up screen brightness and transitions
2 years ago
jacqueline
8a2a2d2265
Get basic audio playback going again
2 years ago
jacqueline
6fd588e970
Add touchwheel -> encoder adapter
2 years ago
jacqueline
a4f94c812a
Annote E V E R Y T H I N G with license info
2 years ago
jacqueline
5ac4d3949c
Generalise worker tasks, and centralise task priorities + stacks
...
Includes making the display driver use a worker task for flushes, so
that our double buffering actually does something useful /facepalm
2 years ago
jacqueline
a6ab150405
Add tinyfsm, start converting core functions to an FSM-based event loop
2 years ago
jacqueline
7083459cf3
wrap driver instance ownership + di in a class
2 years ago
jacqueline
a1cef17c5b
Leave the display reset pin alone; we don't need it
2 years ago
jacqueline
c93ed8efad
fix some display issues
2 years ago
jacqueline
a0ae39befe
Update pinouts for R3
2 years ago
jacqueline
0fce4fcc06
update to faceplate bodge
2 years ago
ailurux
a0798c7887
Software rotation for display
2 years ago
jacqueline
fed7b450b3
Fix up display artficacts and clean up unused features
2 years ago
jacqueline
a65d996583
Use the sync apis for I2S output
2 years ago
jacqueline
f0a4b4cf50
whoops, remove chatty logging
2 years ago
jacqueline
61c91b3cdb
Mostly working pipeline, including proper EOF signalling
2 years ago
jacqueline
aae1871999
remove unused ISR allocation
...
this was blocking the i2s driver somehow!(?)
2 years ago
jacqueline
c7901ae429
build fixes for new compiler version and standard
2 years ago
jacqueline
4c88fcc4a5
fix build issues with new pipeline
2 years ago
jacqueline
d82a7e3d94
first go at r2 bringup. waiting on mosfets.
2 years ago
jacqueline
1d340db871
Order and group headers correctly
2 years ago
jacqueline
0ef333164b
Use underscores instead of dashes in filenames consistently
2 years ago
jacqueline
ff30b27f0d
First test cases :)
2 years ago