In need of a new hot air station, I decided to go with an 858D+ station, to give me the ability to use the excellent firmware developed in this thread.
I opted to go with a model with connectors for the mains input and hot-air gun output to give me the greatest flexibility and portability. The cheapest version on Aliexpress with these options was £28.
Here's the link, but I notice the price has increased to £35 since then.
Upon receiving it, the mains wiring looks to be poor; soldered connections rather than crimped, the mains switch on the neutral, random wire colours (red for earth?!), and a general poor state of assembly. I have now rewired it and fixed all these issues.
Looking at the main PCB I noticed it uses a S3F94C4EZZ-DK94 microcontroller (as many of the models in this thread do), however I haven't come across any other versions using this PCB or pin mapping. The general idea is the same, although with some differences (such as the common channels of the LED display being controlled via PNP transistors). Reverse engineering the microcontroller mapping results in the following, which does not seem to match any of the existing adapter boards:
Pinout
1 GND
2 LED_DIGIT_1
3 TRIAC DRIVE
4 REED_SWITCH
5 LED_SEG_G
6 LED_SEG_D
7 SDA / BUTTON 1
8 SCL / BUTTON 2
9 FAN DRIVE
10 NC
11 LED_SEG_DP
12 LED_SEG_E
13 LED_SEG_F
14 LED_SEG_A
15 TEMPERATURE (LPF)
16 LED_SEG_B
17 LED_DIGIT_2
18 LED_DIGIT_3
19 LED_SEG_C
20 5v
As such, I designed a new adapter board with an ATMEGA328P on it. I designed this board to have roughly the same footprint as the original DIP chip, and had it manufactured by OSH Park. The board includes an ICSP header, TL431 2.5v reference (for the ADC), and voltage divider for the fan speed measurement. SMD 2.54mm pitch headers on the underside plug into the existing chip socket.
I decided to include the TL431 voltage reference rather than a voltage divider, so the temperature readings are not affected by VCC fluctuations.
With a few small low-level modifications to the firmware (mainly related to the LED display driving), I've got a hot air station with excellent performance! After running a calibration, the temperatures are very stable, with virtually no overshoot.
I did have a significant issue with the watchdog/'RST' issue at startup, despite running the latest version (1.46) with the init1/init3 bug fixed. I tried replacing the microcontroller multiple times, including some sourced directly from Atmel - however it still went into 'RST' mode around 10% of the time on powerup. I suspect maybe the issue is related to the fact I am building the firmware within the Arduino environment rather than using AVR Studio? I decided I was happy with removing the watchdog functionality; if the chip does reset caused by the watchdog, then the gun will either be in the cradle (and the heater shouldn't get turned on), or it will be out the cradle (and thus go into the 'CRA/DLE' warning). In either case, I'll only ever have it turned on if I'm actively using it, so would spot if something went wrong in the firmware.