Skip to main content

We power our layout through two TIUs. Have for years without (knock on wood) any issues. Saturday morning we ran trains, everything was fine. When we ran after lunch every engine, every track we tried came up out of RF range. Powered everything down, and restarted. Watched remote statements, and TIU 2 wasn’t found. Reread, same result. Powered down and restarted to find that TIU 2 was only blinking once. It had changed its assigned identity apparently on its own. Anyone experienced this? Anything I should look for to cause this?

It has not reoccurred.

Original Post

Replies sorted oldest to newest

Jim,

This may or may not be the cause of the problem you identified, but as odd as it seems it is plausible and it does happen.  In automotive electronics, especially safety-critical systems, we are required to ensure that a single bit error in memory cannot put any subsystem in your car into an unsafe state.

How does this apply here?

The number assigned to your flaky TIU, "2", is stored in its memory in a specific location.  Because computers, including microprocessors use a number system that consists of only two possible values, '0' and '1, your number "2" is translated into its binary equivalent using these 1's and zero's.

Decimal Value            8-bit Binary Value (in memory)

       2                                 00000010

That lonely '1' has little defense against something you may never have thought of: Cosmic Rays from Outer Space.

They generally do not frequently coming flying in from the netherworld and hit your memory chip, but occasionally they will.  Furthermore, occasionally  they also have enough energy in them to cause a bit to flip, i.e., to change it's value, from '0' to '1', or '1' to zero, when they hit, depending on the construction of the memory chip.

When this happens your "2" could change to a "1" all by itself, without you telling it to do so.

If you're following closely you'll have noticed that a one-bit error here won't make this happen.  Suppose the '1' gets hammered and turns into a '0':

  8-bit Binary Value (in memory)          Decimal Value       Outcome

      00000000                                                 0                              Not "1" in TIU, but what does "0" mean to the TIU?

    or, suppose that the last '0' gets turned into a '1':

   8-bit Binary Value (in memory)          Decimal Value       Outcome

      00000011                                                 3                              Set to "3" in TIU

It takes a two bit error, i.e., two cosmic rays, two bit flips, one each in the last wo binary digits, in order to turn "2" into "1", and this is quite rare:

   8-bit Binary Value (in memory)          Decimal Value       Outcome

      00000001                                                 1                              "1" in TIU -> Bingo!

The only way that a single-bit error, say from a cosmic ray impact could do this is if the TIU number isn't stored as a direct binary equivalent, but as some other number or symbol, i.e., one that is susceptible to a one-bit error.   (Consider this: Suppose the TIU's number is stored as The Above Decimal Value + 1 instead of as The Above Decimal Value?  Now a one-bit error is a problem.)

So, it doesn't appear to be a cosmic ray problem, unless there's some interesting gymnastics in the way the software was written.

Mike

Last edited by Mellow Hudson Mike

Add Reply

Post
This forum is sponsored by MTH Electric Trains
×
×
×
×
Link copied to your clipboard.
×
×