Skip to content

Add support for SEQURE S99, and new Rev. of S60P#1920

Open
jonasius wants to merge 48 commits into
Ralim:devfrom
jonasius:dev
Open

Add support for SEQURE S99, and new Rev. of S60P#1920
jonasius wants to merge 48 commits into
Ralim:devfrom
jonasius:dev

Conversation

@jonasius
Copy link
Copy Markdown

@jonasius jonasius commented May 26, 2024

  • Please check if the PR fulfills these requirements
  • The changes have been tested locally
  • There are no breaking changes
  • What kind of change does this PR introduce?
  • Add support for Sequre S99
  • What is the new behavior (if this is a feature change)?
    IronOS booting on Sequre S99

  • Other information:
    Currently work in progress.

Problems / Todo

  • Startup is slow, black screen for a few seconds, maybe due to PD negotiation issues?
  • Negotiation of PD seems to have a problem. Tested with multiple Apple USB-C Chargers.Always uses 5V QC. PD Debug at startup shows State 0 0 21 multiple times, with blinking/resetting screen, after a while showing State 4 1 21.
  • OP_AMP_GAIN_STAGE 536 needs to be adjusted according to the 22k resistor instead of 51k
  • Documentation needs to be updated
  • Maybe source/Code/BSP/Sequre_S60 folder should be renamed to Sequre?
  • Better thermo model for tip temperature measurement?
  • Tip selection option to allow usage of 5.5 Ohm tips?

Comment thread source/Core/BSP/Sequre_S60/configuration.h Outdated
Comment thread source/Core/Drivers/Font.h Outdated
jonasius and others added 2 commits May 26, 2024 23:09
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
@Ralim
Copy link
Copy Markdown
Owner

Ralim commented Jun 1, 2024

Hia,

This is great progress.

The black screen at startup is odd. PD negotiation shouldn't block boot. Is it possible its being restarted rapidly with flaky USB-PD?

(Do you have any tools for debugging USB-PD)?

I haven't really worked on the FS2711 driver much so not sure how best to debug it other than trying to parse the code to match up to what you see.

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Jun 1, 2024

Hey, yeah. It seems to restart rapidly. It seems to be especially with the Apple Chargers. Another charger I tried let the iron boot straight up.
I hope I can investigate further this weekend.

Sadly I don't have special USB-PD tools. Maybe I need to get something or build something to hook a logic analyzer on?

As I could see with the debug menu, when it comes up it gets all available PD modes, but stays in 5V mode. I think I need to take a look at the measurement of the tip for the power calculation? Maybe you can give me a hint on that?

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Jun 1, 2024

@Ralim I'm currently digging a bit through the code and debug outputs of the iron. I wondered why it reports PWR QC instead of PWR PD. I think at least I need to extend the getPowerSourceNumber funciton with a ifdef for POW_PD_EXT.

Regarding the PD negotation problem with my Apple 60W USB-C PSUs I tried to increase the PROTOCOL_TIMEOUT to 200 ms, which helped. The Iron boots instantly. PD Debug First Shows State 0 0 21 but quickly changes to State 4 1 21, without a reset/screen flicker. What I noticed when I switched through the PD debug menu and viewed the capabilities was that before increasing the timeout, the PD debug menu showed an entry with no voltage and only amps specified. That entry isn't showing up with the increased timeout.

I hope I can make some progress tomorrow.

@Ralim
Copy link
Copy Markdown
Owner

Ralim commented Jun 2, 2024

I'm currently digging a bit through the code and debug outputs of the iron. I wondered why it reports PWR QC instead of PWR PD. I think at least I need to extend the getPowerSourceNumber funciton with a ifdef for POW_PD_EXT.

Ah heck, yes that will fix the issue

PROTOCOL_TIMEOUT should have been wired up to the PD timeout we already have thats user adjustable.
If you want I can wire that up (or you can of course). I default to 500ms for normal pd.

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Jun 2, 2024

PROTOCOL_TIMEOUT should have been wired up to the PD timeout we already have thats user adjustable. If you want I can wire that up (or you can of course). I default to 500ms for normal pd.

@Ralim It's a bit unclear to me. In the Settings.cpp PDNegTimeout default value is 20, max 50. If I got the description right it should be in 100ms steps, so default is 2000ms? :-o

OP_AMP_GAIN_STAGE 536 needs to be adjusted according to the 22k resistor instead of 51k

How did you determined the value for the OP_AMP_GAIN_STAGE? I measured/calculated it roughly to 226 for the different feedback resistor. I don't get exactly how the two OP-Amps are connected.

@Ralim
Copy link
Copy Markdown
Owner

Ralim commented Jun 4, 2024

so default is 2000ms? :-o

Ah sorry, I think we raised the default later on.

How did you determined the value for the OP_AMP_GAIN_STAGE
This number is calculated as being the "gain" of the op-amp.

In the S60, its two sequential op-amps chained.
Both are configured as non-inverting amplifiers.

Input op-amp has feedback resistors of 9.31K and 1K. (therefore gain is 10.31)
Second op-amp has feedback resistors of 51K and 1K. (therefore gain is 52).

So 10.31 * 50 = 536.12; so the define is set to 536

jonasius added 5 commits June 6, 2024 20:27
* Enable PD Options
* Make PDNegTimeout configureable
* Add default value for PDNegTimeout, also for S60 and S60P
* Add basic DC detection / correct debug readings while powered via DC
* Add basic ThermoModel for C245 Tips
* Modify op-amp gain
bool getIsPoweredByDCIN() { return false; }
bool getIsPoweredByDCIN() {
#if POW_PD_EXT == 2 && defined(POW_DC)
if (!FS2711::has_run_selection()) {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏼

Comment thread source/Core/BSP/Sequre/configuration.h
Copy link
Copy Markdown
Owner

@Ralim Ralim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems sane to me at a read.

@Ralim
Copy link
Copy Markdown
Owner

Ralim commented Jun 8, 2024

Let me know when you are happy with this by marking it ready for review 🙇🏼

@jonasius
Copy link
Copy Markdown
Author

Let me know when you are happy with this by marking it ready for review 🙇🏼

Nice!
I'll try to fine tune the temperature coefficient beforehand. Add documentation / the S90 to the supported irons table and fix the remaining clang style mismatches.

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Jun 19, 2024

I compared the temperature at a setpoint of 320°C to a original JBC station. In my eyes the coefficient is okay for a first shot.

Then I observed that the name and description for PDNegTimeout and USBPDMode are not shown in the menu. I quite don't get it. The menu Item is here

I got a second S99 which is V1.5 instead of V1.4, it seems that they changed something. Although a FS2711 is used, it does not negotiate PD. I quickly took two picutes:
IMG_4353
IMG_4354

@jonasius
Copy link
Copy Markdown
Author

@Ralim, I tried your increased pwm speed. Works great on the S99! No more restarts, even with power limit set to 60W on a 60W USB-C charger.

What I got so far regarding v1.5

  • There is a detection of HW version in the original FW
  • I2C to the FS2711Q connection seems to use the same pins
  • Just to make sure I checked the bootloader, it is also the same on the v1.5 iron
  • PD-Debug shows only zeros

@RodoMa92
Copy link
Copy Markdown

I do have issues with PD bootlooping the iron on specific chargers (mainly QC compatible, I can post a PD detection image later),PD state keep bouncing between 0 and 1 really quickly, that do not happen with the original firmware. On the Steam Deck charger however it does seems to behave correctly.

@Ralim
Copy link
Copy Markdown
Owner

Ralim commented Mar 30, 2025

@jonasius

What's the hard requirement for having to split hardware revisions?
So far the rule has been that the user has to be able to know the file based on what is written on the device, as otherwise we will get issues from people flashing the wrong file.

@schinken
Copy link
Copy Markdown

Can we somehow have a new build in GH Actions so we can try the latest?

@jonasius
Copy link
Copy Markdown
Author

@jonasius

What's the hard requirement for having to split hardware revisions?

I'll update it later.

@schinken
Copy link
Copy Markdown

schinken commented Jul 8, 2025

@jonasius sadly no new build. Is this because of requested changes?

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Jul 8, 2025

Sorry, had little time lately. I have to figure out why the build breaks. I'm working on it.

@jonasius
Copy link
Copy Markdown
Author

It seems that the build for S60P in JA_JP is failing due to size issues:

Building firmware for S60P in JA_JP
...
/usr/lib/gcc/arm-none-eabi/13.1.0/../../../../arm-none-eabi/bin/ld: Hexfile/S60P_JA_JP.elf section `.data' will not fit in region `ROM'
/usr/lib/gcc/arm-none-eabi/13.1.0/../../../../arm-none-eabi/bin/ld: region `ROM' overflowed by 448 bytes
...

If I'm looking at the bootldr_size in the Makefile, the S60P has the biggest.

@schinken
Copy link
Copy Markdown

schinken commented Aug 4, 2025

Any news on a new build? :)

@chrisdevis1
Copy link
Copy Markdown

Hello. I tried this on my S99. It worked on usb-c but when i used a 20V 10A power source to test it at the maximum possible power and the MOSFET switching the tip failed short causing the tip to glow red hot. So it might be a good idea to limit the maximum power even in DC.

@ofek256
Copy link
Copy Markdown

ofek256 commented Oct 19, 2025

Hey, any news regarding this? I wanna install it on my S99 :)

@blamas
Copy link
Copy Markdown

blamas commented Mar 2, 2026

Added a few commits on a fork to

Tested only on my available hardware (s99 stock tips), build bin are available in the ci artifacts for those that want to try it
https://github.com/blamas/IronOS/commits/fix/s99-s60p-improvements/

@Xanndiane
Copy link
Copy Markdown

Hi! How usable is this? I ordered the Sequre S99 yesterday, and the tip set is 2.5 ohms

@jonasius
Copy link
Copy Markdown
Author

jonasius commented Mar 6, 2026

In general the S99 is useable. But with original jbc tips and the high switching frequency, the MOSFET inside gets so hot that you can feel it on the outside of the case.

Image recorded with removed cover:
image

@Xanndiane
Copy link
Copy Markdown

Thanks for the reply! I decided to cancel the order and get the Alientek T90 instead. The difference is only $6 ($24 vs $30). Good luck with firmware development!

@teuchezh
Copy link
Copy Markdown

Doe's this firmware support power limitation (For example, cutoff at 65W)?

@teuchezh
Copy link
Copy Markdown

I received my S99 today, can I use this firmware for everyday use?

@DurvalMenezes
Copy link
Copy Markdown

DurvalMenezes commented Apr 23, 2026

I received my S99 today, can I use this firmware for everyday use?

I would be interested in learning this too. Could one of you devs please post a summary of the current shortcomings (bugs or unimplemented features) to make it easier for us users to decide?

@teuchezh
Copy link
Copy Markdown

I would be interested in learning this too. Could one of you devs please post a summary of the current shortcomings (bugs or unimplemented features) to make it easier for us users to decide?

So, I decided to give it a try myself, assembled it, and flashed it myself. It seems there are some minor display and interface issues, at least on the main screen. I have two cartridges, the included 5 Ohm one and an additional 2.5 Ohm one. It heats up fine with the included 5 Ohm one, but when using the 2.5 Ohm one, things get worse. It starts to heat up and then goes into protection mode after a few seconds. Power limiting doesn't help. I tested it with a good 65W power supply. I connected a USB tester to it, and I didn't notice any peak current at shutdown, no more than 1.4A 20.1V. Another interesting issue with the stock firmware: from what I've read in reviews, it should also have tripped protection when using a 2.5 ohm cartridge. I didn't notice any such issues. However, I encountered another issue: after turning it on with the factory firmware and setting the target temperature to 300 degrees, the display readings would fluctuate between 340-380 degrees, but as soon as I inserted a 2.5 ohm cartridge, the 300 degrees remained steady.
I haven't fully tested it yet, just some basic testing, so far with mixed feelings.
If anyone wants to try it, I'm attaching the compiled firmware, current as of April 23, 2026, along with the stock firmware for a test run.

photo_2026-04-23_22-36-37

fw_s99.zip

@jonasius
Copy link
Copy Markdown
Author

@teuchezh

So, I decided to give it a try myself, assembled it, and flashed it myself. It seems there are some minor display and interface issues, at least on the main screen. I have two cartridges, the included 5 Ohm one and an additional 2.5 Ohm one. It heats up fine with the included 5 Ohm one, but when using the 2.5 Ohm one, things get worse. It starts to heat up and then goes into protection mode after a few seconds. Power limiting doesn't help. I tested it with a good 65W power supply. I connected a USB tester to it, and I didn't notice any peak current at shutdown, no more than 1.4A 20.1V. Another interesting issue with the stock firmware: from what I've read in reviews, it should also have tripped protection when using a 2.5 ohm cartridge. I didn't notice any such issues. However, I encountered another issue: after turning it on with the factory firmware and setting the target temperature to 300 degrees, the display readings would fluctuate between 340-380 degrees, but as soon as I inserted a 2.5 ohm cartridge, the 300 degrees remained steady. I haven't fully tested it yet, just some basic testing, so far with mixed feelings. If anyone wants to try it, I'm attaching the compiled firmware, current as of April 23, 2026, along with the stock firmware for a test run.

If I remember correctly that 20 is the input voltage, so 20V. But most of the time I used the detailed screen (can be changed in the options), so maybe indeed there is a issue.

As far as I remember power limiting worked for me. But maybe it's also depending on the specific power supply used. I observed that some cables also can cause shutdowns.

My main interest was to use the S99 with original JBC tips / 2.x Ohm tips. So I think I never again tested it with the 5 Ohm tip.
As shown a few posts above, due to the high switching speed for power limiting, the MOSFET and therefore the case of the iron itself gets quite hot.

@teuchezh
Copy link
Copy Markdown

@jonasius

Yeah, I probably shouldn't use this screen on my TS100 either (its case started cracking, so I decided to replace it with an S99). I have a detailed screen set. I just happened to set it to around 200 while testing. I used the original Apple iPhone Type-C cable. I only have one power adapter with PD, so I can't test it with another one, but I haven't had any issues with it. I use the TS100 with it via a trigger or a miniature bottom heater, a simplified version of MiniWare.

I'd be happy with most of the 2.5 ohm soldering tips offered on AliExpress, but as you can see, my soldering iron keeps turning off. Is there a way to lower the PWM frequency to reduce the MOSFET's heat?

Unlike its C245 counterparts, I liked the S99's size and the way it fits in my hand, like a pen. The stock firmware, while functional, is somewhat confusing to configure, starting with something as basic as setting the operating temperature. After seven years of owning a TS100, I've become very accustomed to IronOS.

@alexonpeace
Copy link
Copy Markdown

Added a few commits on a fork to

* Improve i2c detection

* Support JBCC210 2.5 / 5.5 ohm tips

* Add powerSupplyWattageLimit to avoid [Add support for SEQURE S99, and new Rev. of S60P #1920 (comment)](https://github.com/Ralim/IronOS/pull/1920#issuecomment-3194603319)

* Skip CJK build for sequre to avoid rom overflow and ci breaking

Tested only on my available hardware (s99 stock tips), build bin are available in the ci artifacts for those that want to try it https://github.com/blamas/IronOS/commits/fix/s99-s60p-improvements/

LMC_24 Apr 20_26 (1)(1) Just got my s60p this thing is so cute and tiny compared to my hakko fx888d, and after trying multiple fw sources, @blamas's actually made the iron usable thx, but why does S60P not have tip type selection enabled
#define TIP_TYPE_SUPPORT 1  // Support for tips of different resistances
#define TIPTYPE_JBC         // Enable JBC/C210 style tips

another thing I wanna point out is the constant overshooting of PD adapters' OCP, like when setting something like 50W, the iron doesn’t cap it properly and shoots up to like 70W. That’s fine when using a 100W adapter, but would be a problem if someone tries using a 65W adapter. Also, in the code, I see we have a 98W limit when using a 100W adapter, V x I - 2W. is this due to inrush current or maybe i feel like PID overshoot or PWM Duty Cycle or something like that, either way i know our hardware in kinda limited, but maybe we need to implement some sort of soft start or something, tho i did notice it drawing 17W when the power limit was set to 5W, so maybe it was not inrush current idk atp, or could it be that the tip resistance is lower than 2.0ohm hmm that would kinda make sense why it takes more power then the set limit.
also qc is not implemented yet i see

p.s. sorry if I yapped a lot, haven't slept since i opened this thing

@teuchezh
Copy link
Copy Markdown

Yesterday I was experimenting with the firmware with my part-time colleague (Claude Code), I made a choice between a 2.5 or 5 tip, with 5 it worked fine, but with 2.5 the soldering iron still restarted, in the end I got a more or less result that it turned off and consumed about 3.5-4A at 20V, the soldering iron itself showed a stable 80W, but during stability tests (I dipped the tip in a mug of water), it suddenly showed 500 degrees and I realized that this was the end of it, after rebooting it stopped seeing the tip, and the tip itself was heating up non-stop, I came to the conclusion that the MOSFET switching the soldering iron tip burned out and it remained in the open state, I ordered a similar MOSFET for replacement on the local marketplace, I will receive it in about a week

image

@jem0n
Copy link
Copy Markdown

jem0n commented May 2, 2026

I haven't fully tested it yet, just some basic testing, so far with mixed feelings. If anyone wants to try it, I'm attaching the compiled firmware, current as of April 23, 2026, along with the stock firmware for a test run.
fw_s99.zip

@teuchezh
i tested your compiled firmware and i can't seem to find the tip type (2.5ohm or 5.5ohm) selection under settings.

@jem0n
Copy link
Copy Markdown

jem0n commented May 2, 2026

with my own tests on the s99 my only main concern is the mosfet heating up quite a lot due to the faster pwm especially with 2.5ohm tips. lowering power limit doesn't help much (if at all) in reducing the mosfet heat.

any chance of having a compiled version of the firmware with the latest changes, but using slow/slower pwm instead? as much as i'd like to do it myself unfortunately it's beyond my skill level.

@teuchezh
Copy link
Copy Markdown

teuchezh commented May 2, 2026

@teuchezh

i tested your compiled firmware and i can't seem to find the tip type (2.5ohm or 5.5ohm) selection under settings.

It won't be here, since this firmware was compiled from the code of this PR. And I experimented with choosing the tip type locally; I didn't upload this code anywhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.