IronOS icon indicating copy to clipboard operation
IronOS copied to clipboard

Add support for FNSRI HS-02(A/B)

Open Ivy5000 opened this issue 2 months ago • 7 comments

Device name: FNSRI HS-02A / FNSRI HS-02B Device type: Soldering iron Approximate price: $130 (Canadian moose nickles) Example purchase location: Amazon

Hardware details: Processor: Nation N32L403 (ARM CORTEX-M4) @ 64 MHZ Flash: 64 or 180 KB (not sure yet) SRAM: 16 or 24KB (not sure yet) Temperature sensor: Thermocouple (JBC 210 tip compatible) Cold junction compensation sensor: not sure where, working on it Pinmap: Working on it

Soft requirements: USB-PD: yes, WCH-CH224K open source schematics: no Vendor friendliness: unclear Hardware PWM: unclear, mosfet is AOSMD 4407A STM32 clone: nope!

USB-QC: no DC in: no BLE: no

I have an HS-02B that I have already disassembled and I plan to create a pinmap from this. High resolution images and my findings will follow in the coming days.

Ivy5000 avatar Oct 13 '25 02:10 Ivy5000

Duplicate of #1935

Overwatching avatar Oct 13 '25 20:10 Overwatching

#1935 has devolved into technical support requests and hardware opinions, I thought it might be best to start clean - my apologies if this is not the correct way.

Ivy5000 avatar Oct 14 '25 22:10 Ivy5000

Image Image

Here are the promised high resolution photos - I have much larger ones but Github does not seem to like images of that size. I plan to have a pinmap ready in the coming weeks.

Ivy5000 avatar Oct 14 '25 22:10 Ivy5000

Great! I've been reverse engineering the firmware and trying to figure out the pinout from the "other" side. It would be great to have an independant verification.

These are my current results:

GPIO_A1: analog, ADC_IN2 (actually gets read, not sure if for voltage or temperature) GPIO_A2: analog, ADC_IN3 (configured as ADC channel but apparently not used)

GPIO_A3: display reset GPIO_A4: display chip select GPIO_A5: display SCLK GPIO_A6: display CMD/DAT select GPIO_A7: display MOSI

(the firmware uses bitbanging for the display)

GPIO_A8: TIM1_CH1, 4ma, Timer1 (Heater, timer based PWM)

GPIO_A9: i2c SCL (probably used for the movement detection sensor) GPIO_A10: i2c SDA

(the firmware uses bitbanging for i2c)

GPIO_A13: output: (maybe button LEDs?) GPIO_A14: output: (maybe button LEDs?) GPIO_A15: TIM2_CH1, 4ma, Timer2 (Beeper, timer based PWM)

GPIO_B0: analog, ADC_IN9 (actually gets read, not sure if for temperature or voltage) GPIO_B1: analog, ADC_IN10 (configured as ADC channel but apparently not used)

GPIO_B3: input: ok-button (?) GPIO_B4: input: up-button (?) GPIO_B5: input: down-button (?) GPIO_B6: output: CH224: CFG3 GPIO_B7: output: CH224: CFG2

GPIO_D14: TIM1_CH3N, 4ma, Timer1 (Display Brightness, timer based PWM) GPIO_D15: output: (not sure for what, mybe button LEDs as well?)

simon-budig avatar Oct 21 '25 19:10 simon-budig

I also have a HS-02A and interested in this. Let me know if I can help

GreyXor avatar Oct 27 '25 06:10 GreyXor

@simon-budig that is incredible information! When I have some time next, I'll see if I can remove some unknowns by probing the board. Thank you so much!

Ivy5000 avatar Nov 05 '25 15:11 Ivy5000

Reverse engineering a PCB is quite easy if you know what you are doing. Any broken or donor HS-02 available? Then I could help you guys out…

Procedure is described roughly here:

https://github.com/mentalDetector/Quansheng_UV-K5_PCB_R51-V1.4_PCB_Reversing_Rev._0.9

mentalDetector avatar Nov 27 '25 14:11 mentalDetector

#1935 related fw post

n30f0x avatar Dec 20 '25 15:12 n30f0x