News:

Precision Simulator update 10.184 (15 September 2025) is now available.
Navburo update 13 (23 November 2022) is now available.
NG FMC and More is released.

Main Menu

PSXseecon version 3.42 released, bug fix

Started by kiek, Tue, 29 Apr 2025 10:35

kiek

Hi,
Frederic, trying to implement the Yaw Damper lights, reported that they did not work.

I found that the coding of the lights in SIOC was wrong, the convention being that they are always 2000 higher then the corresponding switch numbers (1294 and 1295)

Therefore the new SIOC variables are:

YawDamperUpr = 3294  (not 3292)

YawDamperLwr = 3295  (not 3293)

Kind regards,
Nico

asboyd

Thanks Nico,
Will update my O/C master sheets for when I get to that panel...

Cheers,
AlexB
Alex Boyd... Sydney, Australia

b744erf


b744erf

Hello Nico,

Long time no contact! Hope you're doing well.

First of all, thank you so much for creating and maintaining PSXseecon. It's been an incredibly reliable and useful tool for my 747 cockpit builder project.

Recently, I've been rebuilding my full-scale simulator using a real 747-400 nose section from B-165 — the very aircraft that had the famous runway excursion at Kai Tak Airport back in 1993. I'm moving all my real aircraft parts into this original OEM nose, so I've been reconfiguring everything from scratch. I still rely on the SIOC + PSXseecon setup because it's stable and efficient for interfacing real hardware.

However, during this rebuild I've run into an issue with the Auto Brake Virtual variable (V4700).
Previously, in version 3.2x, V4700 worked perfectly. But after upgrading to the latest 3.4x versions, V4700 no longer behaves correctly.

The problem is:

• V4700 does not follow the Auto Brake selector position properly.

• On the ground, it won't stay in RTO (0).

• In flight, it won't hold 3, 4, 5, 6, 7.

• Instead, V4700 is constantly stuck at 2 (DISARM).

• Even if I select OFF (1), V4700 still returns to 2 immediately.

I have tested this:

• Without any other plugins or external software running

• Using only the default PSX mouse interface (no physical hardware connected)

• With a clean, minimal SIOC script that only monitors V4700

All tests confirm the issue persists, so it seems unrelated to external plugins, conflicting variables, or my hardware setup.

Would you be able to check if there might be an issue with V4700 in the latest 3.4x releases?
If this is a known issue, could you please let me know how to resolve it, or possibly fix it in a future update?
If it's working correctly on your end, could you share your test conditions so I can compare?

Thank you so much again for your amazing work with PSXseecon. It has helped me fulfill my dream of building a full-scale cockpit with real aircraft components.

I really appreciate your time and help.

Best regards,

Jack

b744erf

I have an important update to add here.

I have done more testing and found something very consistent:

• When I use only V4700 (Auto Brake Virtual) in SIOC, with no other variables related to autobrake, it works perfectly.
V4700 correctly changes: 0 (RTO), 1 (OFF), 2 (DISARM), 3–7 as selected. It locks and releases normally.

• However, as soon as I add V1134 into the same SIOC script — even without any hardware connected, no buttons, no wiring, no connectors, and without any code or assignment attached to it at all — V4700 immediately stops working properly.

• Once V1134 is present in the script:

◦ V4700 gets stuck at 2 (DISARM) and will not move to 0, 1, 3, 4, 5, 6, or 7.

◦ Strangely, it works ONCE when I first select RTO (0) on the ground.

◦ But after I move to OFF or DISARM just one time, V4700 is permanently locked at 2 and will not go back to 0 or 1 ever again, even with mouse control inside PSX.

This behavior is repeatable.

Thank you very much for your time and for looking into this.I really appreciate your great work on PSXseecon.

Best regards
Jack

kiek

Hi Jack,
I do not visit this Forum regularly. In the future, if you have a problem, you better use my PSXT forum.
Unfortunately I haven no acces to my computer the coming weeks
Will look into it after April 12.
Regards,
Nico

b744erf

Hi Nico

Thanks so much for your kind reply! I'll register an account on the forum and follow up there properly. I really appreciate your help, and thank you very much for taking the time to check the issue!

Regards
Jack

kiek

Hello Jack,

You wrote: "Previously, in version 3.2x, V4700 worked perfectly. But after upgrading to the latest 3.4x versions, V4700 no longer behaves correctly."

Does that mean you have not updated PSXseecon for quite some time? The last 3.2x version dates from September 2021.

In the meantime, something changed with respect to dominance, see Manual section 2.2.15:

2.2.15 Autobrakes Selector dominant or not [optional]
You can switch off the dominance of the Autobrakes (Qh34) by defining:

AUTOBRAKES_DOMINANT=0

Just as a quick check, could that be what is missing? If so, I do not need to dive into the code 😉


b744erf



Hi, Nico

Thanks so much for getting back to me!

I've done a lot of testing and can now confirm that V4700 does work, but only under my old setup.

The reason it worked in 3.2x is that I was running V4700 and my Solenoid output variable in two separate SIOC instances, which means I had to open two different instances to make them function together. I'm still using this dual-instance method right now to keep them working.

However, if I try to run both V4700 and the Solenoid output within a single SIOC instance and one single script, it still fails to work correctly.

I also tested setting AUTOBRAKES_DOMINANT=0 and AUTOBRAKES_DOMINANT=1, but neither made any difference at all.

During the upgrade process, I didn't change anything else in my scripts. My script only contains two variables: the Solenoid output and reading the V4700 parameter from PSX—nothing else. So no other updates or changes are involved.

For this reason, I believe it will still be necessary for you to check into the code to resolve this properly.

Thanks again for your help!

kiek

Quote from: b744erf on Thu, 16 Apr 2026 16:42The reason it worked in 3.2x is that I was running V4700 and my Solenoid output variable in two separate SIOC instances, which means I had to open two different instances to make them function together. I'm still using this dual-instance method right now to keep them working.

If I understand you well, this (dual instance approach) is still working with the latest PSXseecon?
So only if you try to put it in one script it does not work?
If so, I think the problem (a SIOC script problem?) is maybe at your end.

The PSXseecon updates over the last years have not changed a bit wrt autobrakes and so on. Just a few additions and the copyright change ...


Regards,
Nico


b744erf

Hi Nico,

Maybe I still haven't made myself clear enough, but you've understood correctly. Whether using older versions or the latest PSXseecon, these two cannot coexist in one script. My intention is to handle the autobrake input using 1134 and a solenoid output related to 4700 all within a single SIOC script.

Below is my complete test script, which only contains these core variables and the corresponding hardware input/output configurations:


//=============================================================================
// Block A: Hardware switches control V1134 only
// V4700 does NOT appear here
// =============================================================================
Var 1134, name Autobr, static

Var 0340, static, Link IOCARD_SW, Device 3, Input 30
{
  IF &0340 = 1
    &Autobr = 0
}

Var 0341, static, Link IOCARD_SW, Device 3, Input 31
{
  IF &0341 = 1
    &Autobr = 1
}

Var 0342, static, Link IOCARD_SW, Device 3, Input 32
{
  IF &0342 = 1
    &Autobr = 2
}

Var 0343, static, Link IOCARD_SW, Device 3, Input 33
{
  IF &0343 = 1
    &Autobr = 3
}

Var 0344, static, Link IOCARD_SW, Device 3, Input 34
{
  IF &0344 = 1
    &Autobr = 4
}

Var 0345, static, Link IOCARD_SW, Device 3, Input 35
{
  IF &0345 = 1
    &Autobr = 5
}

Var 0346, static, Link IOCARD_SW, Device 3, Input 36
{
  IF &0346 = 1
    &Autobr = 6
}

Var 0347, static, Link IOCARD_SW, Device 3, Input 37
{
  IF &0347 = 1
    &Autobr = 7
}

// =============================================================================
// Block B: Game variable V4700 controls solenoid output V7700 only
// V1134 does NOT appear here
// =============================================================================
Var 4700, static
{
  IF &4700 >= 3
  {
    &7700 = 1
  }
  ELSE
  {
    IF &4700 = 0
    {
      &7700 = 1
    }
    ELSE
    {
      &7700 = 0
    }
  }
}

Var 7700, static, Link IOCARD_OUT, Device 3, Output 38
To make them work properly, Block A runs with SIOC 1 connected to PSXseecon 1, and Block B runs with SIOC 2 connected to PSXseecon 2.

My question is: Can I actually combine both Block A and Block B into one single SIOC script, and run everything using just one single SIOC instance and one single PSXseecon instance?

You can test this script directly. If you split it into two separate scripts and load Block A and Block B into two different instances respectively, you will see both can connect and communicate with PSX normally.
However, if you run the whole script in one single script with only one instance, you will encounter the following issues:
When I set 1134 to 0 (RTO) while the aircraft is on the ground with APU on, PSX should hold the autobrake in the RTO position, but 4700 will unexpectedly jump back to 1 or 2.
After changing the value to 0, 3, or 4 several times, 4700 will get stuck permanently at 2.

Even when I disconnect PSXseecon from PSX, I can use the mouse to set the autobrake switch and PSX alone will hold it correctly in RTO. But once I reconnect PSXseecon and run the script, the position can no longer return to 0 and remains stuck at 2.

The same problem happens in flight: with engines running normally, PSX alone can hold 4700 at 3, 4, 5, 6, 7 without any issue. But as soon as PSXseecon is connected and runs the above script, 4700 keeps jumping back to 2 and cannot stay at the higher values.

This is the exact issue I'm facing. Could you please test it and advise how I should adjust the script to make it work properly? Or is this actually a conflict between variable 4700 and 1134 inside PSXseecon itself?

Thank you very much for your help.

kiek

Quote from: b744erf on Fri, 17 Apr 2026 23:26My question is: Can I actually combine both Block A and Block B into one single SIOC script, and run everything using just one single SIOC instance and one single PSXseecon instance?
You must run these blocks within a single script using one PSXseecon instance, because V4700 will not receive any data if no V1134 is detected in that same script. Running them in two separate scripts will not work.

Note that PSXseecon instances have no notion of each other. A SIOC script for one PSXseecon instance must not overlap in any way with a SIOC script for another instance.

b744erf

Hi Nico 

You're absolutely right—that's exactly what I want to do: put everything into a single script. I also think they should work together when they're in the same script.

But here's the problem: they don't work properly when combined in one script with x1 SIOC. If you look at my description above, issues occur as soon as they're in the same script.

Right now it only works when I separate them. If I keep them together in one script and one instance, Var 4700 always gets stuck at 2 and locks there permanently.

This goes completely against normal logic and expectation, which is why I'm hoping you can help me figure out why 4700 is locking to value 2 for no apparent reason.

Sorry to keep trouble you. And I really appreciate your help to check and fix.

Thank you so much


Jack

kiek

#13
Hi,
Set full logging of messages on (see the Manual 2.2.9), and post the result.

Nico

BTW You should only add static for the SIOC variables, so V4700 and v1134
The selector variables must not have the word static. If you are using a SIOC var by accident it will give problems.
Yours are below 1000 so no problems here, but it is bad practice.