summaryrefslogtreecommitdiff
path: root/src/drivers
AgeCommit message (Collapse)Author
2025-03-20Bump the max BT TX power up to +9dBmjacqueline
2025-03-19ailurux/button-media-controls (#264)ailurux
Splits the control scheme into separate schemes for the side buttons and touchwheel, allowing them to be configured independently of each other. At least one input must be used for navigation, and there are guards to prevent locking oneself out of any input. If the input scheme is invalid, a pop up will show alerting the user. Different behaviours can be bound to the side buttons for when the device is locked or unlocked. This PR also adds a mode for these buttons that controls media playback (prev/next on up/down, pressing both buttons toggles play/pause). There are some changes to the way inputs handle locking. Rather than the input devices tracking the current locked mode, different input devices are created on lock depending on the mode that is configured. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/264 Co-authored-by: ailurux <ailurux@noreply.codeberg.org> Co-committed-by: ailurux <ailurux@noreply.codeberg.org>
2025-03-19Merge pull request 'Support padding the left side of the display with black ↵cooljqln
columns' (#302) from display_padding into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/302
2025-03-05Merge pull request 'Trim whitespace from end of bluetooth device names' ↵cooljqln
(#288) from tahnok/tangara-fw:trim-bt-name-whitespace into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/288 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
2025-03-05Emit a 'known devices changed' event when we forget a known devicejacqueline
Makes the Lua UI update immediately after running the bt_forget command added in PR #289
2025-02-28Trim whitespace from end of bluetooth device namesWesley Ellis
I have a speaker at home with a name of "Pebble V3\r\n" that renders poorly without this change.
2025-02-20Support a left padding value in display init datajacqueline
2025-02-20Add nvs key for left paddingailurux
2025-02-11TTS: Implement and wire up a TTS toggle in Display Settings (#251)Tursiae
This change introduces the ability to enable or disable the spoken interface/TTS from the on-device settings, either via the UI or the Lua console. This closes out the implementation of issue #245. The TTS setting is only visible in Display settings if voice samples are present in `/.tangara-tts/` on the SD card. Playback of new TTS voice samples is inhibited when TTS is disabled. By default, the setting is enabled, as the device will only play back TTS voices if samples are present on disk. If you need samples to test TTS on your device, feel free to grab the voice samples I have at https://codeberg.org/tursiae/tangara-tts-samples. There's about 80-85% coverage of the UI, with the remainder to be added soonish. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/251 Co-authored-by: Tursiae <git@tursiae.org> Co-committed-by: Tursiae <git@tursiae.org>
2025-02-07Add centre button haptic feedback on touch, and setting to disable/lessen ↵ailurux
haptics (#246) This adds a way for feedback devices to respond to events from outside of LVGL's event system, being passed from input device to feedback device through a vector. This was done so that touch events and long-press triggers can now give feedback through haptics. This PR also adds haptic modes, saved in nvs similarly to input and locked input modes, to disable or change the haptic effect behaviour based on which mode is selected. Finally, this also fixes a bug in which some click events would not trigger haptics, at the expense of re-introducing the (undesired?) behaviour of clicking a button that transitions to a new screen causing a double click. Relevant issues this should close: #195, #233, and (partially?) #120 Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/246 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2025-02-02Persist locked control mode settingTess Eisenberger
2025-02-02Add optional support for changing volume while lockedTess Eisenberger
This adds a new Controls setting for adjusting the behavior when locked, and an option for allowing volume control.
2025-02-02Add a new setting for input controls when lockedTess Eisenberger
This is just the plumbing of the new setting. The input methods will come in subsequent patches.
2025-01-29Actually read+write the fast charge nvs bitjacqueline
It turns out that our error prone method of managing nvs keys has led to an error! We took a look over the other keys here and it didn't look like any others were missing. Fixes #204
2025-01-13Merge pull request 'Update licensing info' (#174) from ↵cooljqln
tjk/tangara-fw:update-reuse into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/174 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
2025-01-10Isolate the SD card from the SPI bus when talking to the display (#176)jacqueline
This should help significantly with https://codeberg.org/cool-tech-zone/tangara-fw/issues/121, which seems to be caused by some SD cards being very picky about being the only SPI device on their bus. Co-authored-by: ailurux <ailuruxx@gmail.com> Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/176 Co-authored-by: jacqueline <me@jacqueline.id.au> Co-committed-by: jacqueline <me@jacqueline.id.au>
2025-01-08Add missing copyright/license headersTom Kirchner
2024-12-29display: set lower limit for brightnessClayton Craft
Fixes #158
2024-12-19Queue repeat modes (#126)ailurux
This replaces the previous system of a separate track and queue repeat, with a RepeatMode type with the following options and behaviours: - OFF: No repeat, queue or track. When the current queue finishes, shuffled or otherwise, playback will stop. - REPEAT_TRACK: The current track will loop indefinitely, unless next is explicitly called through some user action (ie using the next button in the now playing screen) - REPEAT_QUEUE: The entire queue will repeat indefinitely. When shuffled is enabled this will repeat the queue with new combinations each cycle. The repeat mode is persisted in non-volatile storage, so the behaviour will be consistent throughout restarts and queue replacements, and so the "queue repeat by default" use case can be met in this way. In addition, I've made it work a little nicer when the queue runs out in the now playing screen, keeping the previously played track shown and playback can be continued by using the play button or by going to a previous song in the queue. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/126 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-12-10Allow for connecting to the paired device from the known devices listailurux
2024-10-01Support a minor version in the SAMD firmwarejacqueline
2024-09-17Move SPI ISR back to CPU0jacqueline
See if this does anything for the itermittent spi acquire hangs
2024-09-13Merge branch 'main' into jqln/ttsjacqueline
2024-09-12Pause and unpause the current audio output in response to TTSjacqueline
2024-09-10Use '/sd' instead of '/sdcard' for accessing the sd cardjacqueline
it's cleaner
2024-09-09Merge branch 'main' into jqln/ttsjacqueline
2024-09-06Ignore comments within playlist filesjacqueline
Includes a general cleanup+restructure of playlist.cpp, and fixing the tests and benchmarks
2024-08-28Timeout when writing output samples throughout the audio pipelinejacqueline
This allows the audio pipeline to remain responsive even when the drain buffer has completely filled. This in turn means that you now see the track info in the 'now playing' screen change if the current track changes whilst you are paused. Since I was fucking around a lot in the audio processor anyway, I also added mono->stereo expansion so that playing mono tracks on Bluetooth no longer destroys your ears.
2024-08-26Move some hot driver functions into iramjacqueline
We've got the space for it now! Also turn SW radio coexistence off whilst we're here; the docs recommend this if you only use Bluetooth(R)
2024-08-15Don't break early from clearing PcmBufferjacqueline
2024-08-14Always initialise bytes_cleared when clearing PcmBuffersjacqueline
2024-08-13Move off of deprecated APIsjacqueline
2024-08-13Fix build errors from stricter visibility requirementsjacqueline
2024-08-12daniel/theme-setting (#87)ailurux
- Themes can be loaded from disk and built-in - Themes can be selected in a new themes menu of the settings screen - Some touch-ups to existing themes - The saved theme is persisted in nvs Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/87 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org> Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-08-07Recalibrate the touchwheel after unlockingjacqueline
Also power it down whilst we're locked. This saves about half a milliamp.
2024-07-24Add a settings screen with power+battery infojacqueline
Mostly for debugging, but also u can toggle fast charging off and on now
2024-07-12Give Bluetooth settings a bit of a refreshjacqueline
It's now a bit more responsive to stuff happening, gives you more information, and remembers your previously paired devices for faster switching between them.
2024-07-11WIP improve bluetooth api and settings screenjacqueline
2024-07-10Move the SPI interrupt alloc to the second corejacqueline
We're a bit close to the line on core0 allocs, so this helps balance things out a bit.
2024-07-09Give PcmBuffer pairs a name, and wire them up in the audio stackjacqueline
2024-07-05WIP start on accepting two streams in out audio outputjacqueline
2024-06-28Fix some issues with the splash screenjacqueline
- 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
2024-06-27update catch2 to v3.6.0jacqueline
2024-06-25skip the storage test if there's no sd cardjacqueline
2024-06-25Add a basic overview of writing and running testsjacqueline
2024-06-25Unbreak the tests buildjacqueline
2024-06-14Improve DAC power+mute management to reduce clicks and popsjacqueline
2024-06-12WIP fix issues introduced by lvgl version bumpjacqueline
2024-06-06daniel/bluetooth-avrc (#80)ailurux
Have a squizzy and lemme know if any issues @cooljqln 🐝 Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/80 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-06-04no more acquire_spi :)jacqueline