Commit Graph

129 Commits

Author SHA1 Message Date
Robert Jördens c13859d486 dual-iir: add closure nesting helper macro 2021-05-25 12:05:19 +02:00
Robert Jördens 2a9657f98c dual-iir: destructure resources 2021-05-24 22:41:22 +02:00
Robert Jördens 3165c680d6 dma: don't swap buffers
* This uses a new closure-based method to the DMA HAL implementation which
  gives access to the inactive buffer directly.
* It removes changing addresses, the third buffer for DBM, the inactive
  address poisoning, and allows the cancellation of the redundant repeat
  memory barriers and compiler fences.
* This is now around 20 instructions per buffer down from about 100 cycles
  before.
* Also introduces a new `SampleBuffer` type alias.
* The required unpacking of the resources structure is a bit annoying
  but could probably abstraced away.

TODO:

* Test
* Adapt `lockin`
2021-05-24 20:56:11 +02:00
Robert Jördens e58e7f179e clean up item visibility
* There isn't much API that would only be used accross modules within
  stabilizer/dsp but should not be pub beyond stabilizer/dsp.
* Therefore it's easier to let the definition determine visibility and
  the mod.rs/lib.rs determine location in the namesapce.
* Blanket use pub items in mod and lib.
2021-05-17 13:01:45 +02:00
Ryan Summers 21ca8e1c8f Adding initial streaming implementation 2021-05-17 12:43:04 +02:00
Robert Jördens 66184ca089 Merge remote-tracking branch 'origin/master' into rj/itcm
* origin/master: (34 commits)
  Simplifying unit conversions
  Cleaning up conversion + comments
  Addressing review feedback
  Update src/hardware/dac.rs
  Renaming AdcSample -> AdcCode
  Updating float conversion
  Adding adc/dac code conversion utilities
  Simplifying settings lock
  Updating after review
  Updating delay
  Fixing merge
  Formatting
  Updating dependencies
  Fixing clippy
  Finalizing merge
  Merging lockin app functions
  Fixing system timer
  Fixing build, formatting
  Adding documentation
  Renaming files
  ...
2021-05-10 17:00:57 +02:00
Robert Jördens bd491cf584
Merge branch 'master' into rj/itcm 2021-05-10 12:09:01 +02:00
Ryan Summers fa886d2eac Cleaning up conversion + comments 2021-05-10 11:10:26 +02:00
Ryan Summers 60b1b112b1 Renaming AdcSample -> AdcCode 2021-05-07 14:11:25 +02:00
Ryan Summers b73a4d9e59 Adding adc/dac code conversion utilities 2021-05-07 13:50:34 +02:00
Ryan Summers d68fa87fec Simplifying settings lock 2021-05-07 13:04:25 +02:00
Ryan Summers 7b76b1f14c Updating after review 2021-05-07 13:02:14 +02:00
Ryan Summers e07f0a4e2a Formatting 2021-05-06 16:37:36 +02:00
Ryan Summers 03adb72aab Fixing clippy 2021-05-06 16:23:41 +02:00
Ryan Summers 4cbc826f00 Adding documentation 2021-05-06 12:33:07 +02:00
Ryan Summers 0c6935587e Adding updated telemetry implementation 2021-05-05 16:46:53 +02:00
Ryan Summers 8144b3acf2 Updating constructors 2021-05-05 16:16:54 +02:00
Ryan Summers 4a656eedd2 Adding refactor for telemetry 2021-05-05 15:39:33 +02:00
Ryan Summers 06b328ff52 Adding WIP updates for telemetry 2021-05-05 14:42:17 +02:00
Ryan Summers 5767973548 Merge branch 'feature/mqtt-rework' into feature/telemetry 2021-05-04 18:19:38 +02:00
Ryan Summers 5c4ba78dd1 Refactoring MQTT architecture 2021-05-04 13:13:44 +02:00
Ryan Summers b35250efbf Fixing ADC/voltage conversion functions 2021-04-29 17:39:19 +02:00
Robert Jördens f0c50d9678 Merge branch 'master' into rj/itcm
* master: (70 commits)
  Updating JSON syntax
  Updating trigger
  Adding bors timeout
  dual-iir: add some mqtt parameter docs
  changelog: spelling
  update lock
  let bors handle hitl
  prepare v0.5.0 release
  Updating code after review
  Adding comment, reverting change
  Adding sleep to HITL run
  Updating ping deadline
  Reverting unintended change
  Updating dependency revision
  Renaming interface to avoid confusion
  dual-iir: use InputPin re-export, rename digital_input
  Updating dependency
  dual-iir: add enable_hold, force_hold
  fix bench
  hardware: add digital input support
  ...
2021-04-29 17:28:58 +02:00
Ryan Summers e746e2a12c Adding WIP telemetry 2021-04-29 15:55:36 +02:00
Ryan Summers f49ba30e2d Merge branch 'feature/mqtt-rework' into feature/telemetry 2021-04-29 12:26:46 +02:00
Ryan Summers 01349a39b3 Merge branch 'master' into feature/mqtt-rework 2021-04-29 11:07:00 +02:00
Robert Jördens 61dc6e340e dual-iir: add some mqtt parameter docs 2021-04-28 16:27:59 +02:00
Ryan Summers 36cc423f70 Refactoring MQTT to support telemetry 2021-04-22 15:16:33 +02:00
Ryan Summers afcf058590 Refactoring telemetry to support binaries 2021-04-20 14:12:47 +02:00
Ryan Summers 1c9f30b4d5 Merge branch 'rs/issue-276/unique-identifiers' into feature/telemetry 2021-04-20 13:46:37 +02:00
Ryan Summers 065221e89f Merge branch 'master' into rs/issue-276/unique-identifiers 2021-04-19 15:52:29 +02:00
Ryan Summers 1a08634dcb Renaming interface to avoid confusion 2021-04-19 12:17:41 +02:00
Ryan Summers f32949ed17 Merge branch 'master' into feature/phy-reset 2021-04-19 12:10:37 +02:00
Ryan Summers f442418f16 Merge branch 'master' into feature/telemetry 2021-04-15 15:43:40 +02:00
Ryan Summers 854f45ae15 Updating tick rates 2021-04-15 15:08:57 +02:00
Ryan Summers 330f67d3c8 Adding WIP telemetry implementation for dual-iir 2021-04-15 14:40:47 +02:00
Robert Jördens 8cc06d39c4 dual-iir: use InputPin re-export, rename digital_input 2021-04-15 13:47:10 +02:00
Robert Jördens 2bfed7b669 dual-iir: add enable_hold, force_hold
* Also use Settings as resource directly and copy it bulk (like
  lockin-external)
2021-04-14 16:09:54 +02:00
Robert Jördens 8954c94a20 hardware: add digital input support
* The inputs of the buffer are not pulled up/down. That might make them
  unusable if left floating.
2021-04-14 15:53:52 +02:00
Ryan Summers 033420b934 Adding custom identifier prefix calculations 2021-04-13 15:38:30 +02:00
Robert Jördens 14bae09935 load process into itcm
needs newer fixed cortex-m-rt 0.6.13+unreleased
relevant? https://reviews.llvm.org/D81986
2021-03-29 17:34:17 +02:00
Ryan Summers 5e448f284b Updating net module 2021-03-24 13:48:34 +01:00
Ryan Summers a717630c53 Adding prototype PHY reset detection 2021-03-17 20:16:39 +01:00
Ryan Summers 331e21b00a Updating dependencies 2021-03-17 14:47:14 +01:00
Ryan Summers 4a9c2fe23a Updating after DHCP PR review 2021-03-15 11:41:13 +01:00
Ryan Summers c2cb9a440c Adding initial DHCP support prototype 2021-03-04 17:26:10 +01:00
Robert Jördens e2b54d0e53 binaries: move MQTT_ADDRESS to design_parameters
until some better design with DHCP and/or (m)DNS is implemented
2021-03-03 15:01:28 +01:00
Robert Jördens ca6596c7b8 cli: rework
* use plain json for argument format
* rename feedback -> response to match code
* reorganize args
* tweak variable names to be more in line with miniconf and mqtt
* use `mqtt` as broker
* remove traces of stabilizer from script, rename to miniconf.py
* add usage example

* dual-iir/lockin-external: update broker address (for HITL),
  change mqtt path to convention
2021-03-02 19:21:42 +01:00
Robert Jördens ca66894d51 Merge remote-tracking branch 'origin/feature/miniconf-update' into lockin-external-miniconf
* origin/feature/miniconf-update:
  Adjusting sleep semantics
  Fixing negation
  Restoring sleep semantics
  Updating dependencies
  Updating id semantics
  Updating dependencies
  Updating minimq/miniconf dependencies
  Updating miniconf dependencies
2021-03-02 17:24:58 +01:00
Ryan Summers a9d16a1632 Adjusting sleep semantics 2021-03-02 17:20:31 +01:00
Ryan Summers aca524ec85 Fixing negation 2021-03-02 17:17:51 +01:00
Ryan Summers c13eaaba4c Restoring sleep semantics 2021-03-02 17:16:40 +01:00
Ryan Summers 4358d07dab Updating id semantics 2021-03-02 17:09:10 +01:00
Ryan Summers c2b00db9e9 Updating minimq/miniconf dependencies 2021-03-02 16:43:19 +01:00
Robert Jördens 6a96160cd0 dual-iir: fix panic message 2021-03-01 19:49:21 +01:00
Ryan Summers c553e72df4 Updating miniconf dependencies 2021-03-01 14:46:12 +01:00
Ryan Summers 63a2220fa0 Removing support for configuring IIR state 2021-02-17 17:56:18 +01:00
Ryan Summers a55b30e6c4 Working around dependency injection bug 2021-02-17 17:50:17 +01:00
Ryan Summers 50476f68fd Adding settings support for lockin-external 2021-02-17 16:53:53 +01:00
Ryan Summers cb16e9a85f Updating settings update function 2021-02-17 12:59:24 +01:00
Ryan Summers 13e02710cd Adding simplified clocking semantics 2021-02-17 12:08:03 +01:00
Ryan Summers 9e1f4a864c Merge branch 'master' into feature/mqtt-convert 2021-02-17 11:44:10 +01:00
Ryan Summers 91f16c2961 Adding working example 2021-02-03 19:55:58 +01:00
Robert Jördens c557348523 core_intrinsics attr need to be in the lib crate 2021-02-03 15:26:13 +01:00
Ryan Summers 738516eedb Adding broken example 2021-02-03 15:13:37 +01:00
Ryan Summers 9e1a6ec4d5 Updating dependencies 2021-02-03 14:06:09 +01:00
Ryan Summers 913990d531 Merge remote-tracking branch 'origin/rj/bump-hal-smoltcp' into feature/mqtt-convert 2021-02-03 14:02:20 +01:00
Robert Jördens b6e22b576b iir: add const fn new() 2021-02-01 17:18:10 +01:00
Robert Jördens 656e3253ab lockin-internal: document, streamline sequence 2021-02-01 17:09:06 +01:00
Robert Jördens 2c60103696 dsp: accu: add, iir: rename IIRState to Vec5 2021-02-01 12:23:47 +01:00
Robert Jördens 47089c267c dsp: align iir and iir_int, add iir micro benches 2021-01-31 19:12:24 +01:00
Ryan Summers 096f786795 Expanding miniconf to lockin 2021-01-30 18:57:06 +01:00
Ryan Summers 411a847a88 Updating smoltcp-nal 2021-01-30 18:48:27 +01:00
Ryan Summers 9a1bb5da91 Fixing build 2021-01-30 15:07:26 +01:00
Ryan Summers b73286c188 Removing MQTT interface 2021-01-30 15:00:58 +01:00
Ryan Summers 702ccc231d Using custom branch of miniconf 2021-01-27 18:15:35 +01:00
Ryan Summers a772ccc38a Adding WIP updates for StringSet 2021-01-26 19:14:23 +01:00
Ryan Summers f0e7c153ba Adding WIP refactor for MQTT + settings 2021-01-26 14:28:06 +01:00
Ryan Summers 26677063ea Adding support for multiple applications 2021-01-20 13:43:34 +01:00