Commit Graph

344 Commits

Author SHA1 Message Date
Egor Savkin a645bfb6e8 Remove all tacho/status related logic
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-01-05 15:30:07 +08:00
Egor Savkin 33070abd81 Make commands more consistent
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-01-05 13:04:21 +08:00
Egor Savkin 21fc244eac Fan status via quadratic regression
* statuses: detect slow fan via quadratic regression and halts (hard stops) with constant threshold
* remove unsafe channels' copy and make FanCtrl own the channels
* scale fan values so that they would fit 0.05-1.0 PWM at all times
* rename fan-restore to fcurve-restore
* style, names and docs adjustments

Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-01-05 11:57:21 +08:00
Egor Savkin 630635486e Polish minor issues
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-23 13:23:18 +08:00
Egor Savkin ea2eb51b27 Add fan warnings
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-23 13:13:33 +08:00
Egor Savkin 58650d37f1 Refactor and coefficients implemented
Move all the fan logic to the separate file. Add controls for controlling curve.

Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-22 17:28:08 +08:00
Egor Savkin 66143d2373 Implemented auto fan control
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-21 14:59:49 +08:00
Egor Savkin 583d06a78b Make fan cmd show the stats
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-20 12:58:00 +08:00
Egor Savkin d117c784d9 Draft hw rev support and fan command
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-19 17:15:33 +08:00
Egor Savkin 4223f7a4ad Draft tacho support
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-15 16:47:52 +08:00
Egor Savkin 30350a3651 Draft support fan pwm settings
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-14 17:25:29 +08:00
mwojcik 5688b2f1bb flake: update stm32-eth sha256 hash 2022-03-02 17:21:17 +08:00
mwojcik 1b2f2f3888 update code to use stm32f4xx-hal 0.10.1 API 2022-03-02 17:21:17 +08:00
mwojcik e6f63ec940 cargo/nix: update rustc, stm32-eth, smoltcp 2022-03-02 17:21:17 +08:00
mwojcik 67446ae99e cargo/flake: update package versions 2022-03-02 17:21:17 +08:00
topquark12 26ad2f0119 rewrite PID
Rewrite of PID according to https://hackmd.io/IACbwcOTSt6Adj3_F9bKuw PID implementation.

To migrate:
- TEC+/- pin polarity has to be reversed.
- Some saved settings might be wiped upon flashing of new firmware, back up settings before upgrade
- Min / Max integral parameters no longer exist
- kp, ki, kd will likely need to be retuned

The software has been tested on hardware with good temperature control stability.

Reviewed-on: #68
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-committed-by: topquark12 <aw@m-labs.hk>
2022-02-24 20:16:47 +08:00
Alex Wong 69dabf5aa1 update hash 2022-01-24 17:20:32 +08:00
mwojcik a26cdfabb1 readme: update CI links 2022-01-19 11:37:01 +08:00
mwojcik 4d43709f76 nix flakes support (#64)
Reviewed-on: #64
Co-authored-by: mwojcik <mw@m-labs.hk>
Co-committed-by: mwojcik <mw@m-labs.hk>
2022-01-19 11:13:47 +08:00
Sebastien Bourdeauducq 1c00e732fa README: minor corrections 2022-01-05 08:22:43 +08:00
Sebastien Bourdeauducq 09082b24a5 README: update build instructions 2022-01-05 08:04:25 +08:00
Sebastien Bourdeauducq 85e8273d51 shell.nix: follow nix-scripts 2022-01-05 07:54:07 +08:00
Sebastien Bourdeauducq e81c6d1692 README: fix objcopy command 2022-01-05 07:50:53 +08:00
Sebastien Bourdeauducq 1f644fd62c README: fix nix-scripts folder 2021-07-14 08:43:59 +08:00
Sebastien Bourdeauducq 4f1d865d2b README: fix Hydra links 2021-07-14 08:42:53 +08:00
topquark12 e6a5c31db6 main.rs refactor to reduce length (#60)
Move command handling to command_handler.rs to shorten main.rs

Reviewed-on: #60
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-committed-by: topquark12 <aw@m-labs.hk>
2021-06-07 10:07:05 +08:00
topquark12 a5d8661b10 main: fix handling of incomplete data received (#55)
Reviewed-on: #55
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-29 16:18:07 +08:00
topquark12 7cb0ed70be Reset all TCP sockets before MCU reset (#53)
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-26 17:45:14 +08:00
topquark12 6b9d61737e docs: update docs to reflect improved stability performance 2021-01-25 13:51:50 +08:00
topquark12 16844a1dc1 dac: fix inconsistent current output behavior due to repeated sampling of noisy vref 2021-01-25 13:51:50 +08:00
topquark12 96f52ace8b pytec: simpler default graphs in plot 2021-01-25 13:51:50 +08:00
topquark12 a1a8efd51a readme: update docs on max_i_neg command and heat flow directions 2021-01-25 13:51:50 +08:00
Sebastien Bourdeauducq 8eb3cc4307 dfu: style 2021-01-18 16:59:13 +08:00
topquark12 f3661ac8e3 dfu: refactor 2021-01-18 16:45:01 +08:00
topquark12 c4e3be1d05 fix pid.rs test, exclude dfu from test 2021-01-16 11:04:24 +08:00
topquark12 cf3ace4d2d flash_store: get addresses from linker
Reviewed-on: #49
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-13 17:30:12 +08:00
topquark12 f6802635a4 add command to reboot into DFU
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-13 11:59:06 +08:00
topquark12 9e4d06fdbc clarify comment 2021-01-11 16:24:43 +08:00
topquark12 3433881d0f remove dead code 2021-01-11 14:10:50 +08:00
topquark12 193d54a0a6 pid: anti-windup when compliance voltage reached 2021-01-11 14:00:52 +08:00
topquark12 3067b356c5 channels: add methods to retrieve actual voltage and current of TEC 2021-01-08 16:18:20 +08:00
topquark12 3ba2cc9ddc channels: voltage measurement refalect actual voltage across TEC 2021-01-08 15:52:35 +08:00
topquark12 1539b624bd pid: more sensible default parameters 2021-01-08 11:31:33 +08:00
topquark12 5c84b7438b Integral rescaling 2021-01-08 11:25:01 +08:00
topquark12 cc0126636c report save success
save does not hang, it just did not report save success. Closes #33

Reviewed-on: #44
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-07 18:01:43 +08:00
topquark12 45b7c4e669 add documentation about PID setup and using Python tools
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-07 14:48:39 +08:00
topquark12 73dd6d9154 add PID autotune code
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-06 11:02:52 +08:00
topquark12 e94601f54f pid: fix derivative calculation
Reviewed-on: #40
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2020-12-29 17:09:03 +08:00
topquark12 8c9e12587f fix simulation math, provided simulation control loop is stable and passes test, reaching simulation cycle limit before settling fails test 2020-12-28 17:38:10 +08:00
topquark12 7c013ff4a4 PID fixes
Flipped error calculation method to correct behavior of kP and kI terms.

Added anti integral windup to integral handling.

Changed how the i and integral term is calculated, to prevent old kI settings from affecting the current i term calculation when kI is being tuned. Especially noticable when kI is set from a non-zero value to zero.
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2020-12-26 11:47:21 +08:00