1b2f2f3888
update code to use stm32f4xx-hal 0.10.1 API
2022-03-02 17:21:17 +08:00
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: M-Labs/thermostat#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
e6a5c31db6
main.rs refactor to reduce length ( #60 )
...
Move command handling to command_handler.rs to shorten main.rs
Reviewed-on: M-Labs/thermostat#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
a5d8661b10
main: fix handling of incomplete data received ( #55 )
...
Reviewed-on: M-Labs/thermostat#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
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
16844a1dc1
dac: fix inconsistent current output behavior due to repeated sampling of noisy vref
2021-01-25 13:51:50 +08:00
8eb3cc4307
dfu: style
2021-01-18 16:59:13 +08:00
f3661ac8e3
dfu: refactor
2021-01-18 16:45:01 +08:00
c4e3be1d05
fix pid.rs test, exclude dfu from test
2021-01-16 11:04:24 +08:00
cf3ace4d2d
flash_store: get addresses from linker
...
Reviewed-on: M-Labs/thermostat#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
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
9e4d06fdbc
clarify comment
2021-01-11 16:24:43 +08:00
3433881d0f
remove dead code
2021-01-11 14:10:50 +08:00
193d54a0a6
pid: anti-windup when compliance voltage reached
2021-01-11 14:00:52 +08:00
3067b356c5
channels: add methods to retrieve actual voltage and current of TEC
2021-01-08 16:18:20 +08:00
3ba2cc9ddc
channels: voltage measurement refalect actual voltage across TEC
2021-01-08 15:52:35 +08:00
1539b624bd
pid: more sensible default parameters
2021-01-08 11:31:33 +08:00
5c84b7438b
Integral rescaling
2021-01-08 11:25:01 +08:00
cc0126636c
report save success
...
save does not hang, it just did not report save success. Closes #33
Reviewed-on: M-Labs/thermostat#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
e94601f54f
pid: fix derivative calculation
...
Reviewed-on: M-Labs/thermostat#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
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
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
50a1b9f52d
pid: partial -> proportional
2020-12-26 11:01:40 +08:00
9852b32646
command_parser, main: implement ShowCommand::Ipv4
...
Fixes Gitea issue #30
2020-12-20 20:44:10 +01:00
22b0c9fcad
main: don't re- set_ipv4_config every tick
2020-12-20 20:43:20 +01:00
e13ed37271
pid: fix tests
2020-12-20 20:24:24 +01:00
b176fc2788
pid: doc parameters
2020-12-18 16:29:53 +01:00
b717ac5495
pid: update default gain parameters
2020-12-18 16:27:47 +01:00
e9e46b29cf
pid: integrate time_delta to free gain parameters from sampling period
...
Fixes Gitea issue #22
2020-12-18 15:40:05 +01:00
b7e6cdbec2
pytec: measure interval
2020-12-16 22:14:21 +01:00
b2f455b2cf
config: save/store pid_engaged
...
Fixes Gitea issue #17
2020-12-13 02:33:59 +01:00
ecc00a6aeb
init_log: delint
2020-12-13 02:24:29 +01:00
97813f917d
flash_store: get to a working state
2020-12-13 01:17:03 +01:00
880a887c40
new flash-based ipv4 config with additional mask_len, gateway
2020-12-12 23:44:16 +01:00
383ebcd8e4
rewrite config for sfkv-based flash_store
2020-12-12 01:25:07 +01:00
5c8bb47e11
command_parser: require the explicit i_set
symbol
2020-12-09 01:07:08 +01:00
5ddd4d250e
channels: swap adc inputs
...
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
ffb70bde0a
command_parser: fix input_remain match
2020-10-30 15:04:14 +01:00
d517dd75fe
update dependencies
2020-10-30 15:03:57 +01:00
a943308203
pid: never reset
2020-10-13 23:55:22 +02:00
c005784df5
steinhart_hart: rm outdated doc
2020-10-11 23:20:56 +02:00
d574ccb5f4
pid: change signedness from heating to cooling
2020-10-11 23:12:18 +02:00
6ba1459a3c
main: send error on invalid command
2020-10-11 23:11:27 +02:00
a332b5fcdc
main: fix saving new_ipv4_address
2020-10-11 01:59:39 +02:00
83a266852a
pid: move ki coefficient inside integration
2020-10-11 01:59:39 +02:00
175b88d0e6
s/tecpak/thermostat/g
2020-10-11 01:59:39 +02:00
6fd5328042
channels: rm debug output
2020-10-01 02:09:43 +02:00
59103cb2a1
add support for ipv4 address reconfiguration
2020-10-01 01:34:46 +02:00
12e713dc19
init_log: bump max level to Debug for USB
2020-10-01 00:34:28 +02:00
438da74721
main: remove all plain-text responses
2020-09-30 23:53:13 +02:00