atse
6f0acc73b8
Update LED L3 for PID status on every cycle
...
Check if PID is engaged on any channel every cycle, and match the status
with LED L3.
2023-08-10 16:43:19 +08:00
atse
b04a61c414
Turn off LED L3 only when all channels have no PID
...
Change the behaviour of LED L3 to turn off only when all channels have
PID disengaged, as opposed to when any channel disengages PID.
Otherwise, when disengaging PID on a Thermostat that has had both
channels engaged in PID, the LED would turn off, even when PID is still
engaged on the other channel.
This lets the LED better reflect the status of the Thermostat as a
whole, as it would stay on as long as PID is engaged on at least one
channel.
2023-08-07 16:09:54 +08:00
Egor Savkin
570c0324b3
implement support for fan PWM
...
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-committed-by: Egor Savkin <es@m-labs.hk>
2023-03-22 17:15:49 +08:00
mwojcik
1b2f2f3888
update code to use stm32f4xx-hal 0.10.1 API
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: 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
topquark12
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
topquark12
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
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
16844a1dc1
dac: fix inconsistent current output behavior due to repeated sampling of noisy vref
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: 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
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: 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
topquark12
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
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
Sebastien Bourdeauducq
50a1b9f52d
pid: partial -> proportional
2020-12-26 11:01:40 +08:00
Astro
9852b32646
command_parser, main: implement ShowCommand::Ipv4
...
Fixes Gitea issue #30
2020-12-20 20:44:10 +01:00
Astro
22b0c9fcad
main: don't re- set_ipv4_config every tick
2020-12-20 20:43:20 +01:00
Astro
e13ed37271
pid: fix tests
2020-12-20 20:24:24 +01:00
Astro
b176fc2788
pid: doc parameters
2020-12-18 16:29:53 +01:00
Astro
b717ac5495
pid: update default gain parameters
2020-12-18 16:27:47 +01:00
Astro
e9e46b29cf
pid: integrate time_delta to free gain parameters from sampling period
...
Fixes Gitea issue #22
2020-12-18 15:40:05 +01:00
Astro
b7e6cdbec2
pytec: measure interval
2020-12-16 22:14:21 +01:00
Astro
b2f455b2cf
config: save/store pid_engaged
...
Fixes Gitea issue #17
2020-12-13 02:33:59 +01:00
Astro
ecc00a6aeb
init_log: delint
2020-12-13 02:24:29 +01:00
Astro
97813f917d
flash_store: get to a working state
2020-12-13 01:17:03 +01:00
Astro
880a887c40
new flash-based ipv4 config with additional mask_len, gateway
2020-12-12 23:44:16 +01:00
Astro
383ebcd8e4
rewrite config for sfkv-based flash_store
2020-12-12 01:25:07 +01:00
Astro
5c8bb47e11
command_parser: require the explicit `i_set` symbol
2020-12-09 01:07:08 +01:00
Astro
5ddd4d250e
channels: swap adc inputs
...
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
Astro
ffb70bde0a
command_parser: fix input_remain match
2020-10-30 15:04:14 +01:00
Astro
d517dd75fe
update dependencies
2020-10-30 15:03:57 +01:00
Astro
a943308203
pid: never reset
2020-10-13 23:55:22 +02:00
Astro
c005784df5
steinhart_hart: rm outdated doc
2020-10-11 23:20:56 +02:00
Astro
d574ccb5f4
pid: change signedness from heating to cooling
2020-10-11 23:12:18 +02:00
Astro
6ba1459a3c
main: send error on invalid command
2020-10-11 23:11:27 +02:00
Astro
a332b5fcdc
main: fix saving new_ipv4_address
2020-10-11 01:59:39 +02:00
Astro
83a266852a
pid: move ki coefficient inside integration
2020-10-11 01:59:39 +02:00
Astro
175b88d0e6
s/tecpak/thermostat/g
2020-10-11 01:59:39 +02:00
Astro
6fd5328042
channels: rm debug output
2020-10-01 02:09:43 +02:00