mirror of
https://github.com/Ralim/IronOS.git
synced 2025-07-23 12:23:06 +02:00
Calibrate CJC at next boot (#1398)
Changes Cold Junction Compensation (Tip Offset / CJC) to be performed during bootup time. (After starting in settings)
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
In this firmware there is extra debugging information in a hidden sub-menu.
|
||||
This menu is meant to be simple, so it has no fancy GUI animations.
|
||||
|
||||
- Access by pressing the rear (``-/B``) button on the iron while it is on the home screen.
|
||||
- To scroll through the menu, use the front (``+/A``) button.
|
||||
- To exit, use the rear (``-/B``) button again.
|
||||
- Access it by pressing the rear button (`-/B`) on the iron while it is on the home screen.
|
||||
- Use the front button (`+/A`) to scroll through the menu.
|
||||
- To exit, use the rear button (`-/B`) again.
|
||||
|
||||
## Menu items
|
||||
|
||||
@@ -15,15 +15,6 @@ Items are shown in the menu on a single line, so they use short codes and appear
|
||||
- This is used by Irons that have an ID and serial number to help check if the iron is authentic. All Pinecil V1 show the same ID number as this is the number programmed into the MCU.
|
||||
- The new Pinecil V2 released Aug. 2, 2022 now uses MCU BL706, which enables generating a unique ID/Serial number to every iron. This can be used to verify your [Pinecil authenticity here](https://pinecil.pine64.org/).
|
||||
|
||||
### Time
|
||||
|
||||
This is just uptime; it shows how many deciseconds the unit has been powered for (600 ds = 1 minute).
|
||||
|
||||
### Move
|
||||
|
||||
This is the last timestamp of movement. When the iron is moved, this should update to match the Time field (previous menu item).
|
||||
This can be used for checking performance of the movement detection code.
|
||||
|
||||
### ACC
|
||||
|
||||
This indicates the accelerometer that is fitted inside the unit.
|
||||
@@ -33,38 +24,9 @@ This indicates the accelerometer that is fitted inside the unit.
|
||||
- BMA223
|
||||
- MSA301
|
||||
- SC7A20
|
||||
- None detected -> running in fallback without movement detection
|
||||
- None -> running in fallback without movement detection
|
||||
- Scanning -> Still searching I2C for one
|
||||
|
||||
### Tip Res
|
||||
|
||||
This indicates the tip resistance that the device is currently using. For devices with multiple possible values to choose from (Pinecil V2), the appropriate value is automatically detected at every boot-up. Tip should be installed before boot-up or reading can not be done.
|
||||
|
||||
### RTip
|
||||
|
||||
This is the raw tip reading in μV. Tip must be installed or reading will be high/inaccurate. At cool, the range of 700-1000 is normal for larger tips and ~1500 for smaller tips (TS80). This is used to evaluate the calibration routines.
|
||||
|
||||
### CTip
|
||||
|
||||
This is the tip temperature in degrees Celsius.
|
||||
This can be used with RTip for assessing temperature processing performance.
|
||||
|
||||
### CHan
|
||||
|
||||
This is the handle temperature or more accurately the reading of the Cold Junction Compensation (CJC) temperature sensor. This is expressed in °C x 10 (29.0 °C ambient should read as 290). Range of 200-400 (20-40 °C) is normal depending on how hot/cold the room is and how long power has been plugged in which warms the PCB further.
|
||||
This is used for CJC of the tip temperature.
|
||||
> If CHan is extremely high, this indicates the temperature sensor isn't reading correctly ([see Troubleshooting](/Documentation/Troubleshooting.md))
|
||||
|
||||
|
||||
### CMax
|
||||
|
||||
This indicates the max temperature in °Celsius that the system estimates it can measure the tip reliably to.
|
||||
This is dependent on a few factors including the handle temperature so it can move around during use. As you use the iron, the Max increases to a point.
|
||||
|
||||
### Vin
|
||||
|
||||
The input voltage as read by the internal ADC. Can be used to sanity check it is being read correctly.
|
||||
|
||||
### PWR
|
||||
|
||||
This indicates the current power source for the iron.
|
||||
@@ -75,6 +37,48 @@ This may change during power up as the sources are negotiated in turn.
|
||||
- **PD W. VBus** input (PD subsystem is used to negotiate for current supply); and VBus is connected to your input power source
|
||||
- **PD No VBus** input (PD subsystem is used to negotiate for current supply); and VBus is **NOT** connected to your input power source. If it is Not required or possible to do a special mod of your PCB (i.e. late model V1, some early Green PCB models) then [PD No VBus] displays on-screen ([see details and PD Debug section below](/Documentation/DebugMenu.md#pd-debug-menu)).
|
||||
|
||||
### Vin
|
||||
|
||||
The input voltage as read by the internal ADC. Can be used to sanity check it is being read correctly.
|
||||
|
||||
### Tip C
|
||||
|
||||
This is the tip temperature in °C.
|
||||
This can be used with RTip for assessing temperature processing performance.
|
||||
|
||||
### Han C
|
||||
|
||||
This is the handle temperature or more accurately the reading of the Cold Junction Compensation (CJC) temperature sensor. This is expressed in °C. Range of 20-40 °C is normal depending on how hot/cold the room is and how long power has been plugged in which warms the PCB further.
|
||||
This is used for CJC of the tip temperature.
|
||||
> If CHan is extremely high, this indicates the temperature sensor isn't reading correctly ([see Troubleshooting](/Documentation/Troubleshooting.md))
|
||||
|
||||
|
||||
### Max C
|
||||
|
||||
This indicates the max temperature in °C that the system estimates it can measure the tip reliably to.
|
||||
This is dependent on a few factors including the handle temperature so it can move around during use. As you use the iron, the Max increases to a point.
|
||||
|
||||
### UpTime
|
||||
|
||||
This shows how many deciseconds the unit has been powered for (600 ds = 1 minute).
|
||||
|
||||
### Move
|
||||
|
||||
This is the last timestamp of movement. When the iron is moved, this should update to match the Time field (previous menu item).
|
||||
This can be used for checking performance of the movement detection code.
|
||||
|
||||
### Tip Res
|
||||
|
||||
This indicates the tip resistance that the device is currently using. For devices with multiple possible values to choose from (Pinecil V2), the appropriate value is automatically detected at every boot-up. Tip should be installed before boot-up or reading can not be done.
|
||||
|
||||
### Tip R
|
||||
|
||||
This is the raw tip reading in μV. Tip must be installed or reading will be high/inaccurate. At cool, the range of 700-1000 is normal for larger tips and ~1500 for smaller tips (TS80). This is used to evaluate the calibration routines.
|
||||
|
||||
### Tip O
|
||||
|
||||
This is the offset resulting from the *'Cold Junction Compensation Calibration'*.
|
||||
|
||||
### HW G
|
||||
|
||||
This indicates the high water mark for the stack for the GUI thread. The smaller this number is, the less headroom we have in the stack.
|
||||
|
@@ -44,15 +44,16 @@ What this is for: some tips have an offset on their readings which causes issues
|
||||
|
||||
Caution: if the method below is not followed, the iron could be worse than before calibration. If you need to repeat the method, first unplug and let the handle/PCB cool down to room temperature.
|
||||
|
||||
1. Connect power to your iron (tip should be installed).
|
||||
2. **Critical: make sure the tip & handle is at room temperature** (wait a good while after using the iron before calibration)
|
||||
3. Using (`-/B`) scroll down to Advanced settings > press (`+/A`) to select > then (`-/B`) to scroll to Calibrate temperature? > press (`+/A`)
|
||||
4. Important warning message is shown: *Confirm the tip & device are at room temperature before starting!*
|
||||
5. Press the (`+/A`) button to confirm (tip/handle are at ambient temperature).
|
||||
6. Display shows **`....`** for a short time as the unit measures and compares the tip and handle temperatures.
|
||||
7. The display then goes back to *TMP CAL* and displays your *Offset number*. You generally don't need this offset unless debugging issues.
|
||||
8. After you see an Offset number, calibration is done, just exit the settings menu normally, use (`-/B`).
|
||||
9. You're done, enjoy your iron!
|
||||
1. Connect power to your device.
|
||||
2. Go to **`Advanced Settings`** using (`-/B`) and press (`+/A`) to select it. Use (`-/B`) to scroll to **`Calibrate CJC at next boot`** and confirm with (`+/A`).
|
||||
3. Accept the *'warning text'* with (`+/A`).
|
||||
3. Exit the settings menu as usual by pressing and holding (`-/B`).
|
||||
4. Unplug you device.
|
||||
5. **Critical: Make sure a tip is attached & wait until the tip & handle are at room temperature.** (Wait a reasonable amount of time after having used the device.)
|
||||
6. Power the device and ideally keep it out of your hands (You know it might get warm.).
|
||||
7. The display shows **`....`** for a short time while the device measures and compares the tip and handle voltages.
|
||||
8. As a result the new *Offset value* is displayed. This value can later be viewed in the **`Debug menu`**.
|
||||
9. Calibration is done and the device proceeds booting.
|
||||
|
||||
Note: offsets are dependant on your tip, temperature sensor, and the MCU. It's the culmination of tolerances at rest. Typical values are 700-1000 range. This is only designed to be used at boot while cold (ambient room temperature), as temperatures drift apart as soon as power is connected. Doing this reading repeatedly could result in wide varience of the offset number and/or incorrect calibration.
|
||||
|
||||
|
@@ -125,13 +125,18 @@ On device help text:
|
||||
|
||||
Flash temperature reading at idle if tip is hot
|
||||
|
||||
### Setting: Calibrate tip CJC
|
||||
### Setting: Calibrate CJC at next boot
|
||||
|
||||
Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target.
|
||||
Note:
|
||||
If the difference between the target temperature and the measured temperature is less than 5°C, **calibration is NOT required at all**.
|
||||
|
||||
This is used to calibrate the offset between ADC and Op-amp of the tip at next boot (Idealy it has to be done at boot, before internal components get warm.). But this setting is ***not permanent!*** It resetes after the calibration is completed (At next boot the checkbox will be unchecked!). If you need to repeat the calibration however, you have to set the checkbox *again*, unplug your device and let it cool down to room/ambient temperature & power it up, idealy while it sits on the desk.
|
||||
|
||||
Hence, never repeat the calibration in quick succession!
|
||||
|
||||
On device help text:
|
||||
|
||||
Tip-temperature Cold Junction Compensation (not needed if Tip is +/- 5°C of display)
|
||||
Calibrate tip Cold Junction Compensation at the next boot (not required if Delta T is < 5°C)
|
||||
|
||||
### Setting: Restore default settings
|
||||
|
||||
|
@@ -46,13 +46,13 @@ If `CHan` is reading low:
|
||||
- Check the power pin connection on the TMP36
|
||||
- Check pullup resistor on the NTC thermistor
|
||||
- Check no bridged pins or weak shorts on the signal to nearby pins on MCU or temperature sensor
|
||||
- Reflow/resolder the the aforementioned components
|
||||
- Reflow/resolder the aforementioned components
|
||||
|
||||
If `CHan` is reading higher
|
||||
|
||||
- Check ground connections on the sensors
|
||||
- Check no bridged pins or weak shorts on the signal to nearby pins on MCU or temperature sensor
|
||||
- Reflow/resolder the the aforementioned components
|
||||
- Reflow/resolder the aforementioned components
|
||||
|
||||
## No display OR dots on the display
|
||||
|
||||
|
@@ -14,7 +14,7 @@ I highly recommend reading the installation guide fully when installing on your
|
||||
For soldering irons that are designed to be powered by 'smart' power sources (PD and QC), the firmware supports settings around the negotiated power and voltage.
|
||||
For soldering irons that are designed to be powered by batteries (TS100 & Pinecil), settings for a cutoff voltage for battery protection are supported.
|
||||
|
||||
There are 30 languages currently supported. When downloading the firmware for your soldering iron, take note of the language code in the file name.
|
||||
Currently **31** languages are supported. When downloading the firmware for your soldering iron, take note of the language code in the file name.
|
||||
|
||||
This project is considered feature complete for use as a soldering iron, _so please suggest any feature improvements you would like!_
|
||||
|
||||
|
@@ -120,20 +120,21 @@ def get_debug_menu() -> List[str]:
|
||||
return [
|
||||
datetime.today().strftime("%d-%m-%y"),
|
||||
"ID ",
|
||||
"ACC ",
|
||||
"PWR ",
|
||||
"Vin ",
|
||||
"Tip C ",
|
||||
"Han C ",
|
||||
"Max C ",
|
||||
"UpTime ",
|
||||
"Move ",
|
||||
"ACC ",
|
||||
"Move ",
|
||||
"Tip Res",
|
||||
"RTip ",
|
||||
"CTip ",
|
||||
"CHan ",
|
||||
"CMax ",
|
||||
"Vin ",
|
||||
"PWR ",
|
||||
"HW G ",
|
||||
"HW M ",
|
||||
"HW P ",
|
||||
"Hall ",
|
||||
"Tip R ",
|
||||
"Tip O ",
|
||||
"HW G ",
|
||||
"HW M ",
|
||||
"HW P ",
|
||||
"Hall ",
|
||||
]
|
||||
|
||||
|
||||
|
@@ -176,7 +176,7 @@
|
||||
],
|
||||
"desc": "Міргаць тэмпературай на экране астуджэння, пакуль джала яшчэ гарачае"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Каліброўка",
|
||||
"тэмпературы"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "След изключване от работен режим, индикатора за температура да мига докато човката на поялника все още е топла"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Калибриране",
|
||||
"температура?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Blikat teplotou při chladnutí dokud je hrot horký"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibrovat",
|
||||
"teplotu?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Blink temperaturen på skærmen, mens spidsen stadig er varm."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrate",
|
||||
"temperature?"
|
||||
|
@@ -7,7 +7,7 @@
|
||||
],
|
||||
"tempUnitFahrenheit": false,
|
||||
"messages": {
|
||||
"SettingsCalibrationWarning": "Nur Fortfahren wenn Lötspitze & Gerät Raumtemperatur haben!",
|
||||
"SettingsCalibrationWarning": "Nur Kalibrieren wenn Lötspitze & Gerät Raumtemperatur haben!",
|
||||
"SettingsResetWarning": "Sicher, dass alle Werte zurückgesetzt werden sollen?",
|
||||
"UVLOWarningString": "V niedr.",
|
||||
"UndervoltageString": "Unterspannung",
|
||||
@@ -175,12 +175,12 @@
|
||||
],
|
||||
"desc": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Temperatur",
|
||||
"kalibrieren?"
|
||||
],
|
||||
"desc": "Kalibrierung der Kaltstellenkompensation (nicht nötig wenn Delta T < 5°C)"
|
||||
"desc": "Kalibrierung der Kaltstellenkompensation beim nächsten Start (nicht nötig wenn Delta T < 5°C)"
|
||||
},
|
||||
"SettingsReset": {
|
||||
"text2": [
|
||||
|
@@ -178,7 +178,7 @@
|
||||
],
|
||||
"desc": "Αναβοσβήσιμο της ενδειξης θερμοκρασίας κατά την παύση θέρμανσης όταν η μύτη είναι ακόμα καυτή"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Βαθμονόμηση",
|
||||
"θερμοκρασίας;"
|
||||
|
@@ -1,340 +1,340 @@
|
||||
{
|
||||
"languageCode": "EN",
|
||||
"languageLocalName": "English",
|
||||
"fonts": [
|
||||
"ascii_basic",
|
||||
"latin_extended"
|
||||
],
|
||||
"tempUnitFahrenheit": true,
|
||||
"messages": {
|
||||
"SettingsCalibrationWarning": "Confirm the tip & device are at room temperature before starting!",
|
||||
"SettingsResetWarning": "Are you sure you want to restore default settings?",
|
||||
"UVLOWarningString": "DC LOW",
|
||||
"UndervoltageString": "Undervoltage",
|
||||
"InputVoltageString": "Input V: ",
|
||||
"SleepingSimpleString": "Zzzz",
|
||||
"SleepingAdvancedString": "Sleeping...",
|
||||
"SleepingTipAdvancedString": "Tip:",
|
||||
"OffString": "Off",
|
||||
"DeviceFailedValidationWarning": "Your device is likely a Counterfeit!"
|
||||
},
|
||||
"messagesWarn": {
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"SettingsResetMessage": [
|
||||
"Certain settings",
|
||||
"were changed!"
|
||||
],
|
||||
"NoAccelerometerMessage": [
|
||||
"No accelerometer",
|
||||
"detected!"
|
||||
],
|
||||
"NoPowerDeliveryMessage": [
|
||||
"No USB-PD IC",
|
||||
"detected!"
|
||||
],
|
||||
"LockingKeysString": "LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!",
|
||||
"WarningThermalRunaway": [
|
||||
"Thermal",
|
||||
"Runaway"
|
||||
]
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
"SettingLeftChar": "L",
|
||||
"SettingAutoChar": "A",
|
||||
"SettingOffChar": "O",
|
||||
"SettingSlowChar": "S",
|
||||
"SettingMediumChar": "M",
|
||||
"SettingFastChar": "F",
|
||||
"SettingStartNoneChar": "O",
|
||||
"SettingStartSolderingChar": "S",
|
||||
"SettingStartSleepChar": "Z",
|
||||
"SettingStartSleepOffChar": "R",
|
||||
"SettingSensitivityOff": "O",
|
||||
"SettingSensitivityLow": "L",
|
||||
"SettingSensitivityMedium": "M",
|
||||
"SettingSensitivityHigh": "H",
|
||||
"SettingLockDisableChar": "D",
|
||||
"SettingLockBoostChar": "B",
|
||||
"SettingLockFullChar": "F"
|
||||
},
|
||||
"menuGroups": {
|
||||
"PowerMenu": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Power settings"
|
||||
},
|
||||
"SolderingMenu": {
|
||||
"text2": [
|
||||
"Soldering",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Soldering settings"
|
||||
},
|
||||
"PowerSavingMenu": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"mode"
|
||||
],
|
||||
"desc": "Power saving settings"
|
||||
},
|
||||
"UIMenu": {
|
||||
"text2": [
|
||||
"User",
|
||||
"interface"
|
||||
],
|
||||
"desc": "User interface settings"
|
||||
},
|
||||
"AdvancedMenu": {
|
||||
"text2": [
|
||||
"Advanced",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Advanced settings"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
"DCInCutoff": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"source"
|
||||
],
|
||||
"desc": "Set cutoff voltage to prevent battery over-drain. (DC 10V) (S=3.3V per cell, disable PWR limit)"
|
||||
},
|
||||
"SleepTemperature": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"temp"
|
||||
],
|
||||
"desc": "Tip temperature while in \"sleep mode\""
|
||||
},
|
||||
"SleepTimeout": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "Interval before \"sleep mode\" starts (s=seconds | m=minutes)"
|
||||
},
|
||||
"ShutdownTimeout": {
|
||||
"text2": [
|
||||
"Shutdown",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "Interval before the iron shuts down (m=minutes)"
|
||||
},
|
||||
"MotionSensitivity": {
|
||||
"text2": [
|
||||
"Motion",
|
||||
"sensitivity"
|
||||
],
|
||||
"desc": "0=off | 1=least sensitive | ... | 9=most sensitive"
|
||||
},
|
||||
"TemperatureUnit": {
|
||||
"text2": [
|
||||
"Temperature",
|
||||
"unit"
|
||||
],
|
||||
"desc": "C=Celsius | F=Fahrenheit"
|
||||
},
|
||||
"AdvancedIdle": {
|
||||
"text2": [
|
||||
"Detailed",
|
||||
"idle screen"
|
||||
],
|
||||
"desc": "Display detailed info in a smaller font on idle screen"
|
||||
},
|
||||
"DisplayRotation": {
|
||||
"text2": [
|
||||
"Display",
|
||||
"orientation"
|
||||
],
|
||||
"desc": "R=right-handed | L=left-handed | A=automatic"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"text2": [
|
||||
"Boost",
|
||||
"temp"
|
||||
],
|
||||
"desc": "Tip temperature used in \"boost mode\""
|
||||
},
|
||||
"AutoStart": {
|
||||
"text2": [
|
||||
"Start-up",
|
||||
"behavior"
|
||||
],
|
||||
"desc": "O=off | S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby, heat-off until moved"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"text2": [
|
||||
"Cooldown",
|
||||
"flashing"
|
||||
],
|
||||
"desc": "Flash temperature reading at idle if tip is hot"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"text2": [
|
||||
"Calibrate",
|
||||
"tip CJC"
|
||||
],
|
||||
"desc": "Tip-temperature Cold Junction Compensation (not needed if Tip is +/- 5°C of display)"
|
||||
},
|
||||
"SettingsReset": {
|
||||
"text2": [
|
||||
"Restore default",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Reset default settings for this firmware ver."
|
||||
},
|
||||
"VoltageCalibration": {
|
||||
"text2": [
|
||||
"Calibrate",
|
||||
"input voltage"
|
||||
],
|
||||
"desc": "Start VIN calibration (long press to exit)"
|
||||
},
|
||||
"AdvancedSoldering": {
|
||||
"text2": [
|
||||
"Detailed",
|
||||
"solder screen"
|
||||
],
|
||||
"desc": "Display detailed info in a smaller font on soldering screen"
|
||||
},
|
||||
"ScrollingSpeed": {
|
||||
"text2": [
|
||||
"Scrolling",
|
||||
"speed"
|
||||
],
|
||||
"desc": "Speed info text scrolls past at (S=slow | F=fast)"
|
||||
},
|
||||
"QCMaxVoltage": {
|
||||
"text2": [
|
||||
"QC",
|
||||
"voltage"
|
||||
],
|
||||
"desc": "Max QC voltage the iron should negotiate for"
|
||||
},
|
||||
"PDNegTimeout": {
|
||||
"text2": [
|
||||
"PD",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
|
||||
},
|
||||
"PowerLimit": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"limit"
|
||||
],
|
||||
"desc": "Maximum power the iron can use (W=watt)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"text2": [
|
||||
"Swap",
|
||||
"+ - keys"
|
||||
],
|
||||
"desc": "Reverse assignment of buttons for temperature adjustment"
|
||||
},
|
||||
"TempChangeShortStep": {
|
||||
"text2": [
|
||||
"Temp change",
|
||||
"short"
|
||||
],
|
||||
"desc": "Temperature-change-increment on short button press"
|
||||
},
|
||||
"TempChangeLongStep": {
|
||||
"text2": [
|
||||
"Temp change",
|
||||
"long"
|
||||
],
|
||||
"desc": "Temperature-change-increment on long button press"
|
||||
},
|
||||
"PowerPulsePower": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"pulse"
|
||||
],
|
||||
"desc": "Intensity of power of keep-awake-pulse (watt)"
|
||||
},
|
||||
"HallEffSensitivity": {
|
||||
"text2": [
|
||||
"Hall sensor",
|
||||
"sensitivity"
|
||||
],
|
||||
"desc": "Sensitivity to magnets (0=off | 1=least sensitive | ... | 9=most sensitive)"
|
||||
},
|
||||
"LockingMode": {
|
||||
"text2": [
|
||||
"Allow locking",
|
||||
"buttons"
|
||||
],
|
||||
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
|
||||
},
|
||||
"MinVolCell": {
|
||||
"text2": [
|
||||
"Minimum",
|
||||
"voltage"
|
||||
],
|
||||
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
|
||||
},
|
||||
"AnimLoop": {
|
||||
"text2": [
|
||||
"Anim.",
|
||||
"loop"
|
||||
],
|
||||
"desc": "Loop icon animations in main menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"text2": [
|
||||
"Anim.",
|
||||
"speed"
|
||||
],
|
||||
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
|
||||
},
|
||||
"PowerPulseWait": {
|
||||
"text2": [
|
||||
"Power pulse",
|
||||
"delay"
|
||||
],
|
||||
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
|
||||
},
|
||||
"PowerPulseDuration": {
|
||||
"text2": [
|
||||
"Power pulse",
|
||||
"duration"
|
||||
],
|
||||
"desc": "Keep-awake-pulse duration (x 250ms)"
|
||||
},
|
||||
"LanguageSwitch": {
|
||||
"text2": [
|
||||
"Language:",
|
||||
" EN English"
|
||||
],
|
||||
"desc": "Current firmware language"
|
||||
},
|
||||
"Brightness": {
|
||||
"text2": [
|
||||
"Screen",
|
||||
"brightness"
|
||||
],
|
||||
"desc": "Adjust the OLED screen brightness"
|
||||
},
|
||||
"ColourInversion": {
|
||||
"text2": [
|
||||
"Invert",
|
||||
"screen"
|
||||
],
|
||||
"desc": "Invert the OLED screen colors"
|
||||
},
|
||||
"LOGOTime": {
|
||||
"text2": [
|
||||
"Boot logo",
|
||||
"duration"
|
||||
],
|
||||
"desc": "Set Boot logo duration (off | s=seconds | infinity)"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"languageCode": "EN",
|
||||
"languageLocalName": "English",
|
||||
"fonts": [
|
||||
"ascii_basic",
|
||||
"latin_extended"
|
||||
],
|
||||
"tempUnitFahrenheit": true,
|
||||
"messages": {
|
||||
"SettingsCalibrationWarning": "Please make sure tip & handle are at room temperature before calibration!",
|
||||
"SettingsResetWarning": "Are you sure you want to restore default settings?",
|
||||
"UVLOWarningString": "DC LOW",
|
||||
"UndervoltageString": "Undervoltage",
|
||||
"InputVoltageString": "Input V: ",
|
||||
"SleepingSimpleString": "Zzzz",
|
||||
"SleepingAdvancedString": "Sleeping...",
|
||||
"SleepingTipAdvancedString": "Tip:",
|
||||
"OffString": "Off",
|
||||
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
|
||||
},
|
||||
"messagesWarn": {
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"SettingsResetMessage": [
|
||||
"Certain settings",
|
||||
"were changed!"
|
||||
],
|
||||
"NoAccelerometerMessage": [
|
||||
"No accelerometer",
|
||||
"detected!"
|
||||
],
|
||||
"NoPowerDeliveryMessage": [
|
||||
"No USB-PD IC",
|
||||
"detected!"
|
||||
],
|
||||
"LockingKeysString": "LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!",
|
||||
"WarningThermalRunaway": [
|
||||
"Thermal",
|
||||
"Runaway"
|
||||
]
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
"SettingLeftChar": "L",
|
||||
"SettingAutoChar": "A",
|
||||
"SettingOffChar": "O",
|
||||
"SettingSlowChar": "S",
|
||||
"SettingMediumChar": "M",
|
||||
"SettingFastChar": "F",
|
||||
"SettingStartNoneChar": "O",
|
||||
"SettingStartSolderingChar": "S",
|
||||
"SettingStartSleepChar": "Z",
|
||||
"SettingStartSleepOffChar": "R",
|
||||
"SettingSensitivityOff": "O",
|
||||
"SettingSensitivityLow": "L",
|
||||
"SettingSensitivityMedium": "M",
|
||||
"SettingSensitivityHigh": "H",
|
||||
"SettingLockDisableChar": "D",
|
||||
"SettingLockBoostChar": "B",
|
||||
"SettingLockFullChar": "F"
|
||||
},
|
||||
"menuGroups": {
|
||||
"PowerMenu": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Power settings"
|
||||
},
|
||||
"SolderingMenu": {
|
||||
"text2": [
|
||||
"Soldering",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Soldering settings"
|
||||
},
|
||||
"PowerSavingMenu": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"mode"
|
||||
],
|
||||
"desc": "Power saving settings"
|
||||
},
|
||||
"UIMenu": {
|
||||
"text2": [
|
||||
"User",
|
||||
"interface"
|
||||
],
|
||||
"desc": "User interface settings"
|
||||
},
|
||||
"AdvancedMenu": {
|
||||
"text2": [
|
||||
"Advanced",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Advanced settings"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
"DCInCutoff": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"source"
|
||||
],
|
||||
"desc": "Set cutoff voltage to prevent battery overdrainage (DC 10V) (S=3.3V per cell, disable PWR limit)"
|
||||
},
|
||||
"SleepTemperature": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"temp"
|
||||
],
|
||||
"desc": "Tip temperature while in \"sleep mode\""
|
||||
},
|
||||
"SleepTimeout": {
|
||||
"text2": [
|
||||
"Sleep",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "Interval before \"sleep mode\" starts (s=seconds | m=minutes)"
|
||||
},
|
||||
"ShutdownTimeout": {
|
||||
"text2": [
|
||||
"Shutdown",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "Interval before the iron shuts down (m=minutes)"
|
||||
},
|
||||
"MotionSensitivity": {
|
||||
"text2": [
|
||||
"Motion",
|
||||
"sensitivity"
|
||||
],
|
||||
"desc": "0=off | 1=least sensitive | ... | 9=most sensitive"
|
||||
},
|
||||
"TemperatureUnit": {
|
||||
"text2": [
|
||||
"Temperature",
|
||||
"unit"
|
||||
],
|
||||
"desc": "C=°Celsius | F=°Fahrenheit"
|
||||
},
|
||||
"AdvancedIdle": {
|
||||
"text2": [
|
||||
"Detailed",
|
||||
"idle screen"
|
||||
],
|
||||
"desc": "Display detailed info in a smaller font on idle screen"
|
||||
},
|
||||
"DisplayRotation": {
|
||||
"text2": [
|
||||
"Display",
|
||||
"orientation"
|
||||
],
|
||||
"desc": "R=right-handed | L=left-handed | A=automatic"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"text2": [
|
||||
"Boost",
|
||||
"temp"
|
||||
],
|
||||
"desc": "Tip temperature used in \"boost mode\""
|
||||
},
|
||||
"AutoStart": {
|
||||
"text2": [
|
||||
"Start-up",
|
||||
"behavior"
|
||||
],
|
||||
"desc": "O=off | S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"text2": [
|
||||
"Cooldown",
|
||||
"flashing"
|
||||
],
|
||||
"desc": "Flash temp reading at idle while tip is hot"
|
||||
},
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrate CJC",
|
||||
"at next boot"
|
||||
],
|
||||
"desc": "Calibrate tip Cold Junction Compensation at the next boot (not required if Delta T is < 5°C)"
|
||||
},
|
||||
"SettingsReset": {
|
||||
"text2": [
|
||||
"Restore default",
|
||||
"settings"
|
||||
],
|
||||
"desc": "Reset all settings to default"
|
||||
},
|
||||
"VoltageCalibration": {
|
||||
"text2": [
|
||||
"Calibrate",
|
||||
"input voltage"
|
||||
],
|
||||
"desc": "Start VIN calibration (long press to exit)"
|
||||
},
|
||||
"AdvancedSoldering": {
|
||||
"text2": [
|
||||
"Detailed",
|
||||
"solder screen"
|
||||
],
|
||||
"desc": "Display detailed info in a smaller font on soldering screen"
|
||||
},
|
||||
"ScrollingSpeed": {
|
||||
"text2": [
|
||||
"Scrolling",
|
||||
"speed"
|
||||
],
|
||||
"desc": "Speed info text scrolls past at (S=slow | F=fast)"
|
||||
},
|
||||
"QCMaxVoltage": {
|
||||
"text2": [
|
||||
"QC",
|
||||
"voltage"
|
||||
],
|
||||
"desc": "Max QC voltage the iron should negotiate for"
|
||||
},
|
||||
"PDNegTimeout": {
|
||||
"text2": [
|
||||
"PD",
|
||||
"timeout"
|
||||
],
|
||||
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
|
||||
},
|
||||
"PowerLimit": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"limit"
|
||||
],
|
||||
"desc": "Maximum power the iron can use (W=watt)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"text2": [
|
||||
"Swap",
|
||||
"+ - keys"
|
||||
],
|
||||
"desc": "Reverse assignment of buttons for temperature adjustment"
|
||||
},
|
||||
"TempChangeShortStep": {
|
||||
"text2": [
|
||||
"Temp change",
|
||||
"short"
|
||||
],
|
||||
"desc": "Temperature-change-increment on short button press"
|
||||
},
|
||||
"TempChangeLongStep": {
|
||||
"text2": [
|
||||
"Temp change",
|
||||
"long"
|
||||
],
|
||||
"desc": "Temperature-change-increment on long button press"
|
||||
},
|
||||
"PowerPulsePower": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"pulse"
|
||||
],
|
||||
"desc": "Intensity of power of keep-awake-pulse (watt)"
|
||||
},
|
||||
"HallEffSensitivity": {
|
||||
"text2": [
|
||||
"Hall sensor",
|
||||
"sensitivity"
|
||||
],
|
||||
"desc": "Sensitivity to magnets (0=off | 1=least sensitive | ... | 9=most sensitive)"
|
||||
},
|
||||
"LockingMode": {
|
||||
"text2": [
|
||||
"Allow locking",
|
||||
"buttons"
|
||||
],
|
||||
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
|
||||
},
|
||||
"MinVolCell": {
|
||||
"text2": [
|
||||
"Minimum",
|
||||
"voltage"
|
||||
],
|
||||
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
|
||||
},
|
||||
"AnimLoop": {
|
||||
"text2": [
|
||||
"Anim.",
|
||||
"loop"
|
||||
],
|
||||
"desc": "Loop icon animations in main menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"text2": [
|
||||
"Anim.",
|
||||
"speed"
|
||||
],
|
||||
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
|
||||
},
|
||||
"PowerPulseWait": {
|
||||
"text2": [
|
||||
"Power pulse",
|
||||
"delay"
|
||||
],
|
||||
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
|
||||
},
|
||||
"PowerPulseDuration": {
|
||||
"text2": [
|
||||
"Power pulse",
|
||||
"duration"
|
||||
],
|
||||
"desc": "Keep-awake-pulse duration (x 250ms)"
|
||||
},
|
||||
"LanguageSwitch": {
|
||||
"text2": [
|
||||
"Language:",
|
||||
" EN English"
|
||||
],
|
||||
"desc": "Current firmware language"
|
||||
},
|
||||
"Brightness": {
|
||||
"text2": [
|
||||
"Screen",
|
||||
"brightness"
|
||||
],
|
||||
"desc": "Adjust the OLED screen brightness"
|
||||
},
|
||||
"ColourInversion": {
|
||||
"text2": [
|
||||
"Invert",
|
||||
"screen"
|
||||
],
|
||||
"desc": "Invert the OLED screen colors"
|
||||
},
|
||||
"LOGOTime": {
|
||||
"text2": [
|
||||
"Boot logo",
|
||||
"duration"
|
||||
],
|
||||
"desc": "Set boot logo duration (off | s=seconds | infinity)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "La temperatura en pantalla parpadea mientras la punta siga caliente."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrar temp.",
|
||||
"de la punta"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Vilkuttaa jäähtyessä juotoskärjen lämpötilaa sen ollessa vielä vaarallisen kuuma"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibroi",
|
||||
"lämpötila?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Faire clignoter la température lors du refroidissement tant que la panne est chaude"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Étalonner",
|
||||
"température"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Bljeskanje temperature prilikom hlađenja, ako je lemilica vruća."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibracija",
|
||||
"temperature"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Villogjon a hőmérséklet kijelzése hűlés közben, amíg a forrasztó hegy forró"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Hőmérséklet",
|
||||
"kalibrálása?"
|
||||
|
@@ -174,7 +174,7 @@
|
||||
"punta calda"],
|
||||
"desc": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrazione",
|
||||
"temperatura"
|
||||
|
@@ -115,7 +115,7 @@
|
||||
"text2": "冷却中に点滅",
|
||||
"desc": "加熱の停止後、コテ先が熱い間は温度表示を点滅する"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": "温度校正",
|
||||
"desc": "コテ先の温度校正を開始する"
|
||||
},
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Ar mirksėti temperatūrą ekrane kol vėstantis antgalis vis dar karštas?"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibruoti",
|
||||
"temperatūrą?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Temperatuur laten flitsen in het hoofdmenu zo lang de punt nog warm is"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibreer",
|
||||
"temperatuur?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Temperatuur knippert in hoofdmenu tijdens afkoeling."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibreer",
|
||||
"temperatuur?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Blink temperaturen på skjermen mens spissen fortsatt er varm."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"TempKal?",
|
||||
""
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Temperatura miga podczas wychładzania, gdy grot jest wciąż gorący"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibracja",
|
||||
"temp. grotu"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Faz o valor da temperatura piscar durante o arrefecimento"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrar",
|
||||
"temperatura"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Clipeste temperatura după oprirea încălzirii, în timp ce vârful este încă fierbinte"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Calibrare",
|
||||
"temperatură?"
|
||||
|
@@ -8,7 +8,7 @@
|
||||
],
|
||||
"tempUnitFahrenheit": false,
|
||||
"messages": {
|
||||
"SettingsCalibrationWarning": "Прежде чем продолжить, убедитесь, что жала и ручка имеют комнатную температуру!",
|
||||
"SettingsCalibrationWarning": "Перед калибровкой убедитесь, что жала и ручка имеют комнатную температуру!",
|
||||
"SettingsResetWarning": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?",
|
||||
"UVLOWarningString": "НАПРЯЖ--",
|
||||
"UndervoltageString": "Низ. напряжение",
|
||||
@@ -176,12 +176,12 @@
|
||||
],
|
||||
"desc": "Мигать температурой на экране охлаждения, пока жало еще горячее"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Калибровка",
|
||||
"температуры"
|
||||
],
|
||||
"desc": "Калибровка компенсации холодного спая жала (не требуется, если Delta T < 5°C)"
|
||||
"desc": "Калибровка компенсации холодного спая жала при следующей загрузке (не требуется, если Delta T < 5°C)"
|
||||
},
|
||||
"SettingsReset": {
|
||||
"text2": [
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Blikanie ukazovateľa teploty počas chladnutia hrotu"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibrácia",
|
||||
"teploty"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Ko je konica še vroča, utripaj prikaz temperature med hlajenjem."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibriram",
|
||||
"temperaturo?"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Приказ температуре трепће приликом хлађења докле год је врх и даље врућ."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Калибрација",
|
||||
"температуре"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Prikaz temperature trepće prilikom hlađenja dokle god je vrh i dalje vruć."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibracija",
|
||||
"temperature"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "Blinka temperaturen medan spetsen kyls av och fortfarande är varm."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Kalibrera",
|
||||
"temperatur?"
|
||||
|
@@ -178,7 +178,7 @@
|
||||
],
|
||||
"desc": "Soğutma ekranında uç hala sıcakken derece gösterilsin."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"SCK KAL?",
|
||||
""
|
||||
|
@@ -176,7 +176,7 @@
|
||||
],
|
||||
"desc": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран моргає"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Калібрування",
|
||||
"температури"
|
||||
|
@@ -175,7 +175,7 @@
|
||||
],
|
||||
"desc": "-Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": [
|
||||
"Hieu chuan",
|
||||
"nhiet đo?"
|
||||
|
@@ -115,7 +115,7 @@
|
||||
"text2": "降温時閃爍",
|
||||
"desc": "停止加熱之後,當焫雞咀仲係熱嗰陣閃爍畫面"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": "温度校正?",
|
||||
"desc": "開始校正焫雞咀温度位移"
|
||||
},
|
||||
|
@@ -115,7 +115,7 @@
|
||||
"text2": "降温时闪显",
|
||||
"desc": "停止加热之后,闪动温度显示提醒烙铁头仍处于高温状态"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": "温度校正?",
|
||||
"desc": "开始校正烙铁头温度偏移"
|
||||
},
|
||||
|
@@ -115,7 +115,7 @@
|
||||
"text2": "降溫時閃爍",
|
||||
"desc": "停止加熱之後,當烙鐵頭仍處於高溫時閃爍畫面"
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"CalibrateCJC": {
|
||||
"text2": "溫度校正?",
|
||||
"desc": "開始校正烙鐵頭溫度位移"
|
||||
},
|
||||
|
@@ -283,7 +283,7 @@ var def = ///
|
||||
|
||||
},
|
||||
{
|
||||
"id": "TemperatureCalibration",
|
||||
"id": "CalibrateCJC",
|
||||
"maxLen": 8,
|
||||
"maxLen2": 15,
|
||||
"description": "Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target."
|
||||
|
@@ -50,9 +50,10 @@ enum SettingsOptions {
|
||||
OLEDInversion = 33, // Invert the colours on the display
|
||||
OLEDBrightness = 34, // Brightness for the OLED display
|
||||
LOGOTime = 35, // Duration the logo will be displayed for
|
||||
CalibrateCJC = 36, // Toggle calibrate CJC at next boot
|
||||
|
||||
//
|
||||
SettingsOptionsLength = 36, //
|
||||
SettingsOptionsLength = 37, //
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
@@ -46,7 +46,7 @@ enum class SettingsItemIndex : uint8_t {
|
||||
BoostTemperature,
|
||||
AutoStart,
|
||||
CooldownBlink,
|
||||
TemperatureCalibration,
|
||||
CalibrateCJC,
|
||||
SettingsReset,
|
||||
VoltageCalibration,
|
||||
AdvancedSoldering,
|
||||
|
@@ -85,6 +85,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
|
||||
{0, 1, 1, 0}, // OLEDInversion
|
||||
{0, 99, 11, 33}, // OLEDBrightness
|
||||
{0, 5, 1, 1}, // LOGOTime
|
||||
{0, 1, 1, 0}, // CalibrateCJC
|
||||
|
||||
};
|
||||
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));
|
||||
|
@@ -101,8 +101,8 @@ static bool enterAdvancedMenu(void);
|
||||
* Soldering
|
||||
* Boost Mode Temp
|
||||
* Auto Start
|
||||
* Temp change short step
|
||||
* Temp change long step
|
||||
* Temp Change Short Step
|
||||
* Temp Change Long Step
|
||||
* Locking Mode
|
||||
*
|
||||
* Power Saving
|
||||
@@ -114,10 +114,10 @@ static bool enterAdvancedMenu(void);
|
||||
*
|
||||
* UI
|
||||
* Temperature Unit
|
||||
* Display orientation
|
||||
* Cooldown blink
|
||||
* Display Orientation
|
||||
* Cooldown Blink
|
||||
* Scrolling Speed
|
||||
* Reverse Temp change buttons + -
|
||||
* Swap Temp Change Buttons + -
|
||||
* Animation Speed
|
||||
* -Animation Loop
|
||||
* OLED Brightness
|
||||
@@ -128,11 +128,11 @@ static bool enterAdvancedMenu(void);
|
||||
*
|
||||
* Advanced
|
||||
* Power Limit
|
||||
* Calibrate Temperature
|
||||
* Calibrate CJC At Next Boot
|
||||
* Calibrate Input V
|
||||
* Power Pulse
|
||||
* -Power Pulse Delay
|
||||
* -Power Pulse duration
|
||||
* -Power Pulse Duration
|
||||
* Factory Reset
|
||||
*
|
||||
*/
|
||||
@@ -184,8 +184,8 @@ const menuitem solderingMenu[] = {
|
||||
/*
|
||||
* Boost Mode Temp
|
||||
* Auto Start
|
||||
* Temp change short step
|
||||
* Temp change long step
|
||||
* Temp Change Short Step
|
||||
* Temp Change Long Step
|
||||
* Locking Mode
|
||||
*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), setBoostTemp, displayBoostTemp, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::BoostTemperature, 5}, /*Boost Temp*/
|
||||
@@ -221,10 +221,10 @@ const menuitem PowerSavingMenu[] = {
|
||||
const menuitem UIMenu[] = {
|
||||
/*
|
||||
* Temperature Unit
|
||||
* Display orientation
|
||||
* Cooldown blink
|
||||
* Display Orientation
|
||||
* Cooldown Blink
|
||||
* Scrolling Speed
|
||||
* Reverse Temp change buttons + -
|
||||
* Swap Temp Change Buttons + -
|
||||
* Animation Speed
|
||||
* -Animation Loop
|
||||
* OLED Brightness
|
||||
@@ -257,16 +257,16 @@ const menuitem UIMenu[] = {
|
||||
const menuitem advancedMenu[] = {
|
||||
/*
|
||||
* Power Limit
|
||||
* Calibrate Temperature
|
||||
* Calibrate CJC At Next Boot
|
||||
* Calibrate Input V
|
||||
* Power Pulse
|
||||
* -Power Pulse Delay
|
||||
* -Power Pulse duration
|
||||
* -Power Pulse Duration
|
||||
* Factory Reset
|
||||
*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, displayPowerLimit, nullptr, SettingsOptions::PowerLimit, SettingsItemIndex::PowerLimit, 5}, /*Power limit*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::TemperatureCalibration), setCalibrate, displayCalibrate, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::TemperatureCalibration,
|
||||
5}, /*Calibrate tip*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::CalibrateCJC), setCalibrate, displayCalibrate, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::CalibrateCJC,
|
||||
7}, /*Calibrate Cold Junktion Compensation at next boot*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::VoltageCalibration), setCalibrateVIN, displayCalibrateVIN, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::VoltageCalibration,
|
||||
5}, /*Voltage input cal*/
|
||||
{SETTINGS_DESC(SettingsItemIndex::PowerPulsePower), nullptr, displayPowerPulse, nullptr, SettingsOptions::KeepAwakePulse, SettingsItemIndex::PowerPulsePower, 5}, /*Power Pulse adjustment */
|
||||
@@ -644,49 +644,20 @@ static void displayPowerLimit(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void setTipOffset() {
|
||||
uint16_t setoffset = 0;
|
||||
|
||||
// If the thermo-couple at the end of the tip, and the handle are at
|
||||
// equilibrium, then the output should be zero, as there is no temperature
|
||||
// differential.
|
||||
while (setoffset == 0) {
|
||||
uint32_t offset = 0;
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
offset += getTipRawTemp(1);
|
||||
// cycle through the filter a fair bit to ensure we're stable.
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||
for (uint8_t x = 0; x < (i / 4); x++)
|
||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||
OLED::refresh();
|
||||
osDelay(100);
|
||||
}
|
||||
setoffset = TipThermoModel::convertTipRawADCTouV(offset / 16, true);
|
||||
}
|
||||
setSettingValue(SettingsOptions::CalibrationOffset, setoffset);
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::drawCheckbox(true);
|
||||
OLED::printNumber(setoffset, 4, FontStyle::LARGE);
|
||||
OLED::refresh();
|
||||
osDelay(1200);
|
||||
}
|
||||
|
||||
// Provide the user the option to tune their own tip if custom is selected
|
||||
// If not only do single point tuning as per usual
|
||||
static bool setCalibrate(void) {
|
||||
|
||||
if (userConfirmation(translatedString(Tr->SettingsCalibrationWarning))) {
|
||||
// User confirmed
|
||||
// So we now perform the actual calculation
|
||||
setTipOffset();
|
||||
if (getSettingValue(SettingsOptions::CalibrateCJC) < 1) {
|
||||
if (userConfirmation(translatedString(Tr->SettingsCalibrationWarning))) {
|
||||
// User confirmed
|
||||
// So we now set the tick
|
||||
setSettingValue(SettingsOptions::CalibrateCJC, 1);
|
||||
}
|
||||
} else {
|
||||
setSettingValue(SettingsOptions::CalibrateCJC, 0);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void displayCalibrate(void) {}
|
||||
static void displayCalibrate(void) { OLED::drawCheckbox(getSettingValue(SettingsOptions::CalibrateCJC)); }
|
||||
|
||||
static bool setCalibrateVIN(void) {
|
||||
// Jump to the voltage calibration subscreen
|
||||
|
@@ -94,6 +94,42 @@ void gui_drawTipTemp(bool symbol, const FontStyle font) {
|
||||
}
|
||||
}
|
||||
}
|
||||
void performCJCC() {
|
||||
// Calibrate Cold Junction Compensation directly at boot, before internal components get warm.
|
||||
OLED::refresh();
|
||||
osDelay(50);
|
||||
if (!isTipDisconnected() && (TipThermoModel::getTipInC() - getHandleTemperature(0) / 10) < 10) {
|
||||
uint16_t setoffset = 0;
|
||||
// If the thermo-couple at the end of the tip, and the handle are at
|
||||
// equilibrium, then the output should be zero, as there is no temperature
|
||||
// differential.
|
||||
while (setoffset == 0) {
|
||||
uint32_t offset = 0;
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
offset += getTipRawTemp(1);
|
||||
// cycle through the filter a fair bit to ensure we're stable.
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||
for (uint8_t x = 0; x < (i / 4); x++)
|
||||
OLED::print(SymbolDot, FontStyle::LARGE);
|
||||
OLED::refresh();
|
||||
osDelay(100);
|
||||
}
|
||||
setoffset = TipThermoModel::convertTipRawADCTouV(offset / 16, true);
|
||||
}
|
||||
setSettingValue(SettingsOptions::CalibrationOffset, setoffset);
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::drawCheckbox(true);
|
||||
OLED::printNumber(setoffset, 5, FontStyle::LARGE);
|
||||
OLED::refresh();
|
||||
osDelay(1200);
|
||||
// Preventing to repeat calibration at boot automatically (only one shot).
|
||||
setSettingValue(SettingsOptions::CalibrateCJC, 0);
|
||||
saveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef POW_DC
|
||||
// returns true if undervoltage has occured
|
||||
@@ -688,10 +724,9 @@ void showDebugMenu(void) {
|
||||
OLED::setCursor(0, 8); // second line
|
||||
OLED::print(DebugMenu[screen], FontStyle::SMALL);
|
||||
switch (screen) {
|
||||
case 0: // Build Date
|
||||
case 0: // Build Date
|
||||
break;
|
||||
case 1:
|
||||
// Device ID
|
||||
case 1: // Device ID
|
||||
{
|
||||
uint64_t id = getDeviceID();
|
||||
#ifdef DEVICE_HAS_VALIDATION_CODE
|
||||
@@ -706,46 +741,10 @@ void showDebugMenu(void) {
|
||||
OLED::drawHex((uint32_t)(id & 0xFFFFFFFF), FontStyle::SMALL, 8);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
// System Uptime
|
||||
OLED::printNumber(xTaskGetTickCount() / TICKS_100MS, 5, FontStyle::SMALL);
|
||||
break;
|
||||
case 3:
|
||||
// Movement Timestamp
|
||||
OLED::printNumber(lastMovementTime / TICKS_100MS, 5, FontStyle::SMALL);
|
||||
break;
|
||||
case 4:
|
||||
// ACC Type
|
||||
case 2: // ACC Type
|
||||
OLED::print(AccelTypeNames[(int)DetectedAccelerometerVersion], FontStyle::SMALL);
|
||||
break;
|
||||
case 5:
|
||||
// Tip Resistance
|
||||
OLED::printNumber(getTipResistanceX10() / 10, 4, FontStyle::SMALL); // large to pad over so that we cover ID left overs
|
||||
OLED::print(SymbolDot, FontStyle::SMALL);
|
||||
OLED::printNumber(getTipResistanceX10() % 10, 1, FontStyle::SMALL);
|
||||
break;
|
||||
case 6:
|
||||
// Raw Tip in uV
|
||||
{ OLED::printNumber(TipThermoModel::convertTipRawADCTouV(getTipRawTemp(0), true), 6, FontStyle::SMALL); }
|
||||
break;
|
||||
case 7:
|
||||
// Temp in C
|
||||
OLED::printNumber(TipThermoModel::getTipInC(), 5, FontStyle::SMALL);
|
||||
break;
|
||||
case 8:
|
||||
// Handle Temp in C
|
||||
OLED::printNumber(getHandleTemperature(0), 6, FontStyle::SMALL);
|
||||
break;
|
||||
case 9:
|
||||
// Max C Limit
|
||||
OLED::printNumber(TipThermoModel::getTipMaxInC(), 3, FontStyle::SMALL);
|
||||
break;
|
||||
case 10:
|
||||
// Input Voltage
|
||||
printVoltage();
|
||||
break;
|
||||
case 11:
|
||||
// Power Negotiation Status
|
||||
case 3: // Power Negotiation Status
|
||||
{
|
||||
int sourceNumber = 0;
|
||||
if (getIsPoweredByDCIN()) {
|
||||
@@ -780,22 +779,49 @@ void showDebugMenu(void) {
|
||||
OLED::print(PowerSourceNames[sourceNumber], FontStyle::SMALL);
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
// High Water Mark for GUI
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(GUITaskHandle), 5, FontStyle::SMALL);
|
||||
case 4: // Input Voltage
|
||||
printVoltage();
|
||||
break;
|
||||
case 13:
|
||||
// High Water Mark for Movement Task
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(MOVTaskHandle), 5, FontStyle::SMALL);
|
||||
case 5: // Temp in °C
|
||||
OLED::printNumber(TipThermoModel::getTipInC(), 6, FontStyle::SMALL);
|
||||
break;
|
||||
case 14:
|
||||
// High Water Mark for PID Task
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(PIDTaskHandle), 5, FontStyle::SMALL);
|
||||
case 6: // Handle Temp in °C
|
||||
OLED::printNumber(getHandleTemperature(0) / 10, 6, FontStyle::SMALL);
|
||||
OLED::print(SymbolDot, FontStyle::SMALL);
|
||||
OLED::printNumber(getHandleTemperature(0) % 10, 1, FontStyle::SMALL);
|
||||
break;
|
||||
case 7: // Max Temp Limit in °C
|
||||
OLED::printNumber(TipThermoModel::getTipMaxInC(), 6, FontStyle::SMALL);
|
||||
break;
|
||||
case 8: // System Uptime
|
||||
OLED::printNumber(xTaskGetTickCount() / TICKS_100MS, 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 9: // Movement Timestamp
|
||||
OLED::printNumber(lastMovementTime / TICKS_100MS, 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 10: // Tip Resistance in Ω
|
||||
OLED::printNumber(getTipResistanceX10() / 10, 6, FontStyle::SMALL); // large to pad over so that we cover ID left overs
|
||||
OLED::print(SymbolDot, FontStyle::SMALL);
|
||||
OLED::printNumber(getTipResistanceX10() % 10, 1, FontStyle::SMALL);
|
||||
break;
|
||||
case 11: // Raw Tip in µV
|
||||
OLED::printNumber(TipThermoModel::convertTipRawADCTouV(getTipRawTemp(0), true), 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 12: // Tip Cold Junction Compensation Offset in µV
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::CalibrationOffset), 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 13: // High Water Mark for GUI
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(GUITaskHandle), 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 14: // High Water Mark for Movement Task
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(MOVTaskHandle), 8, FontStyle::SMALL);
|
||||
break;
|
||||
case 15: // High Water Mark for PID Task
|
||||
OLED::printNumber(uxTaskGetStackHighWaterMark(PIDTaskHandle), 8, FontStyle::SMALL);
|
||||
break;
|
||||
break;
|
||||
#ifdef HALL_SENSOR
|
||||
case 15:
|
||||
// Raw Hall Effect Value
|
||||
case 16: // Raw Hall Effect Value
|
||||
{
|
||||
int16_t hallEffectStrength = getRawHallEffect();
|
||||
if (hallEffectStrength < 0)
|
||||
@@ -816,9 +842,9 @@ void showDebugMenu(void) {
|
||||
else if (b == BUTTON_F_SHORT) {
|
||||
screen++;
|
||||
#ifdef HALL_SENSOR
|
||||
screen = screen % 16;
|
||||
screen = screen % 17;
|
||||
#else
|
||||
screen = screen % 15;
|
||||
screen = screen % 16;
|
||||
#endif
|
||||
}
|
||||
GUIDelay();
|
||||
@@ -996,6 +1022,11 @@ void startGUITask(void const *argument) {
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (getSettingValue(SettingsOptions::CalibrateCJC) > 0) {
|
||||
performCJCC();
|
||||
}
|
||||
|
||||
// If the boot logo is enabled (but it times out) and the autostart mode is enabled (but not set to sleep w/o heat), start heating during boot logo
|
||||
if (getSettingValue(SettingsOptions::LOGOTime) > 0 && getSettingValue(SettingsOptions::LOGOTime) < 5 && getSettingValue(SettingsOptions::AutoStartMode) > 0
|
||||
&& getSettingValue(SettingsOptions::AutoStartMode) < 3) {
|
||||
@@ -1005,7 +1036,7 @@ void startGUITask(void const *argument) {
|
||||
} else {
|
||||
sleepTempDegC = getSettingValue(SettingsOptions::SleepTemp);
|
||||
}
|
||||
// Only heat to sleep temperature (but no higher than 75*C for safety)
|
||||
// Only heat to sleep temperature (but no higher than 75°C for safety)
|
||||
currentTempTargetDegC = min(sleepTempDegC, 75);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user