Page 1 of 1

Decoders ARE 100% Independent

Posted: Tue Sep 06, 2011 8:04 am
by Fred
I heard some chatter tonight suggesting that issues with one engine on one decoder were somehow relevant to another engine on a different decoder. I'll be honest, that made me angry.

The FreeEMS architecture has been very carefully designed for each decoder to be 100% independent of all others.

All decoders share the same core code (100% of it) and as such, that code gets good testing on multiple platforms and is very likely to be robust, or at least have known flaws that are well understood.

What might not be clear is which aspects of engine behaviour are the responsibility of the decoder, and the answer is, anything dynamic.
  • The way the system interprets the position pattern: 100% decoder and 100% different from one decoder to another.
  • The way the system synchronises with the engine: ditto.
  • The way the system loses sync with the engine: ditto.
  • The way the system takes timed analogue readings: ditto.
  • The way the system provides data for RPM calcs: ditto.
  • The way the system keeps track of position over time: ditto.
The rest of the system performs calculations based on the data provided by the decoder, WITHOUT knowing which decoder it is using. The decoder then sets up outputs based on those calculations and it's internal data in order to run the engine.

As such anything to do with starting or electrical noise or dynamic ADC readings etc, is totally different from one decoder to the next and it's not useful or helpful to compare them in any way. Leave that up to the main developers who fully understand the system from top to bottom.

Fred.