Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8f49d173a | ||
|
|
e6f343c8c3 | ||
|
|
f844200b1b | ||
|
|
5802a254d0 | ||
|
|
615912836a | ||
|
|
b793b61bb6 | ||
|
|
52e3247f7e | ||
|
|
16ecf486c2 | ||
|
|
aa2fe7b31b | ||
|
|
a40ad665fe |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -37,3 +37,4 @@ workspace/.metadata/*
|
|||||||
|
|
||||||
workspace/ts100/.settings/language.settings.xml
|
workspace/ts100/.settings/language.settings.xml
|
||||||
workspace/ts100/.cproject
|
workspace/ts100/.cproject
|
||||||
|
TS100/KiCad/TS100.bak
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -1,6 +1,6 @@
|
|||||||
# TS100
|
# TS100
|
||||||
This is a complete re-write of the open source software for the ts100 soldering iron.
|
This is a complete re-write of the open source software for the ts100 soldering iron.
|
||||||
This project is feature complete for use as a soldering iron, but is still open to ideas and suggestions.
|
This project is feature complete for use as a soldering iron, *but is still open to ideas and suggestions.*
|
||||||
|
|
||||||
This project was started to remove the need for USB for changing system settings.
|
This project was started to remove the need for USB for changing system settings.
|
||||||
In the latest official firmware they have also added a settings menu system, so it is still worth comparing the two firmwares to select your preferred option.
|
In the latest official firmware they have also added a settings menu system, so it is still worth comparing the two firmwares to select your preferred option.
|
||||||
@@ -55,8 +55,7 @@ If you leave the unit alone (ie don't press any buttons) on a setting, after 3 s
|
|||||||
* STMP -> The temperature the unit drops to in sleep mode
|
* STMP -> The temperature the unit drops to in sleep mode
|
||||||
* SLTME -> Sleep time, how long it takes before the unit goes to sleep
|
* SLTME -> Sleep time, how long it takes before the unit goes to sleep
|
||||||
* SHTME -> Shutdown Time, how long the unit will wait after movement before shutting down completely
|
* SHTME -> Shutdown Time, how long the unit will wait after movement before shutting down completely
|
||||||
* MOTION -> Wether motion detection is enabled or not
|
* MSENSE -> Motion Sensitivity,0-9,0 means motion sensing is turned off, 9 is most sensitive, 1 is least sensitive (ie takes more movement to trigger)
|
||||||
* SENSE -> Motion Sensitivity, H is more sensitive. L is lowest sensitivity (ie takes more movement to trigger)
|
|
||||||
* TMPUNIT -> Temperature unit, C or F
|
* TMPUNIT -> Temperature unit, C or F
|
||||||
* TMPRND -> Temperature Rounding, {1,5,10}
|
* TMPRND -> Temperature Rounding, {1,5,10}
|
||||||
* TMPSPD -> How fast the temperature should update in the soldering status screen.
|
* TMPSPD -> How fast the temperature should update in the soldering status screen.
|
||||||
@@ -75,8 +74,13 @@ This allows you to change the front key (one near the tip) to become a boost but
|
|||||||
|
|
||||||
The boost temperature is set in the settings menu.
|
The boost temperature is set in the settings menu.
|
||||||
# Version Changes:
|
# Version Changes:
|
||||||
|
V1.12
|
||||||
|
- Increases sensitivity options to be 1-9 with 0 off state
|
||||||
|
- Fixes issue where going from COOL -> soldering can leave screen off.
|
||||||
|
|
||||||
V1.11
|
V1.11
|
||||||
- Boost mode
|
- Boost mode
|
||||||
|
- Change sensitivity options to be 1-8
|
||||||
|
|
||||||
V1.10
|
V1.10
|
||||||
- Adds help text to settings
|
- Adds help text to settings
|
||||||
@@ -111,3 +115,5 @@ V1.03
|
|||||||
V1.02
|
V1.02
|
||||||
- Adds hold both buttons on IDLE to access the therometer mode.
|
- Adds hold both buttons on IDLE to access the therometer mode.
|
||||||
- Changes the exit soldering mode to be holding both buttons (Like original firmware).
|
- Changes the exit soldering mode to be holding both buttons (Like original firmware).
|
||||||
|
|
||||||
|
If you _really_ loved this firmware and want to continue my caffine addiction, you can do so here (or email me) : https://paypal.me/RalimTek
|
||||||
|
|||||||
392
TS100/KiCad/MCU_SubBoard.sch
Normal file
392
TS100/KiCad/MCU_SubBoard.sch
Normal file
@@ -0,0 +1,392 @@
|
|||||||
|
EESchema Schematic File Version 2
|
||||||
|
LIBS:power
|
||||||
|
LIBS:device
|
||||||
|
LIBS:transistors
|
||||||
|
LIBS:conn
|
||||||
|
LIBS:linear
|
||||||
|
LIBS:regul
|
||||||
|
LIBS:74xx
|
||||||
|
LIBS:cmos4000
|
||||||
|
LIBS:adc-dac
|
||||||
|
LIBS:memory
|
||||||
|
LIBS:xilinx
|
||||||
|
LIBS:microcontrollers
|
||||||
|
LIBS:dsp
|
||||||
|
LIBS:microchip
|
||||||
|
LIBS:analog_switches
|
||||||
|
LIBS:motorola
|
||||||
|
LIBS:texas
|
||||||
|
LIBS:intel
|
||||||
|
LIBS:audio
|
||||||
|
LIBS:interface
|
||||||
|
LIBS:digital-audio
|
||||||
|
LIBS:philips
|
||||||
|
LIBS:display
|
||||||
|
LIBS:cypress
|
||||||
|
LIBS:siliconi
|
||||||
|
LIBS:opto
|
||||||
|
LIBS:atmel
|
||||||
|
LIBS:contrib
|
||||||
|
LIBS:valves
|
||||||
|
LIBS:stm32
|
||||||
|
LIBS:mma8652fc
|
||||||
|
LIBS:switches
|
||||||
|
LIBS:TS100-cache
|
||||||
|
EELAYER 25 0
|
||||||
|
EELAYER END
|
||||||
|
$Descr A4 11693 8268
|
||||||
|
encoding utf-8
|
||||||
|
Sheet 2 2
|
||||||
|
Title "TS100 Soldering Iron Schematic"
|
||||||
|
Date ""
|
||||||
|
Rev "2.46"
|
||||||
|
Comp ""
|
||||||
|
Comment1 ""
|
||||||
|
Comment2 ""
|
||||||
|
Comment3 "Converted by Ben V. Brown"
|
||||||
|
Comment4 "KiCad port of published schematic"
|
||||||
|
$EndDescr
|
||||||
|
$Comp
|
||||||
|
L STM32F103T8Ux U4
|
||||||
|
U 1 1 591D59BB
|
||||||
|
P 5600 3550
|
||||||
|
F 0 "U4" H 3200 4675 50 0000 L BNN
|
||||||
|
F 1 "STM32F103T8Ux" H 8000 4675 50 0000 R BNN
|
||||||
|
F 2 "Housings_DFN_QFN:QFN-36-1EP_6x6mm_Pitch0.5mm" H 8000 4625 50 0001 R TNN
|
||||||
|
F 3 "" H 5600 3550 50 0001 C CNN
|
||||||
|
F 4 "-" H 5600 3550 60 0001 C CNN "bom_partno"
|
||||||
|
1 5600 3550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L GND #PWR206
|
||||||
|
U 1 1 591D5AD3
|
||||||
|
P 5600 4850
|
||||||
|
F 0 "#PWR206" H 5600 4600 50 0001 C CNN
|
||||||
|
F 1 "GND" H 5600 4700 50 0000 C CNN
|
||||||
|
F 2 "" H 5600 4850 50 0001 C CNN
|
||||||
|
F 3 "" H 5600 4850 50 0001 C CNN
|
||||||
|
1 5600 4850
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C30
|
||||||
|
U 1 1 591D5BA8
|
||||||
|
P 1450 4700
|
||||||
|
F 0 "C30" H 1475 4800 50 0000 L CNN
|
||||||
|
F 1 "103" H 1475 4600 50 0000 L CNN
|
||||||
|
F 2 "" H 1488 4550 50 0001 C CNN
|
||||||
|
F 3 "" H 1450 4700 50 0001 C CNN
|
||||||
|
1 1450 4700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L R R23
|
||||||
|
U 1 1 591D5BDF
|
||||||
|
P 1700 4700
|
||||||
|
F 0 "R23" V 1780 4700 50 0000 C CNN
|
||||||
|
F 1 "15K" V 1700 4700 50 0000 C CNN
|
||||||
|
F 2 "" V 1630 4700 50 0001 C CNN
|
||||||
|
F 3 "" H 1700 4700 50 0001 C CNN
|
||||||
|
1 1700 4700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
5800 4850 5800 4650
|
||||||
|
Wire Wire Line
|
||||||
|
5600 4850 5600 4650
|
||||||
|
Wire Wire Line
|
||||||
|
5700 4650 5700 4850
|
||||||
|
Connection ~ 5700 4850
|
||||||
|
Wire Wire Line
|
||||||
|
5500 4850 5500 4650
|
||||||
|
Connection ~ 5600 4850
|
||||||
|
Wire Wire Line
|
||||||
|
5400 4850 5400 4650
|
||||||
|
Connection ~ 5500 4850
|
||||||
|
Wire Wire Line
|
||||||
|
3100 2950 1350 2950
|
||||||
|
Wire Wire Line
|
||||||
|
1350 2950 1350 4850
|
||||||
|
Connection ~ 5400 4850
|
||||||
|
Wire Wire Line
|
||||||
|
1450 4550 1450 3550
|
||||||
|
Wire Wire Line
|
||||||
|
1450 3550 3100 3550
|
||||||
|
Wire Wire Line
|
||||||
|
1350 4850 9000 4850
|
||||||
|
Connection ~ 1450 4850
|
||||||
|
Text HLabel 8100 4050 2 60 Input ~ 0
|
||||||
|
SWDIO
|
||||||
|
Text HLabel 8100 4150 2 60 Input ~ 0
|
||||||
|
SWCLK
|
||||||
|
Text HLabel 8100 3850 2 60 Input ~ 0
|
||||||
|
USB_D-
|
||||||
|
Text HLabel 8100 3950 2 60 Input ~ 0
|
||||||
|
USB_D+
|
||||||
|
Wire Wire Line
|
||||||
|
1700 4550 1700 3750
|
||||||
|
Wire Wire Line
|
||||||
|
1700 3750 3100 3750
|
||||||
|
Connection ~ 1700 4850
|
||||||
|
Text HLabel 8100 3650 2 60 Input ~ 0
|
||||||
|
K1
|
||||||
|
Text HLabel 8100 3550 2 60 Input ~ 0
|
||||||
|
nCR
|
||||||
|
Text HLabel 9000 3450 2 60 Input ~ 0
|
||||||
|
TMP36
|
||||||
|
Wire Wire Line
|
||||||
|
5400 2350 5700 2350
|
||||||
|
Connection ~ 5500 2350
|
||||||
|
Connection ~ 5600 2350
|
||||||
|
$Comp
|
||||||
|
L VDD #PWR205
|
||||||
|
U 1 1 591D5F85
|
||||||
|
P 5550 2350
|
||||||
|
F 0 "#PWR205" H 5550 2200 50 0001 C CNN
|
||||||
|
F 1 "VDD" H 5550 2500 50 0000 C CNN
|
||||||
|
F 2 "" H 5550 2350 50 0001 C CNN
|
||||||
|
F 3 "" H 5550 2350 50 0001 C CNN
|
||||||
|
1 5550 2350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Connection ~ 5550 2350
|
||||||
|
Text HLabel 8100 3350 2 60 Input ~ 0
|
||||||
|
K2
|
||||||
|
$Comp
|
||||||
|
L C C29
|
||||||
|
U 1 1 591D61F5
|
||||||
|
P 9000 4700
|
||||||
|
F 0 "C29" H 9025 4800 50 0000 L CNN
|
||||||
|
F 1 "103" H 9025 4600 50 0000 L CNN
|
||||||
|
F 2 "" H 9038 4550 50 0001 C CNN
|
||||||
|
F 3 "" H 9000 4700 50 0001 C CNN
|
||||||
|
1 9000 4700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Connection ~ 5800 4850
|
||||||
|
Wire Wire Line
|
||||||
|
9000 4550 9000 3450
|
||||||
|
Wire Wire Line
|
||||||
|
9000 3450 8100 3450
|
||||||
|
Text HLabel 3100 4150 0 60 Input ~ 0
|
||||||
|
SCL
|
||||||
|
Text HLabel 3100 4250 0 60 Input ~ 0
|
||||||
|
SDA
|
||||||
|
Text HLabel 3100 3950 0 60 Input ~ 0
|
||||||
|
Po
|
||||||
|
Text HLabel 3100 3650 0 60 Input ~ 0
|
||||||
|
Vb
|
||||||
|
$Comp
|
||||||
|
L R R25
|
||||||
|
U 1 1 591D65E3
|
||||||
|
P 1950 2600
|
||||||
|
F 0 "R25" V 2030 2600 50 0000 C CNN
|
||||||
|
F 1 "15K" V 1950 2600 50 0000 C CNN
|
||||||
|
F 2 "" V 1880 2600 50 0001 C CNN
|
||||||
|
F 3 "" H 1950 2600 50 0001 C CNN
|
||||||
|
1 1950 2600
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C17
|
||||||
|
U 1 1 591D663E
|
||||||
|
P 1950 4700
|
||||||
|
F 0 "C17" H 1975 4800 50 0000 L CNN
|
||||||
|
F 1 "105" H 1975 4600 50 0000 L CNN
|
||||||
|
F 2 "" H 1988 4550 50 0001 C CNN
|
||||||
|
F 3 "" H 1950 4700 50 0001 C CNN
|
||||||
|
1 1950 4700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
1950 4550 1950 2750
|
||||||
|
Wire Wire Line
|
||||||
|
1950 2750 3100 2750
|
||||||
|
$Comp
|
||||||
|
L VDD #PWR201
|
||||||
|
U 1 1 591D66BF
|
||||||
|
P 1950 2450
|
||||||
|
F 0 "#PWR201" H 1950 2300 50 0001 C CNN
|
||||||
|
F 1 "VDD" H 1950 2600 50 0000 C CNN
|
||||||
|
F 2 "" H 1950 2450 50 0001 C CNN
|
||||||
|
F 3 "" H 1950 2450 50 0001 C CNN
|
||||||
|
1 1950 2450
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L MMA8652FC U3
|
||||||
|
U 1 1 591D6A94
|
||||||
|
P 3750 6350
|
||||||
|
F 0 "U3" H 3400 5950 60 0000 C CNN
|
||||||
|
F 1 "MMA8652FC" H 3950 5950 60 0000 C CNN
|
||||||
|
F 2 "" H 3550 6100 60 0001 C CNN
|
||||||
|
F 3 "" H 3550 6100 60 0000 C CNN
|
||||||
|
1 3750 6350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L GND #PWR204
|
||||||
|
U 1 1 591D6B9E
|
||||||
|
P 4650 6700
|
||||||
|
F 0 "#PWR204" H 4650 6450 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4650 6550 50 0000 C CNN
|
||||||
|
F 2 "" H 4650 6700 50 0001 C CNN
|
||||||
|
F 3 "" H 4650 6700 50 0001 C CNN
|
||||||
|
1 4650 6700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4500 6600 4650 6600
|
||||||
|
Wire Wire Line
|
||||||
|
4650 6400 4650 6700
|
||||||
|
Wire Wire Line
|
||||||
|
4500 6400 4650 6400
|
||||||
|
Connection ~ 4650 6600
|
||||||
|
Wire Wire Line
|
||||||
|
4500 6500 4650 6500
|
||||||
|
Connection ~ 4650 6500
|
||||||
|
$Comp
|
||||||
|
L VDD #PWR203
|
||||||
|
U 1 1 591D6DA1
|
||||||
|
P 4650 5900
|
||||||
|
F 0 "#PWR203" H 4650 5750 50 0001 C CNN
|
||||||
|
F 1 "VDD" H 4650 6050 50 0000 C CNN
|
||||||
|
F 2 "" H 4650 5900 50 0001 C CNN
|
||||||
|
F 3 "" H 4650 5900 50 0001 C CNN
|
||||||
|
1 4650 5900
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4650 5900 4650 6200
|
||||||
|
Wire Wire Line
|
||||||
|
4650 6100 4500 6100
|
||||||
|
Wire Wire Line
|
||||||
|
4650 6200 4500 6200
|
||||||
|
Connection ~ 4650 6100
|
||||||
|
$Comp
|
||||||
|
L C C22
|
||||||
|
U 1 1 591D70DB
|
||||||
|
P 2250 6550
|
||||||
|
F 0 "C22" H 2275 6650 50 0000 L CNN
|
||||||
|
F 1 "104" H 2275 6450 50 0000 L CNN
|
||||||
|
F 2 "" H 2288 6400 50 0001 C CNN
|
||||||
|
F 3 "" H 2250 6550 50 0001 C CNN
|
||||||
|
1 2250 6550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Text HLabel 3050 6350 0 60 Input ~ 0
|
||||||
|
SDA
|
||||||
|
Text HLabel 3050 6250 0 60 Input ~ 0
|
||||||
|
SCL
|
||||||
|
Wire Wire Line
|
||||||
|
2250 6400 2250 6100
|
||||||
|
Wire Wire Line
|
||||||
|
2250 6100 3050 6100
|
||||||
|
$Comp
|
||||||
|
L GND #PWR202
|
||||||
|
U 1 1 591D735E
|
||||||
|
P 2250 6700
|
||||||
|
F 0 "#PWR202" H 2250 6450 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2250 6550 50 0000 C CNN
|
||||||
|
F 2 "" H 2250 6700 50 0001 C CNN
|
||||||
|
F 3 "" H 2250 6700 50 0001 C CNN
|
||||||
|
1 2250 6700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C18
|
||||||
|
U 1 1 591D7528
|
||||||
|
P 8200 5800
|
||||||
|
F 0 "C18" H 8225 5900 50 0000 L CNN
|
||||||
|
F 1 "105" H 8225 5700 50 0000 L CNN
|
||||||
|
F 2 "" H 8238 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 8200 5800 50 0001 C CNN
|
||||||
|
1 8200 5800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C19
|
||||||
|
U 1 1 591D75B9
|
||||||
|
P 8500 5800
|
||||||
|
F 0 "C19" H 8525 5900 50 0000 L CNN
|
||||||
|
F 1 "105" H 8525 5700 50 0000 L CNN
|
||||||
|
F 2 "" H 8538 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 8500 5800 50 0001 C CNN
|
||||||
|
1 8500 5800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C20
|
||||||
|
U 1 1 591D75EF
|
||||||
|
P 8800 5800
|
||||||
|
F 0 "C20" H 8825 5900 50 0000 L CNN
|
||||||
|
F 1 "105" H 8825 5700 50 0000 L CNN
|
||||||
|
F 2 "" H 8838 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 8800 5800 50 0001 C CNN
|
||||||
|
1 8800 5800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C25
|
||||||
|
U 1 1 591D7626
|
||||||
|
P 9100 5800
|
||||||
|
F 0 "C25" H 9125 5900 50 0000 L CNN
|
||||||
|
F 1 "104" H 9125 5700 50 0000 L CNN
|
||||||
|
F 2 "" H 9138 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 9100 5800 50 0001 C CNN
|
||||||
|
1 9100 5800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L C C21
|
||||||
|
U 1 1 591D7668
|
||||||
|
P 9400 5800
|
||||||
|
F 0 "C21" H 9425 5900 50 0000 L CNN
|
||||||
|
F 1 "105" H 9425 5700 50 0000 L CNN
|
||||||
|
F 2 "" H 9438 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 9400 5800 50 0001 C CNN
|
||||||
|
1 9400 5800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
8200 5950 9400 5950
|
||||||
|
Connection ~ 8500 5950
|
||||||
|
Connection ~ 8800 5950
|
||||||
|
Connection ~ 9100 5950
|
||||||
|
Wire Wire Line
|
||||||
|
8200 5650 9400 5650
|
||||||
|
Connection ~ 9100 5650
|
||||||
|
Connection ~ 8800 5650
|
||||||
|
Connection ~ 8500 5650
|
||||||
|
$Comp
|
||||||
|
L GND #PWR208
|
||||||
|
U 1 1 591D78AD
|
||||||
|
P 8800 5950
|
||||||
|
F 0 "#PWR208" H 8800 5700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 8800 5800 50 0000 C CNN
|
||||||
|
F 2 "" H 8800 5950 50 0001 C CNN
|
||||||
|
F 3 "" H 8800 5950 50 0001 C CNN
|
||||||
|
1 8800 5950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L VDD #PWR207
|
||||||
|
U 1 1 591D78DF
|
||||||
|
P 8800 5650
|
||||||
|
F 0 "#PWR207" H 8800 5500 50 0001 C CNN
|
||||||
|
F 1 "VDD" H 8800 5800 50 0000 C CNN
|
||||||
|
F 2 "" H 8800 5650 50 0001 C CNN
|
||||||
|
F 3 "" H 8800 5650 50 0001 C CNN
|
||||||
|
1 8800 5650
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Text Label 3050 6600 2 60 ~ 0
|
||||||
|
ACC_INT2
|
||||||
|
Text Label 3050 6500 2 60 ~ 0
|
||||||
|
ACC_INT1
|
||||||
|
Text Label 3100 3850 2 60 ~ 0
|
||||||
|
ACC_INT2
|
||||||
|
Text Label 3100 4050 2 60 ~ 0
|
||||||
|
ACC_INT1
|
||||||
|
$EndSCHEMATC
|
||||||
63
TS100/KiCad/TS100.pro
Normal file
63
TS100/KiCad/TS100.pro
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
update=18/05/2017 9:29:06 PM
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
LastNetListRead=
|
||||||
|
UseCmpFile=1
|
||||||
|
PadDrill=0.600000000000
|
||||||
|
PadDrillOvalY=0.600000000000
|
||||||
|
PadSizeH=1.500000000000
|
||||||
|
PadSizeV=1.500000000000
|
||||||
|
PcbTextSizeV=1.500000000000
|
||||||
|
PcbTextSizeH=1.500000000000
|
||||||
|
PcbTextThickness=0.300000000000
|
||||||
|
ModuleTextSizeV=1.000000000000
|
||||||
|
ModuleTextSizeH=1.000000000000
|
||||||
|
ModuleTextSizeThickness=0.150000000000
|
||||||
|
SolderMaskClearance=0.000000000000
|
||||||
|
SolderMaskMinWidth=0.000000000000
|
||||||
|
DrawSegmentWidth=0.200000000000
|
||||||
|
BoardOutlineThickness=0.100000000000
|
||||||
|
ModuleOutlineThickness=0.150000000000
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
LibName1=power
|
||||||
|
LibName2=device
|
||||||
|
LibName3=transistors
|
||||||
|
LibName4=conn
|
||||||
|
LibName5=linear
|
||||||
|
LibName6=regul
|
||||||
|
LibName7=74xx
|
||||||
|
LibName8=cmos4000
|
||||||
|
LibName9=adc-dac
|
||||||
|
LibName10=memory
|
||||||
|
LibName11=xilinx
|
||||||
|
LibName12=microcontrollers
|
||||||
|
LibName13=dsp
|
||||||
|
LibName14=microchip
|
||||||
|
LibName15=analog_switches
|
||||||
|
LibName16=motorola
|
||||||
|
LibName17=texas
|
||||||
|
LibName18=intel
|
||||||
|
LibName19=audio
|
||||||
|
LibName20=interface
|
||||||
|
LibName21=digital-audio
|
||||||
|
LibName22=philips
|
||||||
|
LibName23=display
|
||||||
|
LibName24=cypress
|
||||||
|
LibName25=siliconi
|
||||||
|
LibName26=opto
|
||||||
|
LibName27=atmel
|
||||||
|
LibName28=contrib
|
||||||
|
LibName29=valves
|
||||||
|
LibName30=stm32
|
||||||
|
LibName31=mma8652fc
|
||||||
|
LibName32=switches
|
||||||
151
TS100/KiCad/TS100.sch
Normal file
151
TS100/KiCad/TS100.sch
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
EESchema Schematic File Version 2
|
||||||
|
LIBS:power
|
||||||
|
LIBS:device
|
||||||
|
LIBS:transistors
|
||||||
|
LIBS:conn
|
||||||
|
LIBS:linear
|
||||||
|
LIBS:regul
|
||||||
|
LIBS:74xx
|
||||||
|
LIBS:cmos4000
|
||||||
|
LIBS:adc-dac
|
||||||
|
LIBS:memory
|
||||||
|
LIBS:xilinx
|
||||||
|
LIBS:microcontrollers
|
||||||
|
LIBS:dsp
|
||||||
|
LIBS:microchip
|
||||||
|
LIBS:analog_switches
|
||||||
|
LIBS:motorola
|
||||||
|
LIBS:texas
|
||||||
|
LIBS:intel
|
||||||
|
LIBS:audio
|
||||||
|
LIBS:interface
|
||||||
|
LIBS:digital-audio
|
||||||
|
LIBS:philips
|
||||||
|
LIBS:display
|
||||||
|
LIBS:cypress
|
||||||
|
LIBS:siliconi
|
||||||
|
LIBS:opto
|
||||||
|
LIBS:atmel
|
||||||
|
LIBS:contrib
|
||||||
|
LIBS:valves
|
||||||
|
LIBS:stm32
|
||||||
|
LIBS:mma8652fc
|
||||||
|
LIBS:switches
|
||||||
|
LIBS:TS100-cache
|
||||||
|
EELAYER 25 0
|
||||||
|
EELAYER END
|
||||||
|
$Descr A4 11693 8268
|
||||||
|
encoding utf-8
|
||||||
|
Sheet 1 2
|
||||||
|
Title "TS100 Soldering Iron Schematic"
|
||||||
|
Date "2017-05-18"
|
||||||
|
Rev "2.46"
|
||||||
|
Comp ""
|
||||||
|
Comment1 ""
|
||||||
|
Comment2 ""
|
||||||
|
Comment3 "Converted by Ben V. Brown"
|
||||||
|
Comment4 "KiCad port of published schematic"
|
||||||
|
$EndDescr
|
||||||
|
$Sheet
|
||||||
|
S 1450 1000 1450 1850
|
||||||
|
U 591D5966
|
||||||
|
F0 "STM32 & Accel Sub Board" 60
|
||||||
|
F1 "MCU_SubBoard.sch" 60
|
||||||
|
F2 "SWDIO" I R 2900 1100 60
|
||||||
|
F3 "SWCLK" I R 2900 1200 60
|
||||||
|
F4 "USB_D-" I R 2900 1350 60
|
||||||
|
F5 "USB_D+" I R 2900 1450 60
|
||||||
|
F6 "K1" I R 2900 1650 60
|
||||||
|
F7 "nCR" I R 2900 2150 60
|
||||||
|
F8 "TMP36" I R 2900 2250 60
|
||||||
|
F9 "K2" I R 2900 1750 60
|
||||||
|
F10 "SCL" I R 2900 2550 60
|
||||||
|
F11 "SDA" I R 2900 2650 60
|
||||||
|
F12 "Po" I R 2900 2050 60
|
||||||
|
F13 "Vb" I R 2900 1950 60
|
||||||
|
$EndSheet
|
||||||
|
$Comp
|
||||||
|
L BARREL_JACK J101
|
||||||
|
U 1 1 591D8B75
|
||||||
|
P 1600 3600
|
||||||
|
F 0 "J101" H 1600 3795 50 0000 C CNN
|
||||||
|
F 1 "BARREL_JACK" H 1600 3445 50 0000 C CNN
|
||||||
|
F 2 "" H 1600 3600 50 0001 C CNN
|
||||||
|
F 3 "" H 1600 3600 50 0001 C CNN
|
||||||
|
1 1600 3600
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Text Label 1900 3500 0 60 ~ 0
|
||||||
|
VIN
|
||||||
|
$Comp
|
||||||
|
L GND #PWR103
|
||||||
|
U 1 1 591D8F24
|
||||||
|
P 2000 3800
|
||||||
|
F 0 "#PWR103" H 2000 3550 50 0001 C CNN
|
||||||
|
F 1 "GND" H 2000 3650 50 0000 C CNN
|
||||||
|
F 2 "" H 2000 3800 50 0001 C CNN
|
||||||
|
F 3 "" H 2000 3800 50 0001 C CNN
|
||||||
|
1 2000 3800
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
1900 3600 2000 3600
|
||||||
|
Wire Wire Line
|
||||||
|
2000 3600 2000 3800
|
||||||
|
Wire Wire Line
|
||||||
|
1900 3700 2000 3700
|
||||||
|
Connection ~ 2000 3700
|
||||||
|
$Comp
|
||||||
|
L SW_Push SW1
|
||||||
|
U 1 1 591D9BC6
|
||||||
|
P 1400 4550
|
||||||
|
F 0 "SW1" H 1450 4650 50 0000 L CNN
|
||||||
|
F 1 "SW_Push" H 1400 4490 50 0000 C CNN
|
||||||
|
F 2 "" H 1400 4750 50 0001 C CNN
|
||||||
|
F 3 "" H 1400 4750 50 0001 C CNN
|
||||||
|
F 4 "-" H 1400 4550 60 0001 C CNN "bom_partno"
|
||||||
|
1 1400 4550
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L SW_Push SW101
|
||||||
|
U 1 1 591DA371
|
||||||
|
P 1700 4550
|
||||||
|
F 0 "SW101" H 1750 4650 50 0000 L CNN
|
||||||
|
F 1 "SW_Push" H 1700 4490 50 0000 C CNN
|
||||||
|
F 2 "" H 1700 4750 50 0001 C CNN
|
||||||
|
F 3 "" H 1700 4750 50 0001 C CNN
|
||||||
|
1 1700 4550
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L GND #PWR102
|
||||||
|
U 1 1 591DA3DA
|
||||||
|
P 1700 4750
|
||||||
|
F 0 "#PWR102" H 1700 4500 50 0001 C CNN
|
||||||
|
F 1 "GND" H 1700 4600 50 0000 C CNN
|
||||||
|
F 2 "" H 1700 4750 50 0001 C CNN
|
||||||
|
F 3 "" H 1700 4750 50 0001 C CNN
|
||||||
|
1 1700 4750
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L GND #PWR101
|
||||||
|
U 1 1 591DA436
|
||||||
|
P 1400 4750
|
||||||
|
F 0 "#PWR101" H 1400 4500 50 0001 C CNN
|
||||||
|
F 1 "GND" H 1400 4600 50 0000 C CNN
|
||||||
|
F 2 "" H 1400 4750 50 0001 C CNN
|
||||||
|
F 3 "" H 1400 4750 50 0001 C CNN
|
||||||
|
1 1400 4750
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Text Label 1400 4350 0 60 ~ 0
|
||||||
|
K1
|
||||||
|
Text Label 1700 4350 0 60 ~ 0
|
||||||
|
K2
|
||||||
|
Text Label 2900 1750 0 60 ~ 0
|
||||||
|
K2
|
||||||
|
Text Label 2900 1650 0 60 ~ 0
|
||||||
|
K1
|
||||||
|
$EndSCHEMATC
|
||||||
@@ -26,9 +26,9 @@ inline void resetLastButtonPress() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
inline void resetButtons() {
|
inline void resetButtons() {
|
||||||
lastKeyPress = millis();
|
|
||||||
keyState = 0;
|
keyState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline uint32_t getLastMovement() {
|
inline uint32_t getLastMovement() {
|
||||||
return lastMovement;
|
return lastMovement;
|
||||||
}
|
}
|
||||||
@@ -39,7 +39,10 @@ inline uint16_t getButtons() {
|
|||||||
inline uint16_t getRawButtons() {
|
inline uint16_t getRawButtons() {
|
||||||
return rawKeys;
|
return rawKeys;
|
||||||
}
|
}
|
||||||
|
inline void restoreButtons()
|
||||||
|
{
|
||||||
|
keyState=getRawButtons();
|
||||||
|
}
|
||||||
|
|
||||||
/*IRQ prototypes*/
|
/*IRQ prototypes*/
|
||||||
void NMI_Handler(void);
|
void NMI_Handler(void);
|
||||||
|
|||||||
@@ -29,14 +29,13 @@ enum {
|
|||||||
TEMPCAL, //Cal tip temp offset
|
TEMPCAL, //Cal tip temp offset
|
||||||
|
|
||||||
} operatingMode;
|
} operatingMode;
|
||||||
#define SETTINGSOPTIONSCOUNT 11 /*Number of settings in the settings menu*/
|
#define SETTINGSOPTIONSCOUNT 10 /*Number of settings in the settings menu*/
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
UVCO = 0,
|
UVCO = 0,
|
||||||
SLEEP_TEMP,
|
SLEEP_TEMP,
|
||||||
SLEEP_TIME,
|
SLEEP_TIME,
|
||||||
SHUTDOWN_TIME,
|
SHUTDOWN_TIME,
|
||||||
MOTIONDETECT,
|
|
||||||
MOTIONSENSITIVITY,
|
MOTIONSENSITIVITY,
|
||||||
TEMPDISPLAY,
|
TEMPDISPLAY,
|
||||||
TEMPROUNDING,
|
TEMPROUNDING,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ void Init_Oled(uint8_t leftHanded);
|
|||||||
u8* Data_Command(u8 len, u8* ptr);
|
u8* Data_Command(u8 len, u8* ptr);
|
||||||
void Clear_Screen(void);//Clear the screen
|
void Clear_Screen(void);//Clear the screen
|
||||||
/*Functions for writing to the screen*/
|
/*Functions for writing to the screen*/
|
||||||
void OLED_DrawString(char* string, uint8_t length);
|
void OLED_DrawString(const char* string, const uint8_t length);
|
||||||
void OLED_DrawChar(char c, uint8_t x);
|
void OLED_DrawChar(char c, uint8_t x);
|
||||||
void OLED_DrawTwoNumber(uint8_t in, uint8_t x);
|
void OLED_DrawTwoNumber(uint8_t in, uint8_t x);
|
||||||
void OLED_BlankSlot(uint8_t xStart,uint8_t width);
|
void OLED_BlankSlot(uint8_t xStart,uint8_t width);
|
||||||
|
|||||||
@@ -11,11 +11,7 @@
|
|||||||
#define SETTINGS_H_
|
#define SETTINGS_H_
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "stm32f10x_flash.h"
|
#include "stm32f10x_flash.h"
|
||||||
#define SETTINGSVERSION 10 /*Change this if you change the struct below to prevent people getting out of sync*/
|
#define SETTINGSVERSION 12 /*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)
|
|
||||||
#define MOTION_LOW (0x02)
|
|
||||||
//Display Speeds
|
//Display Speeds
|
||||||
#define DISPLAYMODE_FAST (0x00)
|
#define DISPLAYMODE_FAST (0x00)
|
||||||
#define DISPLAYMODE_MEDIUM (0x01)
|
#define DISPLAYMODE_MEDIUM (0x01)
|
||||||
@@ -34,10 +30,9 @@ struct {
|
|||||||
uint8_t version; //Used to track if a reset is needed on firmware upgrade
|
uint8_t version; //Used to track if a reset is needed on firmware upgrade
|
||||||
uint8_t SleepTime; //minutes timeout to sleep
|
uint8_t SleepTime; //minutes timeout to sleep
|
||||||
uint8_t cutoutVoltage:5; //The voltage we cut out at for under voltage
|
uint8_t cutoutVoltage:5; //The voltage we cut out at for under voltage
|
||||||
uint8_t movementEnabled:1; //If movement is enabled
|
|
||||||
uint8_t displayTempInF:1; //If we need to convert the C reading to F
|
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 flipDisplay:1; //If true we want to invert the display for lefties
|
||||||
uint8_t sensitivity:5; //Sensitivity of accelerometer
|
uint8_t sensitivity:6; //Sensitivity of accelerometer (5 bits)
|
||||||
uint8_t ShutdownTime:6; //Time until unit shuts down if left alone
|
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 displayUpdateSpeed:2; //How fast the display updates / temp showing mode
|
||||||
uint8_t temperatureRounding:2; //Rounding mode for the temperature
|
uint8_t temperatureRounding:2; //Rounding mode for the temperature
|
||||||
|
|||||||
@@ -34,23 +34,13 @@ void StartUp_Accelerometer(uint8_t sensitivity) {
|
|||||||
I2C_RegisterWrite( CTRL_REG2, 0x40); // Reset all registers to POR values
|
I2C_RegisterWrite( CTRL_REG2, 0x40); // Reset all registers to POR values
|
||||||
delayMs(2); // ~1ms delay
|
delayMs(2); // ~1ms delay
|
||||||
I2C_RegisterWrite(FF_MT_CFG_REG, 0x78); // Enable motion detection for X and Y axis, latch enabled
|
I2C_RegisterWrite(FF_MT_CFG_REG, 0x78); // Enable motion detection for X and Y axis, latch enabled
|
||||||
uint8_t sens =0x0F;
|
uint8_t sens = 9 * 7 + 5;
|
||||||
switch(sensitivity)
|
sens -= 7 * sensitivity;
|
||||||
{
|
|
||||||
case 0:
|
I2C_RegisterWrite(FF_MT_THS_REG, 0x80 | sens); // Set threshold
|
||||||
sens=0x1A;
|
I2C_RegisterWrite(FF_MT_COUNT_REG, 0x02); // Set debounce to 100ms
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
sens=0x20;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
sens=0x2A;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
I2C_RegisterWrite(FF_MT_THS_REG, sens); // Set threshold
|
|
||||||
I2C_RegisterWrite(FF_MT_COUNT_REG, 0x01); // Set debounce to 100ms
|
|
||||||
|
|
||||||
I2C_RegisterWrite( CTRL_REG4, 0x04); // Enable motion interrupt
|
I2C_RegisterWrite( CTRL_REG4, 0x04); // Enable motion interrupt
|
||||||
I2C_RegisterWrite( CTRL_REG5, 0x04);// Route motion interrupts to INT1 ->PB5 ->EXTI5
|
I2C_RegisterWrite( CTRL_REG5, 0x04);// Route motion interrupts to INT1 ->PB5 ->EXTI5
|
||||||
I2C_RegisterWrite( CTRL_REG1, 0x19); // ODR=100 Hz, Active mode
|
I2C_RegisterWrite( CTRL_REG1, 0x11); // ODR=800 Hz, Active mode
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ int main(void) {
|
|||||||
ProcessUI();
|
ProcessUI();
|
||||||
DrawUI();
|
DrawUI();
|
||||||
delayMs(50); //Slow the system down a little bit
|
delayMs(50); //Slow the system down a little bit
|
||||||
|
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)==Bit_RESET)
|
||||||
|
{
|
||||||
|
lastMovement = millis();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void setup() {
|
void setup() {
|
||||||
@@ -37,7 +41,7 @@ void setup() {
|
|||||||
readIronTemp(systemSettings.tempCalibration, 0,0); //load the default calibration value
|
readIronTemp(systemSettings.tempCalibration, 0,0); //load the default calibration value
|
||||||
Init_Oled(systemSettings.flipDisplay); //Init the OLED display
|
Init_Oled(systemSettings.flipDisplay); //Init the OLED display
|
||||||
|
|
||||||
OLED_DrawString("VER 1.11", 8); //Version Number
|
OLED_DrawString("VER 1.13", 8); //Version Number
|
||||||
delayMs(500); //Pause to show version number
|
delayMs(500); //Pause to show version number
|
||||||
Start_Watchdog(1000); //start the system watch dog as 1 second timeout
|
Start_Watchdog(1000); //start the system watch dog as 1 second timeout
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,28 +7,29 @@
|
|||||||
#include "Modes.h"
|
#include "Modes.h"
|
||||||
const char *SettingsLongNames[] = { " Undervoltage Cutout <V>",
|
const char *SettingsLongNames[] = { " Undervoltage Cutout <V>",
|
||||||
" Sleep Temperature <C>", " Sleep Timeout <Minutes>",
|
" Sleep Temperature <C>", " Sleep Timeout <Minutes>",
|
||||||
" Shutdown Timeout <Minutes>", " Motion Detection",
|
" Shutdown Timeout <Minutes>",
|
||||||
" Motion Sensitivity", " Temperature Unit",
|
" Motion Sensitivity <0.Off 1.least sensitive 9.most sensitive>",
|
||||||
" Temperature Rounding Amount",
|
" Temperature Unit", " Temperature Rounding Amount",
|
||||||
" Temperature Display Update Rate",
|
" Temperature Display Update Rate",
|
||||||
" Flip Display for Left Hand",
|
" Flip Display for Left Hand",
|
||||||
" Enable front key boost 450C mode when soldering",
|
" Enable front key boost 450C mode when soldering",
|
||||||
" Temperature when in boost mode" };
|
" Temperature when in boost mode" };
|
||||||
const uint8_t SettingsLongNamesLengths[] = { 29, 27, 29, 32, 22, 24, 22, 33, 37,
|
const uint8_t SettingsLongNamesLengths[] = { 29, 27, 29, 32, 67, 22, 33, 37, 32,
|
||||||
32, 53, 36 };
|
53, 36 };
|
||||||
uint8_t StatusFlags = 0;
|
uint8_t StatusFlags = 0;
|
||||||
uint32_t temporaryTempStorage = 0;
|
uint32_t temporaryTempStorage = 0;
|
||||||
//This does the required processing and state changes
|
//This does the required processing and state changes
|
||||||
void ProcessUI() {
|
void ProcessUI() {
|
||||||
uint8_t Buttons = getButtons(); //read the buttons status
|
uint8_t Buttons = getButtons(); //read the buttons status
|
||||||
static uint32_t lastModeChange = 0;
|
static uint32_t lastModeChange = 0;
|
||||||
if (millis() - getLastButtonPress() < 30)
|
if (getRawButtons() && ((millis() - getLastButtonPress()) > 1000)) {
|
||||||
|
lastKeyPress = millis() - 600;
|
||||||
|
Buttons = getRawButtons();
|
||||||
|
} else if (millis() - getLastButtonPress() < 80) {
|
||||||
Buttons = 0;
|
Buttons = 0;
|
||||||
else if (Buttons != 0) {
|
} else if (Buttons != 0) {
|
||||||
resetLastButtonPress();
|
|
||||||
resetButtons();
|
resetButtons();
|
||||||
}
|
}
|
||||||
//rough prevention for de-bouncing and allocates settling time
|
|
||||||
|
|
||||||
switch (operatingMode) {
|
switch (operatingMode) {
|
||||||
case STARTUP:
|
case STARTUP:
|
||||||
@@ -37,9 +38,11 @@ void ProcessUI() {
|
|||||||
} else if (Buttons == BUT_A) {
|
} else if (Buttons == BUT_A) {
|
||||||
//A key pressed so we are moving to soldering mode
|
//A key pressed so we are moving to soldering mode
|
||||||
operatingMode = SOLDERING;
|
operatingMode = SOLDERING;
|
||||||
|
Oled_DisplayOn();
|
||||||
} else if (Buttons == BUT_B) {
|
} else if (Buttons == BUT_B) {
|
||||||
//B Button was pressed so we are moving to the Settings menu
|
//B Button was pressed so we are moving to the Settings menu
|
||||||
operatingMode = SETTINGS;
|
operatingMode = SETTINGS;
|
||||||
|
Oled_DisplayOn();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SOLDERING:
|
case SOLDERING:
|
||||||
@@ -82,7 +85,7 @@ void ProcessUI() {
|
|||||||
StatusFlags = 0;
|
StatusFlags = 0;
|
||||||
}
|
}
|
||||||
//We need to check the timer for movement in case we need to goto idle
|
//We need to check the timer for movement in case we need to goto idle
|
||||||
if (systemSettings.movementEnabled)
|
if (systemSettings.sensitivity)
|
||||||
if (millis() - getLastMovement()
|
if (millis() - getLastMovement()
|
||||||
> (systemSettings.SleepTime * 60000)) {
|
> (systemSettings.SleepTime * 60000)) {
|
||||||
if (millis() - getLastButtonPress()
|
if (millis() - getLastButtonPress()
|
||||||
@@ -129,7 +132,7 @@ void ProcessUI() {
|
|||||||
//The user pressed the button to breakout of the settings help prompt
|
//The user pressed the button to breakout of the settings help prompt
|
||||||
StatusFlags = 0;
|
StatusFlags = 0;
|
||||||
} else {
|
} else {
|
||||||
if (Buttons & BUT_A) {
|
if (Buttons & BUT_B) {
|
||||||
//A key iterates through the menu
|
//A key iterates through the menu
|
||||||
if (settingsPage == SETTINGSOPTIONSCOUNT) {
|
if (settingsPage == SETTINGSOPTIONSCOUNT) {
|
||||||
//Roll off the end
|
//Roll off the end
|
||||||
@@ -139,7 +142,7 @@ void ProcessUI() {
|
|||||||
} else {
|
} else {
|
||||||
++settingsPage; //move to the next option
|
++settingsPage; //move to the next option
|
||||||
}
|
}
|
||||||
} else if (Buttons & BUT_B) {
|
} else if (Buttons & BUT_A) {
|
||||||
//B changes the value selected
|
//B changes the value selected
|
||||||
switch (settingsPage) {
|
switch (settingsPage) {
|
||||||
case UVCO:
|
case UVCO:
|
||||||
@@ -164,10 +167,6 @@ void ProcessUI() {
|
|||||||
if (systemSettings.ShutdownTime > 60)
|
if (systemSettings.ShutdownTime > 60)
|
||||||
systemSettings.ShutdownTime = 0; //wrap to off
|
systemSettings.ShutdownTime = 0; //wrap to off
|
||||||
break;
|
break;
|
||||||
case MOTIONDETECT:
|
|
||||||
systemSettings.movementEnabled =
|
|
||||||
!systemSettings.movementEnabled;
|
|
||||||
break;
|
|
||||||
case TEMPDISPLAY:
|
case TEMPDISPLAY:
|
||||||
systemSettings.displayTempInF =
|
systemSettings.displayTempInF =
|
||||||
!systemSettings.displayTempInF;
|
!systemSettings.displayTempInF;
|
||||||
@@ -177,7 +176,8 @@ void ProcessUI() {
|
|||||||
break;
|
break;
|
||||||
case MOTIONSENSITIVITY:
|
case MOTIONSENSITIVITY:
|
||||||
systemSettings.sensitivity++;
|
systemSettings.sensitivity++;
|
||||||
systemSettings.sensitivity = systemSettings.sensitivity % 3;
|
systemSettings.sensitivity = systemSettings.sensitivity
|
||||||
|
% 10;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case TEMPROUNDING:
|
case TEMPROUNDING:
|
||||||
@@ -217,13 +217,14 @@ void ProcessUI() {
|
|||||||
operatingMode = SOLDERING;
|
operatingMode = SOLDERING;
|
||||||
Oled_DisplayOn();
|
Oled_DisplayOn();
|
||||||
return;
|
return;
|
||||||
} else if (systemSettings.movementEnabled)
|
} else if (systemSettings.sensitivity) {
|
||||||
if (millis() - getLastMovement() < 1000) {//moved in the last second
|
if (millis() - getLastMovement() < 1000) {//moved in the last second
|
||||||
operatingMode = SOLDERING; //Goto active mode again
|
operatingMode = SOLDERING; //Goto active mode again
|
||||||
Oled_DisplayOn();
|
Oled_DisplayOn();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (systemSettings.movementEnabled) {
|
}
|
||||||
|
if (systemSettings.sensitivity) {
|
||||||
//Check if we should shutdown
|
//Check if we should shutdown
|
||||||
if ((millis() - getLastMovement()
|
if ((millis() - getLastMovement()
|
||||||
> (systemSettings.ShutdownTime * 60000))
|
> (systemSettings.ShutdownTime * 60000))
|
||||||
@@ -240,13 +241,22 @@ void ProcessUI() {
|
|||||||
case COOLING: {
|
case COOLING: {
|
||||||
setIronTimer(0); //turn off heating
|
setIronTimer(0); //turn off heating
|
||||||
//This mode warns the user the iron is still cooling down
|
//This mode warns the user the iron is still cooling down
|
||||||
uint16_t temp = readIronTemp(0, 1, 0xFFFF); //take a new reading as the heater code is not taking new readings
|
if (Buttons & (BUT_A | BUT_B)) { //we check if the user has pushed a button to exit
|
||||||
if (temp < 400) { //if the temp is < 40C then we can go back to IDLE
|
|
||||||
operatingMode = STARTUP;
|
|
||||||
} else if (Buttons & (BUT_A | BUT_B)) { //we check if the user has pushed a button to ack
|
|
||||||
//Either button was pushed
|
//Either button was pushed
|
||||||
operatingMode = STARTUP;
|
operatingMode = STARTUP;
|
||||||
}
|
}
|
||||||
|
if (systemSettings.sensitivity) {
|
||||||
|
if (millis() - getLastMovement()
|
||||||
|
> (systemSettings.ShutdownTime * 60000)) {
|
||||||
|
if ((millis() - getLastButtonPress()
|
||||||
|
> systemSettings.ShutdownTime * 60000)) {
|
||||||
|
Oled_DisplayOff();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Oled_DisplayOn();
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
Oled_DisplayOn();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UVLOWARN:
|
case UVLOWARN:
|
||||||
@@ -482,19 +492,12 @@ void DrawUI() {
|
|||||||
OLED_DrawString("SHTME ", 6);
|
OLED_DrawString("SHTME ", 6);
|
||||||
OLED_DrawTwoNumber(systemSettings.ShutdownTime, 6);
|
OLED_DrawTwoNumber(systemSettings.ShutdownTime, 6);
|
||||||
break;
|
break;
|
||||||
case MOTIONDETECT:/*Toggle the mode*/
|
|
||||||
if (systemSettings.movementEnabled)
|
|
||||||
OLED_DrawString("MOTION T", 8);
|
|
||||||
else
|
|
||||||
OLED_DrawString("MOTION F", 8);
|
|
||||||
break;
|
|
||||||
case TEMPDISPLAY:/*Are we showing in C or F ?*/
|
case TEMPDISPLAY:/*Are we showing in C or F ?*/
|
||||||
if (systemSettings.displayTempInF)
|
if (systemSettings.displayTempInF)
|
||||||
OLED_DrawString("TMPUNT F", 8);
|
OLED_DrawString("TMPUNT F", 8);
|
||||||
else
|
else
|
||||||
OLED_DrawString("TMPUNT C", 8);
|
OLED_DrawString("TMPUNT C", 8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LEFTY:
|
case LEFTY:
|
||||||
|
|
||||||
if (systemSettings.flipDisplay)
|
if (systemSettings.flipDisplay)
|
||||||
@@ -503,21 +506,8 @@ void DrawUI() {
|
|||||||
OLED_DrawString("FLPDSP F", 8);
|
OLED_DrawString("FLPDSP F", 8);
|
||||||
break;
|
break;
|
||||||
case MOTIONSENSITIVITY:
|
case MOTIONSENSITIVITY:
|
||||||
switch (systemSettings.sensitivity) {
|
OLED_DrawString("MSENSE ", 7);
|
||||||
case MOTION_HIGH:
|
OLED_DrawChar('0' + systemSettings.sensitivity, 7);
|
||||||
OLED_DrawString("SENSE H ", 8);
|
|
||||||
break;
|
|
||||||
case MOTION_MED:
|
|
||||||
OLED_DrawString("SENSE M ", 8);
|
|
||||||
break;
|
|
||||||
case MOTION_LOW:
|
|
||||||
OLED_DrawString("SENSE L ", 8);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
OLED_DrawString("SENSE ", 8);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case TEMPROUNDING:
|
case TEMPROUNDING:
|
||||||
//We are prompting the user about their display mode preferences
|
//We are prompting the user about their display mode preferences
|
||||||
@@ -593,6 +583,7 @@ void DrawUI() {
|
|||||||
case COOLING:
|
case COOLING:
|
||||||
//We are warning the user the tip is cooling
|
//We are warning the user the tip is cooling
|
||||||
OLED_DrawString("COOL ", 5);
|
OLED_DrawString("COOL ", 5);
|
||||||
|
temp = readIronTemp(0, 1, 0xFFFF); //force temp re-reading
|
||||||
drawTemp(temp, 5, systemSettings.temperatureRounding);
|
drawTemp(temp, 5, systemSettings.temperatureRounding);
|
||||||
break;
|
break;
|
||||||
case UVLOWARN:
|
case UVLOWARN:
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ void Clear_Screen(void) {
|
|||||||
/*
|
/*
|
||||||
* Draws a string onto the screen starting at the left
|
* Draws a string onto the screen starting at the left
|
||||||
*/
|
*/
|
||||||
void OLED_DrawString(char* string, uint8_t length) {
|
void OLED_DrawString(const char* string,const uint8_t length) {
|
||||||
for (uint8_t i = 0; i < length; i++) {
|
for (uint8_t i = 0; i < length; i++) {
|
||||||
OLED_DrawChar(string[i], i);
|
OLED_DrawChar(string[i], i);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,12 +44,11 @@ void resetSettings() {
|
|||||||
systemSettings.SleepTemp = 1500; //Temperature the iron sleeps at - default 150.0 C
|
systemSettings.SleepTemp = 1500; //Temperature the iron sleeps at - default 150.0 C
|
||||||
systemSettings.SleepTime = 1; //How many minutes we wait until going to sleep - default 1 min
|
systemSettings.SleepTime = 1; //How many minutes we wait until going to sleep - default 1 min
|
||||||
systemSettings.SolderingTemp = 3200; //Default soldering temp is 320.0 C
|
systemSettings.SolderingTemp = 3200; //Default soldering temp is 320.0 C
|
||||||
systemSettings.movementEnabled = 1; //we use movement detection by default
|
|
||||||
systemSettings.cutoutVoltage = 10; //10V is the minium cutout voltage as the unit V measurement is unstable below 9.5V
|
systemSettings.cutoutVoltage = 10; //10V is the minium cutout voltage as the unit V measurement is unstable below 9.5V
|
||||||
systemSettings.version = SETTINGSVERSION; //Store the version number to allow for easier upgrades
|
systemSettings.version = SETTINGSVERSION; //Store the version number to allow for easier upgrades
|
||||||
systemSettings.displayTempInF =0; //default to C
|
systemSettings.displayTempInF =0; //default to C
|
||||||
systemSettings.flipDisplay=0; //Default to right handed mode
|
systemSettings.flipDisplay=0; //Default to right handed mode
|
||||||
systemSettings.sensitivity=0x00; //Default high sensitivity
|
systemSettings.sensitivity=6; //Default high sensitivity
|
||||||
systemSettings.tempCalibration=239; //Default to their calibration value
|
systemSettings.tempCalibration=239; //Default to their calibration value
|
||||||
systemSettings.voltageDiv=144; //Default divider from schematic
|
systemSettings.voltageDiv=144; //Default divider from schematic
|
||||||
systemSettings.ShutdownTime=30; //How many minutes until the unit turns itself off
|
systemSettings.ShutdownTime=30; //How many minutes until the unit turns itself off
|
||||||
|
|||||||
Reference in New Issue
Block a user