Commit Graph
100 Commits
Author SHA1 Message Date
tdfischer a62aefda77 tasks: motion: add hard timeouts to the motion engine, to catch deadlocks 2026-02-28 17:18:34 +01:00
tdfischer 0d8254501b tasks: ble: cleanup 2026-02-28 17:16:46 +01:00
tdfischer 3b763fcf99 graphics: display: figments++ 2026-02-28 17:16:13 +01:00
tdfischer 315fa633c1 ego: engine: move some of the system constants out into real const values 2026-02-28 17:15:32 +01:00
tdfischer 54ebbbaea7 tasks: demo: build++ 2026-02-28 17:00:30 +01:00
tdfischer 816cc20087 tasks: use new animations api 2026-02-28 16:59:29 +01:00
tdfischer e8a7a18539 graphics: more figments updates 2026-02-28 16:58:11 +01:00
tdfischer 22d1b4d077 tasks: more Fract8 update 2026-02-28 16:54:44 +01:00
tdfischer 935f30d968 events: combine gravity and forwards fusion sensors into a shared motionframe 2026-02-28 16:52:00 +01:00
tdfischer f2b2674158 tasks: render: switch to using the new figments DMA driver 2026-02-28 16:49:26 +01:00
tdfischer 319c812a61 graphics: update to use figments Fract8 type 2026-02-28 16:47:25 +01:00
tdfischer 95ebc7820a logging: implement a way to set the logging levels at runtime 2026-02-28 16:43:25 +01:00
tdfischer 08a3c65346 animation: rewrite the apply() algorithm to use fewer timers and multiple targets at once 2026-02-02 19:43:43 +01:00
tdfischer 2aaa64374b tasks: simulation: split out flash storage api bits into separate mod 2026-01-31 16:29:11 +01:00
tdfischer 75c544c461 cargo: config: remove --chip from espflash command 2026-01-27 16:55:54 +01:00
tdfischer a0ece1696f cargo: config: turn off frame pointers, but turn on stack protection 2026-01-27 16:55:37 +01:00
tdfischer ecb06e1a56 ego: engine: warnings-- 2026-01-27 16:53:54 +01:00
tdfischer 3425cd2339 partitions: shrink sim data partition back to fit into 8mb 2026-01-05 13:07:24 +01:00
tdfischer ec1761f73e build: support partition sizes in kb 2026-01-05 13:07:03 +01:00
tdfischer f2ff1914b1 radio: rewrite the networking stack, and implement some BLE magic 2026-01-05 13:06:23 +01:00
tdfischer 3bf7ebc997 graphics: ssd1306: fix crash in dithering 2026-01-05 13:03:58 +01:00
tdfischer bac9300b7e tasks: render: commit only works with mut, duh 2026-01-05 13:03:38 +01:00
tdfischer d01bda9dd5 tasks: ui: use embassy-futures instead of futures crate 2026-01-05 13:02:41 +01:00
tdfischer 36daf8d6ee tasks: rendering: commit surfaces before drawing 2026-01-05 13:00:18 +01:00
tdfischer 6132efb7c4 main: remove the critical_section from the logger since it isn't needed 2026-01-05 12:59:00 +01:00
tdfischer 23043a42a2 logging: implement a way to set logging levels and categories by env variables 2026-01-03 14:50:18 +01:00
tdfischer fa57c0ce81 events: use fract8 instead of f32 for sim progress percentage 2026-01-03 14:49:17 +01:00
tdfischer a117b04c5f graphics: oled_ui: update figments api 2026-01-03 14:48:52 +01:00
tdfischer fe0e2bede2 tasks: motion: print out sim progress percentage 2026-01-03 14:48:23 +01:00
tdfischer f4c379a3e8 graphics: ssd1306: reimplement dithering using an ordered dither map 2026-01-03 14:47:38 +01:00
tdfischer b6029778e0 graphics: display: update figments api to drop pixel spaces 2026-01-03 14:47:12 +01:00
tdfischer 3d6f784683 partitions: go back to 8mb flash detection 2026-01-03 14:46:05 +01:00
tdfischer 38251303b7 build: add support for stream decimation when generating sim data 2026-01-03 14:45:37 +01:00
tdfischer 461f17071f tasks: simulation: give even more accurate error reporting 2026-01-03 14:45:09 +01:00
tdfischer 4f8131b189 tasks: simulation: better handle certain errors 2026-01-02 15:56:40 +01:00
tdfischer d2b10288a7 events: finally drop the whole bus garage idea 2025-12-27 19:55:22 +01:00
tdfischer 7e0889b624 src: build without --feature simulation 2025-12-25 11:56:34 +01:00
tdfischer 6e1f5423f9 simulation: rewrite the simulation data processing to share a lot of the same code on both the build script and the chip, allowing for more general data streaming possibilities 2025-12-24 17:08:53 +01:00
tdfischer 83e4614d10 build: move the int/stream type mapping into a simdata module shared by the build script 2025-12-24 09:59:12 +01:00
tdfischer 2630c97609 ego: orientation: account for sensor bias when determining what 'forwards' is, and let forwards be more flexible if our detection finds it needs changed 2025-12-24 09:44:01 +01:00
tdfischer 9059066206 ego: orientation: allow for a more generous definition of earth gravity 2025-12-24 09:42:57 +01:00
tdfischer 21fba09a4b main: add a dual-core feature flag, to switch between configs while debugging deadlocks 2025-12-24 09:42:00 +01:00
tdfischer cbab48c37f main: be more verbose when we cant launch a sim data task 2025-12-24 09:19:16 +01:00
tdfischer da60b6ddf5 graphics: display: clean up some of the display hardware status locking code 2025-12-24 09:18:50 +01:00
tdfischer d8ffdab92b tasks: render: add some extra pixels for buffer space for now 2025-12-24 09:17:33 +01:00
tdfischer 2d9d31092c tasks: simulation: increase task pool size to 3, for annotations 2025-12-24 09:15:54 +01:00
tdfischer 81df3e2973 tasks: mpu: remove the whole calibration step, as this is now handled inside the motion engine. maybe in the future we rewrite again to utilize the full DMP FIFO system on the IMU chip 2025-12-24 09:15:18 +01:00
tdfischer 7cc87b42c8 mpu: only emit hardware sensor states, not logical ones 2025-12-24 09:13:11 +01:00
tdfischer 2eebdc5837 main: use a noop mutex with i2c 2025-12-24 09:12:32 +01:00
tdfischer 046406291a events: rewrite the eventing system to reduce mutex usage to just the measurement bus 2025-12-24 09:11:16 +01:00
tdfischer 36f232f43c build: add annotations to event stream packages 2025-12-23 19:55:08 +01:00
tdfischer af021676db logging: log crate names, and hide non-renderbug messages 2025-12-23 19:54:25 +01:00
tdfischer 3f651718a4 tasks: motion: move the entire motion prediction engine into the second core, dedicating core 1 to hardware 2025-12-22 15:55:06 +01:00
tdfischer 73b037f0c2 cargo: add critical-section to deps 2025-12-22 15:37:02 +01:00
tdfischer 82d61a9df3 events: move the displaycontrols out of the bus garage and back into main 2025-12-22 15:22:14 +01:00
tdfischer d1cfcb30e8 main: bark on watchdog logs 2025-12-22 14:59:51 +01:00
tdfischer 7c250da4d9 partitions: with 16mb flash size, we can increase sim data size substantially 2025-12-22 14:59:16 +01:00
tdfischer d68df7c037 cargo: config: add -fforce-frame-pointers and set the esp-rtos tick rate to 50hz, and set flash size to 16mb 2025-12-22 14:58:57 +01:00
tdfischer d9fd112ee0 debug: add some more trace-level logging to animation and safetyui bits 2025-12-22 14:57:25 +01:00
tdfischer ea851f4b5a tasks: simulation: restructure sim data storage to better support the next step of resampling data to fit the configured partition 2025-12-21 18:41:35 +01:00
tdfischer 83ecdb61b2 cargo: update to esp-hal 1.0, and use esp-radio for less crashes 2025-12-07 14:58:07 +01:00
tdfischer b64678cff3 tasks: oled: update to new nullbufferpool syntax 2025-12-07 14:55:33 +01:00
tdfischer 727e96a539 graphics: ssd1306: move init steps to new asyncn method 2025-12-07 14:55:05 +01:00
tdfischer 6123844cd7 tasks: ui: update to new nullbufferpool signature 2025-12-07 14:53:26 +01:00
tdfischer 531c31d190 main: clean up use statements 2025-12-07 13:17:44 +01:00
tdfischer 5a403809e9 main: use StaticCell::init_with instead of init 2025-12-07 13:17:25 +01:00
tdfischer 7471cc1fbe cargo: remove oled from default features 2025-12-07 13:16:55 +01:00
tdfischer 88f1d3f8be cargo: add missing rtt dep 2025-12-07 13:16:34 +01:00
tdfischer 4235b54959 wifi: rewrite wifi task 2025-12-07 13:14:07 +01:00
tdfischer 20cc634714 logging: implement rtt logging output 2025-12-07 13:07:56 +01:00
tdfischer da7511aec7 main: configure hardware watchdogs to be petted faster than they expire 2025-12-07 13:03:30 +01:00
tdfischer 7666123809 cargo: set a default-run 2025-12-07 12:59:31 +01:00
tdfischer 84d6789aa3 logging: refactor max level config 2025-12-07 12:58:34 +01:00
tdfischer bcceb868c0 graphics: ssd: add Debug to SsdPixel 2025-12-07 12:57:55 +01:00
tdfischer 8123960db0 cargo: config: set wifi code to Deutschland 2025-12-07 12:57:06 +01:00
tdfischer caf8556e54 build: always build assets, since the UI drawing is separate from the hardware now 2025-12-07 12:56:38 +01:00
tdfischer 972ecbbdc2 tasks: mpu: emit gravity and forward sensor statuses 2025-12-07 12:55:23 +01:00
tdfischer 49c36c8aa8 tasks: oled_ui: tweak icon displays again 2025-12-07 12:54:54 +01:00
tdfischer b98ca91f24 tasks: gps: emit sensor statuses during init 2025-12-07 12:53:29 +01:00
tdfischer 567cc0d6e5 tasks: simulation: refactor the simulation tasks to common types that can simulate any sensor 2025-12-06 19:22:52 +01:00
tdfischer 761dbb8951 cargo: refer to local rmp build for builddeps 2025-11-23 21:33:54 +01:00
tdfischer 9c37cb58d1 graphics: ssd1306: refactor 2025-11-09 17:09:27 +01:00
tdfischer 092885f163 events: rewrite how sensor statuses are reported, and implement some oled UI icons for it 2025-11-08 12:04:22 +01:00
tdfischer a36fe3d1ac partitions: increase sim data size 2025-11-05 12:46:52 +01:00
tdfischer ee7c6fd068 cargo: add missing embedded-storage deps 2025-11-05 12:46:38 +01:00
tdfischer 41f69833e5 tasks: simulation: move sim data into a separate partition for flashing 2025-11-05 11:56:10 +01:00
tdfischer 4776227793 clean up imports and reorganize the ssd bits into a graphics mod 2025-10-26 11:14:28 +01:00
tdfischer 27e92edef0 oled: split out the ssd1306 driver into its own module, and reimplement the oled design with separate rendering and drawing tasks 2025-10-25 17:51:03 +02:00
tdfischer db912e0085 cargo: enable embedded-graphics support in figments 2025-10-25 10:30:47 +02:00
tdfischer 8783441814 render: rewrite the render loop to use a time-based frame index, allowing for future fps scaling based on energy mode 2025-10-25 10:30:01 +02:00
tdfischer 2dcdca0675 oled: rewrite the oled UI to have animations, and support a version of sleeping where the display is blank, at least 2025-10-17 20:28:55 +02:00
tdfischer 25a7dc7e18 animation: write a const Animation::new() 2025-10-17 20:28:17 +02:00
tdfischer 36826fbedc main: warnings++ 2025-10-17 18:12:40 +02:00
tdfischer 088dde4450 cargo: clean up dependencies and improve build times 2025-10-17 18:06:24 +02:00
tdfischer baa85612b7 warnings-- 2025-10-17 14:43:58 +02:00
tdfischer 9f17c6a8ef mpu: attempt to avoid recalibration after a basic reboot, if we were calibrated prior to the reboot 2025-10-17 14:40:26 +02:00
tdfischer a97a28bf9f ui: split out safety ui into its own dedicated set of layers 2025-10-17 14:40:07 +02:00
tdfischer 818f8af49a tasks: write an oled information driver 2025-10-17 14:39:26 +02:00
tdfischer eb9f949e4e display: make DisplayControls cloneable in a multi-thread context 2025-10-17 14:38:49 +02:00
tdfischer d957615d4e events: rewrite some event buses to use multi-consumer pubsub instead of single-consumer channels 2025-10-17 14:37:23 +02:00