Merge remote-tracking branch 'origin/dev' into magic

This commit is contained in:
Ben V. Brown
2022-06-16 20:35:21 +10:00
65 changed files with 3201 additions and 3332 deletions

View File

@@ -23,6 +23,9 @@ jobs:
with:
submodules: true
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: build ${{ matrix.model }}
run: cd source && ./build.sh -m ${{ matrix.model }}
@@ -32,7 +35,7 @@ jobs:
cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}
path: |
@@ -46,7 +49,7 @@ jobs:
run: cd source && python3 metadata.py ${{ matrix.model }}.json
- name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: metadata
path: source/Hexfile/${{ matrix.model }}.json
@@ -70,6 +73,9 @@ jobs:
with:
submodules: true
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: build ${{ matrix.model }}
run: cd source && make -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
@@ -79,7 +85,7 @@ jobs:
cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}_multi-lang
path: |
@@ -93,7 +99,7 @@ jobs:
run: cd source && python3 metadata.py Pinecil_multi-lang.json
- name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: metadata
path: source/Hexfile/Pinecil_multi-lang.json

View File

@@ -4,4 +4,4 @@ IronOS supports both a bootup logo _AND_ bootup animations.
However, they are no longer included in this repo.
(Please read the docs)[../Documentation/Logo.md]
[Please read the docs](../Documentation/Logo.md)

View File

@@ -5,7 +5,7 @@ This is accessed by holding the rear (-/B) button on the iron while it is on the
This menu is meant to be simple, so it has no fancy GUI animations.
To move through the menu use the front (+/A) button.
To move through the menu, use the front (+/A) button.
To exit, use the rear (-/B) button again.
## Menu items
@@ -31,8 +31,8 @@ This just shows how many deciseconds the unit has been powered for.
### Move
This is the last timestamp of movement. When the iron is moved this should update to match the time field (one before in the menu).
This can be used for checking performance of the movement dection code.
This is the last timestamp of movement. When the iron is moved, this should update to match the time field (one before in the menu).
This can be used for checking performance of the movement detection code.
### RTip
@@ -74,15 +74,25 @@ This may change during power up as the sources are negotiated in turn.
- **PD W. VBus** input (We used the PD subsystem to negotiate for the current supply); and VBus is connected to your input power source
- **PD No VBus** input (We used the PD subsystem to negotiate for the current supply); and VBus is **NOT** connected to your input power source
- If you successfully modified the Pinecil to support 24 V by cutting the trace line to Vbus, then 'PD No VBus' displays on screen.
- Connect to any PD USB power to check Vbus status. It will not show any PD message when Pinecil is powered by DC port, QC, or USB 5 V (non PD).
- Connect to any PD USB power to check Vbus status. It will not show any PD message when Pinecil is powered by DC port, QC, or USB 5 V (non-PD).
### Max
This indicates the max temperature in degrees Celsius that the system estimates it can measure the tip reliably to.
This is dependant on a few factors including the handle temperature so it can move around during use.
This is dependent on a few factors including the handle temperature so it can move around during use.
### Hall
This appears if your device is capable of having a magnetic hall effect sensor installed (Pinecil).
This shows the current field strength reading from the sensor. It can be used to check if the sensor is operational, and measure how strong the magnetic field is for diagnostics and optimal placement of magnets on a stand.
# PD Debug menu
On the Pinecil; if the iron is booted up while holding the front button (+); it will show an extra menu for inspecting USB-PD power adapters.
The menu navigates like the debug menu, where pressing (+) cycles through elements, and (-) will exit the menu.
First page shows the PD negotiation stage number; which can be used for diagnosing if PD is not working.
After a few seconds or after PD negotiates (state above 5) it will show "No VBus" if the VBus mod is performed or "VBus" if the mod has not been done.
Once negotiation is complete; the other screens will show the advertised readings for voltage and current of the proposals.

View File

@@ -94,11 +94,11 @@ To build a release instead, run the `build.sh` script. This will update translat
## Updating languages
To update the language translation files and their associated font maps, execute the `make_translation.py` code from the `Translations` directory.
If you edit the translation definitions or the english translation, please also run `gen_menu_docs.py` to update the settings menu documentation automatically.
If you edit the translation definitions or the English translation, please also run `gen_menu_docs.py` to update the settings menu documentation automatically.
## Building Pinecil
I highly recommend using the command line tools and using Docker to run the compiler.
It's a bit more fussy on setup than the STM tooling, and this is by far the easiest way.
It's a bit fussier on setup than the STM tooling, and this is by far the easiest way.
If you _need_ an IDE I have used [Nuclei's IDE](https://nucleisys.com/download.php).
Follow the same idea as the STM Cube IDE notes above.

View File

@@ -11,7 +11,7 @@ These are built on every change and can be found on the Actions tab (see below).
### Main release
Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron, and extract it.
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below
@@ -39,9 +39,9 @@ Officially the bootloader on the devices only works under Windows (use the built
7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
8. Disconnect the USB and power up the device. You're good to go.
For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer.
For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document.
On the bottom of the MCU riser PCB, there are 4 pads for programming. On v2.51A PCB revision `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [dapboot from eDesignOSS](https://github.com/eDesignOSS/dapboot) (`make TARGET=TS100 -C src`) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).
On the bottom of the MCU riser PCB, there are 4 pads for programming. On v2.51A PCB revision `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).
There is a complete device flash backup included in this repository. (Note this includes the bootloader, so will need an SWD programmer to load onto the unit).
@@ -90,11 +90,11 @@ Check the extension of your firmware, it should be `.RDY` now.
# Pinecil (Pine64)
- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil).
- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from Github.
- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from GitHub.
- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below.
- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel. There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine volunteers/members can see advice for Pinecil and related items or just get tips on which Power supply to purchase.
- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues so it is preferred to avoid USB hubs for updates.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
- Alternate Update Methods: if your OS is not currently supported by the [Updater](https://github.com/pine64/pinecil-firmware-updater/releases) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.
## Linux and Mac
@@ -103,7 +103,7 @@ Check the extension of your firmware, it should be `.RDY` now.
⛔ Do not use the DC power jack while updating firmware or you may destroy your PC. ⛔
1. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
1. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
2. Highly recommend updating `dfu-util` to the newest version.
3. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
4. Connect USB to PC, and USB-C to back of Pinecil, keep holding (-) button down.
@@ -115,7 +115,7 @@ Check the extension of your firmware, it should be `.RDY` now.
dfu-util -D Pinecil_EN.dfu
```
Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e, EN = English).
Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e., EN = English).
### Troubleshooting:
- If you get a message stating that `More than one DFU capable USB device found!` when running the above command you probably have an old version of `dfu-util` installed. Might be worth updating. You can still install on the old version, but you will have to specify which DFU interface to flash to. Running the command `dfu-util -l` will show you if there are several DFU devices detected. Example:
@@ -129,10 +129,34 @@ dfu-util -D Pinecil_EN.dfu -a 0
```
- Note: if you use an older release of `dfu-util` and do not see `alt=0, name="@Internal Flash /0x08000000/128*001Kg"` when running `dfu-util -l` you likely will not be able to update without first updating 'dfu-util'.
- If your update is crashing part-way into the update, there is sometimes an issue with older/fussy USB controllers (they can show up/disappear/then show up again)
- Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible pick a port connected to the main board.
- Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible, pick a port connected to the main board.
- Switch to a different PC/Laptop and use different ports. USB-C ports are recommended but some have also reported having a fussy C port.
- Hold down the (-) button for the entire firmware update, do not release until near the end.
- `DC Low` message: a pc/laptop can not fully power pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal.
- `DC Low` message: a pc/laptop cannot fully power Pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal.
- If `dfu-util` aborts with an error like
```
dfu-util: Cannot open DFU device 28e9:0189 found on devnum 42 (LIBUSB_ERROR_IO)
```
and `dmesg` reports USB errors like these
```
kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
kernel: usb 1-1: device descriptor read/64, error -71
kernel: usb 1-1: device descriptor read/64, error -71
kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
kernel: usb 1-1: device descriptor read/64, error -71
kernel: usb 1-1: device descriptor read/64, error -71
kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
kernel: usb 1-1: Device not responding to setup address.
kernel: usb 1-1: Device not responding to setup address.
kernel: usb 1-1: device not accepting address 42, error -71
```
then try to disable USB autosuspend.
This can be done with a set of udev rules specifically for the Pinecil:
```udev
SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", MODE:="0660"
SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", TEST=="power/control", ATTR{power/control}="on"
```
## Windows
@@ -147,7 +171,7 @@ Two Options for Windows
1. Using command line `dfu-util` is similar to above for Linux / Mac.
2. Highly recommend updating `dfu-util` to the newest version.
3. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
3. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
4. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
5. Connect USB to PC, and USB-C to the back of Pinecil, keep holding (-) button down.
6. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
@@ -162,14 +186,14 @@ dfu-util -D Pinecil_EN.dfu
- If you have errors, see Troubleshooting [above](/Documentation/Flashing.md#troubleshooting).
### Option 2: use the gui tool from chip vendor
### Option 2: use the GUI tool from chip vendor
### Steps
⛔ Do not use the DC power jack while updating firmware or you may destroy your PC. ⛔
1. If you are uncomfortable with the command line, then this chip vendor supplied gui tool/drivers is an option.
2. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
1. If you are uncomfortable with the command line, then this chip vendor supplied GUI tool/drivers is an option.
2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
3. Download both the `GD32 MCU DFU TOOL` and the `GD32 Dfu Drivers`.
- GD32 DFU Tool [here](http://www.gd32mcu.com/en/download?kw=GD32+MCU+Dfu+Tool&lan=en). If the link breaks, search for "GD32 MCU Dfu Tool" at this [link](http://www.gd32mcu.com/en/download/).
- GD32 DFU Drivers [here](http://www.gd32mcu.com/en/download?kw=GD32+Dfu+Drivers&lan=en). If the link breaks, search for "GD32 Dfu Drivers" at this [link](http://www.gd32mcu.com/en/download/).
@@ -179,15 +203,15 @@ dfu-util -D Pinecil_EN.dfu
6. Connect Pinecil to a PC via USB cable (do not release the (-) yet).
7. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
8. You may hear a beep from Windows as it connects to Pinecil in DFU mode.
9. If you see windows notification that it `does not recognize Usb device`, then you didn't connect, repeat step 3-8.
9. If you see windows notification that it `does not recognize USB device`, then you didn't connect, repeat step 3-8.
10. Open the GD32 DFU Tool (ignore prompts to update tool).
11. At the top of the DFU tool, you should see `GD DFU DEVICE 1` appear if you successfully connected Pinecil.
12. If DFU Device box at top is blank, then Pinecil is not connected in DFU mode, repeat steps 3-11.
13. If it has been more than 10 seconds since you connected the USB cable, Release the (-) button. (don't use Upload from Device section)
14. Select `Download to device` > Open > Browse to folder dyou unziped in step 2.
14. Select `Download to device` > Open > Browse to folder you unzipped in step 2.
15. Select the `hex` file for language. English is Pinecil_EN.hex , tick `Verify after download`.
16. Click `OK` at bottom. After a few minutes you will see 0-100%, Download successfully! Click `Leave DFU` at the top.
17. Disconnect pinecil cable from PC, plug it into a power supply.
17. Disconnect Pinecil cable from PC, plug it into a power supply.
18. Do not need to press any buttons, a new screen should appear.
19. To confirm upgrade, hold the minus (-) button down for a few seconds, it then shows new firmware version v2.xx.x....date
@@ -213,20 +237,19 @@ First, try just copying the file a second time.
If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.
If you are on Windows, it's often best to try another computer (friends, work, partners etc).
If you are on Windows, it's often best to try another computer (friends, work, partners etc.).
#### [Miniware] Device randomly disconnects or does not show up in DFU mode
1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of usb-micro cables that are power _only_.
1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_.
2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the miniware design.
2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design.
### [Miniware] Alternative bootloader
If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUI's to upgrade the iron using the `.bin` files that are posted to the releases page.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page.
To change to dapboot based alternative bootloader, you need to flash the hex file from [here](https://github.com/eDesignOSS/ts100-bl-flasher/releases).
`ts100-stockbl.hex` will reflash the stock bootloader, `ts100-dapboot.hex` will flash the new dapboot based usb bootloader.
To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md).
Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this.

View File

@@ -5,4 +5,4 @@
- Accelerometer is the MSA301, this is mounted roughly in the middle of the unit
- USB-PD is using the FUSB302
- The hardware I2C bus on PB6/7 is used for the MSA301 and FUSB302
- The OLED is the same SSD1306 as everything else, but its on a bit-banged bus
- The OLED is the same SSD1306 as everything else, but its on a bit-banged bus

View File

@@ -16,7 +16,7 @@ If your iron is new, there is a slim chance your accelerometer may be DOA and ne
## No USB-PD IC detected
Generally, this means either something went very awry in the firmware or the chip is not answering as would normally be expected. Try rolling back to an earlier release to confirm if the issue still persists then the device may need repair. If you have some form of seller protection/support you most likely want to reach out to this to be safe. If you don't, you can always attempt to replace the IC yourself. As of writing both the TS80P and Pinecil use the FUSB302.
Generally, this means either something went very awry in the firmware, or the chip is not answering as would normally be expected. Try rolling back to an earlier release to confirm if the issue still persists then the device may need repair. If you have some form of seller protection/support, you most likely want to reach out to this to be safe. If you don't, you can always attempt to replace the IC yourself. As of writing both the TS80P and Pinecil use the FUSB302.
**Note this warning will only be shown the first few times until settings are reset**

View File

@@ -1,7 +1,7 @@
# Startup Logos
This firmware supports a user created bootup logo.
By default there is _not_ one included in the firmware, as this means that once flashed they generally stay.
By default, there is _not_ one included in the firmware, as this means that once flashed they generally stay.
## Generating the Logo files
@@ -27,7 +27,7 @@ Run `python3 img2logo.py --help` to see available options.
### Miniware (TS100/TS80/TS80P)
Upload the HEX file to the iron in DFU mode and, if the file's extension changes to .RDY, your custom splash screen should show up on startup.
You perform this the same way as if you were flashing a new firmware, and all of the existing notes around this apply.
You perform this the same way as if you were flashing a new firmware, and all the existing notes around this apply.
If you have flashed the `IronOS-dfu` alternative bootloader, you should use the `.dfu` files instead

View File

@@ -14,7 +14,7 @@ Holding the button at the front of the iron will enter boost mode (if enabled).
This menu allows you to cycle through all the options and set their values.
The button near the USB cycles through the options, and the one near the tip changes the selected option.
Note that settings are not saved until you exit the menu.
If you leave the unit alone (ie don't press any buttons) on a setting, after 3 seconds the screen will scroll a rough description of the setting.
If you leave the unit alone (i.e., don't press any buttons) on a setting, after 3 seconds the screen will scroll a rough description of the setting.
The menu is arranged so that the most often used settings are first.
With submenus being selected to enter using the front button (as if you were going to change the setting).
@@ -41,7 +41,7 @@ To calibrate your iron:
Some tips will have an offset on their readings, to calibrate this out perform the following steps:
1. Connect power to your iron
2. Make sure the tip is at room temperature (ie. wait for a fair while after using the iron before calibration)
2. Make sure the tip is at room temperature (i.e., wait for a fair while after using the iron before calibration)
3. Enter the settings menu
4. Scroll down to the advanced menu, and then the temperature calibration
5. Press the button to change the option (tip button)
@@ -54,6 +54,6 @@ Some tips will have an offset on their readings, to calibrate this out perform t
### Boost mode
This allows you to change the front key (one near the tip) to become a boost button when you hold it for > 2 seconds. This allows you to set this button to change the soldering temperature for short periods. For example when soldering a big joint and you want to boost the temperature a bit.
This allows you to change the front key (one near the tip) to become a boost button when you hold it for > 2 seconds. This allows you to set this button to change the soldering temperature for short periods. For example, when soldering a big joint and you want to boost the temperature a bit.
The boost temperature is set in the settings menu.

View File

@@ -13,7 +13,7 @@ Combining these two gives the common equation, power is `Volts (V) squared / Res
The resistance of the tip is fixed, ~7.5 ohms for the TS100/Pinecil and ~4.5 ohms for the TS80(P).
This means that for both irons, the power delivered to the soldering tip is proportional to the voltage used, squared.
This is why the TS100 performs poorly when run off 12 V power supplies.
Therefore the TS100 performs poorly when run off 12 V power supplies.
## Output Control & Regulation

View File

@@ -17,7 +17,7 @@ If you can open up your iron, give it a good look at all the connection points,
If you are finding the tip is reading high; the first fields to check in the Debug menu are `RTip` and `CHan`.
- `RTip` is the raw tip reading in μV; at cool this should be around 700-1000 for Larger tips and ~1500 for smaller tips (TS80's)
- `RTip` is the raw tip reading in μV; at cool this should be around 700-1000 for larger tips and ~1500 for smaller tips (TS80's)
- `CHan` is the temperature of the temperature sensor on the PCB in degrees Celsius \* 10. So 29 °C ambient should read as 290
### RTip is out of spec

View File

@@ -20,7 +20,9 @@ This project is considered feature complete for use as a soldering iron, _so ple
_This firmware does **NOT** support the USB port while running for changing settings. This is done through the onscreen menu only. Logos are edited using the tool or python script and uploaded in DFU mode._
To get started with this firmware, please jump over to [here](Documentation/GettingStarted.md).
## Getting Started
To get started with IronOS firmware, please jump to [Getting Started Guide](Documentation/GettingStarted.md).
But the [TL;DR](https://www.merriam-webster.com/dictionary/TL%3BDR) is to press the button near the front of the iron to heat up. Use the button near the back of the iron to enter the settings menu.
Long hold the rear button in soldering mode to exit back to the start screen.

View File

@@ -102,13 +102,18 @@ def get_constants(build_version: str) -> List[Tuple[str, str]]:
("SymbolDot", "."),
("SymbolDegC", "C"),
("SymbolDegF", "F"),
("SymbolMinutes", "M"),
("SymbolSeconds", "S"),
("SymbolMinutes", "m"),
("SymbolSeconds", "s"),
("SymbolWatts", "W"),
("SymbolVolts", "V"),
("SymbolAmps", "A"),
("SymbolDC", "DC"),
("SymbolCellCount", "S"),
("SymbolVersionNumber", build_version),
("SymbolPDDebug", "PD Debug"),
("SymbolState", "State"),
("SymbolNoVBus", "No VBus"),
("SymbolVBus", "VBus"),
]

View File

@@ -109,7 +109,7 @@
},
"CooldownBlink": {
"text2": ["Мігценне t°", "пры астуджэнні"],
"desc": "Міргаць тэмпературай на экране астуджэння, пакуль джага яшчэ гарачае"
"desc": "Міргаць тэмпературай на экране астуджэння, пакуль джала яшчэ гарачае"
},
"TemperatureCalibration": {
"text2": ["Каліброўка", "тэмпературы"],
@@ -157,7 +157,7 @@
},
"PowerPulsePower": {
"text2": ["Сіла імп.", "сілкав. Вт"],
"desc": "Сіла імпульса щтрымливаючага ад сну павербанку ці іншай крыніцы сілкавання"
"desc": "Сіла імпульса ўтрымливаючага ад сну павербанку ці іншай крыніцы сілкавання"
},
"HallEffSensitivity": {
"text2": ["Эфект Хола", "адчувальнасць"],
@@ -177,7 +177,7 @@
},
"AnimSpeed": {
"text2": ["Хуткасць", "анімацыі"],
"desc": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (А=Адключана | Н=Нізкі | С=Сярэдні | В=Высокі)"
"desc": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (А=Адключана | Н=Нізкая | С=Сярэдняя | В=Высокая)"
},
"PowerPulseWait": {
"text2": ["Імпульс магутнасці", "час чакання"],
@@ -200,8 +200,8 @@
"desc": "Інвертаваць колеры OLED-экрана"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"text2": ["Лагатып загрузкі", "працягласць"],
"desc": "Усталяваць працягласць лагатыпа загрузкі (s=Секунды)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -1,13 +1,16 @@
{
"languageCode": "CS",
"languageLocalName": "Český",
"fonts": ["ascii_basic", "latin_extended"],
"fonts": [
"ascii_basic",
"latin_extended"
],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Ujistěte se, že hrot má pokojovou teplotu!",
"SettingsResetWarning": "Opravdu chcete resetovat zařízení do továrního nastavení?",
"UVLOWarningString": "Nízké DC",
"UndervoltageString": "! Nízké napětí !",
"UndervoltageString": "Nízké napětí",
"InputVoltageString": "Napětí: ",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Režim spánku...",
@@ -16,192 +19,321 @@
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Tov. nas. obnov.", ""],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
"SettingsResetMessage": [
"Nějaká nastavení",
"byla změněna!"
],
"NoAccelerometerMessage": [
"Akcelerometr",
"nebyl detekován!"
],
"NoPowerDeliveryMessage": [
"Žádný IO USB-PD",
"nebyl detekován!"
],
"LockingKeysString": "ZAMČENO",
"UnlockingKeysString": "ODEMČENO",
"WarningKeysLockedString": "ZAMČENO!",
"WarningThermalRunaway": [
"Teplotní",
"Ochrana"
]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingOffChar": "D",
"SettingSlowChar": "P",
"SettingMediumChar": "M",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "O",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "M",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingSensitivityLow": "M",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
"SettingLockFullChar": "U"
},
"menuGroups": {
"PowerMenu": {
"text2": ["Power", "settings"],
"desc": "Power settings"
"text2": [
"Napájecí",
"nastavení"
],
"desc": "Nastavení napájení"
},
"SolderingMenu": {
"text2": ["Pájecí", "nastavení"],
"desc": "Nastavení pájení (boost, auto start...)."
"text2": [
"Pájecí",
"nastavení"
],
"desc": "Nastavení pájení"
},
"PowerSavingMenu": {
"text2": ["Režim", "spánku"],
"desc": "Nastavení režimu spánku, automatického vypnutí..."
"text2": [
"Režim",
"spánku"
],
"desc": "Nastavení úspory energie"
},
"UIMenu": {
"text2": ["Uživatelské", "rozhraní"],
"desc": "Nastavení uživatelského rozhraní."
"text2": [
"Uživatelské",
"rozhraní"
],
"desc": "Nastavení uživatelského rozhraní"
},
"AdvancedMenu": {
"text2": ["Pokročilé", "volby"],
"desc": "Pokročilé volby (detailní obrazovky, kalibrace, tovární nastavení...)."
"text2": [
"Pokročilá",
"nastavení"
],
"desc": "Pokročilá nastavení"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Zdroj", "napájení"],
"desc": "Při nižším napětí ukončí pájení (DC=10V | ?S=?x3,3V pro LiPo, LiIon...)."
"text2": [
"Zdroj",
"napájení"
],
"desc": "Při nižším napětí ukončit pájení (DC 10V) (S 3,3V na článek, zakázat omezení napájení)."
},
"SleepTemperature": {
"text2": ["Teplota v", "r. spánku"],
"desc": "Teplota v režimu spánku."
"text2": [
"Teplota",
"ve spánku"
],
"desc": "Teplota hrotu v režimu spánku."
},
"SleepTimeout": {
"text2": ["Čas do", "r. spánku"],
"desc": "Čas do režimu spánku (Minut | Sekund)."
"text2": [
"Čas",
"do spánku"
],
"desc": "\"Režim spánku\" naběhne v (s=sekundách | m=minutách)"
},
"ShutdownTimeout": {
"text2": ["Čas do", "vypnutí"],
"desc": "Čas do automatického vypnutí (Minut)."
"text2": [
"Čas do",
"vypnutí"
],
"desc": "Interval automatického vypnutí (m=minut)"
},
"MotionSensitivity": {
"text2": ["Citlivost", "det. pohybu"],
"desc": "Citlivost detekce pohybu (0=Vyp | 1=Min | ... | 9=Max)."
"text2": [
"Citlivost",
"na pohyb"
],
"desc": "0=vyp | 1=nejméně citlivé | ... | 9=nejvíce citlivé"
},
"TemperatureUnit": {
"text2": ["Jednotky", "teploty"],
"desc": "Jednotky měření teploty (C=Celsius | F=Fahrenheit)."
"text2": [
"Jednotka",
"teploty"
],
"desc": "C=Celsius | F=Fahrenheit"
},
"AdvancedIdle": {
"text2": ["Podrobnosti", "na vých. obr."],
"desc": "Zobrazit podrobnosti na výchozí obrazovce?"
"text2": [
"Podrobná obr.",
"nečinnosti"
],
"desc": "Zobrazit detailní informace malým fontem na obrazovce nečinnosti"
},
"DisplayRotation": {
"text2": ["Orientace", "obrazovky"],
"desc": "Orientace obrazovky (P=Pravák | L=Levák | A=Auto)."
"text2": [
"Orientace",
"obrazovky"
],
"desc": "P=pravák | L=levák | A=automaticky"
},
"BoostTemperature": {
"text2": ["Teplota v", "r. boost"],
"desc": "Teplota v režimu boost."
"text2": [
"Teplota",
"boostu"
],
"desc": "Teplota hrotu v \"režimu boost\""
},
"AutoStart": {
"text2": ["Automatický", "start"],
"desc": "Při startu ihned nahřát hrot? (O=Pryč | P=Pájení | S=Spát | M=Spát teplota místnosti)"
"text2": [
"Chování",
"při startu"
],
"desc": "V=vypnuto | P=pájecí teplota | S=spánková teplota | M=zahřát hrot po pohybu"
},
"CooldownBlink": {
"text2": ["Blikáni při", "chladnutí"],
"desc": "Blikání teploty při chladnutí, dokud je hrot horký?"
"text2": [
"Blikáni při",
"chladnutí"
],
"desc": "Blikat teplotou při chladnutí dokud je hrot horký"
},
"TemperatureCalibration": {
"text2": ["Kalibrovat", "teplotu?"],
"desc": "Kalibrace měření teploty."
"text2": [
"Kalibrovat",
"teplotu?"
],
"desc": "Začít kalibraci měření teploty hrotu"
},
"SettingsReset": {
"text2": ["Tovární", "nastavení?"],
"desc": "Obnovení továrního nastavení."
"text2": [
"Obnovit tovární",
"nastavení?"
],
"desc": "Obnovit všechna nastavení na výchozí"
},
"VoltageCalibration": {
"text2": ["Kalibrovat", "vstupní napětí?"],
"desc": "Kalibrace vstupního napětí. Tlačítky uprav, podržením potvrď."
"text2": [
"Kalibrovat",
"vstupní napětí?"
],
"desc": "Začít kalibraci vstupního napětí (dlouhý stisk pro ukončení)"
},
"AdvancedSoldering": {
"text2": ["Podrobnosti", "při pájení"],
"desc": "Zobrazit podrobnosti při pájení?"
"text2": [
"Podrobná obr.",
"pájení"
],
"desc": "Zobrazit detailní informace malým fontem na obrazovce pájení"
},
"ScrollingSpeed": {
"text2": ["Rychlost", "popisků"],
"desc": "Rychlost posuvu popisků podobných tomuto (P=Pomalu | R=Rychle)"
"text2": [
"Rychlost",
"posouvání"
],
"desc": "Rychlost posouvání popisků podobných tomuto (P=pomalu | R=rychle)"
},
"QCMaxVoltage": {
"text2": ["Výkon", "ve wattech"],
"desc": "Výkon použítého napájecího adaptéru ve wattech."
"text2": [
"Napětí",
"QC"
],
"desc": "Maximální napětí QC pro jednání páječkou"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"text2": [
"PD",
"timeout"
],
"desc": "Maximální prodleva při jednání PD ve 100ms krocích pro kompatibilitu s některými QC nabíječkami"
},
"PowerLimit": {
"text2": ["Omezení", "Výkonu"],
"desc": "Maximální příkon (Watty)"
"text2": [
"Omezení",
"Výkonu"
],
"desc": "Maximální příkon páječky (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Prohodit", "tl. +-?"],
"desc": "Prohodí tlačítka plus a minus pro změnu teploty hrotu."
"text2": [
"Prohodit",
"tl. +-?"
],
"desc": "Prohodit tlačítka pro změnu teploty"
},
"TempChangeShortStep": {
"text2": ["Krok teploty", "krátký?"],
"desc": "Velikost skoku při změně teploty krátkým stiskem tlačítka!"
"text2": [
"Krok teploty",
"krátký?"
],
"desc": "Velikost přídavku při změně teploty krátkým stiskem tlačítka"
},
"TempChangeLongStep": {
"text2": ["Krok teploty", "dlouhý?"],
"desc": "Velikost skoku při změně teploty dlouhým stiskem tlačítka!"
"text2": [
"Krok teploty",
"dlouhý?"
],
"desc": "Velikost přídavku při změně teploty dlouhým stiskem tlačítka"
},
"PowerPulsePower": {
"text2": ["Intenzita", "Výkon. pulsu"],
"desc": "Puls pro udržení zařízení v chodu (kvůli power bankám)."
"text2": [
"Napájecí",
"pulz"
],
"desc": "Intenzita výkonu pulzu pro udržení páječky vzhůru (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Vyp | 1=Min | ... | 9=Max)"
"text2": [
"Citlivost",
"Hall. čidla"
],
"desc": "Citlivost Hallova čidla pro detekci spánku (0=vypnuto | 1=nejméně citlivé | ... | 9=nejvíce citlivé)"
},
"LockingMode": {
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
"text2": [
"Povolit zamč.",
"tlačítek"
],
"desc": "Při pájení podržte obě tlačítka pro jejich zamčení (Z=zakázáno | B=pouze v režimu boost | U=úplné zamčení)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
"desc": "Minimum allowed voltage per cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
"text2": [
"Minimální",
"napětí"
],
"desc": "Minimální dovolené napětí po článku (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in main menu"
"text2": [
"Anim.",
"smyčka"
],
"desc": "Animovat ikony hlavního menu ve smyčce"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Pace of icon animations in menu (O=off | P=slow | M=medium | R=fast)"
"text2": [
"Anim.",
"rychlost"
],
"desc": "Tempo animace ikon v menu (O=vypnuto | P=pomalu | S=středně | R=rychle)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2,5s)"
"text2": [
"Prodleva",
"napáj. pulzu"
],
"desc": "Prodleva než je spuštěn pulz pro udržení páječky vzhůru pulzu pro udržení páječky vzhůru (x 2,5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
"desc": "Keep-awake-pulse duration (x 250ms)"
"text2": [
"Délka",
"napáj. pulzu"
],
"desc": "Délka pulzu pro udržení páječky vzhůru (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Řeč:", " CS Český"],
"desc": ""
"text2": [
"Jazyk:",
" CS Český"
],
"desc": "Současný jazyk firmwaru"
},
"Brightness": {
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
"text2": [
"Jas",
"obrazovky"
],
"desc": "Upravit jas OLED"
},
"ColourInversion": {
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
"text2": [
"Invertovat",
"obrazovku"
],
"desc": "Invertovat barvy na OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"text2": [
"Trvání",
"boot loga"
],
"desc": "Nastavení doby trvání boot loga (s=sekundy)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Ruhever-", "zögerung"],
"desc": "Dauer vor Übergang in den Ruhemodus (S=Sekunden | M=Minuten)"
"desc": "Dauer vor Übergang in den Ruhemodus (s=Sekunden | m=Minuten)"
},
"ShutdownTimeout": {
"text2": ["Abschalt-", "verzög."],
"desc": "Dauer vor automatischer Abschaltung (M=Minuten)"
"desc": "Dauer vor automatischer Abschaltung (m=Minuten)"
},
"MotionSensitivity": {
"text2": ["Bewegungs-", "empfindlichk."],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Startlogo-", "dauer"],
"desc": "Legt die Dauer der Anzeige des Startlogos fest (S=Sekunden)"
"desc": "Legt die Dauer der Anzeige des Startlogos fest (s=Sekunden)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Sleep", "timeout"],
"desc": "Interval before \"sleep mode\" kicks in (S=seconds | M=minutes)"
"desc": "Interval before \"sleep mode\" kicks in (s=seconds | m=minutes)"
},
"ShutdownTimeout": {
"text2": ["Shutdown", "timeout"],
"desc": "Interval before the iron shuts down (M=minutes)"
"desc": "Interval before the iron shuts down (m=minutes)"
},
"MotionSensitivity": {
"text2": ["Motion", "sensitivity"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Lepotilan", "viive"],
"desc": "\"Lepotilan\" ajastus (S=sekuntia | M=minuuttia)"
"desc": "\"Lepotilan\" ajastus (s=sekuntia | m=minuuttia)"
},
"ShutdownTimeout": {
"text2": ["Sammutus", "viive"],
"desc": "Automaattisen sammutuksen ajastus (M=minuuttia)"
"desc": "Automaattisen sammutuksen ajastus (m=minuuttia)"
},
"MotionSensitivity": {
"text2": ["Liikkeen", "herkkyys"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Délai", "veille"],
"desc": "Délai avant mise en veille (S=secondes | M=minutes)"
"desc": "Délai avant mise en veille (s=secondes | m=minutes)"
},
"ShutdownTimeout": {
"text2": ["Délai", "extinction"],
"desc": "Délai avant extinction (M=minutes)"
"desc": "Délai avant extinction (m=minutes)"
},
"MotionSensitivity": {
"text2": ["Sensibilité", "au mouvement"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,7 +77,7 @@
},
"SleepTimeout": {
"text2": ["Timer", "riposo"],
"desc": "Imposta il timer per entrare in modalità Riposo [minuti/secondi]"
"desc": "Imposta il timer per entrare in modalità Riposo [secondi/minuti]"
},
"ShutdownTimeout": {
"text2": ["Timer", "spegnimento"],

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機遅延",
"desc": "スタンバイモードに入るまでの待機時間 <S=秒 | M=分>"
"desc": "スタンバイモードに入るまでの待機時間 <s=秒 | m=分>"
},
"ShutdownTimeout": {
"text2": "自動オフ",
"desc": "自動電源オフまでの待機時間 <M=分>"
"desc": "自動電源オフまでの待機時間 <m=分>"
},
"MotionSensitivity": {
"text2": "動きの感度",
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -1,14 +1,17 @@
{
"languageCode": "NL",
"languageLocalName": "Nederlands",
"fonts": ["ascii_basic", "latin_extended"],
"fonts": [
"ascii_basic",
"latin_extended"
],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Zorg ervoor dat te punt op kamertemperatuur is voor je verder gaat!",
"SettingsResetWarning": "Weet je zeker dat je de fabrieksinstellingen terug wil zetten?",
"SettingsCalibrationWarning": "Zorg ervoor dat de punt op kamertemperatuur is voor je verder gaat!",
"SettingsResetWarning": "Weet je zeker dat je de fabrieksinstellingen terug wilt zetten?",
"UVLOWarningString": "DC Laag",
"UndervoltageString": "Onderspanning",
"InputVoltageString": "Input V: ",
"InputVoltageString": "Voeding V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Slaapstand...",
"SleepingTipAdvancedString": "Punt:",
@@ -16,29 +19,41 @@
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Instellingen", "zijn gereset!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"SettingsResetMessage": [
"Instellingen",
"zijn gereset!"
],
"NoAccelerometerMessage": [
"Geen accelerometer",
"gedetecteerd!"
],
"NoPowerDeliveryMessage": [
"Geen USB-PD IC ",
"gedetecteerd!"
],
"LockingKeysString": "GEBLOKKEERD",
"UnlockingKeysString": "GEDEBLOKKEERD",
"WarningKeysLockedString": "!GEBLOKKEERD!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
"WarningThermalRunaway": [
"Verwarming",
"Oncontroleerbaar"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "F",
"SettingStartSolderingChar": "T",
"SettingOffChar": "U",
"SettingSlowChar": "L",
"SettingMediumChar": "G",
"SettingFastChar": "S",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "G",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "K",
"SettingSensitivityOff": "O",
"SettingStartSleepOffChar": "B",
"SettingSensitivityOff": "U",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityMedium": "G",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "U",
"SettingLockBoostChar": "B",
@@ -46,162 +61,279 @@
},
"menuGroups": {
"PowerMenu": {
"text2": ["Power", "settings"],
"desc": "Power settings"
"text2": [
"Voeding",
"instellingen"
],
"desc": "Voeding instellingen"
},
"SolderingMenu": {
"text2": ["Soldeer", "Instellingen"],
"text2": [
"Soldeer",
"instellingen"
],
"desc": "Soldeer instellingen"
},
"PowerSavingMenu": {
"text2": ["Slaap", "Modes"],
"text2": [
"Slaap",
"Modes"
],
"desc": "Stroom besparings instellingen"
},
"UIMenu": {
"text2": ["Gebruikers-", "interface"],
"desc": "Gebruikers-interface instellingen"
"text2": [
"Weergave",
"instellingen"
],
"desc": "Weergave instellingen"
},
"AdvancedMenu": {
"text2": ["Geavanceerde", "Instellingen"],
"desc": "Geavanceerde Instellingen"
"text2": [
"Geavanceerde",
"instellingen"
],
"desc": "Geavanceerde instellingen"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Spannings-", "bron"],
"text2": [
"Spannings-",
"bron"
],
"desc": "Spanningsbron. Stelt drempelspanning in. (DC 10V) (S 3.3V per cel)"
},
"SleepTemperature": {
"text2": ["Slaap", "temp"],
"desc": "Temperatuur in slaapstand"
"text2": [
"Slaap",
"temp"
],
"desc": "Punt temperatuur in slaapstand"
},
"SleepTimeout": {
"text2": ["Slaap", "time-out"],
"desc": "Slaap time-out (Minuten | Seconden)"
"text2": [
"Slaap",
"time-out"
],
"desc": "Tijd voordat slaapmodus wordt geactiveerd (S=seconden | M=minuten)"
},
"ShutdownTimeout": {
"text2": ["Uitschakel", "time-out"],
"desc": "Automatisch afsluiten time-out (Minuten)"
"text2": [
"Uitschakel",
"time-out"
],
"desc": "Tijd voordat soldeerbout automatisch uitschakelt (M=minuten)"
},
"MotionSensitivity": {
"text2": ["Bewegings-", "gevoeligheid"],
"text2": [
"Bewegings-",
"gevoeligheid"
],
"desc": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"text2": ["Temperatuur", "eenheid"],
"text2": [
"Temperatuur",
"eenheid"
],
"desc": "Temperatuureenheid (C=Celsius | F=Fahrenheit)"
},
"AdvancedIdle": {
"text2": ["Gedetailleerd", "startscherm"],
"desc": "Gedetailleerde informatie weergeven in een kleiner lettertype op het startscherm."
"text2": [
"Gedetailleerd",
"startscherm"
],
"desc": "Gedetailleerde informatie weergeven in een kleine letters op het startscherm."
},
"DisplayRotation": {
"text2": ["Scherm-", "oriëntatie"],
"text2": [
"Scherm-",
"oriëntatie"
],
"desc": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"BoostTemperature": {
"text2": ["Boost", "temp"],
"desc": "Temperatuur in boostmode"
"text2": [
"Boost",
"temp"
],
"desc": "Punt temperatuur in boostmode"
},
"AutoStart": {
"text2": ["Auto", "start"],
"desc": "Breng de soldeerbout direct op temperatuur bij het opstarten. (F=Uit | T=Soldeertemperatuur | S=Slaapstand-temperatuur | K=Slaapstand kamertemperatuur)"
"text2": [
"Opstart",
"gedrag"
],
"desc": "Gedrag bij opstarten (U=Uit | G=Gebruiks-temperatuur | S=Slaapstand-temperatuur tot beweging | B=Uit tot beweging)"
},
"CooldownBlink": {
"text2": ["Afkoel", "flikker"],
"desc": "Temperatuur laten flikkeren in het hoofdmenu als de soldeerpunt aan het afkoelen is."
"text2": [
"Afkoel",
"flitsen"
],
"desc": "Temperatuur laten flitsen in het hoofdmenu zo lang de punt nog warm is"
},
"TemperatureCalibration": {
"text2": ["Calibreer", "temperatuur?"],
"desc": "Temperatuursafwijking van de soldeerpunt calibreren."
"text2": [
"Kalibreer",
"temperatuur?"
],
"desc": "Start punt temperatuur-kalibratie"
},
"SettingsReset": {
"text2": ["Instellingen", "resetten?"],
"desc": "Alle instellingen terugzetten."
"text2": [
"Instellingen",
"resetten?"
],
"desc": "Alle instellingen terugzetten naar fabrieksinstellingen"
},
"VoltageCalibration": {
"text2": ["Calibreer", "input-voltage?"],
"desc": "VIN Calibreren. (druk lang om te sluiten)."
"text2": [
"Kalibreer",
"input-voltage?"
],
"desc": "Start VIN Kalibratie (druk lang om te sluiten)"
},
"AdvancedSoldering": {
"text2": ["Gedetailleerd", "soldeerscherm"],
"desc": "Gedetailleerde informatie weergeven in een kleiner lettertype op het soldeerscherm."
"text2": [
"Gedetailleerd",
"soldeerscherm"
],
"desc": "Gedetailleerde informatie weergeven in een kleiner lettertype op het soldeerscherm"
},
"ScrollingSpeed": {
"text2": ["Scroll", "snelheid"],
"desc": "Snelheid waarmee de tekst scrolt."
"text2": [
"Scroll",
"snelheid"
],
"desc": "Snelheid waarmee de tekst scrolt (S=Snel | L=Langzaam)"
},
"QCMaxVoltage": {
"text2": ["Power", "Wattage"],
"desc": "Wattage van de gebruikte voeding"
"text2": [
"QC",
"Voltage"
],
"desc": "Maximaal QC voltage dat gevraagd mag worden"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"text2": [
"PD",
"timeout"
],
"desc": "PD afstemmingsduur in stappen van 100ms (voor compatibiliteit met sommige QC laders)"
},
"PowerLimit": {
"text2": ["Vermogen", "limiet"],
"desc": "Maximaal vermogen (Watts)"
"text2": [
"Vermogen",
"limiet"
],
"desc": "Maximaal vermogen (W=Watt)"
},
"ReverseButtonTempChange": {
"text2": ["Draai", "+ - knoppen om"],
"desc": "Keer de +- knoppen om de termperatuur van de punt te regelen om."
"text2": [
"Draai",
"+ - knoppen om"
],
"desc": "Keer de +- knoppen van de temperatuurregeling om"
},
"TempChangeShortStep": {
"text2": ["Temp veranderen", "kort"],
"text2": [
"Temp veranderen",
"kort"
],
"desc": "Temperatuur verandering bij kort drukken"
},
"TempChangeLongStep": {
"text2": ["Temp veranderen", "lang"],
"text2": [
"Temp veranderen",
"lang"
],
"desc": "Temperatuur verandering bij lang drukken"
},
"PowerPulsePower": {
"text2": ["Vermogen", "Puls W"],
"desc": "Vermogen van puls om soldeerbout aan te houden"
"text2": [
"Stroom",
"Puls"
],
"desc": "Intensiteit van stroompuls om voeding aan te houden (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
"text2": [
"Hall sensor",
"gevoeligheid"
],
"desc": "Gevoeligheid van de Hall effect sensor om naar slaapmodus te gaan (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"LockingMode": {
"text2": ["Blokkeer", "knoppen"],
"desc": "Tijdens solderen lang op beide knoppen drukken, blokkeert ze. (U=Uit | B=Alleen boost | V=Volledig blokkeren)"
"text2": [
"Knopblokkering",
"inschakelen"
],
"desc": "Tijdens solderen lang op beide knoppen drukken blokkeert de knoppen (U=Uit | B=Alleen boost mode | V=Volledig blokkeren)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
"desc": "Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum toegestaan voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in main menu"
"text2": [
"Animatie",
"herhaling"
],
"desc": "Herhaal icoon animaties in hoofdmenu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
"text2": [
"Animatie",
"snelheid"
],
"desc": "Tempo van de icoon animaties in het hoofdmenu (U=uit | L=langzaam | G=gemiddeld | S=snel)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
"text2": [
"Stroompuls",
"interval"
],
"desc": "Tijdsduur tussen voeding wakker-blijf-pulsen (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
"desc": "Keep-awake-pulse duration (x 250ms)"
"text2": [
"Power pulse",
"duur"
],
"desc": "Duur van voeding-wakker-blijf-pulsen (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Spraak :", " NL Nederlands"],
"desc": ""
"text2": [
"Taal:",
" NL Nederlands"
],
"desc": "Huidige firmware taal"
},
"Brightness": {
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
"text2": [
"Scherm",
"helderheid"
],
"desc": "Pas helderheid van het OLED scherm aan"
},
"ColourInversion": {
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
"text2": [
"Inverteer",
"scherm"
],
"desc": "Inverteer de kleuren van het OLED scherm"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"text2": [
"Opstart logo",
"duur"
],
"desc": "Stelt de weergaveduur van het opstartlogo in (s=seconden)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -200,8 +200,8 @@
"desc": "Odwrócenie kolorów wyświetlacza OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"text2": ["Długość wyś.", "loga"],
"desc": "Ustawia czas wyświetlania loga podczas uruchamiania (s=sekund)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Expirare", "repaus"],
"desc": "Interval înainte de lansarea \"modului de repaus\" în (S=secunde | M=minute)"
"desc": "Interval înainte de lansarea \"modului de repaus\" în (s=secunde | m=minute)"
},
"ShutdownTimeout": {
"text2": ["Expirare", "oprire"],
"desc": "Interval înainte ca letconul să se oprească (M=minute)"
"desc": "Interval înainte ca letconul să se oprească (m=minute)"
},
"MotionSensitivity": {
"text2": ["Sensibilitate", "la mişcare"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -132,8 +132,8 @@
"desc": "Скорость прокрутки текста (М=медленно | Б=быстро)"
},
"QCMaxVoltage": {
"text2": ["Максимальный", "вольтаж для QC"],
"desc": "Максимальный поддерживаемый QC вольтаж используемого источника питания"
"text2": ["Ограничение", "напряжения QC"],
"desc": "Максимальное напряжение для согласования с QC источником питания"
},
"PDNegTimeout": {
"text2": ["PD", "тайм-аут"],
@@ -196,12 +196,12 @@
"desc": "Настройки контраста/яркости OLED экрана"
},
"ColourInversion": {
"text2": ["Инверт", "экрана"],
"text2": ["Инверсия", "экрана"],
"desc": "Инвертировать цвета на OLED экране"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"text2": ["Длительность", "показа логотипа"],
"desc": "Длительность отображения логотипа (в секундах)"
}
}
}

View File

@@ -77,7 +77,7 @@
},
"SleepTimeout": {
"text2": ["Pokojový", "režim po"],
"desc": "Pokojový režim po (S=sekundách | M=minútach)"
"desc": "Pokojový režim po (s=sekundách | m=minútach)"
},
"ShutdownTimeout": {
"text2": ["Vypnutie", "po"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Čas do", "spanja"],
"desc": "Čas pred spanjem (S=sekunde | M=minute)"
"desc": "Čas pred spanjem (s=sekunde | m=minute)"
},
"ShutdownTimeout": {
"text2": ["Čas do", "izklopa"],
"desc": "Čas do izklopa (M=minute)"
"desc": "Čas do izklopa (m=minute)"
},
"MotionSensitivity": {
"text2": ["Občutljivost", "premikanja"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Време до", "спавања"],
"desc": "Време мировања након кога лемилица спушта температуру. (M=минути | S=секунде)"
"desc": "Време мировања након кога лемилица спушта температуру. (m=минути | s=секунде)"
},
"ShutdownTimeout": {
"text2": ["Време до", "гашења"],
"desc": "Време мировања након кога се лемилица гаси. (M=минути)"
"desc": "Време мировања након кога се лемилица гаси. (m=минути)"
},
"MotionSensitivity": {
"text2": ["Осетљивост", "на покрет"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Vreme do", "spavanja"],
"desc": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (M=minuti | S=sekunde)"
"desc": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (m=minuti | s=sekunde)"
},
"ShutdownTimeout": {
"text2": ["Vreme do", "gašenja"],
"desc": "Vreme mirovanja nakon koga se lemilica gasi. (M=minuti)"
"desc": "Vreme mirovanja nakon koga se lemilica gasi. (m=minuti)"
},
"MotionSensitivity": {
"text2": ["Osetljivost", "na pokret"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,7 +77,7 @@
},
"SleepTimeout": {
"text2": ["Vilo-", "timeout"],
"desc": "Vilo-timeout (M=Minuter | S=Sekunder)"
"desc": "Vilo-timeout (m=Minuter | s=Sekunder)"
},
"ShutdownTimeout": {
"text2": ["Avstängn.", "timeout"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Ngu", "sau"],
"desc": "- thoi gian truoc khi \"Che đo ngu\" bat đau (S=giây | M=phút)"
"desc": "- thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
},
"ShutdownTimeout": {
"text2": ["Tat", "sau"],
"desc": "- khoang thoi gian truoc khi tay hàn tat (M=phút)"
"desc": "- khoang thoi gian truoc khi tay hàn tat (m=phút)"
},
"MotionSensitivity": {
"text2": ["Cam bien", "cu đong"],
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前嘅閒置等候時間 <S=秒 | M=分鐘>"
"desc": "自動進入待機模式前嘅閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動熄機",
"desc": "自動熄機前嘅閒置等候時間 <M=分鐘>"
"desc": "自動熄機前嘅閒置等候時間 <m=分鐘>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待机超时",
"desc": "自动进入待机模式前的等候时间 <S=秒 | M=分钟>"
"desc": "自动进入待机模式前的等候时间 <s=秒 | m=分钟>"
},
"ShutdownTimeout": {
"text2": "自动关机",
"desc": "自动关机前的等候时间 <M=分钟>"
"desc": "自动关机前的等候时间 <m=分钟>"
},
"MotionSensitivity": {
"text2": "动作灵敏度",
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -77,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前的閒置等候時間 <S=秒 | M=分鐘>"
"desc": "自動進入待機模式前的閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動關機",
"desc": "自動關機前的閒置等候時間 <M=分鐘>"
"desc": "自動關機前的閒置等候時間 <m=分鐘>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
@@ -201,7 +201,7 @@
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (S=seconds)"
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -42,8 +42,9 @@
#define SDA_Pin GPIO_PIN_7
#define SDA_GPIO_Port GPIOB
#endif
#ifdef MODEL_TS80
// TS80 pin map
#if defined(MODEL_TS80) + defined(MODEL_TS80P) > 0
// TS80 & TS80P pin map
#define KEY_B_Pin GPIO_PIN_0
#define KEY_B_GPIO_Port GPIOB
#define TMP36_INPUT_Pin GPIO_PIN_4
@@ -80,42 +81,9 @@
#define SDA2_GPIO_Port GPIOA
#endif
#ifdef MODEL_TS80P
// TS80P pin map
#define KEY_B_Pin GPIO_PIN_0
#define KEY_B_GPIO_Port GPIOB
#define TMP36_INPUT_Pin GPIO_PIN_4
#define TMP36_INPUT_GPIO_Port GPIOA
#define TMP36_ADC1_CHANNEL ADC_CHANNEL_4
#define TMP36_ADC2_CHANNEL ADC_CHANNEL_4
#define TIP_TEMP_Pin GPIO_PIN_3
#define TIP_TEMP_GPIO_Port GPIOA
#define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_3
#define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_3
#define VIN_Pin GPIO_PIN_2
#define VIN_GPIO_Port GPIOA
#define VIN_ADC1_CHANNEL ADC_CHANNEL_2
#define VIN_ADC2_CHANNEL ADC_CHANNEL_2
#define OLED_RESET_Pin GPIO_PIN_15
#define OLED_RESET_GPIO_Port GPIOA
#define KEY_A_Pin GPIO_PIN_1
#define KEY_A_GPIO_Port GPIOB
#define INT_Orientation_Pin GPIO_PIN_4
#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
#define SCL2_Pin GPIO_PIN_5
#define SCL2_GPIO_Port GPIOA
#define SDA2_Pin GPIO_PIN_1
#define SDA2_GPIO_Port GPIOA
#define INT_PD_Pin GPIO_PIN_9
#define INT_PD_GPIO_Port GPIOA

View File

@@ -22,11 +22,7 @@ void power_check() {
}
bool getIsPoweredByDCIN() {
#ifdef MODEL_TS80
return false;
#endif
#ifdef MODEL_TS80P
#if defined(MODEL_TS80) + defined(MODEL_TS80P) > 0
return false;
#endif

View File

@@ -132,18 +132,8 @@
#define ACCEL_MSA
#define ACCEL_BMA
#ifdef MODEL_TS100
#define SOLDERING_TEMP 320 // Default soldering temp is 320.0 °C
#define VOLTAGE_DIV 467 // 467 - Default divider from schematic
#define CALIBRATION_OFFSET 900 // 900 - Default adc offset in uV
#define MIN_CALIBRATION_OFFSET 100 // Min value for calibration
#define PID_POWER_LIMIT 70 // Sets the max pwm power limit
#define POWER_LIMIT 0 // 0 watts default limit
#define MAX_POWER_LIMIT 70 //
#define POWER_LIMIT_STEPS 5 //
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100 //
#define TEMP_uV_LOOKUP_HAKKO //
#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate
#define SOLDERING_TEMP 320 // Default soldering temp is 320.0 °C
#define PID_TIM_HZ (8) // Tick rate of the PID loop
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
@@ -151,85 +141,67 @@
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#ifdef MODEL_TS100
#define VOLTAGE_DIV 467 // 467 - Default divider from schematic
#define CALIBRATION_OFFSET 900 // 900 - Default adc offset in uV
#define PID_POWER_LIMIT 70 // Sets the max pwm power limit
#define POWER_LIMIT 0 // 0 watts default limit
#define MAX_POWER_LIMIT 70
#define POWER_LIMIT_STEPS 5
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100
#define TEMP_uV_LOOKUP_HAKKO
#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate
#define HARDWARE_MAX_WATTAGE_X10 750
#define TIP_THERMAL_MASS 65 // X10 watts to raise 1 deg C in 1 second
#define TIP_RESISTANCE 75 // x10 ohms, 7.5 typical for ts100 tips
#define POW_DC
#define POW_PD 0
#define TEMP_TMP36
#endif
#ifdef MODEL_TS80
#define SOLDERING_TEMP 320 // Default soldering temp is 320.0 °C
#define VOLTAGE_DIV 780 // Default divider from schematic
#define PID_POWER_LIMIT 24 // Sets the max pwm power limit
#define CALIBRATION_OFFSET 900 // the adc offset in uV
#define MIN_CALIBRATION_OFFSET 100 // Min value for calibration
#define POWER_LIMIT 24 // 24 watts default power limit
#define MAX_POWER_LIMIT 40 //
#define POWER_LIMIT_STEPS 2 //
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS80 //
#define TEMP_uV_LOOKUP_TS80 //
#if defined(MODEL_TS80) + defined(MODEL_TS80P) > 0
#define MAX_POWER_LIMIT 40
#define POWER_LIMIT_STEPS 2
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS80
#define TEMP_uV_LOOKUP_TS80
#define USB_PD_VMAX 12 // Maximum voltage for PD to negotiate
#define PID_TIM_HZ (8) // Tick rate of the PID loop
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
#define MIN_TEMP_C 10 // Min soldering temp selectable °C
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define POW_QC
#define POW_PD 0
#define TEMP_TMP36
#define TIP_THERMAL_MASS 40
#define TIP_RESISTANCE 45 // x10 ohms, 4.5 typical for ts80 tips
#define LIS_ORI_FLIP
#define OLED_FLIP
#endif
#ifdef MODEL_TS80
#define VOLTAGE_DIV 780 // Default divider from schematic
#define CALIBRATION_OFFSET 900 // the adc offset in uV
#define PID_POWER_LIMIT 24 // Sets the max pwm power limit
#define POWER_LIMIT 24 // 24 watts default power limit
#define HARDWARE_MAX_WATTAGE_X10 180
#define POW_QC
#define POW_PD 0
#define TEMP_TMP36
#endif
#ifdef MODEL_TS80P
#define SOLDERING_TEMP 320 // Default soldering temp is 320.0 °C
#define VOLTAGE_DIV 650 // Default for TS80P with slightly different resistors
#define PID_POWER_LIMIT 35 // Sets the max pwm power limit
#define CALIBRATION_OFFSET 1500 // the adc offset in uV
#define MIN_CALIBRATION_OFFSET 100 // Min value for calibration
#define PID_POWER_LIMIT 35 // Sets the max pwm power limit
#define POWER_LIMIT 30 // 30 watts default power limit
#define MAX_POWER_LIMIT 40 //
#define POWER_LIMIT_STEPS 2 //
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS80 //
#define TEMP_uV_LOOKUP_TS80 //
#define USB_PD_VMAX 12 // Maximum voltage for PD to negotiate
#define PID_TIM_HZ (8) // Tick rate of the PID loop
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
#define MIN_TEMP_C 10 // Min soldering temp selectable °C
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define HARDWARE_MAX_WATTAGE_X10 300
#define POW_PD 1
#define POW_QC 1
#define TEMP_NTC
#define I2C_SOFT
#define LIS_ORI_FLIP
#define SC7_ORI_FLIP
#define OLED_FLIP
#endif
#ifdef MODEL_TS100
#define HARDWARE_MAX_WATTAGE_X10 750
#define TIP_THERMAL_MASS 65 // X10 watts to raise 1 deg C in 1 second
#define TIP_RESISTANCE 75 // x10 ohms, 7.5 typical for ts100 tips
#endif
#ifdef MODEL_TS80
#define HARDWARE_MAX_WATTAGE_X10 180
#define TIP_THERMAL_MASS 40
#define TIP_RESISTANCE 45 // x10 ohms, 4.5 typical for ts80 tips
#endif
#ifdef MODEL_TS80P
#define HARDWARE_MAX_WATTAGE_X10 300
#define TIP_THERMAL_MASS 40
#define TIP_RESISTANCE 45 // x10 ohms, 4.5 typical for ts80 tips
#endif
#endif

View File

@@ -124,7 +124,7 @@
#define POWER_LIMIT_STEPS 5 //
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_PINECIL // Uses TS100 resistors
#define TEMP_uV_LOOKUP_HAKKO // Use Hakko lookup table
#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate
#define USB_PD_VMAX 21 // Maximum voltage for PD to negotiate
#define PID_TIM_HZ (8) // Tick rate of the PID loop
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
@@ -153,3 +153,5 @@
#endif
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024))
#define HAS_POWER_DEBUG_MENU

View File

@@ -5,7 +5,7 @@
* Author: Ralim
*/
#include "FreeRTOS.h"
#include "gui.hpp"
#include "settingsGUI.hpp"
#include "task.h"
#include <Buttons.hpp>
uint32_t lastButtonTime = 0;

View File

@@ -124,7 +124,7 @@ const uint8_t WarningBlock24[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x0C, 0x02, 0xF1, 0xF1, 0xF1, 0x02, 0x0C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xC0, 0xB0, 0x8C, 0x83, 0x80, 0x80, 0x80, 0x80, 0xB3, 0xB3, 0xB3, 0x80, 0x80, 0x80, 0x80, 0x83, 0x8C, 0xB0, 0xC0, 0x00, 0x00};
#if defined(MODEL_TS100) + defined(MODEL_Pinecil) >= 1
#if defined(MODEL_TS100) + defined(MODEL_Pinecil) > 0
const uint8_t buttonA[] = {
// width = 42
// height = 16
@@ -156,7 +156,7 @@ const uint8_t disconnectedTip[] = {
0x04, 0x31, 0x38, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x39, 0x30, 0x01, 0x03, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x09, 0x0f, 0x00};
#endif
#if defined(MODEL_TS80) + defined(MODEL_TS80P) >= 1
#if defined(MODEL_TS80) + defined(MODEL_TS80P) > 0
const uint8_t buttonA[] = {
// width = 42
// height = 16

View File

@@ -5,11 +5,16 @@
* Author: Ralim
*/
#include "LIS2DH12_defines.hpp"
#include <SC7A20.hpp>
#include <SC7A20_defines.h>
#include <array>
uint8_t SC7A20::activeAddress;
bool SC7A20::isInImitationMode;
/*
- This little accelerometer seems to come in two forms, its "normal" setup, and then one where it imitates the LIS2DH12
- This can be detected by checking the whoami registers
*/
bool SC7A20::detect() {
if (FRToSI2C::probe(SC7A20_ADDRESS)) {
@@ -17,7 +22,7 @@ bool SC7A20::detect() {
uint8_t id = 0;
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS, SC7A20_WHO_AMI_I, &id, 1)) {
if (id == SC7A20_WHO_AM_I_VALUE) {
activeAddress = SC7A20_ADDRESS;
isInImitationMode = false;
return true;
}
}
@@ -27,7 +32,7 @@ bool SC7A20::detect() {
uint8_t id = 0;
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS2, SC7A20_WHO_AMI_I, &id, 1)) {
if (id == SC7A20_WHO_AM_I_VALUE) {
activeAddress = SC7A20_ADDRESS2;
isInImitationMode = true;
return true;
}
}
@@ -54,6 +59,20 @@ static const FRToSI2C::I2C_REG i2c_registers[] = {
//
};
static const FRToSI2C::I2C_REG i2c_registers_alt[] = {{LIS_CTRL_REG1, 0b00110111, 0}, // 200Hz XYZ
{LIS_CTRL_REG2, 0b00000000, 0}, //
{LIS_CTRL_REG3, 0b01100000, 0}, // Setup interrupt pins
{LIS_CTRL_REG4, 0b00001000, 0}, // Block update mode off, HR on
{LIS_CTRL_REG5, 0b00000010, 0}, //
{LIS_CTRL_REG6, 0b01100010, 0},
// Basically setup the unit to run, and enable 4D orientation detection
{LIS_INT2_CFG, 0b01111110, 0}, // setup for movement detection
{LIS_INT2_THS, 0x28, 0}, //
{LIS_INT2_DURATION, 64, 0}, //
{LIS_INT1_CFG, 0b01111110, 0}, //
{LIS_INT1_THS, 0x28, 0}, //
{LIS_INT1_DURATION, 64, 0}};
bool SC7A20::initalize() {
// Setup acceleration readings
// 2G range
@@ -63,15 +82,18 @@ bool SC7A20::initalize() {
// Orientation recognition in symmetrical mode
// Hysteresis is set to ~ 16 counts
// Theta blocking is set to 0b10
return FRToSI2C::writeRegistersBulk(activeAddress, i2c_registers, sizeof(i2c_registers) / sizeof(i2c_registers[0]));
if (isInImitationMode) {
return FRToSI2C::writeRegistersBulk(SC7A20_ADDRESS2, i2c_registers_alt, sizeof(i2c_registers_alt) / sizeof(i2c_registers_alt[0]));
} else {
return FRToSI2C::writeRegistersBulk(SC7A20_ADDRESS, i2c_registers, sizeof(i2c_registers) / sizeof(i2c_registers[0]));
}
}
void SC7A20::getAxisReadings(int16_t &x, int16_t &y, int16_t &z) {
// We can tell the accelerometer to output in LE mode which makes this simple
uint16_t sensorData[3] = {0, 0, 0};
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS, SC7A20_OUT_X_L, (uint8_t *)sensorData, 6) == false) {
if (FRToSI2C::Mem_Read(isInImitationMode ? SC7A20_ADDRESS2 : SC7A20_ADDRESS, isInImitationMode ? SC7A20_OUT_X_L_ALT : SC7A20_OUT_X_L, (uint8_t *)sensorData, 6) == false) {
x = y = z = 0;
return;
}

View File

@@ -17,7 +17,7 @@ public:
static bool initalize();
// 1 = rh, 2,=lh, 8=flat
static Orientation getOrientation() {
uint8_t val = ((FRToSI2C::I2C_RegisterRead(activeAddress, SC7A20_INT2_SOURCE) >> 2) - 1);
uint8_t val = ((FRToSI2C::I2C_RegisterRead(isInImitationMode ? SC7A20_ADDRESS2 : SC7A20_ADDRESS, SC7A20_INT2_SOURCE) >> 2) - 1);
if (val == 1) {
#ifdef SC7_ORI_FLIP
return Orientation::ORIENTATION_RIGHT_HAND;
@@ -36,7 +36,7 @@ public:
static void getAxisReadings(int16_t &x, int16_t &y, int16_t &z);
private:
static uint8_t activeAddress;
static bool isInImitationMode;
};
#endif /* CORE_DRIVERS_BMA223_HPP_ */

View File

@@ -23,6 +23,7 @@
#define SC7A20_REFERENCE 0x26
#define SC7A20_STATUS_REG 0x27
#define SC7A20_OUT_X_L 0x28
#define SC7A20_OUT_X_L_ALT 0xA8
#define SC7A20_OUT_X_H 0x29
#define SC7A20_OUT_Y_L 0x2A
#define SC7A20_OUT_Y_H 0x2B

View File

@@ -65,12 +65,25 @@ bool USBPowerDelivery::fusbPresent() {
return detectionState == 1;
}
bool USBPowerDelivery::isVBUSConnected() { return fusb.isVBUSConnected(); }
void USBPowerDelivery::triggerRenegotiation() {
void USBPowerDelivery::triggerRenegotiation() {}
bool USBPowerDelivery::isVBUSConnected() {
static uint8_t state = 0;
if (state) {
return state == 1;
}
bool pdbs_dpm_evaluate_capability(const pd_msg *capabilities, pd_msg *request) {
if (fusb.isVBUSConnected()) {
state = 1;
return true;
} else {
state = 2;
return false;
}
}
pd_msg lastCapabilities;
pd_msg *USBPowerDelivery::getLastSeenCapabilities() { return &lastCapabilities; }
bool pdbs_dpm_evaluate_capability(const pd_msg *capabilities, pd_msg *request) {
memcpy(&lastCapabilities, capabilities, sizeof(pd_msg));
/* Get the number of PDOs */
uint8_t numobj = PD_NUMOBJ_GET(capabilities);

View File

@@ -2,6 +2,7 @@
#ifndef DRIVERS_USBPD_H_
#define DRIVERS_USBPD_H_
#include "configuration.h"
#include "pdb_msg.h"
#include <stdbool.h>
#include <stdint.h>
@@ -20,6 +21,8 @@ public:
static uint8_t getStateNumber(); // Debugging - Get the internal state number
static bool isVBUSConnected(); // Is the VBus pin connected on the FUSB302
static void triggerRenegotiation(); // Trigger a restart of voltage selection
static bool isVBUSConnected(); // Is the VBus pin connected on the FUSB302
static pd_msg *getLastSeenCapabilities(); // returns pointer to the last seen capabilities from the powersource
private:
//
static int detectionState;

View File

@@ -14,6 +14,7 @@ extern const bool HasFahrenheit;
extern const char *SymbolPlus;
extern const char *SymbolMinus;
extern const char *SymbolSpace;
extern const char *SymbolAmps;
extern const char *SymbolDot;
extern const char *SymbolDegC;
extern const char *SymbolDegF;
@@ -24,6 +25,10 @@ extern const char *SymbolVolts;
extern const char *SymbolDC;
extern const char *SymbolCellCount;
extern const char *SymbolVersionNumber;
extern const char *SymbolPDDebug;
extern const char *SymbolState;
extern const char *SymbolNoVBus;
extern const char *SymbolVBus;
extern const char *DebugMenu[];
extern const char *AccelTypeNames[];

View File

@@ -1,5 +1,5 @@
/*
* gui.h
* settingsGUI.h
*
* Created on: 3Sep.,2017
* Author: Ben V. Brown

View File

@@ -3,7 +3,7 @@
#include "Translation_multi.h"
#include "brieflz.h"
#include "configuration.h"
#include "gui.hpp"
#include "settingsGUI.hpp"
const TranslationIndexTable *Tr = nullptr;
const char *TranslationStrings = nullptr;

View File

@@ -1,11 +1,11 @@
/*
* gui.cpp
* settingsGUI.cpp
*
* Created on: 3Sep.,2017
* Author: Ben V. Brown
*/
#include "gui.hpp"
#include "settingsGUI.hpp"
#include "Buttons.hpp"
#include "ScrollMessage.hpp"
#include "TipThermoModel.h"

View File

@@ -11,21 +11,22 @@ extern "C" {
#include "Buttons.hpp"
#include "I2CBB.hpp"
#include "LIS2DH12.hpp"
#include "MMA8652FC.hpp"
#include "OLED.hpp"
#include "Settings.h"
#include "TipThermoModel.h"
#include "Translation.h"
#include "cmsis_os.h"
#include "configuration.h"
#include "history.hpp"
#include "main.hpp"
#include "power.hpp"
#include "settingsGUI.hpp"
#include "stdlib.h"
#include "string.h"
#include <MMA8652FC.hpp>
#include <gui.hpp>
#include <history.hpp>
#include <power.hpp>
#if POW_PD
#include "USBPD.h"
#include "pd.h"
#endif
// File local variables
extern uint32_t currentTempTargetDegC;
@@ -796,6 +797,82 @@ void showDebugMenu(void) {
}
}
#if POW_PD
#ifdef HAS_POWER_DEBUG_MENU
static void showPDDebug(void) {
// Print out the USB-PD state
// Basically this is like the Debug menu, but instead we want to print out the PD status
uint8_t screen = 0;
ButtonState b;
for (;;) {
OLED::clearScreen(); // Ensure the buffer starts clean
OLED::setCursor(0, 0); // Position the cursor at the 0,0 (top left)
OLED::print(SymbolPDDebug, FontStyle::SMALL); // Print Title
OLED::setCursor(0, 8); // second line
if (screen == 0) {
// Print the PD state machine
OLED::print(SymbolState, FontStyle::SMALL);
OLED::print(SymbolSpace, FontStyle::SMALL);
OLED::printNumber(USBPowerDelivery::getStateNumber(), 2, FontStyle::SMALL, true);
OLED::print(SymbolSpace, FontStyle::SMALL);
// Also print vbus mod status
if (USBPowerDelivery::fusbPresent()) {
if (USBPowerDelivery::negotiationComplete() || (xTaskGetTickCount() > (TICKS_SECOND * 10))) {
if (!USBPowerDelivery::isVBUSConnected()) {
OLED::print(SymbolNoVBus, FontStyle::SMALL);
} else {
OLED::print(SymbolVBus, FontStyle::SMALL);
}
}
}
} else {
// Print out the Proposed power options one by one
auto lastCaps = USBPowerDelivery::getLastSeenCapabilities();
uint8_t numobj = PD_NUMOBJ_GET(lastCaps);
if ((screen - 1) < numobj) {
int voltage_mv = 0;
int min_voltage = 0;
int current_a_x100 = 0;
if ((lastCaps->obj[screen - 1] & PD_PDO_TYPE) == PD_PDO_TYPE_FIXED) {
voltage_mv = PD_PDV2MV(PD_PDO_SRC_FIXED_VOLTAGE_GET(lastCaps->obj[screen - 1])); // voltage in mV units
current_a_x100 = PD_PDO_SRC_FIXED_CURRENT_GET(lastCaps->obj[screen - 1]); // current in 10mA units
} else {
voltage_mv = PD_PAV2MV(PD_APDO_PPS_MAX_VOLTAGE_GET(lastCaps->obj[screen - 1]));
min_voltage = PD_PAV2MV(PD_APDO_PPS_MIN_VOLTAGE_GET(lastCaps->obj[screen - 1]));
current_a_x100 = PD_PAI2CA(PD_APDO_PPS_CURRENT_GET(lastCaps->obj[screen - 1])); // max current in 10mA units
}
// print out this entry of the proposal
OLED::printNumber(screen, 1, FontStyle::SMALL, true); // print the entry number
OLED::print(SymbolSpace, FontStyle::SMALL);
if (min_voltage > 0) {
OLED::printNumber(min_voltage / 1000, 2, FontStyle::SMALL, true); // print the voltage
OLED::print(SymbolMinus, FontStyle::SMALL);
}
OLED::printNumber(voltage_mv / 1000, 2, FontStyle::SMALL, true); // print the voltage
OLED::print(SymbolVolts, FontStyle::SMALL);
OLED::print(SymbolSpace, FontStyle::SMALL);
OLED::printNumber(current_a_x100 / 100, 2, FontStyle::SMALL, true); // print the current in 0.1A res
OLED::print(SymbolDot, FontStyle::SMALL);
OLED::printNumber(current_a_x100 % 100, 2, FontStyle::SMALL, true); // print the current in 0.1A res
OLED::print(SymbolAmps, FontStyle::SMALL);
} else {
screen = 0;
}
}
OLED::refresh();
b = getButtonState();
if (b == BUTTON_B_SHORT)
return;
else if (b == BUTTON_F_SHORT) {
screen++;
}
GUIDelay();
}
}
#endif
#endif
void showWarnings() {
// Display alert if settings were reset
if (settingsWereReset) {
@@ -863,8 +940,16 @@ void startGUITask(void const *argument) {
getTipRawTemp(1); // reset filter
OLED::setRotation(getSettingValue(SettingsOptions::OrientationMode) & 1);
// If the front button is held down, on supported devices, show PD debugging metrics
#if POW_PD
#ifdef HAS_POWER_DEBUG_MENU
if (getButtonA()) {
showPDDebug();
}
#endif
#endif
BootLogo::handleShowingLogo((uint8_t *)FLASH_LOGOADDR);
// BootLogo::handleShowingLogo((uint8_t *)FLASH_LOGOADDR);
showWarnings();
if (getSettingValue(SettingsOptions::AutoStartMode)) {
// jump directly to the autostart mode

View File

@@ -313,7 +313,7 @@ $(shell find $(DEVICE_BSP_DIR) -type d \( $(EXCLUDED_DIRS) \) -prune -false -o
$(shell find $(SOURCE_MIDDLEWARES_DIR) -type f -name '*.cpp')
# code optimisation ------------------------------------------------------------
OPTIM=-Os -finline-small-functions -findirect-inlining -fdiagnostics-color -ffunction-sections -fdata-sections -fshort-enums -fsingle-precision-constant -ffreestanding -fno-common
OPTIM=-Os -flto -finline-small-functions -fshort-wchar -findirect-inlining -fdiagnostics-color -ffunction-sections -fdata-sections -fshort-enums -fsingle-precision-constant -fno-common
# global defines ---------------------------------------------------------------
GLOBAL_DEFINES += $(DEV_GLOBAL_DEFS) -D USE_RTOS_SYSTICK -D MODEL_$(model)
@@ -412,8 +412,6 @@ CXXFLAGS=$(DEV_CXXFLAGS) \
-fno-non-call-exceptions \
-fno-use-cxa-atexit \
-fno-strict-aliasing \
-fno-rtti \
-fno-exceptions \
-fno-threadsafe-statics \
-T$(LDSCRIPT)
@@ -426,7 +424,7 @@ CFLAGS=$(DEV_CFLAGS) \
$(GLOBAL_DEFINES) \
-D${COMPILER} \
-MMD \
-std=gnu99 \
-std=gnu11 \
$(OPTIM) \
-T$(LDSCRIPT) \
-c

File diff suppressed because it is too large Load Diff

View File

@@ -4,4 +4,4 @@
* i.e.: BUILD_VERSION = 'Rel. v2.08' --> Will generated to: 'v2.08.1a2b3c4'
*/
#define BUILD_VERSION "v2.17"
#define BUILD_VERSION "v2.18"