1
0
forked from me/IronOS

Compare commits

..

93 Commits
v2.09 ... v2.10

Author SHA1 Message Date
Ben V. Brown
cf18863958 Update version for release 2020-05-30 13:57:04 +10:00
Ben V. Brown
6af4494442 Merge pull request #637 from Ralim/update-compiler
Update to newest compiler from ARM
2020-05-30 13:55:41 +10:00
Ben V. Brown
b4384be3ac Update docker-compose.yml 2020-05-30 13:41:24 +10:00
Ben V. Brown
24f6da9b50 Update to newest compiler from ARM 2020-05-30 13:28:21 +10:00
Ben V. Brown
37d03bdb17 Merge pull request #636 from discip/master
Update translation_en.json
2020-05-30 13:05:24 +10:00
Ben V. Brown
1207f65ba9 Merge pull request #634 from Ralim/feat/BSP
Feature: Move board dependant code to be separate
2020-05-30 13:04:45 +10:00
Ben V. Brown
7cff1cdf3b Update Power.cpp 2020-05-30 12:43:49 +10:00
Ben V. Brown
05b43dfa1c Clean up power calls 2020-05-30 12:43:32 +10:00
Ben V. Brown
5bb85a4a32 Pull out more QC hooks 2020-05-30 12:05:11 +10:00
Ben V. Brown
2bcebd473e Cleanup QC Names 2020-05-30 11:46:13 +10:00
Ben V. Brown
e422fe28ae Enable -werror & wrap malloc
Preventing accidental use of dynamic memory
2020-05-30 11:39:58 +10:00
Ben V. Brown
341d7b1d5a Pin ubuntu version 2020-05-30 11:39:28 +10:00
discip
c6c1c07bfb Merge branch 'master' into master 2020-05-30 00:15:19 +02:00
discip
ecd59462d0 Update translation_en.json 2020-05-30 00:13:48 +02:00
Ben V. Brown
a7a97e604f Update Makefile 2020-05-30 00:29:44 +10:00
Ben V. Brown
5ca0d6e670 Update Translation.h 2020-05-30 00:29:18 +10:00
Ben V. Brown
1e420c8b01 Move Vendor drivers 2020-05-30 00:25:23 +10:00
Ben V. Brown
22aba0855d Cleanup I2C and drivers 2020-05-30 00:23:07 +10:00
Ben V. Brown
ed8e5232b6 Finishing up file cleanup 2020-05-30 00:10:23 +10:00
Ben V. Brown
42ebd37bc8 Pull out settings flash calls 2020-05-30 00:05:28 +10:00
Ben V. Brown
22ac8d797b Update main.cpp 2020-05-29 23:17:23 +10:00
Ben V. Brown
7c45b67967 Update includes 2020-05-29 23:13:30 +10:00
Ben V. Brown
2d8d1ad8da Move I2C 2020-05-29 23:12:31 +10:00
Ben V. Brown
a32e245789 Split I2C + startup logo 2020-05-29 23:07:59 +10:00
Ben V. Brown
d2dacf990c Move I2C to drivers 2020-05-29 22:26:21 +10:00
Ben V. Brown
a01e79aa64 Refactor QC logic for TS80 2020-05-29 22:25:43 +10:00
Ben V. Brown
cd5d9df5ed Update BSP.h 2020-05-29 22:00:24 +10:00
Ben V. Brown
7dbbdf348c Update Makefile 2020-05-29 21:55:53 +10:00
Ben V. Brown
a13f501dfd More refactoring for the movement thread 2020-05-29 21:54:09 +10:00
Ben V. Brown
6bb56c28ba Drivers + Threads 2020-05-29 21:49:13 +10:00
Ben V. Brown
8d59b072ef More shuffle 2020-05-29 21:39:12 +10:00
Ben V. Brown
fd700aecb9 Beginnings of the shuffle 2020-05-29 21:39:06 +10:00
Ben V. Brown
ef5ba8b650 Move Accel probe into class 2020-05-29 20:46:19 +10:00
Ben V. Brown
3b0fc9c6f8 Clean up file locations 2020-05-29 20:13:18 +10:00
Ben V. Brown
45614ff397 Merge pull request #606 from Firebie/TipCoeff
Add tip coeff as setting parameter
2020-05-29 19:30:23 +10:00
firebie
7f6a862e50 Add tip coeff as setting parameter 2020-05-28 14:49:03 +03:00
Ben V. Brown
92ce6128ee Merge pull request #623 from Firebie/LoweringMinTemp
Lowering min temp to 10C
2020-05-28 21:26:20 +10:00
firebie
50dc8689cc Lowering min temp to 10C 2020-05-28 14:09:46 +03:00
Ben V. Brown
55cc5fb681 Merge pull request #633 from Zoli002/patch-1
Update translation_hu.json
2020-05-28 09:06:33 +10:00
Zoli002
ea8dac25f8 Update translation_hu.json
Hungarian translation
Power limit
Maximum power
Reverse temp key + -
Temperature change short press
Temperature change long press
Power pulse mode
2020-05-27 20:22:26 +02:00
Ben V. Brown
c5397b843f Merge pull request #632 from Ralim/feat/power-pulse-for-all
Enable Power Pulse for all models
2020-05-24 18:21:46 +10:00
Ben V. Brown
f90d33f350 Merge branch 'master' into feat/power-pulse-for-all 2020-05-23 14:02:37 +10:00
Ben V. Brown
ac7d72d255 Translation update 2020-05-23 13:59:58 +10:00
Ben V. Brown
f45fd087ab Pull default config out 2020-05-23 13:59:51 +10:00
Ben V. Brown
4814ae1393 Update main.cpp 2020-05-23 13:42:03 +10:00
Ben V. Brown
643120d9ca Merge pull request #629 from xobotyi/update_trans_ru
feat: improve Russian translation
2020-05-23 12:16:12 +10:00
Ben V. Brown
c723464987 Merge branch 'master' into update_trans_ru 2020-05-23 10:07:17 +10:00
xobotyi
a5cd898ee5 fix: bugfixes 2020-05-22 17:40:47 +03:00
xobotyi
376724636d fix: bugfixes 2020-05-22 17:30:56 +03:00
Ben V. Brown
1a671dfbdd Update gui.cpp 2020-05-22 23:56:43 +10:00
Ben V. Brown
65e804e54e Add field for power pulse 2020-05-22 23:56:40 +10:00
Ben V. Brown
76721d5f0d Roughing menu calls in 2020-05-22 23:44:22 +10:00
Ben V. Brown
3287ee9d78 Change to using setting to control power pulse 2020-05-22 23:30:20 +10:00
Ben V. Brown
4ec62f8c8f Create settings field for power pulse 2020-05-22 23:30:09 +10:00
Ben V. Brown
a2aa482bcc Merge pull request #621 from apo76/patch-1
Update translation_fr.json
2020-05-22 22:53:11 +10:00
Ben V. Brown
a82f0ef87e Merge branch 'master' into patch-1 2020-05-22 22:46:39 +10:00
xobotyi
5e02819b29 feat: improve Russian translation
Made int more accurate, fixed some translation mistakes.
2020-05-22 11:25:48 +03:00
Ben V. Brown
1adc136367 Merge pull request #624 from agatti/simplify_logo_check
Simplify logo presence check.
2020-05-11 08:00:12 +10:00
Alessandro Gatti
38dbb05bc4 Simplify logo presence check. 2020-05-10 22:41:17 +02:00
apo76
799bc3991b Update translation_fr.json
Translated some messages that were still displayed in English in the French HEX.
2020-05-02 03:14:53 +02:00
Ben V. Brown
16c5b097d3 Merge pull request #614 from PixelPirate/navigation-animations
Navigation animations
2020-04-25 21:26:04 +10:00
Patrick Horlebein
7eb50e6d8a Add documentation 2020-04-25 12:27:54 +02:00
Patrick Horlebein
dbba4f999a Use tabs instead of spaces 2020-04-25 11:46:34 +02:00
Patrick Horlebein
1c2b763d8b Merge branch 'navigation-animations' of github.com:PixelPirate/ts100 into navigation-animations 2020-04-25 11:43:36 +02:00
Patrick Horlebein
d69293342d Add secondary framebuffer, instead of allocating on stack 2020-04-25 11:43:14 +02:00
Patrick Horlebein
b8c822696b Merge branch 'master' of github.com:Ralim/ts100 into navigation-animations 2020-04-25 11:25:13 +02:00
Ben V. Brown
6c17b4ab79 Merge pull request #615 from discip/master
Update translation_en.json
2020-04-22 11:33:26 +10:00
discip
a78e1cd52a Merge branch 'master' into master 2020-04-21 18:26:25 +02:00
discip
2f8eeaa33a Update translation_en.json
unfortunately forgot something
2020-04-21 17:32:36 +02:00
Patrick Horlebein
4395a3402c Merge branch 'master' into navigation-animations 2020-04-21 10:04:09 +02:00
Ben V. Brown
c6f663282a Merge pull request #613 from discip/master
More consistent appearance of the English translation files thanks to @discip
2020-04-21 08:56:13 +10:00
discip
f3723a0326 hopefully consistent appearance (#1)
* Update translation_en.json

The meaning for the 'O parameter' in the scrolling description was missing.

* Update translation_en.json

Proposal for consistent appearance of text.
2020-04-20 23:49:14 +02:00
Patrick Horlebein
3d33a6ea57 Fix whitespaces 2020-04-17 09:46:01 +02:00
Patrick Horlebein
c851554d3e Merge master into navigation-animations 2020-04-17 09:38:16 +02:00
Ben V. Brown
7dbc01bb0d Merge pull request #608 from PixelPirate/scroll-indicator
Add a scrolling indicator thanks to @PixelPirate
2020-04-17 11:05:29 +10:00
Patrick Horlebein
c2ce1372fe Merge master into scroll-indicator 2020-04-16 13:02:59 +02:00
Patrick Horlebein
add8993da5 Use tabs instead of spaces. 2020-04-16 11:16:17 +02:00
Patrick Horlebein
330c4868c2 Fix navigation animation not playing sometimes. 2020-04-06 18:55:48 +02:00
Patrick Horlebein
f3d0bc3965 Simplified animation methods 2020-04-06 18:49:10 +02:00
Patrick Horlebein
172eea4909 Add ease in / out and cleanup animation methods 2020-04-06 17:40:01 +02:00
Patrick Horlebein
bbb724e8f0 Only play navigation animation when menus changed 2020-04-06 17:39:05 +02:00
Patrick Horlebein
ec6140317c Remove secondFrameBuffer and instead add set_framebuffer method 2020-04-06 17:38:24 +02:00
Ben V. Brown
2b4cf54a61 Merge pull request #601 from playday3008/patch-1
Update translation_uk.json
2020-04-06 19:51:23 +10:00
PlayDay
7f89b8a369 Update translation_ru.json 2020-04-06 11:26:31 +02:00
PlayDay
0b3816aee6 Update translation_uk.json 2020-04-06 11:20:12 +02:00
PlayDay
ffa4069b3c Merge branch 'master' into patch-1 2020-04-05 17:18:04 +02:00
Ben V. Brown
9932ce5732 Merge pull request #600 from federck/patch-21
Update translation_it
2020-04-05 10:58:59 +10:00
federck
278663bd0e Update translation_it
*Italian translation update 😀
2020-04-04 19:33:40 +03:00
PlayDay
0911e2943d Update translation_uk.json 2020-04-04 05:11:41 +02:00
Patrick Horlebein
81abd5eeac Add navigation animations 2020-04-03 22:40:03 +02:00
Patrick Horlebein
07d35cadd9 Draw scrolling indicator 2020-04-03 17:13:10 +02:00
Patrick Horlebein
153772cb68 Add a 2 pixel wide space in menus for scrolling indicator 2020-04-03 17:12:31 +02:00
Patrick Horlebein
74d144eef8 Add method to draw a scrolling indicator 2020-04-03 16:58:53 +02:00
148 changed files with 5119 additions and 4292 deletions

View File

@@ -1,4 +1,4 @@
FROM ubuntu:rolling FROM ubuntu:20.04
LABEL maintainer="Ben V. Brown <ralim@ralimtek.com>" LABEL maintainer="Ben V. Brown <ralim@ralimtek.com>"
WORKDIR /build WORKDIR /build
@@ -12,10 +12,10 @@ RUN apt-get update && \
bzip2 \ bzip2 \
python3 \ python3 \
wget && \ wget && \
apt-get clean && \ apt-get clean
wget -qO- https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 | tar -xj RUN wget -qO- https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2 | tar -xj
# Add compiler to the path # Add compiler to the path
ENV PATH "/build/gcc-arm-none-eabi-9-2019-q4-major/bin:$PATH" ENV PATH "/build/gcc-arm-none-eabi-9-2020-q2-update/bin:$PATH"
COPY . /build/source COPY . /build/source
COPY ./ci /build/ci COPY ./ci /build/ci

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -274,6 +274,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -277,6 +277,22 @@
"Taste Lang?" "Taste Lang?"
], ],
"desc": "Temperaturwechselschritte bei langem Tastendruck!" "desc": "Temperaturwechselschritte bei langem Tastendruck!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -5,12 +5,12 @@
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messages": { "messages": {
"SettingsCalibrationDone": "Calibration done!", "SettingsCalibrationDone": "Calibration done!",
"SettingsCalibrationWarning": "Please ensure the tip is at room temperature before continuing!", "SettingsCalibrationWarning": "Please ensure the tip is at room temperature, before continuing!",
"SettingsResetWarning": "Are you sure you want to reset settings to default values?", "SettingsResetWarning": "Are you sure you want to reset settings to default values?",
"UVLOWarningString": "DC LOW", "UVLOWarningString": "DC LOW",
"UndervoltageString": "Undervoltage", "UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ", "InputVoltageString": "Input V: ",
"WarningTipTempString": "Tip Temp: ", "WarningTipTempString": "Tip temp: ",
"BadTipString": "BAD TIP", "BadTipString": "BAD TIP",
"SleepingSimpleString": "Zzzz", "SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...", "SleepingAdvancedString": "Sleeping...",
@@ -23,7 +23,7 @@
"SolderingAdvancedPowerPrompt": "Power: ", "SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "Off", "OffString": "Off",
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your Gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!" "SettingsResetMessage": "Settings were\nreset!"
}, },
"characters": { "characters": {
@@ -42,28 +42,28 @@
"SolderingMenu": { "SolderingMenu": {
"text2": [ "text2": [
"Soldering", "Soldering",
"Settings" "settings"
], ],
"desc": "Soldering settings" "desc": "Soldering settings"
}, },
"PowerSavingMenu": { "PowerSavingMenu": {
"text2": [ "text2": [
"Sleep", "Sleep",
"Modes" "modes"
], ],
"desc": "Power saving settings" "desc": "Power saving settings"
}, },
"UIMenu": { "UIMenu": {
"text2": [ "text2": [
"User", "User",
"Interface" "interface"
], ],
"desc": "User interface settings" "desc": "User interface settings"
}, },
"AdvancedMenu": { "AdvancedMenu": {
"text2": [ "text2": [
"Advanced", "Advanced",
"Options" "options"
], ],
"desc": "Advanced options" "desc": "Advanced options"
} }
@@ -83,7 +83,7 @@
"Sleep", "Sleep",
"temp" "temp"
], ],
"desc": "Sleep Temperature" "desc": "Sleep temperature"
}, },
"SleepTimeout": { "SleepTimeout": {
"text": "STME", "text": "STME",
@@ -91,7 +91,7 @@
"Sleep", "Sleep",
"timeout" "timeout"
], ],
"desc": "Sleep Timeout <Minutes/Seconds>" "desc": "Sleep timeout <Minutes/Seconds>"
}, },
"ShutdownTimeout": { "ShutdownTimeout": {
"text": "SHTME", "text": "SHTME",
@@ -99,7 +99,7 @@
"Shutdown", "Shutdown",
"timeout" "timeout"
], ],
"desc": "Shutdown Timeout <Minutes>" "desc": "Shutdown timeout <Minutes>"
}, },
"MotionSensitivity": { "MotionSensitivity": {
"text": "MSENSE", "text": "MSENSE",
@@ -107,15 +107,15 @@
"Motion", "Motion",
"sensitivity" "sensitivity"
], ],
"desc": "Motion Sensitivity <0=Off 1=Least Sensitive 9=Most Sensitive>" "desc": "Motion sensitivity <0=Off 1=Least sensitive 9=Most sensitive>"
}, },
"TemperatureUnit": { "TemperatureUnit": {
"text": "TMPUNT", "text": "TMPUNT",
"text2": [ "text2": [
"Temperature", "Temperature",
"units" "unit"
], ],
"desc": "Temperature Unit <C=Celsius F=Fahrenheit>" "desc": "Temperature unit <C=Celsius F=Fahrenheit>"
}, },
"AdvancedIdle": { "AdvancedIdle": {
"text": "ADVIDL", "text": "ADVIDL",
@@ -123,7 +123,7 @@
"Detailed", "Detailed",
"idle screen" "idle screen"
], ],
"desc": "Display detailed information in a smaller font on the idle screen." "desc": "Display detailed information in a smaller font on the idle screen"
}, },
"DisplayRotation": { "DisplayRotation": {
"text": "DSPROT", "text": "DSPROT",
@@ -131,15 +131,15 @@
"Display", "Display",
"orientation" "orientation"
], ],
"desc": "Display Orientation <A=Automatic L=Left Handed R=Right Handed>" "desc": "Display orientation <A=Automatic L=Left-handed R=Right-handed>"
}, },
"BoostEnabled": { "BoostEnabled": {
"text": "BOOST", "text": "BOOST",
"text2": [ "text2": [
"Boost mode", "Boost",
"enabled" "mode"
], ],
"desc": "Enable front key long press \"Boost\" mode when soldering" "desc": "Enable front key long press \"boost mode\" when soldering"
}, },
"BoostTemperature": { "BoostTemperature": {
"text": "BTMP", "text": "BTMP",
@@ -147,7 +147,7 @@
"Boost", "Boost",
"temp" "temp"
], ],
"desc": "Temperature when in \"Boost\" mode" "desc": "Temperature when in \"boost mode\""
}, },
"AutoStart": { "AutoStart": {
"text": "ASTART", "text": "ASTART",
@@ -155,7 +155,7 @@
"Auto", "Auto",
"start" "start"
], ],
"desc": "Automatically starts the iron into soldering on power up <T=Soldering S=Sleep F=Off>" "desc": "Automatically starts the iron into soldering on power up <F=Off T=Soldering S=Sleep O=Sleep at room temperature>"
}, },
"CooldownBlink": { "CooldownBlink": {
"text": "CLBLNK", "text": "CLBLNK",
@@ -163,7 +163,7 @@
"Cooldown", "Cooldown",
"blink" "blink"
], ],
"desc": "Blink the temperature on the cooling screen while the tip is still hot." "desc": "Blink the temperature on the cooling screen while the tip is still hot"
}, },
"TemperatureCalibration": { "TemperatureCalibration": {
"text": "TMP CAL?", "text": "TMP CAL?",
@@ -171,7 +171,7 @@
"Calibrate", "Calibrate",
"temperature?" "temperature?"
], ],
"desc": "Calibrate tip offset." "desc": "Calibrate tip offset?"
}, },
"SettingsReset": { "SettingsReset": {
"text": "RESET?", "text": "RESET?",
@@ -179,7 +179,7 @@
"Factory", "Factory",
"Reset?" "Reset?"
], ],
"desc": "Reset all settings" "desc": "Reset all settings!"
}, },
"VoltageCalibration": { "VoltageCalibration": {
"text": "CAL VIN?", "text": "CAL VIN?",
@@ -187,7 +187,7 @@
"Calibrate", "Calibrate",
"input voltage?" "input voltage?"
], ],
"desc": "VIN Calibration. Buttons adjust, long press to exit" "desc": "VIN Calibration <long press to exit>"
}, },
"AdvancedSoldering": { "AdvancedSoldering": {
"text": "ADVSLD", "text": "ADVSLD",
@@ -201,7 +201,7 @@
"text": "DESCSP", "text": "DESCSP",
"text2": [ "text2": [
"Scrolling", "Scrolling",
"Speed" "speed"
], ],
"desc": "Speed this text scrolls past at <S=Slow F=Fast>" "desc": "Speed this text scrolls past at <S=Slow F=Fast>"
}, },
@@ -209,23 +209,23 @@
"text": "TIPMO", "text": "TIPMO",
"text2": [ "text2": [
"Tip", "Tip",
"Model" "model"
], ],
"desc": "Tip Model selection" "desc": "Tip model selection"
}, },
"SimpleCalibrationMode": { "SimpleCalibrationMode": {
"text": "SMPCAL", "text": "SMPCAL",
"text2": [ "text2": [
"Simple", "Simple",
"Calibration" "calibration"
], ],
"desc": "Simple Calibration using Hot water" "desc": "Simple calibration using hot water"
}, },
"AdvancedCalibrationMode": { "AdvancedCalibrationMode": {
"text": "ADVCAL", "text": "ADVCAL",
"text2": [ "text2": [
"Advanced", "Advanced",
"Calibration" "calibration"
], ],
"desc": "Advanced calibration using thermocouple on the tip" "desc": "Advanced calibration using thermocouple on the tip"
}, },
@@ -233,15 +233,15 @@
"text": "PWRW", "text": "PWRW",
"text2": [ "text2": [
"Power", "Power",
"Wattage" "wattage"
], ],
"desc": "Power Wattage of the power adapter used" "desc": "Power wattage of the power adapter used"
}, },
"PowerLimitEnable": { "PowerLimitEnable": {
"text": "PLIMEN", "text": "PLIMEN",
"text2": [ "text2": [
"P Limit", "Enable power",
"Enable" "limit"
], ],
"desc": "Enable power limit" "desc": "Enable power limit"
}, },
@@ -249,33 +249,49 @@
"text": "PLIM", "text": "PLIM",
"text2": [ "text2": [
"Power", "Power",
"Limit" "limit"
], ],
"desc": "Maximum power the iron can use <Watts>" "desc": "Maximum power the iron can use <Watts>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "RVTCHG",
"text2": [ "text2": [
"Key +-", "Reverse",
"reverse?" "+ - keys"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "Reverse assignment of temperature adjustment buttons"
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "TCHGST",
"text2": [ "text2": [
"Temp change", "Temp change",
"short?" "short"
], ],
"desc": "Temperature change steps on short button press!" "desc": "Temperature change steps on short button press"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "TCHGLT",
"text2": [ "text2": [
"Temp change", "Temp change",
"long?" "long"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -275,6 +275,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -13,8 +13,8 @@
"BadTipString": "PANNE HS", "BadTipString": "PANNE HS",
"SleepingSimpleString": "Zzzz", "SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "En veille...", "SleepingAdvancedString": "En veille...",
"WarningSimpleString": "HOT!", "WarningSimpleString": "CHAUD!",
"WarningAdvancedString": "ATTENTION! CHAUD", "WarningAdvancedString": "ATTENTION! CHAUD!",
"SleepingTipAdvancedString": "Panne:", "SleepingTipAdvancedString": "Panne:",
"IdleTipString": "Tip:", "IdleTipString": "Tip:",
"IdleSetString": " Set:", "IdleSetString": " Set:",
@@ -238,41 +238,57 @@
"text": "PLIMEN", "text": "PLIMEN",
"text2": [ "text2": [
"P Limit", "P Limit",
"Enable" "Activer?"
], ],
"desc": "Enable power limit" "desc": "Activer la limite de puissance"
}, },
"PowerLimit": { "PowerLimit": {
"text": "PLIM", "text": "PLIM",
"text2": [ "text2": [
"Power", "Puissance",
"Limit" "Limite"
], ],
"desc": "Maximum power the iron can use <Watts>" "desc": "Puissance maximale utilisable <Watts>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "RVTCHG",
"text2": [ "text2": [
"Key +-", "Key +-",
"reverse?" "Inverser?"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "Inversez l'assignation +/- du bouton de changement de température de la pointe."
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "TCHGST",
"text2": [ "text2": [
"Temp change", "Temp change",
"short?" "Court?"
], ],
"desc": "Temperature change steps on short button press!" "desc": "Incrément de changement de température sur appui court."
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "TCHGLT",
"text2": [ "text2": [
"Temp change", "Temp change",
"long?" "Long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Incrément de changement de température sur appui long."
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -235,44 +235,60 @@
"desc": "A tápegység által leadott teljesítmény" "desc": "A tápegység által leadott teljesítmény"
}, },
"PowerLimitEnable": { "PowerLimitEnable": {
"text": "PLIMEN", "text": "TELJH",
"text2": [ "text2": [
"P Limit", "Telj H",
"Enable" "Bekapcsolva"
], ],
"desc": "Enable power limit" "desc": "Bemeneti teljesitmény korlátozása"
}, },
"PowerLimit": { "PowerLimit": {
"text": "PLIM", "text": "TELJM",
"text2": [ "text2": [
"Power", "Telj",
"Limit" "maximum"
], ],
"desc": "Maximum power the iron can use <Watts>" "desc": "Maximális teljesitmény beállitása <Watts>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "HÖVÁLT",
"text2": [ "text2": [
"Key +-", "GOMB +-",
"reverse?" "Felcseréled?"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "A páka hömérséklet növelés csökkentési gombok felcserélése."
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "HÖRÖV",
"text2": [ "text2": [
"Temp change", "Hömérséklet",
"short?" "váltás rövid?"
], ],
"desc": "Temperature change steps on short button press!" "desc": "Hömérséklet váltás rövid gombnyomásrs bekapcsolva!"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "HÖHOS",
"text2": [ "text2": [
"Temp change", "Hömérséklet",
"long?" "váltás hosszú?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Hömérséklet váltás hosszú gombnyomásrs bekapcsolva!"
},
"PowerPulsePower":{
"text": "TELJP",
"text2": [
"Telj power",
"bank üzem W"
],
"desc": "Powerbank üzemnél nem engedi a powerbankot kikapcsolni idönkénti áram felvételt generál. "
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -21,7 +21,9 @@
"TipDisconnectedString": "PUNTA ASSENTE", "TipDisconnectedString": "PUNTA ASSENTE",
"SolderingAdvancedPowerPrompt": "Potenz:", "SolderingAdvancedPowerPrompt": "Potenz:",
"OffString": "OFF", "OffString": "OFF",
"ResetOKMessage": "Reset OK" "ResetOKMessage": "Reset OK",
"YourGainMessage": "Guad.: ",
"SettingsResetMessage": "Reset effettuato"
}, },
"characters": { "characters": {
"SettingRightChar": "D", "SettingRightChar": "D",
@@ -160,7 +162,7 @@
"Avviso", "Avviso",
"punta calda" "punta calda"
], ],
"desc": "Mostra, lampeggiante, la temperatura durante il raffreddamento se la punta è ancora calda" "desc": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
}, },
"TemperatureCalibration": { "TemperatureCalibration": {
"text": "", "text": "",
@@ -237,42 +239,58 @@
"PowerLimitEnable": { "PowerLimitEnable": {
"text": "PLIMEN", "text": "PLIMEN",
"text2": [ "text2": [
"P Limit", "Limitatore",
"Enable" "di potenza"
], ],
"desc": "Enable power limit" "desc": "Abilita un limitatore per la potenza massima erogabile al saldatore"
}, },
"PowerLimit": { "PowerLimit": {
"text": "PLIM", "text": "PLIM",
"text2": [ "text2": [
"Power", "Limite",
"Limit" "di potenza"
], ],
"desc": "Maximum power the iron can use <Watts>" "desc": "Imposta il valore di potenza massima erogabile al saldatore <watt>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "RVTCHG",
"text2": [ "text2": [
"Key +-", "Inversione",
"reverse?" "tasti"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "Inverti i tasti per impostare la temperatura della punta "
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "TCHGST",
"text2": [ "text2": [
"Temp change", "Cambio temp",
"short?" "pressione breve"
], ],
"desc": "Temperature change steps on short button press!" "desc": "Varia la temperatura della punta attraverso una breve pressione dei tasti"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "TCHGLT",
"text2": [ "text2": [
"Temp change", "Cambio temp",
"long?" "pressione lunga"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Varia la temperatura della punta attraverso una lunga pressione dei tasti"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -3,17 +3,17 @@
"languageLocalName": "Русский", "languageLocalName": "Русский",
"cyrillicGlyphs": true, "cyrillicGlyphs": true,
"messages": { "messages": {
"SettingsCalibrationDone": "Калибровка выполнена!", "SettingsCalibrationDone": "Калибровка завершена!",
"SettingsCalibrationWarning": "Убедитесь, что жало остыло до комнатной температуры, прежде чем продолжать!", "SettingsCalibrationWarning": "Прежде чем продолжить, пожалуйста, убедитесь что жало имеет комнатную температуру!",
"SettingsResetWarning": "Вы действительно хотите сбросить настройки до значений по умолчанию?", "SettingsResetWarning": "Вы уверены, что хотите сбросить настройки к значениям по-умолчанию?",
"UVLOWarningString": "НАПРЯЖ--", "UVLOWarningString": "НАПРЯЖ--",
"UndervoltageString": "Под питанием", "UndervoltageString": "Низк. напряжение",
"InputVoltageString": "Питание B: ", "InputVoltageString": "Питание В: ",
"WarningTipTempString": "Жало t°: ", "WarningTipTempString": "Темп. жала: ",
"BadTipString": ало--", "BadTipString": АЛО--",
"SleepingSimpleString": "Сон ", "SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Ожидание...", "SleepingAdvancedString": "Ожидание...",
"WarningSimpleString": " ГОРЯЧО!", "WarningSimpleString": "ГОРЯЧО!",
"WarningAdvancedString": "!!! ГОРЯЧЕЕ ЖАЛО !!!", "WarningAdvancedString": "!!! ГОРЯЧЕЕ ЖАЛО !!!",
"SleepingTipAdvancedString": "Жало:", "SleepingTipAdvancedString": "Жало:",
"IdleTipString": "Жало:", "IdleTipString": "Жало:",
@@ -23,18 +23,18 @@
"OffString": "Выкл.", "OffString": "Выкл.",
"ResetOKMessage": "Сброс OK", "ResetOKMessage": "Сброс OK",
"YourGainMessage": "Прирост:", "YourGainMessage": "Прирост:",
"SettingsResetMessage": "Настройки \nсброшены!" "SettingsResetMessage": "Настройки сброшены!"
}, },
"characters": { "characters": {
"SettingRightChar": "П", "SettingRightChar": "П",
"SettingLeftChar": "Л", "SettingLeftChar": "Л",
"SettingAutoChar": "A", "SettingAutoChar": "А",
"SettingFastChar": "+", "SettingFastChar": "Б",
"SettingSlowChar": "-", "SettingSlowChar": "М",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "П",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "O", "SettingStartSleepOffChar": "К",
"SettingStartNoneChar": "F" "SettingStartNoneChar": "В"
}, },
"menuDouble": true, "menuDouble": true,
"menuGroups": { "menuGroups": {
@@ -47,234 +47,250 @@
}, },
"PowerSavingMenu": { "PowerSavingMenu": {
"text2": [ "text2": [
"Режим", "Режимы",
"сна" "сна"
], ],
"desc": "Параметры экономии энергии" "desc": "Найстроки режима ожидания"
}, },
"UIMenu": { "UIMenu": {
"text2": [ "text2": [
ользовател", араметры",
"интерфейс" "интерфейса"
], ],
"desc": "Параметры пользовательского интерфейса" "desc": "Найстройки пользовательского интерфейса"
}, },
"AdvancedMenu": { "AdvancedMenu": {
"text2": [ "text2": [
"Дополнител.", "Дополнител.",
"параметры" "найстройки"
], ],
"desc": "Дополнительные параметры" "desc": "Дополнительные настройки"
} }
}, },
"menuOptions": { "menuOptions": {
"PowerSource": { "PowerSource": {
"text": "ИстП", "text": "ИстчнПит",
"text2": [ "text2": [
"Источник", "Источник",
"питания" "питания"
], ],
"desc": "Источник питания. Установка напряжения отключения. <DC = 10 В, S = 3.3 В на батарею, ограничение мощности выкл.>" "desc": "Источник питания. Устанавливает напряжение отсечки. <DC 10В> <S 3.3В на ячейку, без лимита мощности>"
}, },
"SleepTemperature": { "SleepTemperature": {
"text": "Тожд", "text": "ТмпОжд",
"text2": [ "text2": [
"Темпер.", "Темп.",
"сна" "ожидания"
], ],
"desc": "Температура режима ожидания <С>" "desc": "Температура режима ожидания"
}, },
"SleepTimeout": { "SleepTimeout": {
"text": "Вожд", "text": "ВрмОжид",
"text2": [ "text2": [
"Таймаут", "Таймаут",
"сна" "ожидания"
], ],
"desc": "Время до перехода в режим ожидания <Минуты/Секунды>" "desc": "Время до перехода в режим ожидания <Минуты/Секунды>"
}, },
"ShutdownTimeout": { "ShutdownTimeout": {
"text": "Тоткл", "text": "ВрмОткл",
"text2": [ "text2": [
"Время до", "Таймаут",
"отключения" "выключения"
], ],
"desc": "Время до отключения <Минуты>" "desc": "Время до отключения паяльника <Минуты>"
}, },
"MotionSensitivity": { "MotionSensitivity": {
"text": "ЧувсДв", "text": "ЧувсАксл",
"text2": [ "text2": [
"Чувст. сенсо-", "Чувствительн.",
"ра движения" "акселерометра"
], ],
"desc": "Акселерометр <0 = Выкл, 1 = Мин. чувствительный, 9 = Макс. чувствительный>" "desc": "Чувствительность акселерометра <0=Выкл., 1=Мин., 9=Макс.>"
}, },
"TemperatureUnit": { "TemperatureUnit": {
"text": "ЕдТемп", "text": "ЕдТемп",
"text2": [ "text2": [
"Формат темпе-", "Единицы",
"ратуры(C°/F°)" "температуры"
], ],
"desc": "Единица измерения температуры <C = Цельсия, F = Фаренгейт>" "desc": "Единицы изменения температуры <C=Цельция, F=Фаренгейта>"
}, },
"AdvancedIdle": { "AdvancedIdle": {
"text": "ИнфОжд", "text": "ИнфОжд",
"text2": [ "text2": [
"Подробный ре-", "Подробный",
"жим ожидания" "реж. ожидания"
], ],
"desc": "Показывать детальную информацию маленьким шрифтом на домашнем экране" "desc": "Отображать детальную информацию уменьшенным шрифтом на домашнем экране"
}, },
"DisplayRotation": { "DisplayRotation": {
"text": "ПовЭкр", "text": "ПовЭкр",
"text2": [ "text2": [
"Автоповорот", "Ориентация",
"экрана" "экрана"
], ],
"desc": "Ориентация дисплея <A = Авто, Л = Левая рука, П = Правая рука>" "desc": "Ориентация экрана <А=Авто, Л=Левая рука, П=Правая рука>"
}, },
"BoostEnabled": { "BoostEnabled": {
"text": "Турбо", "text": "Турб",
"text2": [ "text2": [
"Режим", "Турбо",
"Турбо" "режим"
], ],
"desc": "Активирует \"Турбо-режим\" при удержании кнопки А во время пайки" "desc": "Включить активацию турбо-режма, при удержании ближней к жалу кнопки во время пайки"
}, },
"BoostTemperature": { "BoostTemperature": {
"text": "Ттур", "text": "ТемпТурб",
"text2": [ "text2": [
"Темпер.", "t° турбо",
"Турбо" "режима"
], ],
"desc": "Температура в \"Турбо-режиме\"" "desc": "Температура жала в турбо режиме"
}, },
"AutoStart": { "AutoStart": {
"text": "Астарт", "text": "АвтоРеж",
"text2": [ "text2": [
"Горячий", "Авто",
"старт" "старт"
], ],
"desc": "Автоматический запуск паяльника при включении питания <T = Нагрев, S = Режим ожидания, F = Выкл.>" "desc": "Режим с которым запускается паяльник при подаче питания <П=Пайка, О=Ожидание, К=Ожидание при комн. темп., В=Выкл.>"
}, },
"CooldownBlink": { "CooldownBlink": {
"text": "Охлажд", "text": "МигТемп",
"text2": [ "text2": [
"Показ t° при", "Мигание t°",
"остывании" "при остывании"
], ],
"desc": "Показывать температуру на экране охлаждения, пока жало остается горячим" "desc": "Мигать температурой на экране охлаждения, пока жало еще горячее"
}, },
"TemperatureCalibration": { "TemperatureCalibration": {
"text": "КалибрТ", "text": "КалТемп?",
"text2": [ "text2": [
"Калибровка", "Калибровка",
"температуры" "температуры"
], ],
"desc": "Калибровка термодатчика" "desc": "Калибровка термодатчика жала"
}, },
"SettingsReset": { "SettingsReset": {
"text": "СБРОС?", "text": "Сброс?",
"text2": [ "text2": [
"Сбросить все", "Сброс",
"настройки?" "Настроек"
], ],
"desc": "Сброс всех настроек" "desc": "Сброс настроек к значеням по-умолчанию"
}, },
"VoltageCalibration": { "VoltageCalibration": {
"text": "КалибрU?", "text": "КалНапр",
"text2": [ "text2": [
"Калибровка", "Калибровка",
"напряжения" "напряжения"
], ],
"desc": "Калибровка входного напряжения. Настройка кнопками, нажать и удержать чтобы завершить" "desc": "Калибровка входного напряжения <длинное нажатие для выхода>"
}, },
"AdvancedSoldering": { "AdvancedSoldering": {
"text": "ИнфПай", "text": "ИнфПайк",
"text2": [ "text2": [
"Подробный ре-", "Подробный",
"жим пайки" "экран пайки"
], ],
"desc": "Показывать детальную информацию при пайке" "desc": "Показывать детальную информацию на экране пайки"
}, },
"ScrollingSpeed": { "ScrollingSpeed": {
"text": "DESCSP", "text": "СкорТекс",
"text2": [ "text2": [
"Скорость", "Скорость",
"текста" "текста"
], ],
"desc": "Скорость прокрутки текста" "desc": "Скорость прокрутки текста <М=медленно, Б=быстро>"
}, },
"TipModel": { "TipModel": {
"text": "TIPMO", "text": "МодЖала",
"text2": [ "text2": [
"Модель", "Модель",
"жало" "жала"
], ],
"desc": "Выбор модели жало" "desc": "Выбор модели жала"
}, },
"SimpleCalibrationMode": { "SimpleCalibrationMode": {
"text": "SMPCAL", "text": "УпрКал",
"text2": [ "text2": [
"Простая", "Упрощенная",
"калибровка" "калибровка"
], ],
"desc": "Простая калибровка с использованием горячей воды" "desc": "Упрощенная калибровка с использованием горячей воды"
}, },
"AdvancedCalibrationMode": { "AdvancedCalibrationMode": {
"text": "ADVCAL", "text": "УлучшКал",
"text2": [ "text2": [
"Подробная", "Улучшенная",
"калибровка" "калибровка"
], ],
"desc": "Калибровка с помощью термопары" "desc": "Улучшенная калибровка с импользованием термопары жала"
}, },
"PowerInput": { "PowerInput": {
"text": "PWRW", "text": "МощнИст",
"text2": [ "text2": [
"Мощность", "Мощность",
"адаптера" "питания"
], ],
"desc": "Мощность используемого адаптера питания" "desc": "Мощность используемого источника питания"
}, },
"PowerLimitEnable": { "PowerLimitEnable": {
"text": "PLIMEN", "text": "ВклЛимW",
"text2": [ "text2": [
"Ограничение", "Ограничение",
"мощности" "мощности"
], ],
"desc": "Включает ограничение мощности потребления" "desc": "Включить лимит потреблямой мощности"
}, },
"PowerLimit": { "PowerLimit": {
"text": "PLIM", "text": "ЗначЛимW",
"text2": [ "text2": [
"Максимальная", "Максимальная",
"мощность" "мощность"
], ],
"desc": "Макс. мощность, которую может использовать паяльник <Ватт>" "desc": "Максимальная мощность которую может использовать паяльник <Ватт>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "ИнвКноп",
"text2": [ "text2": [
"Key +-", "Инвертировать",
"reverse?" "кнопки"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "Инвертировать кнопки изменения температуры"
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "ШагКорт",
"text2": [ "text2": [
"Temp change", "Шаг темп.",
"short?" "кор. наж."
], ],
"desc": "Temperature change steps on short button press!" "desc": "Шаг изменения температуры при коротком нажатии кнопок"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "ШагДлин",
"text2": [ "text2": [
"Temp change", "Шаг темп.",
"long?" "длин. наж."
], ],
"desc": "Temperature change steps on long button press!" "desc": "Шаг изменения температуры при длинном нажатии кнопок"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -274,6 +274,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -273,6 +273,22 @@
"long?" "long?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Temperature change steps on long button press!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -253,26 +253,42 @@
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text": "RVTCHG", "text": "RVTCHG",
"text2": [ "text2": [
"Key +-", "Інвертувати",
"reverse?" "кнопки +-?"
], ],
"desc": "Reverse the tip temperature change buttons plus minus assignment." "desc": "Інвертувати кнопки зміни температури."
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text": "TCHGST", "text": "TCHGST",
"text2": [ "text2": [
"Temp change", "Зміна темп.",
"short?" "коротко?"
], ],
"desc": "Temperature change steps on short button press!" "desc": "Змінювати температуру при короткому натисканні!"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text": "TCHGLT", "text": "TCHGLT",
"text2": [ "text2": [
"Temp change", "Зміна темп.",
"long?" "довго?"
], ],
"desc": "Temperature change steps on long button press!" "desc": "Змінювати температуру при довгому натисканні!"
},
"PowerPulsePower":{
"text": "POWPLS",
"text2": [
"Power",
"Pulse W"
],
"desc": "Keep awake pulse power intensity"
},
"TipGain": {
"text": "TG",
"text2": [
"Modify",
"tip gain"
],
"desc": "Tip gain"
} }
} }
} }

View File

@@ -282,6 +282,16 @@ var def =
"id": "TempChangeLongStep", "id": "TempChangeLongStep",
"maxLen": 6, "maxLen": 6,
"maxLen2": 16 "maxLen2": 16
},
{
"id": "PowerPulsePower",
"maxLen": 6,
"maxLen2": 16
},
{
"id": "TipGain",
"maxLen": 6,
"maxLen2": 8
} }
] ]
} }

View File

@@ -1,4 +1,4 @@
version: '3' version: "3"
services: services:
builder: builder:
stdin_open: true stdin_open: true

View File

@@ -0,0 +1,55 @@
#include "BSP_Flash.h"
#include "BSP_Power.h"
#include "BSP_QC.h"
#include "Defines.h"
#include "UnitSettings.h"
#include "stdint.h"
/*
* BSP.h -- Board Support
*
* This exposes functions that are expected to be implemented to add support for different hardware
*/
#ifndef BSP_BSP_H_
#define BSP_BSP_H_
#ifdef __cplusplus
extern "C" {
#endif
// Called first thing in main() to init the hardware
void preRToSInit();
// Called once the RToS has started for any extra work
void postRToSInit();
// Called to reset the hardware watchdog unit
void resetWatchdog();
// Accepts a output level of 0.. to use to control the tip output PWM
void setTipPWM(uint8_t pulse);
// Returns the Handle temp in C, X10
uint16_t getHandleTemperature();
// Returns the Tip temperature ADC reading in raw units
uint16_t getTipRawTemp(uint8_t refresh);
// Returns the main DC input voltage, using the adjustable divisor + sample flag
uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample);
// Readers for the two buttons
// !! Returns 1 if held down, 0 if released
uint8_t getButtonA();
uint8_t getButtonB();
// This is a work around that will be called if I2C starts to bug out
// This should toggle the SCL line until SDA goes high to end the current transaction
void unstick_I2C();
// Reboot the IC when things go seriously wrong
void reboot();
// If the user has programmed in a bootup logo, draw it to the screen from flash
// Returns 1 if the logo was printed so that the unit waits for the timeout or button
uint8_t showBootLogoIfavailable();
void delay_ms(uint16_t count);
#ifdef __cplusplus
}
#endif
#endif /* BSP_BSP_H_ */

View File

@@ -0,0 +1,26 @@
/*
* BSP_Flash.h
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "stdint.h"
#ifndef BSP_BSP_FLASH_H_
#define BSP_BSP_FLASH_H_
#ifdef __cplusplus
extern "C" {
#endif
/*
* Wrappers to allow read/writing to a sector of flash that we use to store all of the user settings
*
* Should allow reading and writing to the flash
*/
//Erase the flash, then save the buffer. Returns 1 if worked
uint8_t flash_save_buffer(const uint8_t *buffer, const uint16_t length);
void flash_read_buffer(uint8_t *buffer, const uint16_t length);
#ifdef __cplusplus
}
#endif
#endif /* BSP_BSP_FLASH_H_ */

View File

@@ -0,0 +1,27 @@
#include "stdint.h"
/*
* BSP_Power.h -- Board Support for Power control
*
* These functions are hooks used to allow for power control
*
*/
#ifndef BSP_POWER_H_
#define BSP_POWER_H_
#ifdef __cplusplus
extern "C" {
#endif
// Called once at startup, after RToS
// This can handle negotiations for QC/PD etc
void power_probe();
// Called periodically in the movement handling thread
// Can be used to check any details for the power system
void power_check();
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,42 @@
/*
* BSP_QC.h
*
* Created on: 29 May 2020
* Author: Ralim
*/
#ifndef BSP_BSP_QC_H_
#define BSP_BSP_QC_H_
#include "stdint.h"
#ifdef __cplusplus
extern "C" {
#endif
// Init GPIO for QC neg
void QC_Init_GPIO();
// Set the DP pin to 0.6V
void QC_DPlusZero_Six();
// Set the DM pin to 0.6V
void QC_DNegZero_Six();
// Set the DP pin to 3.3V
void QC_DPlusThree_Three();
// Set the DM pin to 3.3V
void QC_DNegThree_Three();
// Turn on weak pulldown on the DM pin
// This is used as a helper for some power banks
void QC_DM_PullDown();
// Turn off the pulldown
void QC_DM_No_PullDown();
// Turn on output drivers that were initally disabled to prevent spike through QC disable mode
void QC_Post_Probe_En();
// Check if DM was pulled down
// 1=Pulled down, 0 == pulled high
uint8_t QC_DM_PulledDown();
// Re-sync if required
void QC_resync();
#ifdef __cplusplus
}
#endif
#endif /* BSP_BSP_QC_H_ */

View File

@@ -0,0 +1,19 @@
/*
* Defines.h
*
* Created on: 29 May 2020
* Author: Ralim
*/
#ifndef BSP_DEFINES_H_
#define BSP_DEFINES_H_
enum Orientation {
ORIENTATION_LEFT_HAND = 0, ORIENTATION_RIGHT_HAND = 1, ORIENTATION_FLAT = 3
};
//It is assumed that all hardware implements an 8Hz update period at this time
#define PID_TIM_HZ (8)
#endif /* BSP_DEFINES_H_ */

View File

@@ -0,0 +1,256 @@
//BSP mapping functions
#include "BSP.h"
#include "Setup.h"
#include "history.hpp"
#include "Pins.h"
#include "main.hpp"
#include "history.hpp"
#include "I2C_Wrapper.hpp"
volatile uint16_t PWMSafetyTimer = 0;
volatile uint8_t pendingPWM = 0;
//2 second filter (ADC is PID_TIM_HZ Hz)
history<uint16_t, PID_TIM_HZ> rawTempFilter = { { 0 }, 0, 0 };
void resetWatchdog() {
HAL_IWDG_Refresh(&hiwdg);
}
uint16_t getHandleTemperature() {
// We return the current handle temperature in X10 C
// TMP36 in handle, 0.5V offset and then 10mV per deg C (0.75V @ 25C for
// example) STM32 = 4096 count @ 3.3V input -> But We oversample by 32/(2^2) =
// 8 times oversampling Therefore 32768 is the 3.3V input, so 0.1007080078125
// mV per count So we need to subtract an offset of 0.5V to center on 0C
// (4964.8 counts)
//
int32_t result = getADC(0);
result -= 4965; // remove 0.5V offset
// 10mV per C
// 99.29 counts per Deg C above 0C
result *= 100;
result /= 993;
return result;
}
uint16_t getTipInstantTemperature() {
uint16_t sum = 0; // 12 bit readings * 8 -> 15 bits
uint16_t readings[8];
//Looking to reject the highest outlier readings.
//As on some hardware these samples can run into the op-amp recovery time
//Once this time is up the signal stabilises quickly, so no need to reject minimums
readings[0] = hadc1.Instance->JDR1;
readings[1] = hadc1.Instance->JDR2;
readings[2] = hadc1.Instance->JDR3;
readings[3] = hadc1.Instance->JDR4;
readings[4] = hadc2.Instance->JDR1;
readings[5] = hadc2.Instance->JDR2;
readings[6] = hadc2.Instance->JDR3;
readings[7] = hadc2.Instance->JDR4;
for (int i = 0; i < 8; i++) {
sum += readings[i];
}
return sum; // 8x over sample
}
uint16_t getTipRawTemp(uint8_t refresh) {
if (refresh) {
uint16_t lastSample = getTipInstantTemperature();
rawTempFilter.update(lastSample);
return lastSample;
} else {
return rawTempFilter.average();
}
}
uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
// ADC maximum is 32767 == 3.3V at input == 28.05V at VIN
// Therefore we can divide down from there
// Multiplying ADC max by 4 for additional calibration options,
// ideal term is 467
#ifdef MODEL_TS100
#define BATTFILTERDEPTH 32
#else
#define BATTFILTERDEPTH 8
#endif
static uint8_t preFillneeded = 10;
static uint32_t samples[BATTFILTERDEPTH];
static uint8_t index = 0;
if (preFillneeded) {
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
samples[i] = getADC(1);
preFillneeded--;
}
if (sample) {
samples[index] = getADC(1);
index = (index + 1) % BATTFILTERDEPTH;
}
uint32_t sum = 0;
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
sum += samples[i];
sum /= BATTFILTERDEPTH;
return sum * 4 / divisor;
}
void setTipPWM(uint8_t pulse) {
PWMSafetyTimer = 10; // This is decremented in the handler for PWM so that the tip pwm is
// disabled if the PID task is not scheduled often enough.
pendingPWM = pulse;
}
// These are called by the HAL after the corresponding events from the system
// timers.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
// Period has elapsed
if (htim->Instance == TIM2) {
// we want to turn on the output again
PWMSafetyTimer--;
// We decrement this safety value so that lockups in the
// scheduler will not cause the PWM to become locked in an
// active driving state.
// While we could assume this could never happen, its a small price for
// increased safety
htim2.Instance->CCR4 = pendingPWM;
if (htim2.Instance->CCR4 && PWMSafetyTimer) {
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
} else {
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
}
} else if (htim->Instance == TIM1) {
// STM uses this for internal functions as a counter for timeouts
HAL_IncTick();
}
}
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
// This was a when the PWM for the output has timed out
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4) {
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
}
}
void unstick_I2C() {
GPIO_InitTypeDef GPIO_InitStruct;
int timeout = 100;
int timeout_cnt = 0;
// 1. Clear PE bit.
hi2c1.Instance->CR1 &= ~(0x0001);
/**I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
*/
// 2. Configure the SCL and SDA I/Os as General Purpose Output Open-Drain, High level (Write 1 to GPIOx_ODR).
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pin = SCL_Pin;
HAL_GPIO_Init(SCL_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
GPIO_InitStruct.Pin = SDA_Pin;
HAL_GPIO_Init(SDA_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET);
while (GPIO_PIN_SET != HAL_GPIO_ReadPin(SDA_GPIO_Port, SDA_Pin)) {
//Move clock to release I2C
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET);
asm("nop");
asm("nop");
asm("nop");
asm("nop");
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
timeout_cnt++;
if (timeout_cnt > timeout)
return;
}
// 12. Configure the SCL and SDA I/Os as Alternate function Open-Drain.
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pin = SCL_Pin;
HAL_GPIO_Init(SCL_GPIO_Port, &GPIO_InitStruct);
GPIO_InitStruct.Pin = SDA_Pin;
HAL_GPIO_Init(SDA_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET);
// 13. Set SWRST bit in I2Cx_CR1 register.
hi2c1.Instance->CR1 |= 0x8000;
asm("nop");
// 14. Clear SWRST bit in I2Cx_CR1 register.
hi2c1.Instance->CR1 &= ~0x8000;
asm("nop");
// 15. Enable the I2C peripheral by setting the PE bit in I2Cx_CR1 register
hi2c1.Instance->CR1 |= 0x0001;
// Call initialization function.
HAL_I2C_Init(&hi2c1);
}
uint8_t getButtonA() {
return HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET ?
1 : 0;
}
uint8_t getButtonB() {
return HAL_GPIO_ReadPin(KEY_B_GPIO_Port, KEY_B_Pin) == GPIO_PIN_RESET ?
1 : 0;
}
/*
* Catch the IRQ that says that the conversion is done on the temperature
* readings coming in Once these have come in we can unblock the PID so that it
* runs again
*/
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
if (hadc == &hadc1) {
if (pidTaskNotification) {
vTaskNotifyGiveFromISR(pidTaskNotification,
&xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
}
}
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
FRToSI2C::CpltCallback();
}
void reboot() {
NVIC_SystemReset();
}
void delay_ms(uint16_t count) {
HAL_Delay(count);
}

View File

@@ -0,0 +1,142 @@
/*
* FRToSI2C.cpp
*
* Created on: 14Apr.,2018
* Author: Ralim
*/
#include <I2C_Wrapper.hpp>
#include "BSP.h"
#include "Setup.h"
#define I2CUSESDMA
SemaphoreHandle_t FRToSI2C::I2CSemaphore;
StaticSemaphore_t FRToSI2C::xSemaphoreBuffer;
void FRToSI2C::CpltCallback() {
hi2c1.State = HAL_I2C_STATE_READY; // Force state reset (even if tx error)
if (I2CSemaphore) {
xSemaphoreGiveFromISR(I2CSemaphore, NULL);
}
}
bool FRToSI2C::Mem_Read(uint16_t DevAddress, uint16_t MemAddress,
uint8_t *pData, uint16_t Size) {
if (I2CSemaphore == NULL) {
// no RToS, run blocking code
HAL_I2C_Mem_Read(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT,
pData, Size, 5000);
return true;
} else {
// RToS is active, run threading
// Get the mutex so we can use the I2C port
// Wait up to 1 second for the mutex
if (xSemaphoreTake(I2CSemaphore, (TickType_t)50) == pdTRUE) {
#ifdef I2CUSESDMA
if (HAL_I2C_Mem_Read(&hi2c1, DevAddress, MemAddress,
I2C_MEMADD_SIZE_8BIT, pData, Size, 500) != HAL_OK) {
I2C_Unstick();
xSemaphoreGive(I2CSemaphore);
return false;
} else {
xSemaphoreGive(I2CSemaphore);
return true;
}
#else
if (HAL_I2C_Mem_Read(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, pData, Size,
5000)==HAL_OK){
xSemaphoreGive(I2CSemaphore);
return true;
}
xSemaphoreGive(I2CSemaphore);
return false;
#endif
} else {
return false;
}
}
}
void FRToSI2C::I2C_RegisterWrite(uint8_t address, uint8_t reg, uint8_t data) {
Mem_Write(address, reg, &data, 1);
}
uint8_t FRToSI2C::I2C_RegisterRead(uint8_t add, uint8_t reg) {
uint8_t tx_data[1];
Mem_Read(add, reg, tx_data, 1);
return tx_data[0];
}
void FRToSI2C::Mem_Write(uint16_t DevAddress, uint16_t MemAddress,
uint8_t *pData, uint16_t Size) {
if (I2CSemaphore == NULL) {
// no RToS, run blocking code
HAL_I2C_Mem_Write(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT,
pData, Size, 5000);
} else {
// RToS is active, run threading
// Get the mutex so we can use the I2C port
// Wait up to 1 second for the mutex
if (xSemaphoreTake(I2CSemaphore, (TickType_t)50) == pdTRUE) {
#ifdef I2CUSESDMA
if (HAL_I2C_Mem_Write(&hi2c1, DevAddress, MemAddress,
I2C_MEMADD_SIZE_8BIT, pData, Size, 500) != HAL_OK) {
I2C_Unstick();
xSemaphoreGive(I2CSemaphore);
}
xSemaphoreGive(I2CSemaphore);
#else
if (HAL_I2C_Mem_Write(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, pData,
Size, 5000) != HAL_OK) {
}
xSemaphoreGive(I2CSemaphore);
#endif
} else {
}
}
}
void FRToSI2C::Transmit(uint16_t DevAddress, uint8_t *pData, uint16_t Size) {
if (I2CSemaphore == NULL) {
// no RToS, run blocking code
HAL_I2C_Master_Transmit(&hi2c1, DevAddress, pData, Size, 5000);
} else {
// RToS is active, run threading
// Get the mutex so we can use the I2C port
// Wait up to 1 second for the mutex
if (xSemaphoreTake(I2CSemaphore, (TickType_t)50) == pdTRUE) {
#ifdef I2CUSESDMA
if (HAL_I2C_Master_Transmit_DMA(&hi2c1, DevAddress, pData, Size)
!= HAL_OK) {
I2C_Unstick();
xSemaphoreGive(I2CSemaphore);
}
#else
HAL_I2C_Master_Transmit(&hi2c1, DevAddress, pData, Size, 5000);
xSemaphoreGive(I2CSemaphore);
#endif
} else {
}
}
}
bool FRToSI2C::probe(uint16_t DevAddress) {
uint8_t buffer[1];
if (Mem_Read(DevAddress, 0, buffer, 1)) {
//ACK'd
return true;
}
return false;
}
void FRToSI2C::I2C_Unstick() {
unstick_I2C();
}

View File

@@ -1,148 +1,83 @@
/* /*
* Hardware.h * Pins.h
* *
* Created on: 29Aug.,2017 * Created on: 29 May 2020
* Author: Ben V. Brown * Author: Ralim
*/ */
#ifndef HARDWARE_H_ #ifndef BSP_MINIWARE_PINS_H_
#define HARDWARE_H_ #define BSP_MINIWARE_PINS_H_
#include "Setup.h"
#include "stm32f1xx_hal.h" #if defined(MODEL_TS100) + defined(MODEL_TS80) > 1
#include "FreeRTOS.h" #error "Multiple models defined!"
#include "stm32f1xx_hal.h" #elif defined(MODEL_TS100) + defined(MODEL_TS80) == 0
#include "cmsis_os.h" #error "No model defined!"
#include "unit.h" #endif
#ifdef __cplusplus #ifdef MODEL_TS100
extern "C" {
#endif #define KEY_B_Pin GPIO_PIN_6
#define KEY_B_GPIO_Port GPIOA
enum Orientation { #define TMP36_INPUT_Pin GPIO_PIN_7
ORIENTATION_LEFT_HAND = 0, ORIENTATION_RIGHT_HAND = 1, ORIENTATION_FLAT = 3 #define TMP36_INPUT_GPIO_Port GPIOA
}; #define TMP36_ADC1_CHANNEL ADC_CHANNEL_7
#define PID_TIM_HZ (8) #define TIP_TEMP_Pin GPIO_PIN_0
#if defined(MODEL_TS100) + defined(MODEL_TS80) > 1 #define TIP_TEMP_GPIO_Port GPIOB
#error "Multiple models defined!" #define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_8
#elif defined(MODEL_TS100) + defined(MODEL_TS80) == 0 #define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_8
#error "No model defined!" #define VIN_Pin GPIO_PIN_1
#endif #define VIN_GPIO_Port GPIOB
#define VIN_ADC1_CHANNEL ADC_CHANNEL_9
#ifdef MODEL_TS100 #define VIN_ADC2_CHANNEL ADC_CHANNEL_9
#define OLED_RESET_Pin GPIO_PIN_8
#define KEY_B_Pin GPIO_PIN_6 #define OLED_RESET_GPIO_Port GPIOA
#define KEY_B_GPIO_Port GPIOA #define KEY_A_Pin GPIO_PIN_9
#define TMP36_INPUT_Pin GPIO_PIN_7 #define KEY_A_GPIO_Port GPIOA
#define TMP36_INPUT_GPIO_Port GPIOA #define INT_Orientation_Pin GPIO_PIN_3
#define TMP36_ADC1_CHANNEL ADC_CHANNEL_7 #define INT_Orientation_GPIO_Port GPIOB
#define TIP_TEMP_Pin GPIO_PIN_0 #define PWM_Out_Pin GPIO_PIN_4
#define TIP_TEMP_GPIO_Port GPIOB #define PWM_Out_GPIO_Port GPIOB
#define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_8 #define PWM_Out_CHANNEL TIM_CHANNEL_1
#define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_8 #define PWM_Out_CCR
#define VIN_Pin GPIO_PIN_1 #define INT_Movement_Pin GPIO_PIN_5
#define VIN_GPIO_Port GPIOB #define INT_Movement_GPIO_Port GPIOB
#define VIN_ADC1_CHANNEL ADC_CHANNEL_9 #define SCL_Pin GPIO_PIN_6
#define VIN_ADC2_CHANNEL ADC_CHANNEL_9 #define SCL_GPIO_Port GPIOB
#define OLED_RESET_Pin GPIO_PIN_8 #define SDA_Pin GPIO_PIN_7
#define OLED_RESET_GPIO_Port GPIOA #define SDA_GPIO_Port GPIOB
#define KEY_A_Pin GPIO_PIN_9
#define KEY_A_GPIO_Port GPIOA #else
#define INT_Orientation_Pin GPIO_PIN_3 // TS80 pin map
#define INT_Orientation_GPIO_Port GPIOB #define KEY_B_Pin GPIO_PIN_0
#define PWM_Out_Pin GPIO_PIN_4 #define KEY_B_GPIO_Port GPIOB
#define PWM_Out_GPIO_Port GPIOB #define TMP36_INPUT_Pin GPIO_PIN_4
#define PWM_Out_CHANNEL TIM_CHANNEL_1 #define TMP36_INPUT_GPIO_Port GPIOA
#define PWM_Out_CCR #define TMP36_ADC1_CHANNEL ADC_CHANNEL_4
#define INT_Movement_Pin GPIO_PIN_5 #define TIP_TEMP_Pin GPIO_PIN_3
#define INT_Movement_GPIO_Port GPIOB #define TIP_TEMP_GPIO_Port GPIOA
#define SCL_Pin GPIO_PIN_6 #define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_3
#define SCL_GPIO_Port GPIOB #define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_3
#define SDA_Pin GPIO_PIN_7
#define SDA_GPIO_Port GPIOB #define VIN_Pin GPIO_PIN_2
#define VIN_GPIO_Port GPIOA
#else #define VIN_ADC1_CHANNEL ADC_CHANNEL_2
// TS80 pin map #define VIN_ADC2_CHANNEL ADC_CHANNEL_2
#define KEY_B_Pin GPIO_PIN_0 #define OLED_RESET_Pin GPIO_PIN_15
#define KEY_B_GPIO_Port GPIOB #define OLED_RESET_GPIO_Port GPIOA
#define TMP36_INPUT_Pin GPIO_PIN_4 #define KEY_A_Pin GPIO_PIN_1
#define TMP36_INPUT_GPIO_Port GPIOA #define KEY_A_GPIO_Port GPIOB
#define TMP36_ADC1_CHANNEL ADC_CHANNEL_4 #define INT_Orientation_Pin GPIO_PIN_4
#define TIP_TEMP_Pin GPIO_PIN_3 #define INT_Orientation_GPIO_Port GPIOB
#define TIP_TEMP_GPIO_Port GPIOA #define PWM_Out_Pin GPIO_PIN_6
#define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_3 #define PWM_Out_GPIO_Port GPIOA
#define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_3 #define PWM_Out_CHANNEL TIM_CHANNEL_1
#define INT_Movement_Pin GPIO_PIN_5
#define VIN_Pin GPIO_PIN_2 #define INT_Movement_GPIO_Port GPIOB
#define VIN_GPIO_Port GPIOA #define SCL_Pin GPIO_PIN_6
#define VIN_ADC1_CHANNEL ADC_CHANNEL_2 #define SCL_GPIO_Port GPIOB
#define VIN_ADC2_CHANNEL ADC_CHANNEL_2 #define SDA_Pin GPIO_PIN_7
#define OLED_RESET_Pin GPIO_PIN_15 #define SDA_GPIO_Port GPIOB
#define OLED_RESET_GPIO_Port GPIOA
#define KEY_A_Pin GPIO_PIN_1 #endif
#define KEY_A_GPIO_Port GPIOB
#define INT_Orientation_Pin GPIO_PIN_4 #endif /* BSP_MINIWARE_PINS_H_ */
#define INT_Orientation_GPIO_Port GPIOB
#define PWM_Out_Pin GPIO_PIN_6
#define PWM_Out_GPIO_Port GPIOA
#define PWM_Out_CHANNEL TIM_CHANNEL_1
#define INT_Movement_Pin GPIO_PIN_5
#define INT_Movement_GPIO_Port GPIOB
#define SCL_Pin GPIO_PIN_6
#define SCL_GPIO_Port GPIOB
#define SDA_Pin GPIO_PIN_7
#define SDA_GPIO_Port GPIOB
#endif
/*
* Keep in a uint8_t range for the ID's
*/
#ifdef MODEL_TS100
enum TipType {
TS_B2 = 0,
TS_D24 = 1,
TS_BC2 = 2,
TS_C1 = 3,
Tip_MiniWare = 4,
HAKKO_BC2 = 4,
Tip_Hakko = 5,
Tip_Custom = 5,
};
#endif
#ifdef MODEL_TS80
enum TipType {
TS_B02 = 0, TS_D25 = 1, Tip_MiniWare = 2, Tip_Custom = 3,
};
#endif
extern uint16_t tipGainCalValue ;
uint16_t lookupTipDefaultCalValue(enum TipType tipID);
uint16_t getHandleTemperature();
uint16_t getTipRawTemp(uint8_t refresh);
uint16_t getInputVoltageX10(uint16_t divisor,uint8_t sample);
void setTipPWM(uint8_t pulse);
uint16_t ctoTipMeasurement(uint16_t temp);
uint16_t tipMeasurementToC(uint16_t raw);
uint16_t ftoTipMeasurement(uint16_t temp);
#ifdef ENABLED_FAHRENHEIT_SUPPORT
uint16_t tipMeasurementToF(uint16_t raw);
#endif
void seekQC(int16_t Vx10, uint16_t divisor);
void setCalibrationOffset(int16_t offSet);
void setTipType(enum TipType tipType, uint8_t manualCalGain);
uint32_t calculateTipR();
int16_t calculateMaxVoltage(uint8_t useHP);
void startQC(uint16_t divisor); // Tries to negotiate QC for highest voltage, must be run after
// RToS
// This will try for 12V, failing that 9V, failing that 5V
// If input is over 12V returns -1
// If the input is [5-12] Will return the value.
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer,
StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) ;
void vApplicationIdleHook(void);
#ifdef __cplusplus
}
#endif
#endif /* HARDWARE_H_ */

View File

@@ -0,0 +1,21 @@
#include "BSP.h"
#include "BSP_Power.h"
#include "QC3.h"
#include "Settings.h"
void power_probe() {
// If TS80 probe for QC
// If TS100 - noop
#ifdef MODEL_TS80
startQC(systemSettings.voltageDiv);
seekQC((systemSettings.cutoutSetting) ? 120 : 90,
systemSettings.voltageDiv); // this will move the QC output to the preferred voltage to start with
#endif
}
void power_check() {
#ifdef MODEL_TS80
QC_resync();
#endif
}

View File

@@ -0,0 +1,74 @@
/*
* QC.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "Pins.h"
#include "QC3.h"
#include "Settings.h"
#include "stm32f1xx_hal.h"
void QC_DPlusZero_Six() {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // pull down D+
}
void QC_DNegZero_Six() {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);
}
void QC_DPlusThree_Three() {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); // pull up D+
}
void QC_DNegThree_Three() {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);
}
void QC_DM_PullDown() {
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Pin = GPIO_PIN_11;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void QC_DM_No_PullDown() {
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pin = GPIO_PIN_11;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void QC_Init_GPIO() {
// Setup any GPIO into the right states for QC
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_10;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// Turn off output mode on pins that we can
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_14 | GPIO_PIN_13;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void QC_Post_Probe_En() {
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
uint8_t QC_DM_PulledDown() { return HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11) == GPIO_PIN_RESET ? 1 : 0; }
void QC_resync() {
#ifdef MODEL_TS80
seekQC((systemSettings.cutoutSetting) ? 120 : 90,
systemSettings.voltageDiv); // Run the QC seek again if we have drifted too much
#endif
}

View File

@@ -0,0 +1,12 @@
# BSP section for STM32F103 based Miniware products
This folder contains the hardware abstractions required for the TS100, TS80 and probably TS80P soldering irons.
## Main abstractions
* Hardware Init
* -> Should contain all bootstrap to bring the hardware up to an operating point
* -> Two functions are required, a pre and post FreeRToS call
* I2C read/write
* Set PWM for the tip
* Links between IRQ's on the system and the calls in the rest of the firmware

View File

@@ -5,6 +5,7 @@
* Author: Ben V. Brown * Author: Ben V. Brown
*/ */
#include "Setup.h" #include "Setup.h"
#include "Pins.h"
ADC_HandleTypeDef hadc1; ADC_HandleTypeDef hadc1;
ADC_HandleTypeDef hadc2; ADC_HandleTypeDef hadc2;
DMA_HandleTypeDef hdma_adc1; DMA_HandleTypeDef hdma_adc1;
@@ -32,12 +33,8 @@ static void MX_ADC2_Init(void);
void Setup_HAL() { void Setup_HAL() {
SystemClock_Config(); SystemClock_Config();
#ifndef LOCAL_BUILD
__HAL_AFIO_REMAP_SWJ_DISABLE() __HAL_AFIO_REMAP_SWJ_DISABLE()
; ;
#else
__HAL_AFIO_REMAP_SWJ_NOJTAG();
#endif
MX_GPIO_Init(); MX_GPIO_Init();
MX_DMA_Init(); MX_DMA_Init();
@@ -49,8 +46,8 @@ void Setup_HAL() {
MX_IWDG_Init(); MX_IWDG_Init();
HAL_ADC_Start(&hadc2); HAL_ADC_Start(&hadc2);
HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t*) ADCReadings, 64); // start DMA of normal readings HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t*) ADCReadings, 64); // start DMA of normal readings
HAL_ADCEx_InjectedStart(&hadc1); // enable injected readings HAL_ADCEx_InjectedStart(&hadc1); // enable injected readings
HAL_ADCEx_InjectedStart(&hadc2); // enable injected readings HAL_ADCEx_InjectedStart(&hadc2); // enable injected readings
} }
// channel 0 -> temperature sensor, 1-> VIN // channel 0 -> temperature sensor, 1-> VIN
@@ -336,7 +333,7 @@ static void MX_TIM2_Init(void) {
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig); HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 255 + 13;//13 -> Delay of 5ms sConfigOC.Pulse = 255 + 13; //13 -> Delay of 5ms
//255 is the largest time period of the drive signal, and then offset ADC sample to be a bit delayed after this //255 is the largest time period of the drive signal, and then offset ADC sample to be a bit delayed after this
/* /*
* It takes 4 milliseconds for output to be stable after PWM turns off. * It takes 4 milliseconds for output to be stable after PWM turns off.

View File

@@ -1,38 +1,38 @@
/* /*
* Setup.h * Setup.h
* *
* Created on: 29Aug.,2017 * Created on: 29Aug.,2017
* Author: Ben V. Brown * Author: Ben V. Brown
*/ */
#ifndef SETUP_H_ #ifndef SETUP_H_
#define SETUP_H_ #define SETUP_H_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <hardware.h>
#include "stm32f1xx_hal.h" #include "stm32f1xx_hal.h"
extern ADC_HandleTypeDef hadc1; extern ADC_HandleTypeDef hadc1;
extern ADC_HandleTypeDef hadc2; extern ADC_HandleTypeDef hadc2;
extern DMA_HandleTypeDef hdma_adc1; extern DMA_HandleTypeDef hdma_adc1;
extern DMA_HandleTypeDef hdma_i2c1_rx; extern DMA_HandleTypeDef hdma_i2c1_rx;
extern DMA_HandleTypeDef hdma_i2c1_tx; extern DMA_HandleTypeDef hdma_i2c1_tx;
extern I2C_HandleTypeDef hi2c1; extern I2C_HandleTypeDef hi2c1;
extern IWDG_HandleTypeDef hiwdg; extern IWDG_HandleTypeDef hiwdg;
extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3; extern TIM_HandleTypeDef htim3;
void Setup_HAL(); void Setup_HAL();
uint16_t getADC(uint8_t channel); uint16_t getADC(uint8_t channel);
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim); //Since the hal header file does not define this one void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); //Since the hal header file does not define this one
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* SETUP_H_ */ #endif /* SETUP_H_ */

View File

@@ -0,0 +1,18 @@
/*
* UnitSettings.h
*
* Created on: 29 May 2020
* Author: Ralim
*/
#ifndef BSP_MINIWARE_UNITSETTINGS_H_
#define BSP_MINIWARE_UNITSETTINGS_H_
//On the TS80, the LIS accel is mounted backwards
#ifdef MODEL_TS80
#define LIS_ORI_FLIP
#endif
#endif /* BSP_MINIWARE_UNITSETTINGS_H_ */

View File

@@ -0,0 +1,49 @@
/*
* flash.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP_Flash.h"
#include "BSP.h"
#include "string.h"
#include "stm32f1xx_hal.h"
/*Flash start OR'ed with the maximum amount of flash - 1024 bytes*/
/*We use the last 1024 byte page*/
#define FLASH_ADDR (0x8000000 |0xFC00)
uint8_t flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
FLASH_EraseInitTypeDef pEraseInit;
pEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;
pEraseInit.Banks = FLASH_BANK_1;
pEraseInit.NbPages = 1;
pEraseInit.PageAddress = FLASH_ADDR;
uint32_t failingAddress = 0;
resetWatchdog();
__HAL_FLASH_CLEAR_FLAG(
FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR | FLASH_FLAG_BSY);
HAL_FLASH_Unlock();
HAL_Delay(10);
resetWatchdog();
HAL_FLASHEx_Erase(&pEraseInit, &failingAddress);
//^ Erase the page of flash (1024 bytes on this stm32)
// erased the chunk
// now we program it
uint16_t *data = (uint16_t*) buffer;
HAL_FLASH_Unlock();
for (uint8_t i = 0; i < (length / 2); i++) {
resetWatchdog();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, FLASH_ADDR + (i * 2),
data[i]);
}
HAL_FLASH_Lock();
return 1;
}
void flash_read_buffer(uint8_t *buffer, const uint16_t length) {
uint16_t *data = (uint16_t*) buffer;
for (uint8_t i = 0; i < (length / 2); i++) {
data[i] = *((uint16_t*) (FLASH_ADDR + (i * 2)));
}
}

View File

@@ -0,0 +1,27 @@
/*
* logo.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "OLED.hpp"
// Second last page of flash set aside for logo image.
#define FLASH_LOGOADDR (0x8000000 | 0xF800)
// Logo header signature.
#define LOGO_HEADER_VALUE 0xF00DAA55
uint8_t showBootLogoIfavailable() {
// Do not show logo data if signature is not found.
if (LOGO_HEADER_VALUE
!= *(reinterpret_cast<const uint32_t*>(FLASH_LOGOADDR))) {
return 0;
}
OLED::drawAreaSwapped(0, 0, 96, 16, (uint8_t*) (FLASH_LOGOADDR + 4));
OLED::refresh();
return 1;
}

View File

@@ -0,0 +1,13 @@
#include "BSP.h"
#include "FreeRTOS.h"
#include "QC3.h"
#include "Settings.h"
#include "cmsis_os.h"
#include "main.hpp"
#include "power.hpp"
#include "stdlib.h"
#include "task.h"
void postRToSInit() {
// Any after RTos setup
}

View File

@@ -0,0 +1,22 @@
/*
* preRTOS.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include <I2C_Wrapper.hpp>
#include "BSP.h"
#include "Setup.h"
#include "Pins.h"
void preRToSInit() {
/* Reset of all peripherals, Initializes the Flash interface and the Systick.
*/
HAL_Init();
Setup_HAL(); // Setup all the HAL objects
FRToSI2C::init();
HAL_Delay(50);
HAL_GPIO_WritePin(OLED_RESET_GPIO_Port, OLED_RESET_Pin, GPIO_PIN_SET);
HAL_Delay(50);
}

Some files were not shown because too many files have changed in this diff Show More