1eba7d8556
README: Introduce Thermostat GUI
...
Co-authored-by: topquark12 <aw@m-labs.hk>
2024-11-25 13:10:26 +08:00
a0bc119ffb
PyThermostat: Use pyproject
2024-11-25 13:10:26 +08:00
bfbe8b79a7
PyThermostat GUI: Set up packaging
...
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:31:44 +08:00
f14e67de82
PyThermostat GUI: Implement Control Panel
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:24:05 +08:00
0a99e29d4d
PyThermostat GUI: Implement PlotSettingsMenu
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
2024-11-25 12:24:05 +08:00
675ce9f0c7
PyThermostat GUI: Implement plotting
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
2024-11-25 12:24:05 +08:00
e7d9126967
PyThermostat GUI: Incorporate autotuning
...
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:24:05 +08:00
8589ebdf0f
PyThermostat GUI: Implement ThermostatSettingsMenu
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:24:05 +08:00
6e9b1cfe21
PyThermostat GUI: Implement status line
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:24:05 +08:00
ca4e43b0d9
PyThermostat: Create GUI to Thermostat
...
- Add connection menu
- Add basic GUI layout skeleton
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-25 12:24:02 +08:00
72c1aab682
PyThermostat: Create asyncio clients
2024-11-25 11:26:44 +08:00
36d80ebdff
PyThermostat: Add entry points for runnables
...
Forms a more convienient interface.
2024-11-25 10:07:30 +08:00
09300b5d44
PyThermostat: Add main function to plot.py
2024-11-25 10:07:30 +08:00
9743dca775
PyThermostat: Move scripts into subfolder
...
As Thermostat Python scripts are not single-file Python modules and
should be packaged inside PyThermostat.
2024-11-25 10:07:20 +08:00
11131deda2
README: Add PID Output Clamping section
...
Explains the need of having separate "max_i_pos/output_max" and
"max_i_neg/output_min" values; They serve different purposes.
2024-11-20 08:02:07 +08:00
764774fbce
PyThermostat: Remove report mode in autotune.py
2024-11-18 17:47:33 +08:00
4beeec6021
PyThermostat: Remove all references to Pytec
2024-11-18 17:34:39 +08:00
6b8a5f5bb8
Rename the Pytec library to PyThermostat
...
Pytec is a misnomer, as the Thermostat is not limited to just
controlling TEC modules. The library also interfaces with and controls
the Thermostat itself, and not the TEC module directly.
See M-Labs/thermostat#149 (comment)
2024-11-18 16:22:57 +08:00
8dd58b364d
README: Fix limits section
2024-11-18 14:01:51 +08:00
ae0d593139
pytec: Stop using client report mode in plot.py
...
Report mode has been removed from the client, stop using it.
2024-11-18 13:57:54 +08:00
adc25c9b2a
pytec: Add hardware testing script
...
Eases the process of testing the hardware.
See #143 .
2024-11-18 10:31:56 +08:00
9af86be674
pytec: Remove artificial report mode in client
...
Encourage polling usage instead, as shown in example.
2024-11-16 13:11:59 +08:00
eabc7f6a12
flake: Register the pytec Python package
2024-11-11 17:11:37 +08:00
52e35d2a98
flake: Format with nixfmt-rfc-style
...
Also set up formatter so that `nix fmt` formats.
2024-11-04 18:38:08 +08:00
f1da910c11
pytec: Complete client
...
Expose all available Thermostat commands to the pytec client, and add
disconnect functionality.
2024-11-04 18:03:50 +08:00
9848c65de5
Fix command parser failing test due to changes
2024-10-21 15:51:21 +08:00
069d791802
Rename all Steinhart-Hart references to B-param
...
The Steinhart-Hart equation was changed in code long ago to the
B-parameter equation. Rename references to it and the interface
accordingly. The `s-h` command is now `b-p`.
The reason the name "B-Parameter" equation was chosen over
"Beta-Parameter" was due to its easier searchability.
2024-10-21 15:44:46 +08:00
bd9ae997ae
PwmLimits: Use uom quantities for fields not f64s
2024-10-21 11:13:19 +08:00
45eb55d36d
steinhart_hart: Beta Parameter uom dimensions
...
The Beta Parameter is not dimensionless, and has unit kelvin.
Incorporate that into the type system.
2024-10-21 11:12:47 +08:00
eddf05cae7
channels: get_i -> get_i_set
2024-10-21 11:12:16 +08:00
f68ae12c8d
TCP command: Rename pwm
to output
...
Current limit pins are driven by PWM inputs to the MAX1968 driver, but
this is an implementation detail, and should not be exposed in the form
of the command interface. Rename "pwm" to "output" in all instances.
See M-Labs/thermostat#62 (comment) .
2024-10-21 10:09:24 +08:00
101a68fcfc
README: Update instruction on finding Rust version
2024-10-16 11:16:23 +08:00
9d1adbc7f7
README: Fixes to grammar and instructions
2024-10-16 11:15:57 +08:00
47fa9f757e
README: Document interval key in reports
2024-10-16 11:15:28 +08:00
d1df6b8e3a
README: Add updated info on new hardware revision
2024-10-16 11:15:10 +08:00
0ffd784e91
README: Improve description of report command
2024-10-16 11:14:40 +08:00
d8ec083dbc
Apply clippy suggestions
2024-10-14 13:25:49 +08:00
1962135e79
Apply cargo fmt
2024-10-14 13:25:49 +08:00
fcb5cf1d4e
Add command parser test for polarity command
2024-10-14 12:46:13 +08:00
d517087e10
README: Purge all traces of report mode
2024-10-14 10:08:08 +08:00
798b400aa5
Show and save set value for PWM limits
...
Show in PwmSummary the set value, before all PWM duty calculations
instead of the machine value after the calculations. Also save the set
value into the flash store instead of the machine value.
2024-10-07 10:41:31 +08:00
93dc39e943
README: Document PWM value clamping
2024-10-07 10:41:31 +08:00
5c3b759d0c
PwmSummary: Don't show max PWM values
...
Putting the maximum in PwmSummary has little use - the maximum never
changes throughout the runtime of the firmware and can be replaced by
documentation elsewhere.
2024-10-07 10:41:31 +08:00
6224486662
Show polarity in pwm command
2024-09-30 17:36:50 +08:00
32bd49b258
Add a command to reverse the output polarity
...
Effectively flips all values related to the directionality of current
through the TEC, including current maximums. The reversed status is
stored in the flash store and will be loaded on reset once saved.
The command is "pwm <ch> polarity <normal/reversed>", where the "normal"
polarity is indicated by the front panel markings.
This is needed for IDC cable connections to the Sinara 5432 DAC
"Zotino", since the TEC pins of the 10-pin connector on the Thermostat
and Zotino have opposite polarities.
2024-09-30 17:36:47 +08:00
ad54842c43
Fix wrong current limit duty cycle calculation
...
- prev commit assumed setting 3.3V -> 3A current limit which is wrong
- Please refer to the MAX1968 datasheet for the duty cycle
calculation equation
2024-09-25 17:20:29 +08:00
b336c4f993
Remove report mode
...
As the report mode command breaks the send-receive architecture model of
the command interface, and is deemed an anti-feature, making clients
difficult to write, remove it from the firmware entirely.
2024-09-25 17:19:34 +08:00
680193b34b
Fix incorrect dac calibration algo
...
- Fix abnormally long calibration time
2024-09-20 21:21:14 +08:00
ae4bea0c8a
gitignore: Ignore .bin files and __pycache__
2024-09-19 10:08:58 +08:00
1f2de942e4
flake: Add rlwrap to devShell
2024-09-19 10:06:45 +08:00