348f2600f3
README: Introduce Thermostat GUI
...
Co-authored-by: topquark12 <aw@m-labs.hk>
2024-11-18 15:28:09 +08:00
57ffb096ce
pytec GUI: Set up packaging
...
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-18 15:28:09 +08:00
cfde82bdcd
pytec GUI: Implement Control Panel
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-18 15:28:09 +08:00
26d0fe88ec
pytec GUI: Implement PlotSettingsMenu
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
2024-11-18 15:28:09 +08:00
b2c63d6f0f
pytec GUI: Implement plotting
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
2024-11-18 15:28:09 +08:00
526c7aac5a
pytec 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-18 15:28:09 +08:00
89b5fc9340
pytec GUI: Implement ThermostatSettingsMenu
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-18 15:28:09 +08:00
e24d8b23d0
pytec GUI: Implement status line
...
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
2024-11-18 15:28:09 +08:00
68749d445c
pytec: 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-18 15:28:09 +08:00
44f2762887
pytec: Create asyncio clients
2024-11-18 15:28:09 +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
1041d3ecbb
Improve the VREF calibration routine
...
* Fix wrong calibration of VREF on startup. Caused new v2.2.2 boards to
wrongly calibrate the zero-point to ~2.2 V instead of 1.5 V.
* Fix bootloop on some boards.
* Adjust watchdog interval accordingly.
2024-09-16 18:14:47 +08:00
c6040899dd
ItecPin -> ITecPin
2024-08-12 13:02:22 +08:00
9d89104f50
README: Fix command to make firmware BIN ( #115 )
...
Co-authored-by: atse <atse@m-labs.hk>
Co-committed-by: atse <atse@m-labs.hk>
2024-08-07 18:22:48 +08:00
136c7a0b52
Calculate current_abs_max_tec_i from all channels
...
Instead of picking channels 0 and 1. Helps to generalise for more than 2
channels.
2024-08-07 16:14:28 +08:00
5000cae1b1
Grammar fixes
2024-08-07 16:09:30 +08:00
78ec77509f
flake: Install LLVM in devShell too
...
So that developers can use `llvm-objcopy` in their devShells as well.
2024-08-07 16:06:19 +08:00
52aa3890c1
Update nix repos
2024-08-06 13:38:58 +08:00
1ae6a6fdd4
flake: More concise devShell
...
No need for C compiler in development shell + use "packages" to
explicitly refer to devShell packages
2024-08-06 11:14:25 +08:00