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.
2023-09-29 15:17:32 +10:00
jacqueline
c53802f308
Add a core dump command
2023-09-29 12:34:27 +10:00
jacqueline
c876c00654
add a fun and cute little loading state :)
2023-09-29 10:40:16 +10:00
jacqueline
6a47edcd35
Use databinding for the top bar. It's so nice now!
2023-09-28 10:43:48 +10:00
jacqueline
f09ba5ffd5
Use bindey for databinding instead of hand rolling ui updates
2023-09-28 08:29:55 +10:00
jacqueline
f168bfab76
Don't post events from ISRs
2023-09-27 14:39:19 +10:00
jacqueline
ce57b236c4
Move every alloc over 256 bytes into PSRAM
2023-09-26 21:46:05 +10:00
jacqueline
252f685ef1
Make NVS access synchronous again
...
Everything relevant is back in internal ram, and likely to stay there.
2023-09-26 21:07:44 +10:00
jacqueline
96252973d9
Make task tracing tools conditionally compiled
2023-09-26 20:47:07 +10:00
jacqueline
c36bbe4e7d
Claw back some more IRAM from unused components
2023-09-26 20:36:17 +10:00
jacqueline
abc626c1da
Place a2dp stream callback into IRAM
2023-09-26 20:36:05 +10:00
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2023-09-26 17:23:34 +10:00
jacqueline
4d99d22e10
std::string -> std::pmr::string in psram
2023-09-26 13:36:07 +10:00
jacqueline
f6d0642109
Prepare for PMR with a memory_resource that understands heap_caps_malloc
2023-09-26 11:23:53 +10:00
jacqueline
2849399d54
Force large c++ arrays into PSRAM
...
This is mostly targetted at leveldb_ which is rude and does not support
custom allocators
2023-09-26 10:18:33 +10:00
jacqueline
a87790a424
Add basic leak detection tooling
2023-09-26 10:14:07 +10:00
jacqueline
a2eb0e8961
Fix incorrect default theme
2023-09-25 22:37:46 +10:00
jacqueline
5a20b0bc1a
Move UI task back to internal stack
...
It really is *so* fast
2023-09-25 22:34:30 +10:00
jacqueline
dd13a234d2
Place LVGL's memory pool into PSRAM
2023-09-25 15:26:05 +10:00
jacqueline
0802b4e528
Unpin decoder task
2023-09-25 15:25:32 +10:00
jacqueline
cd44e0daa1
Move a few task stacks into internal ram for better speed
2023-09-25 15:23:58 +10:00
jacqueline
c00e7e37d9
Fix incorrect palette introduced by hardware screen rotation
2023-09-25 15:23:06 +10:00
jacqueline
7ffeea4009
Don't acquire the spi bus in the display driver
...
Interrupt-based transactions don't need it, and it causes issues.
2023-09-25 15:22:37 +10:00
jacqueline
41c4dce79a
Split heap stats and task stats into different functions
2023-09-25 15:22:05 +10:00
jacqueline
2f626f6224
Bump up nvs writer task size for safety
2023-09-25 09:47:01 +10:00
jacqueline
f57a9688c9
Allocate display spi buffers statically
...
It works okay now :)
2023-09-22 21:19:19 +10:00
jacqueline
96944f088f
Reclaim some internal ram
2023-09-22 21:19:19 +10:00
jacqueline
ca75507146
Make esp-idf bluetooth logging less chatty
2023-09-22 21:19:19 +10:00
jacqueline
972edd7468
Rotate the display in hardware instead of software
2023-09-22 21:19:19 +10:00
jacqueline
b192975cb1
make bluetooth pairing ui functional
2023-09-22 21:19:19 +10:00
jacqueline
cbd99b2134
Increase sample buffer sizes
2023-09-22 21:19:19 +10:00
jacqueline
022c222e85
Add heap stats to the task stats output
2023-09-22 21:19:19 +10:00
jacqueline
59e0de1fe2
Add super basic readme for the sourcehut project
2023-09-20 15:16:26 +10:00
jacqueline
4a686fee7e
README.md -> BUILDING.md
2023-09-20 15:07:58 +10:00
jacqueline
13047fe22d
actually keep the build instructions as README bc idk what to write lol
2023-09-20 14:34:10 +10:00
jacqueline
7827873e16
Freshed up building instructions, move to a better-named file.
2023-09-20 14:28:06 +10:00
jacqueline
0ea358ab81
Make the onboarding flow basically work. Much still to do!
2023-09-13 10:09:04 +10:00
jacqueline
b0aa9ab391
Fix ui nits for playback screen
...
The top bar now updates properly when starting playback, and the
upcoming list items no longer marquee.
2023-09-12 14:43:28 +10:00
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.
2023-09-12 14:30:28 +10:00
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.
2023-09-12 14:18:04 +10:00
jacqueline
b0d745d02d
Flesh out onboarding a little, and add a way to get into it
2023-09-08 16:58:30 +10:00
jacqueline
64d9cec8b0
fix some leveldb errors on transition to standby
...
turns out you gotta free the iterators. wow!!
2023-09-08 15:19:13 +10:00
jacqueline
e8a972cc7f
Just wait for touchwheel reboot instead of being clever
2023-09-08 15:15:10 +10:00
jacqueline
6b9fb9edac
Support retries for samd and touchwheel i2c
2023-09-08 13:45:05 +10:00
jacqueline
493a70b07c
Adjust partition table for 4MiB app size + fill the rest of the space
2023-09-08 13:22:41 +10:00
jacqueline
4b627acee6
Reset the touchwheel during boot
2023-09-08 10:24:18 +10:00
jacqueline
63215ccf16
Fix missing track number issues
2023-09-06 12:38:40 +10:00
jacqueline
dad14baa73
Add an opus-specific tag parser
2023-09-06 10:14:48 +10:00
jacqueline
a9008884c9
Improve dac startup sequencing to reduce the clicky poppy
2023-09-05 16:01:05 +10:00
jacqueline
020d42d431
Be tolerant of SAMD timeouts
2023-09-05 15:37:22 +10:00
jacqueline
f0d82cfb09
Fix display buffers not actually being in DMA ram
2023-09-05 15:36:33 +10:00
jacqueline
b413b2f264
Add all albums index, do some locales prep
2023-09-05 14:36:28 +10:00
jacqueline
02c1eb4be3
Tweak display DMA buffer size
2023-09-05 10:12:15 +10:00
jacqueline
0032896251
Move UI task to priority 0 during playback
...
Also other misc task cleanup
2023-09-05 09:51:10 +10:00
jacqueline
382d82a14b
Fix bad merge
2023-09-04 16:34:58 +10:00
jacqueline
3180edb7b4
Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw
2023-09-04 16:18:11 +10:00
jacqueline
d5d6e3993c
Support changing max volume, persisted to nvs
2023-09-04 16:17:55 +10:00
jacqueline
6d831fa7a8
Don't reuse iterators across page fetches
...
This was done for performance reasons, but performance seems okay
without it, and it introduces a bunch of memory management headaches.
2023-09-04 11:19:34 +10:00
jacqueline
697d231484
Fix incorrect settings submenu
2023-09-04 10:00:09 +10:00
jacqueline
b90c08b536
enable the qr code lib for onboarding
2023-09-04 09:51:52 +10:00
jacqueline
25c2df57dd
Fix some release build warnings
2023-09-04 09:51:38 +10:00
jacqueline
cccee29c3a
Turn the touchwheel back on after sleep
2023-09-04 09:47:22 +10:00
jacqueline
320fdeb9d8
Use a service locator instead of passing around subsets of drivers between FSMs
2023-08-30 16:48:10 +10:00
jacqueline
4247c9fe7d
store the screen brightness in nvs
2023-08-29 16:07:56 +10:00
jacqueline
773f285767
Don't fade for brightness slider changes
2023-08-29 12:18:15 +10:00
jacqueline
f2bb2e2528
Add a brightness slider to settings
2023-08-29 12:10:27 +10:00
jacqueline
8ee5e781e7
Use gamma correction for display brightness
2023-08-29 12:09:58 +10:00
jacqueline
1200479045
one weird trick to avoid 5khz tone
2023-08-28 20:54:02 +10:00
jacqueline
c214d4b40e
Add some more icons, and reflect play/pause in top bar
2023-08-28 20:36:31 +10:00
jacqueline
fa7fa98dc1
Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw
2023-08-28 15:01:24 +10:00
jacqueline
85379b359c
Add some cool battery icons
2023-08-28 15:01:09 +10:00
jacqueline
3a0c42f924
Move battery measurement to its own class
2023-08-28 13:26:53 +10:00
jacqueline
a1327763ab
Support play/pause toggling
2023-08-28 10:36:18 +10:00
jacqueline
8ff93f5467
Make idle state more robust + check playback state
2023-08-28 10:18:02 +10:00
jacqueline
0f5cf25e73
More performance and usability tweaks
...
- pin ui and decoder to opposite cores
- disable touch wheel when controls are locked
2023-08-25 16:59:39 +10:00
jacqueline
485e9adfce
Performance tweaks for smoother tunes
...
- Pin the decoder task to APP_CORE to reduce context switches
- Increase sample buffer sizes
2023-08-25 15:58:54 +10:00
jacqueline
795f268737
Add placeholder settings UI
2023-08-25 15:13:25 +10:00
jacqueline
3b3bc64d19
Add modal dialog support
2023-08-25 10:13:37 +10:00
jacqueline
079b2b53d4
Improve DAC startup for r6
2023-08-24 19:18:57 +10:00
jacqueline
394e3e9466
Throttle framerate a little more
2023-08-24 19:17:56 +10:00
jacqueline
58854bc55d
Improve centre button responsiveness
2023-08-24 19:17:37 +10:00
jacqueline
ee949829d9
Add battery % with change events
2023-08-22 15:55:25 +10:00
jacqueline
9c105cf613
Good idea to commit all the files!
2023-08-22 13:39:49 +10:00
jacqueline
588857fef8
good idea to unmute the dac!
2023-08-22 13:39:40 +10:00
jacqueline
764b01e913
Add idle->standby support when locked and no music
2023-08-21 15:43:23 +10:00
jacqueline
27f329a9db
Add an app console triggered shutdown
2023-08-20 21:10:05 +10:00
jacqueline
51cb168f79
sorry daniel
2023-08-18 16:05:06 +10:00
jacqueline
cad7060540
Add interrupts for samd changes
2023-08-18 15:40:24 +10:00
jacqueline
697ec3c584
Fix no battery detection
2023-08-18 14:25:46 +10:00
jacqueline
65a1f09a90
Support app console commands for the samd
2023-08-18 12:32:18 +10:00
jacqueline
d8533c42df
Start on basic onboarding screens
2023-08-17 15:58:32 +10:00
jacqueline
f3c5eec025
Rename the main audio tasks to be more sensible
2023-08-16 15:11:44 +10:00
jacqueline
c635d5011c
Put more audio pipeline wiring in control of the audio fsm
2023-08-16 11:40:49 +10:00
jacqueline
4e27de21e4
clean up a bunch of obselete audio code
2023-08-16 10:57:55 +10:00
jacqueline
62dce8d9fc
Save current output mode to nvs
2023-08-16 10:22:30 +10:00
jacqueline
544b0013b1
persist preferred bluetooth device in nvs
2023-08-15 17:32:57 +10:00
jacqueline
d6b83fcf4a
Flesh out basic bluetooth support
...
No ui yet, and performance isn't great. It kinda works though!!
2023-08-15 13:53:30 +10:00
jacqueline
205e305350
Implement the easy seeks
2023-08-11 12:32:50 +10:00
jacqueline
9ddaca4fcb
remove unused dithering stuff
2023-08-11 12:26:29 +10:00
jacqueline
a4ba7350a7
Fix docs nits, avoid recalculating frame length
2023-08-11 08:39:52 +10:00