Commit Graph
100 Commits
Author SHA1 Message Date
jacqueline 6fd588e970 Add touchwheel -> encoder adapter 2023-06-01 15:28:54 +10:00
jacqueline db2e29a72d Start on audio FSM playback. needs more thought. 2023-06-01 15:28:10 +10:00
jacqueline 4b93bb22db fish :) 2023-05-25 14:53:17 +10:00
jacqueline 65833649f4 Add some placeholder splash and menu screens
Includes a bunch of misc display fixes. Most significantly, our lvgl
tickers was busted.
2023-05-24 13:30:05 +10:00
jacqueline 3b371cfc54 reuse annotate new files 2023-05-24 07:42:03 +10:00
jacqueline 3041e48ca6 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-05-24 07:20:16 +10:00
jacqueline 876e5e70e9 Don't crash if there's no sd card 2023-05-24 07:17:42 +10:00
jacqueline a4f94c812a Annote E V E R Y T H I N G with license info 2023-05-23 13:56:22 +10:00
jacqueline ebcdf93930 Re-enable app console 2023-05-23 09:29:22 +10:00
jacqueline 4bff06c76c Drop himem audio buffers (for now?)
For some reason the spinlocks required now block forever? Very odd.

On the plus side, this turned out to be the issue that was stopping the
audio pipeline from running on the app core.
2023-05-23 09:13:22 +10:00
jacqueline ecee01fe97 Remove audio drain task
ISR drain works fine!
2023-05-23 09:00:06 +10:00
jacqueline 82830f995c Fix some logging, add transition to missing storage 2023-05-22 16:52:50 +10:00
jacqueline da977aaa3f Merge branch 'main' into state-machines 2023-05-22 15:35:50 +10:00
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
2023-05-22 15:23:51 +10:00
jacqueline a6ab150405 Add tinyfsm, start converting core functions to an FSM-based event loop 2023-05-19 21:21:27 +10:00
jacqueline b320a6a863 Add basic samd class 2023-05-18 18:17:14 +10:00
jacqueline d71f726c42 Add pagination to database queries 2023-05-16 14:11:38 +10:00
jacqueline 785349eb5b Touchwheel works!!!!!!! 2023-05-12 15:24:56 +10:00
jacqueline f3d0e8f98f Slightly improve touchwheel not-working-ness
It still doesn't work tho
2023-05-12 14:12:23 +10:00
jacqueline 961c8014ad Add some basic tests for the database 2023-05-12 10:30:07 +10:00
jacqueline 10eb120878 Add tests for record encoding 2023-05-09 13:50:04 +10:00
jacqueline d739edef76 Fix tests!
Includes removing some that never passed and/or weren't quite a good
idea
2023-05-09 11:20:57 +10:00
jacqueline 16e6180ba7 Database init is now stable! 2023-05-08 17:47:29 +10:00
jacqueline fe19478e0f Output hash of song triple 2023-05-02 16:10:21 +10:00
jacqueline 86c44199b0 add komihash: the fast and fun hashing header! 2023-05-02 16:10:08 +10:00
jacqueline ee559cd722 Give the touchwheel a little more juice for debugging 2023-05-02 16:01:41 +10:00
jacqueline 09ad66136d clang-format 2023-04-28 13:54:46 +10:00
jacqueline bdadc159c7 Add libtags for extracting info from files 2023-04-28 13:26:47 +10:00
jacqueline cd520b9360 Make queries a little less copy-paste 2023-04-27 16:03:55 +10:00
jacqueline 5d7cbec34c Move DB interactions to a background thread 2023-04-27 12:55:30 +10:00
jacqueline fbe047a35f Add some basic data and retrieval 2023-04-26 15:21:32 +10:00
jacqueline 083f4011aa removed unused raw db stuff 2023-04-26 12:27:28 +10:00
jacqueline 2be4d4204c Allow RenameFile to overwrite existing files 2023-04-26 10:20:53 +10:00
jacqueline 7972bd4567 Merge branch 'main' into leveldb 2023-04-26 08:49:02 +10:00
jacqueline 5575378c1c fix use-after-move 2023-04-21 19:03:23 +10:00
jacqueline 464a4bf527 Add a RAII-friendly DI wrapper for driver instances 2023-04-21 18:42:49 +10:00
jacqueline 84f45e6045 Don't crash if there's no sd card :) 2023-04-21 18:42:37 +10:00
jacqueline 7083459cf3 wrap driver instance ownership + di in a class 2023-04-21 15:27:57 +10:00
jacqueline 130009eb14 Pin audio pipeline to the app core 2023-04-21 10:35:39 +10:00
jacqueline cc3fd9571e split out lvgl task into its own component 2023-04-21 10:30:52 +10:00
jacqueline f955804495 use a freertos timer for lvgl ticks 2023-04-21 10:00:05 +10:00
jacqueline 27c63ebb95 Switch to an MVP-ready 16bit three wire DAC setup 2023-04-20 21:25:22 +10:00
jacqueline 2d95b63727 Working without big distortion :) 2023-04-20 14:47:32 +10:00
jacqueline 731b2cfa77 working isr-based sink, but still grainy 2023-04-20 11:25:43 +10:00
jacqueline 4c77950e70 Pipeline working and outputting correctly, but noisy 2023-04-19 16:45:50 +10:00
jacqueline 561f9d2a07 Ensure the sink buffer is large enough to not fully drain during
playback
2023-04-19 13:00:42 +10:00
jacqueline 25c5896dc5 add some bounds checking asserts 2023-04-19 10:29:40 +10:00
jacqueline 7a54ff0df9 WIP track down new pipeline memory issues 2023-04-19 10:29:40 +10:00
jacqueline 40a9734b04 Redo pcm registers to include pages 2023-04-19 10:29:40 +10:00
jacqueline 3836768bb8 new pipeline working(?), but the dac eludes me 2023-04-19 10:29:40 +10:00
jacqueline 7c6fd654f5 New pipeline building, still needs proper control 2023-04-19 10:29:38 +10:00
jacqueline 3817ec0c77 turn on amp for development 2023-04-19 10:27:59 +10:00
jacqueline a9531c86a4 mostly single task pipeline 2023-04-19 10:27:59 +10:00
jacqueline 2a46eecdc6 Temporarily allow the touchwheel to be missing 2023-04-19 10:27:33 +10:00
jacqueline 35ecf8c49b rename 2023-04-17 16:39:06 +10:00
jacqueline a1cef17c5b Leave the display reset pin alone; we don't need it 2023-04-12 16:37:27 +10:00
jacqueline c93ed8efad fix some display issues 2023-04-06 16:18:04 +10:00
jacqueline 1b245316fe fix up touchpad timeouts, make it less chatty 2023-04-04 14:48:35 +10:00
jacqueline 9799ab458d fix sd card on for dev + mux pin 2023-03-30 10:15:09 +11:00
jacqueline a0ae39befe Update pinouts for R3 2023-03-30 09:31:08 +11:00
jacqueline 53ad4fc3f2 daniel wat 2023-03-13 15:19:22 +11:00
jacqueline b9a75cd55a LDO up at boot 2023-03-10 12:26:32 +11:00
jacqueline dd3cb1b760 Merge remote-tracking branch 'refs/remotes/origin/main' 2023-03-08 12:52:58 +11:00
jacqueline 0fce4fcc06 update to faceplate bodge 2023-03-08 12:47:56 +11:00
jacqueline 4887f37898 add leveldb 2023-03-08 11:35:54 +11:00
jacqueline d01f1bee10 Use UTF-8 for filenames 2023-02-23 18:51:01 +11:00
jacqueline e0363df454 Make a few init things fail less fatally 2023-02-22 11:17:48 +11:00
jacqueline db01e6335a Make default font not look broken 2023-02-22 10:53:39 +11:00
jacqueline fed7b450b3 Fix up display artficacts and clean up unused features 2023-02-22 10:28:11 +11:00
jacqueline 47ae601d41 Tidy up pipeline and use arena capacity to test for overruns 2023-02-21 14:40:18 +11:00
jacqueline 941bafca17 Add a memory arena for the audio pipeline 2023-02-21 13:19:11 +11:00
jacqueline 12d2ffdab7 Add logging to the DAC 2023-02-21 09:28:36 +11:00
jacqueline 644601b636 mark i2s callbacks as iram safe 2023-02-14 14:31:58 +11:00
jacqueline a65d996583 Use the sync apis for I2S output 2023-02-14 14:30:53 +11:00
jacqueline fa1f1cd9ab i am boo. boo the fool. 2023-02-13 16:22:45 +11:00
jacqueline f0a4b4cf50 whoops, remove chatty logging 2023-02-10 15:33:24 +11:00
jacqueline 61c91b3cdb Mostly working pipeline, including proper EOF signalling 2023-02-10 15:32:21 +11:00
jacqueline cabfd4b75e fix pipeline heap corruption and chunk ignores 2023-02-05 14:27:06 +11:00
jacqueline 9eecf78e08 fixing reading past eof 2023-01-31 16:35:52 +11:00
jacqueline aae1871999 remove unused ISR allocation
this was blocking the i2s driver somehow!(?)
2023-01-31 14:39:52 +11:00
jacqueline ef8d404b15 Continue ironing out i2s pipeline
still at least one heap corruption issue, plus the i2s write method
seems to block forever :/
2023-01-30 15:52:54 +11:00
jacqueline 2cc0a38a1a pipeline memory management fixes + logging 2023-01-27 13:28:22 +11:00
jacqueline 7b60f5f864 Make StreamInfo a PDO 2023-01-26 18:32:32 +11:00
jacqueline 3696512b38 Fix memory leak, re-enable play command (it doesnt work lol) 2023-01-26 15:09:59 +11:00
jacqueline f6dcd845fc Switch from MessageBuffer to Queue for pipeline comms 2023-01-26 15:02:57 +11:00
jacqueline e7f926e2c3 Tolerate longer dac timeouts + i2c timeouts during bootup 2023-01-24 16:47:04 +11:00
jacqueline a03b1e2139 Clean up main task log output 2023-01-24 16:42:49 +11:00
jacqueline e5fb1759b1 Add a bunch of logging from playback stream investigatons 2023-01-24 16:39:52 +11:00
jacqueline 0560fa7f10 clang-format 2023-01-21 19:02:28 +11:00
jacqueline 8ed3d7e31f Re-enable the parts of the audio pipeline that are working 2023-01-21 19:01:54 +11:00
jacqueline c7901ae429 build fixes for new compiler version and standard 2023-01-21 15:09:05 +11:00
jacqueline 8cb9e9361c ignore newly added warning 2023-01-21 15:08:46 +11:00
jacqueline bc8ff773f2 Default c++ standard is now 20! 2023-01-21 15:08:25 +11:00
jacqueline 085b6f3faa Ignore files created internally by esp-idf 2023-01-21 14:17:38 +11:00
jacqueline f013bab727 Migrate to the v5 adc api 2023-01-21 14:10:25 +11:00
jacqueline 393b268e15 Vendor tinycbor, since v5 no longer includes it 2023-01-21 14:09:00 +11:00
jacqueline bb50cf52cd bump esp-idf up to v5.0 2023-01-20 17:00:24 +11:00
jacqueline 4c88fcc4a5 fix build issues with new pipeline 2023-01-20 09:48:29 +11:00
jacqueline e53dfc4cc5 Merge branch 'main' into codecs 2023-01-17 13:52:38 +11:00
jacqueline 41993ea509 Merge branch 'r2-bringup' 2023-01-17 13:47:30 +11:00