Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54356d53a9 | ||
|
|
d536fb33de | ||
|
|
fa717b2741 | ||
|
|
0a7b6145af |
11
README.md
11
README.md
@@ -17,6 +17,7 @@ In the latest official firmware they have also added a settings menu system, so
|
||||
* Use hardware features to improve reliability
|
||||
* Can disable movement detection if desired
|
||||
* Calibration of the temperature offset
|
||||
* Boost mode lets you temporarily change the temperature when soldering
|
||||
|
||||
# Upgrading your ts100 iron
|
||||
This is completely safe, if it goes wrong just put the .hex file from the official website onto the unit and your back to the old firmware. Downloads for the hex files to flash are available on the [releases page.](https://github.com/Ralim/ts100/releases)
|
||||
@@ -60,6 +61,8 @@ If you leave the unit alone (ie don't press any buttons) on a setting, after 3 s
|
||||
* TMPRND -> Temperature Rounding, {1,5,10}
|
||||
* TMPSPD -> How fast the temperature should update in the soldering status screen.
|
||||
* FLPDSP -> Flip display for left handed users
|
||||
* BOOST -> Enable boost mode
|
||||
* BTMP -> Set the temperature for the boost mode
|
||||
|
||||
Temperature rounding means that the unit will round off the temperature before displaying. This can helpt to reduce the flickering of the temperature when the unit oscillates between two temperatures.
|
||||
## Extras Menu
|
||||
@@ -67,10 +70,16 @@ This menu defaults to showing the current temperature on the tip.
|
||||
Pressing the button near the iron tip will show the current input voltage. Pressing the other button while this is show will allow you to calibrate the reading if your iron is like mine and is not overly accurate out of the factory. (Press buttons to change measurement up and down, press both to exit and save).
|
||||
|
||||
Pressing the button near the usb enters the temperature offset setting menu, when the iron is cold, pressing the other button will start the unit calibrating for any offset in the tip temperature.
|
||||
## Boost mode
|
||||
This allows you to change the front key (one near the tip) to become a boost button instead of going to temperature editing when in soldering mode. This allows you to set this button to change the soldering temperature for short periods. For example when soldering a big joint and you want to boost the temperature a bit.
|
||||
|
||||
The boost temperature is set in the settings menu.
|
||||
# Version Changes:
|
||||
V1.11
|
||||
- Boost mode
|
||||
|
||||
V1.10
|
||||
-Adds help text to settings
|
||||
- Adds help text to settings
|
||||
- Improves settings for the display update rate
|
||||
|
||||
V1.09
|
||||
|
||||
@@ -11,7 +11,9 @@ void delayMs(uint32_t ticks);
|
||||
volatile extern uint32_t lastKeyPress;
|
||||
volatile extern uint32_t lastMovement;
|
||||
|
||||
volatile extern uint16_t keyState;
|
||||
volatile extern uint8_t keyState;
|
||||
volatile extern uint8_t rawKeys;
|
||||
|
||||
inline uint32_t millis() {
|
||||
return system_Ticks;
|
||||
}
|
||||
@@ -34,6 +36,10 @@ inline uint32_t getLastMovement() {
|
||||
inline uint16_t getButtons() {
|
||||
return keyState;
|
||||
}
|
||||
inline uint16_t getRawButtons() {
|
||||
return rawKeys;
|
||||
}
|
||||
|
||||
|
||||
/*IRQ prototypes*/
|
||||
void NMI_Handler(void);
|
||||
|
||||
@@ -29,7 +29,7 @@ enum {
|
||||
TEMPCAL, //Cal tip temp offset
|
||||
|
||||
} operatingMode;
|
||||
#define SETTINGSOPTIONSCOUNT 9 /*Number of settings in the settings menu*/
|
||||
#define SETTINGSOPTIONSCOUNT 11 /*Number of settings in the settings menu*/
|
||||
|
||||
enum {
|
||||
UVCO = 0,
|
||||
@@ -42,6 +42,8 @@ enum {
|
||||
TEMPROUNDING,
|
||||
DISPUPDATERATE,
|
||||
LEFTY,
|
||||
BOOSTMODE,
|
||||
BOOSTTEMP,
|
||||
} settingsPage;
|
||||
|
||||
void ProcessUI();
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#define SETTINGS_H_
|
||||
#include <stdint.h>
|
||||
#include "stm32f10x_flash.h"
|
||||
#define SETTINGSVERSION 0x08 /*Change this if you change the struct below to prevent people getting out of sync*/
|
||||
#define SETTINGSVERSION 10 /*Change this if you change the struct below to prevent people getting out of sync*/
|
||||
//Motion Sensitivity
|
||||
#define MOTION_HIGH (0x00)
|
||||
#define MOTION_MED (0x01)
|
||||
@@ -25,12 +25,11 @@
|
||||
#define ROUNDING_FIVE (0x01)
|
||||
#define ROUNDING_TEN (0x02)
|
||||
|
||||
|
||||
/*
|
||||
* This struct must be a multiple of 2 bytes as it is saved / restored from flash in uint16_t chunks
|
||||
*/
|
||||
struct {
|
||||
uint32_t SolderingTemp; //current set point for the iron
|
||||
uint16_t SolderingTemp; //current set point for the iron
|
||||
uint32_t SleepTemp; //temp to drop to in sleep
|
||||
uint8_t version; //Used to track if a reset is needed on firmware upgrade
|
||||
uint8_t SleepTime; //minutes timeout to sleep
|
||||
@@ -38,12 +37,14 @@ struct {
|
||||
uint8_t movementEnabled:1; //If movement is enabled
|
||||
uint8_t displayTempInF:1; //If we need to convert the C reading to F
|
||||
uint8_t flipDisplay:1; //If true we want to invert the display for lefties
|
||||
uint8_t sensitivity:6; //Sensitivity of accelerometer
|
||||
uint8_t sensitivity:5; //Sensitivity of accelerometer
|
||||
uint8_t ShutdownTime:6; //Time until unit shuts down if left alone
|
||||
uint8_t displayUpdateSpeed:2; //How fast the display updates / temp showing mode
|
||||
uint8_t temperatureRounding:2; //Rounding mode for the temperature
|
||||
uint8_t boostModeEnabled:1; //Boost mode swaps BUT_A in soldering mode to temporary soldering temp over-ride
|
||||
uint16_t tempCalibration; //Temperature calibration value
|
||||
uint16_t voltageDiv; //Voltage divisor factor
|
||||
uint16_t BoostTemp; //Boost mode set point for the iron
|
||||
} systemSettings;
|
||||
|
||||
void saveSettings();
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
|
||||
volatile uint32_t system_Ticks;
|
||||
volatile uint32_t lastKeyPress; //millis() at the last button event
|
||||
volatile uint16_t keyState; //tracks the button status
|
||||
volatile uint8_t keyState; //tracks the button status
|
||||
volatile uint8_t rawKeys;
|
||||
volatile uint32_t lastMovement; //millis() at last movement event
|
||||
|
||||
//Delay in milliseconds using systemTick
|
||||
@@ -55,18 +56,24 @@ void EXTI9_5_IRQHandler(void) {
|
||||
//we are interested in line 9 and line 6 for buttons
|
||||
//Line 5 == movement
|
||||
if (EXTI_GetITStatus(EXTI_Line9) != RESET) {
|
||||
if (GPIO_ReadInputDataBit(GPIOA, KEY_A) == SET)
|
||||
if (GPIO_ReadInputDataBit(GPIOA, KEY_A) == SET) {
|
||||
keyState &= ~(BUT_A);
|
||||
else
|
||||
rawKeys &= ~BUT_A;
|
||||
} else {
|
||||
keyState |= BUT_A;
|
||||
lastKeyPress = millis();
|
||||
rawKeys |= BUT_A;
|
||||
lastKeyPress = millis();
|
||||
}
|
||||
EXTI_ClearITPendingBit(EXTI_Line9);
|
||||
} else if (EXTI_GetITStatus(EXTI_Line6) != RESET) {
|
||||
if (GPIO_ReadInputDataBit(GPIOA, KEY_B) == SET)
|
||||
if (GPIO_ReadInputDataBit(GPIOA, KEY_B) == SET) {
|
||||
keyState &= ~(BUT_B);
|
||||
else
|
||||
rawKeys &= ~BUT_B;
|
||||
} else {
|
||||
keyState |= BUT_B;
|
||||
lastKeyPress = millis();
|
||||
rawKeys |= BUT_B;
|
||||
lastKeyPress = millis();
|
||||
}
|
||||
EXTI_ClearITPendingBit(EXTI_Line6);
|
||||
} else if (EXTI_GetITStatus(EXTI_Line5) != RESET) { //Movement Event
|
||||
lastMovement = millis();
|
||||
@@ -205,4 +212,3 @@ void USB_LP_CAN1_RX0_IRQHandler(void) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ void setup() {
|
||||
readIronTemp(systemSettings.tempCalibration, 0,0); //load the default calibration value
|
||||
Init_Oled(systemSettings.flipDisplay); //Init the OLED display
|
||||
|
||||
OLED_DrawString("VER 1.10", 8); //Version Number
|
||||
OLED_DrawString("VER 1.11", 8); //Version Number
|
||||
delayMs(500); //Pause to show version number
|
||||
Start_Watchdog(1000); //start the system watch dog as 1 second timeout
|
||||
}
|
||||
|
||||
@@ -5,16 +5,19 @@
|
||||
* Author: Ralim <ralim@ralimtek.com>
|
||||
*/
|
||||
#include "Modes.h"
|
||||
const char *SettingsLongNames[] = { " Undervoltage Cutout (V)",
|
||||
" Sleep Temperature (C)", " Sleep Timeout (Minutes)",
|
||||
" Shutdown Timeout (Minutes)", " Motion Detection",
|
||||
const char *SettingsLongNames[] = { " Undervoltage Cutout <V>",
|
||||
" Sleep Temperature <C>", " Sleep Timeout <Minutes>",
|
||||
" Shutdown Timeout <Minutes>", " Motion Detection",
|
||||
" Motion Sensitivity", " Temperature Unit",
|
||||
" Temperature Rounding Amount",
|
||||
" Temperature Display Update Rate",
|
||||
" Flip Display for Left Hand" };
|
||||
" Flip Display for Left Hand",
|
||||
" Enable front key boost 450C mode when soldering",
|
||||
" Temperature when in boost mode" };
|
||||
const uint8_t SettingsLongNamesLengths[] = { 29, 27, 29, 32, 22, 24, 22, 33, 37,
|
||||
25 };
|
||||
uint8_t CalStatus = 0;
|
||||
32, 53, 36 };
|
||||
uint8_t StatusFlags = 0;
|
||||
uint32_t temporaryTempStorage = 0;
|
||||
//This does the required processing and state changes
|
||||
void ProcessUI() {
|
||||
uint8_t Buttons = getButtons(); //read the buttons status
|
||||
@@ -41,15 +44,43 @@ void ProcessUI() {
|
||||
break;
|
||||
case SOLDERING:
|
||||
//We need to check the buttons if we need to jump out
|
||||
if (Buttons == BUT_A || Buttons == BUT_B) {
|
||||
if ((Buttons == BUT_A && !systemSettings.boostModeEnabled)
|
||||
|| Buttons == BUT_B) {
|
||||
//A or B key pressed so we are moving to temp set
|
||||
operatingMode = TEMP_ADJ;
|
||||
if (StatusFlags == 8) {
|
||||
//Boost mode was enabled before
|
||||
//We need to cancel the temp
|
||||
systemSettings.SolderingTemp = temporaryTempStorage;
|
||||
StatusFlags = 0;
|
||||
}
|
||||
} else if (Buttons == (BUT_A | BUT_B)) {
|
||||
|
||||
//Both buttons were pressed, exit back to the cooling screen
|
||||
operatingMode = COOLING;
|
||||
if (StatusFlags == 8) {
|
||||
//Boost mode was enabled before
|
||||
//We need to cancel the temp
|
||||
systemSettings.SolderingTemp = temporaryTempStorage;
|
||||
StatusFlags = 0;
|
||||
}
|
||||
|
||||
} else if ((getRawButtons() == BUT_A && systemSettings.boostModeEnabled)) {
|
||||
if (StatusFlags != 8) {
|
||||
StatusFlags = 8;
|
||||
temporaryTempStorage = systemSettings.SolderingTemp;
|
||||
systemSettings.SolderingTemp = systemSettings.BoostTemp;
|
||||
}
|
||||
//Update the PID Loop
|
||||
int32_t newOutput = computePID(systemSettings.SolderingTemp);
|
||||
setIronTimer(newOutput);
|
||||
} else {
|
||||
if (StatusFlags == 8) {
|
||||
//Boost mode was enabled before
|
||||
//We need to cancel the temp
|
||||
systemSettings.SolderingTemp = temporaryTempStorage;
|
||||
StatusFlags = 0;
|
||||
}
|
||||
//We need to check the timer for movement in case we need to goto idle
|
||||
if (systemSettings.movementEnabled)
|
||||
if (millis() - getLastMovement()
|
||||
@@ -94,70 +125,83 @@ void ProcessUI() {
|
||||
case SETTINGS:
|
||||
//Settings is the mode with the most logic
|
||||
//Here we are in the menu so we need to increment through the sub menus / increase the value
|
||||
if (StatusFlags == 4 && Buttons != 0) {
|
||||
//The user pressed the button to breakout of the settings help prompt
|
||||
StatusFlags = 0;
|
||||
} else {
|
||||
if (Buttons & BUT_A) {
|
||||
//A key iterates through the menu
|
||||
if (settingsPage == SETTINGSOPTIONSCOUNT) {
|
||||
//Roll off the end
|
||||
settingsPage = 0; //reset
|
||||
operatingMode = STARTUP; //reset back to the startup
|
||||
saveSettings(); //Save the settings
|
||||
} else {
|
||||
++settingsPage; //move to the next option
|
||||
}
|
||||
} else if (Buttons & BUT_B) {
|
||||
//B changes the value selected
|
||||
switch (settingsPage) {
|
||||
case UVCO:
|
||||
//we are incrementing the cutout voltage
|
||||
systemSettings.cutoutVoltage += 1; //Go up 1V at a jump
|
||||
if (systemSettings.cutoutVoltage > 24)
|
||||
systemSettings.cutoutVoltage = 10;
|
||||
break;
|
||||
case SLEEP_TEMP:
|
||||
systemSettings.SleepTemp += 100; //Go up 10C at a time
|
||||
if (systemSettings.SleepTemp > 3000)
|
||||
systemSettings.SleepTemp = 1000;//cant sleep higher than 300
|
||||
break;
|
||||
case SLEEP_TIME:
|
||||
++systemSettings.SleepTime; //Go up 1 minute at a time
|
||||
if (systemSettings.SleepTime > 30)
|
||||
systemSettings.SleepTime = 1;//cant set time over 30 mins
|
||||
//Remember that ^ is the time of no movement
|
||||
break;
|
||||
case SHUTDOWN_TIME:
|
||||
++systemSettings.ShutdownTime;
|
||||
if (systemSettings.ShutdownTime > 60)
|
||||
systemSettings.ShutdownTime = 0; //wrap to off
|
||||
break;
|
||||
case MOTIONDETECT:
|
||||
systemSettings.movementEnabled =
|
||||
!systemSettings.movementEnabled;
|
||||
break;
|
||||
case TEMPDISPLAY:
|
||||
systemSettings.displayTempInF =
|
||||
!systemSettings.displayTempInF;
|
||||
break;
|
||||
case LEFTY:
|
||||
systemSettings.flipDisplay = !systemSettings.flipDisplay;
|
||||
break;
|
||||
case MOTIONSENSITIVITY:
|
||||
systemSettings.sensitivity++;
|
||||
systemSettings.sensitivity = systemSettings.sensitivity % 3;
|
||||
|
||||
if (Buttons & BUT_A) {
|
||||
//A key iterates through the menu
|
||||
if (settingsPage == SETTINGSOPTIONSCOUNT) {
|
||||
//Roll off the end
|
||||
settingsPage = 0; //reset
|
||||
operatingMode = STARTUP; //reset back to the startup
|
||||
saveSettings(); //Save the settings
|
||||
} else {
|
||||
++settingsPage; //move to the next option
|
||||
}
|
||||
} else if (Buttons & BUT_B) {
|
||||
//B changes the value selected
|
||||
switch (settingsPage) {
|
||||
case UVCO:
|
||||
//we are incrementing the cutout voltage
|
||||
systemSettings.cutoutVoltage += 1; //Go up 1V at a jump
|
||||
if (systemSettings.cutoutVoltage > 24)
|
||||
systemSettings.cutoutVoltage = 10;
|
||||
break;
|
||||
case SLEEP_TEMP:
|
||||
systemSettings.SleepTemp += 100; //Go up 10C at a time
|
||||
if (systemSettings.SleepTemp > 3000)
|
||||
systemSettings.SleepTemp = 1000;//cant sleep higher than 300
|
||||
break;
|
||||
case SLEEP_TIME:
|
||||
++systemSettings.SleepTime; //Go up 1 minute at a time
|
||||
if (systemSettings.SleepTime > 30)
|
||||
systemSettings.SleepTime = 1; //cant set time over 30 mins
|
||||
//Remember that ^ is the time of no movement
|
||||
break;
|
||||
case SHUTDOWN_TIME:
|
||||
++systemSettings.ShutdownTime;
|
||||
if (systemSettings.ShutdownTime > 60)
|
||||
systemSettings.ShutdownTime = 0; //wrap to off
|
||||
break;
|
||||
case MOTIONDETECT:
|
||||
systemSettings.movementEnabled =
|
||||
!systemSettings.movementEnabled;
|
||||
break;
|
||||
case TEMPDISPLAY:
|
||||
systemSettings.displayTempInF = !systemSettings.displayTempInF;
|
||||
break;
|
||||
case LEFTY:
|
||||
systemSettings.flipDisplay = !systemSettings.flipDisplay;
|
||||
break;
|
||||
case MOTIONSENSITIVITY:
|
||||
systemSettings.sensitivity++;
|
||||
systemSettings.sensitivity = systemSettings.sensitivity % 3;
|
||||
|
||||
break;
|
||||
case TEMPROUNDING:
|
||||
systemSettings.temperatureRounding++;
|
||||
systemSettings.temperatureRounding =
|
||||
systemSettings.temperatureRounding % 3;
|
||||
break;
|
||||
case DISPUPDATERATE:
|
||||
systemSettings.displayUpdateSpeed++;
|
||||
systemSettings.displayUpdateSpeed =
|
||||
systemSettings.displayUpdateSpeed % 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
case TEMPROUNDING:
|
||||
systemSettings.temperatureRounding++;
|
||||
systemSettings.temperatureRounding =
|
||||
systemSettings.temperatureRounding % 3;
|
||||
break;
|
||||
case DISPUPDATERATE:
|
||||
systemSettings.displayUpdateSpeed++;
|
||||
systemSettings.displayUpdateSpeed =
|
||||
systemSettings.displayUpdateSpeed % 3;
|
||||
break;
|
||||
case BOOSTMODE:
|
||||
systemSettings.boostModeEnabled =
|
||||
!systemSettings.boostModeEnabled;
|
||||
break;
|
||||
case BOOSTTEMP:
|
||||
systemSettings.BoostTemp += 100; //Go up 10C at a time
|
||||
if (systemSettings.BoostTemp > 4500)
|
||||
systemSettings.BoostTemp = 2500; //loop back at 250
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -217,10 +261,10 @@ void ProcessUI() {
|
||||
|
||||
if (Buttons == BUT_A) {
|
||||
//Single button press, cycle over to the DC display
|
||||
CalStatus = 0;
|
||||
StatusFlags = 0;
|
||||
operatingMode = DCINDISP;
|
||||
} else if (Buttons == BUT_B) {
|
||||
CalStatus = 0;
|
||||
StatusFlags = 0;
|
||||
operatingMode = TEMPCAL;
|
||||
} else if (Buttons == (BUT_A | BUT_B)) {
|
||||
//If the user is holding both button, exit the screen
|
||||
@@ -231,13 +275,13 @@ void ProcessUI() {
|
||||
break;
|
||||
case DCINDISP: {
|
||||
//This lets the user check the input voltage
|
||||
if (CalStatus == 0) {
|
||||
if (StatusFlags == 0) {
|
||||
if (Buttons == BUT_A) {
|
||||
//Single button press, cycle over to the temp display
|
||||
operatingMode = THERMOMETER;
|
||||
} else if (Buttons == BUT_B) {
|
||||
//dc cal mode
|
||||
CalStatus = 1;
|
||||
StatusFlags = 1;
|
||||
} else if (Buttons == (BUT_A | BUT_B)) {
|
||||
//If the user is holding both button, exit the screen
|
||||
operatingMode = STARTUP;
|
||||
@@ -255,7 +299,7 @@ void ProcessUI() {
|
||||
else
|
||||
systemSettings.voltageDiv++;
|
||||
} else if (Buttons == (BUT_A | BUT_B)) {
|
||||
CalStatus = 0;
|
||||
StatusFlags = 0;
|
||||
saveSettings();
|
||||
}
|
||||
if (systemSettings.voltageDiv < 120)
|
||||
@@ -272,13 +316,13 @@ void ProcessUI() {
|
||||
operatingMode = THERMOMETER;
|
||||
} else if (Buttons == BUT_A) {
|
||||
//Try and calibrate
|
||||
if (CalStatus == 0) {
|
||||
if (StatusFlags == 0) {
|
||||
if ((readTipTemp() < 300) && (readSensorTemp() < 300)) {
|
||||
CalStatus = 1;
|
||||
StatusFlags = 1;
|
||||
systemSettings.tempCalibration = readTipTemp();
|
||||
saveSettings();
|
||||
} else {
|
||||
CalStatus = 2;
|
||||
StatusFlags = 2;
|
||||
}
|
||||
}
|
||||
} else if (Buttons == (BUT_A | BUT_B)) {
|
||||
@@ -358,7 +402,11 @@ void DrawUI() {
|
||||
lastSolderingDrawnTemp2 = lastSolderingDrawnTemp1;
|
||||
lastOLEDDrawTime = millis();
|
||||
//Now draw symbols
|
||||
OLED_DrawChar(' ', 3);
|
||||
if (StatusFlags == 8)
|
||||
OLED_DrawChar('B', 3);
|
||||
else
|
||||
OLED_DrawChar(' ', 3);
|
||||
|
||||
OLED_BlankSlot(6 * 12 + 16, 24 - 16);//blank out the tail after the arrows
|
||||
OLED_BlankSlot(4 * 12 + 16, 24 - 16);//blank out the tail after the temp
|
||||
if (getIronTimer() == 0
|
||||
@@ -394,6 +442,7 @@ void DrawUI() {
|
||||
case SETTINGS:
|
||||
//We are prompting the user the setting name
|
||||
if (millis() - getLastButtonPress() > 3000) {
|
||||
StatusFlags = 4;
|
||||
//If the user has idled for > 3 seconds, show the long name for the selected setting instead
|
||||
//draw from settingsLongTestScrollPos through to end of screen
|
||||
uint8_t lengthLeft = SettingsLongNamesLengths[settingsPage]
|
||||
@@ -506,6 +555,20 @@ void DrawUI() {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BOOSTMODE:
|
||||
switch (systemSettings.boostModeEnabled) {
|
||||
case 1:
|
||||
OLED_DrawString("BOOST T", 8);
|
||||
break;
|
||||
case 0:
|
||||
OLED_DrawString("BOOST F", 8);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case BOOSTTEMP:
|
||||
OLED_DrawString("BTMP ", 5);
|
||||
OLED_DrawThreeNumber(systemSettings.BoostTemp / 10, 5);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -543,7 +606,7 @@ void DrawUI() {
|
||||
case DCINDISP: {
|
||||
uint16_t voltage = readDCVoltage(systemSettings.voltageDiv); //get X10 voltage
|
||||
|
||||
if (CalStatus == 0 || ((millis() % 1000) > 500)) {
|
||||
if (StatusFlags == 0 || ((millis() % 1000) > 500)) {
|
||||
OLED_DrawString("IN", 2);
|
||||
OLED_DrawChar((voltage / 100) % 10, 2);
|
||||
voltage -= (voltage / 100) * 100;
|
||||
@@ -560,11 +623,11 @@ void DrawUI() {
|
||||
break;
|
||||
case TEMPCAL: {
|
||||
|
||||
if (CalStatus == 0) {
|
||||
if (StatusFlags == 0) {
|
||||
OLED_DrawString("CAL TEMP", 8);
|
||||
} else if (CalStatus == 1) {
|
||||
} else if (StatusFlags == 1) {
|
||||
OLED_DrawString("CAL OK ", 8);
|
||||
} else if (CalStatus == 2) {
|
||||
} else if (StatusFlags == 2) {
|
||||
OLED_DrawString("CAL FAIL", 8);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,8 +53,9 @@ void resetSettings() {
|
||||
systemSettings.tempCalibration=239; //Default to their calibration value
|
||||
systemSettings.voltageDiv=144; //Default divider from schematic
|
||||
systemSettings.ShutdownTime=30; //How many minutes until the unit turns itself off
|
||||
systemSettings.displayUpdateSpeed=0; //How fast the LCD updates
|
||||
systemSettings.displayUpdateSpeed=1; //How fast the LCD updates
|
||||
systemSettings.temperatureRounding=0; //How the temperature is rounded off
|
||||
|
||||
systemSettings.boostModeEnabled=0; //Default to safe, with no boost mode
|
||||
systemSettings.BoostTemp=4000; //default to 400C
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<targetDefinitions xmlns="http://openstm32.org/stm32TargetDefinitions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openstm32.org/stm32TargetDefinitions stm32TargetDefinitions.xsd">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE targetDefinitions [
|
||||
<!ELEMENT targetDefinitions (board)>
|
||||
<!ELEMENT board (name, dbgIF+, dbgDEV, mcuId)>
|
||||
<!ELEMENT name (#PCDATA)>
|
||||
<!ELEMENT dbgIF (#PCDATA)>
|
||||
<!ELEMENT dbgDEV (#PCDATA)>
|
||||
<!ELEMENT mcuId (#PCDATA)>
|
||||
<!ATTLIST board id CDATA #REQUIRED>
|
||||
]>
|
||||
|
||||
<targetDefinitions>
|
||||
<board id="ts100">
|
||||
<name>ts100</name>
|
||||
<mcuId>stm32f103t8ux</mcuId>
|
||||
<dbgIF>SWD</dbgIF>
|
||||
<dbgDEV>ST-Link</dbgDEV>
|
||||
<mcuId>stm32f103t8ux</mcuId>
|
||||
</board>
|
||||
</targetDefinitions>
|
||||
|
||||
Reference in New Issue
Block a user