atse
03b4561142
Refactor current_abs_max_tec_i to use uom
2024-01-30 11:41:52 +08:00
atse
bb4f43fe1c
Remove stale reference to channel_state vref
2023-08-22 17:16:25 +08:00
atse
9df0fe406f
Remove VREF in reports
...
Since VREF is an implementation detail, there shouldn't be a need to
include it in reports.
The ChannelState vref is removed along with it as its only use was to
save VREF measurements for later reporting.
2023-08-22 11:40:42 +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
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
16844a1dc1
dac: fix inconsistent current output behavior due to repeated sampling of noisy vref
2021-01-25 13:51:50 +08:00
topquark12
9e4d06fdbc
clarify comment
2021-01-11 16:24:43 +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
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
5ddd4d250e
channels: swap adc inputs
...
Fixes Gitea issue #12
2020-12-07 00:22:00 +01:00
Astro
6fd5328042
channels: rm debug output
2020-10-01 02:09:43 +02:00
Astro
6e0cf26d6a
export postfilter + s-h as json
2020-09-30 22:53:21 +02:00
Astro
d4901cbab1
channels: add dac_value to Report
2020-09-30 22:53:03 +02:00
Astro
62d89a68a1
pwm: export summary as json
2020-09-30 22:10:42 +02:00
Astro
11f2ebe961
channels: DRY get_center(), update vref if used
2020-09-30 19:14:15 +02:00
Astro
445cde6ae8
channels: add test report_to_json
2020-09-30 18:01:18 +02:00
Astro
6951489545
channels: add pid_output to Report
2020-09-30 18:00:16 +02:00
Astro
9e5a58cafd
main: switch reports to json serialization
2020-09-27 23:58:03 +02:00
Astro
61d2cd6ecf
channels: init i_set at centerpoint
2020-09-25 22:56:23 +02:00
Astro
f3ec96f425
channels: fix doc
2020-09-25 22:55:48 +02:00
Astro
a2caac0fe5
channels: power_down TEC when thermistor is not connected to ADC
2020-09-25 00:01:08 +02:00
Astro
58e648b5e0
pid::Parameters, CenterPoint: demote f32 fields to save config space
2020-09-24 20:47:02 +02:00
Astro
c5c0ce5625
channels: rm debug output
2020-09-24 19:49:11 +02:00
Astro
a84242fb1f
implement setting i_set centerpoint
2020-09-23 22:30:04 +02:00
Astro
a4dde1b8ca
delint
2020-09-18 00:55:53 +02:00
Astro
ba84295ec5
reconnect the pid controller
2020-09-18 00:09:30 +02:00
Astro
1157b73f7f
max_i_pos/max_i_neg: remove vref from calculation
...
full duty pwm is at vref already
2020-09-17 01:03:57 +02:00
Astro
f76ee9a607
separate adc and max vref
2020-09-16 23:31:49 +02:00
Astro
fc0ca8b581
calculate i_set current
2020-09-16 22:22:48 +02:00
Astro
8c80062da8
use proper units for pwm pins
2020-09-16 22:06:15 +02:00
Astro
7d45d5ad32
adc: complete temperature calculation
2020-09-16 20:50:23 +02:00
Astro
dda1f2f0b4
use ThermodynamicTemperature
2020-09-16 18:40:07 +02:00
Astro
b1b6d1ea94
fixes
2020-09-14 00:12:28 +02:00
Astro
b80fcc430b
channel_state: move adc_calibration into ChannelState
2020-09-13 23:15:48 +02:00
Astro
bb26490153
unit: replace with uom
2020-09-13 23:13:51 +02:00
Astro
c11b71cc0d
adc: don't calibrate but convert using ChannelCalibration
2020-09-09 23:10:33 +02:00
Astro
9a912392be
channels: fix dac calibration
2020-09-06 19:28:33 +02:00
Astro
3c94342448
replace tec_u_meas_adc with pins_adc
2020-05-28 02:06:32 +02:00
Astro
5418488a2f
replace channel[01].adc with pins_adc
2020-05-28 02:01:55 +02:00
Astro
35af543e33
channels: fix/optimize calibrate_dac_value()
2020-05-20 23:09:24 +02:00
Astro
cca0a77657
keep shdn high all the time
2020-05-20 23:07:03 +02:00
Astro
d326517453
channels: remove unneccessary pub qualifiers
2020-05-20 21:27:22 +02:00
Astro
e6e150dac3
add Channels::calibrate_dac_value()
2020-05-19 00:15:39 +02:00
Astro
70127491f6
add vref_pin
2020-05-18 22:46:09 +02:00
Astro
3d6e1f18a6
add tec_u_meas
2020-05-18 21:38:13 +02:00
Astro
0bc0af7487
rename dac_loopback to dac_feedback
2020-05-17 02:18:25 +02:00