This is an alternative free firmware for the low-cost Xytronic LF-1600 soldering station.
The station is based on an AVR AtMega88. No hardware changes are required for running the free firmware on that device. However if you have got a legacy non-SMD device a few changes are recommended. See the schematics for details.
This software runs on legacy LF-1600 in through-hole board design and modern LF-1600 in SMD board design.
The firmware is PID-controller based for both the temperature and current control.
-
xytronic-lf release 1.5
.tar.xz archive
PGP signature - Older xytronic-lf releases can be found here.
-
Q: Why would I want to run this firmware instead of the original?
A: Because you can. Also because the original firmware's temperature controller is not that good when it comes to big ground planes. In addition to that you can easily tune the PID factors or other parts of the Open Source firmware to your special needs. -
Q: Can the firmware be adapted to other Xytronic
soldering stations?
A: Most likely, yes. Please open your station and take a look into it. Reverse engineer the circuitry and get in contact with me. Maybe we can find a way to adapt the firmware. Voiding warranty is fun!
The hardware can be extended to have an idle button or a boost button. The button can be placed at the iron itself or on the iron holder base. The center pin of the iron connector can be used to connect the button/switch. The iron cable doesn't have a free wire though, so at least one separate wire or a new iron cable has to be used.
The Open Source firmware does support this button via the microcontroller pin PORTB/PB0.
This port is already routed to the third unused pin on the temperature sensor
header on the original board layout. So the board does not have to be changed.
Connecting this pin to GND will trigger an ON state.
See the circuitry diagram for details.
The software supports an idle-switch or idle-button that switches the iron into a low power / low temperature mode during being idle. This switch or button typically is located at the iron or at the iron holder base.
In the default build the idle button functionality is enabled and the button will act as a toggling push button.
The boost button can be useful when soldering big ground planes to avoid a massive drop in temperature. With the boost functionality more aggressive temperature controller parameters can be used.
In the default build the boost button functionality is disabled.
The user can navigate through the menu structure using the three UP/DOWN/SET buttons. For each menu state different information is displayed on the 4-digit display. The information can be modified using the UP/DOWN buttons.
The firmware is built using the make tool. Various variables can be set to control what parts of the firmware and how the firmware is being built.
Build option | Values | Description |
---|---|---|
HW | =legacy =smd |
The hardware platform (board type).
Can be either legacy or smd. Default is smd. |
DEV | =m88 =m88p =m328p |
Select microcontroller device type
AtMega88, AtMega88p or AtMega328p.
Can be either m88, m88p or m328p. Legacy boards have an m88 chip and modern SMD boards have an m88p chip. Use m88p if you don't know what to select. Default is m88p. |
CONF_IDLE | =0 =1 |
Enable/disable idle switch support.
Can be either 1 or 0. Default is 1. |
CONF_IDLETOGGLE | =0 =1 |
If 1, the idle button acts as a toggling push button.
If 0, the idle button acts as a switch. Default is 1 for HW=legacy and 0 for HW=smd. |
CONF_BOOST | =0 =1 |
Enable/disable boost button support.
Can be either 1 or 0. Default is 0. |
CONF_PRESETS | =0 =1 |
Enable/disable support for temperature presets.
Can be either 1 or 0. Default is 1. |
CONF_ADJ | =0 =1 |
Enable/disable temperature compensation adjustment.
This allows adjustment of the controlled temperature to the real
temperature on the iron tip.
Can be either 1 or 0. Default is 1. |
CONF_EERING | =0 =1 |
Enable/disable support for EEPROM ring memory
to reduce EEPROM wear.
Can be either 1 or 0. Default is 1. |
CONF_KCONF | =0 =1 |
Enable/disable temperature PID controller parameter menu.
Can be either 1 or 0. Default is 0 for m88(p) and 1 for m328p. |
CONF_DEBUG | =0 =1 |
Enable/disable debugging menu and UART interface.
Can be either 1 or 0. Default is 0 for m88(p) and 1 for m328p. |
CONF_CURRCUTOFF | Don't touch. | |
CONF_CURRCUTOFFHYST | Don't touch either. :) |
Example to compile the firmware without debugging support and flash the firmware fuses, flash and eeprom using avrdude:
make HW=smd DEV=m88p CONF_DEBUG=0 make HW=smd DEV=m88p CONF_DEBUG=0 write_fuses make HW=smd DEV=m88p CONF_DEBUG=0 write_mem
The controller architecture basically looks like this (Click to enlarge):
This picture is simplified, though. The current controller for instance is constrained by some serious hardware bugs in the feedback circuitry.
xytronic-lf is stable/production quality software.
That means its features are well tested and the remaining amount of bugs probably is minor.
The documentation is not complete.
The development source code of xytronic-lf can be downloaded using
the Git version control system as follows:
git clone https://git.bues.ch/git/xytronic-lf.git
To browse the Git repository online, go to the
repository web interface.
Or download the compressed snapshot.
A mirror of the repository is available on
GitHub,
GitLab,
Bitbucket and on
NotABug.org.
If you want to contribute to xytronic-lf, please read
the contribution guidelines first.
If you find any bugs in xytronic-lf or if you have any suggestion for new
features, we would like to hear from you.
Your help is greatly appreciated and will help to create better
software and improve the overall experience for everybody.
So don't hesitate to report anything that that limits your xytronic-lf usage.
If you have got any code improvements or other improvements that should be merged into the project, please send such enhancements to the xytronic-lf maintainer.
Please read the contribution guidelines first.
Copyright (C)
Michael Büsch
Licensed under the terms of the
GNU General Public License version 2
or (at your option) any later version.
See the sourcecode for details.