Thursday, October 4, 2018

Marklin Memory

From Clapcott, Marklin users
I offer my personal suggestions as tips

Tip: Preparation: Install a master switch between CS2 and layout.
The CS2 must be on (Go not Stop) for the programming of components. This can be a good feature if you are in "learn" mode where you are recording your actions in switching routes or driving a locomotive around the layout, however more often than not you do not want to upset the actual state of the layouts points and signals while you are entering or editing sequences.

Tip: Preparation: Ensure your Keyboard items are named and preferably loaded onto a layout configuration
This will facilitate setup and, more importantly, editing.

Tip: Usage: The Delete/Trash function will act on any object with a dark blue boarder
It is possible to get frustrated if you see an object that you want to delete and simply click on it and then delete.
If you haven't UN-highlighted the previous object you were working on , it will be deleted also

Tip: Awareness: Don't drag the stylus when changing locomotive speed when programming
Doing this will generate numerous intermediate commands in the sequence.
A corollary to this is that the artificial acceleration/delay settings that you may configure for a locomotive will do the same thing. The recommendation is to leave these set to 0 (except for 6080 generation decoders) and let the decoder do the acceleration for you

Tip: Suggested Practice: Name the sequence meaningfully
Personally I prefix the name with the sensor number - so I don't have to enter edit mode and select a sequence to find its details.

Tip: Suggested Practice: Printout your sequences
Especially when debugging sequences that are interacting, being able to refer to all sequences on a document is far more effective than using the screen to pop in and out of each sequence individually

The /config/fahrstrassen.cs2 file on the CS2 contains the details of your routes. It may not be the easiest to read as it is but at least it can be read. Alternatively Running the file through a spreadsheet macro or using a small App will make things a lot clearer.

Tip: Usage: The same sequence may be used for multiple locos when placed as a Fx icon
While a sequence may be built (e.g. lights on,wait,station announcement,wait,whistle,wait,go) using a specific locomotive ID, if that sequence is loaded as a FX button for a different loco then running the sequence will use that locos ID instead.

Warning. (This might be a bug) the sequence cannot be run on more than one loco at a time

Tip: Awareness: Ensure the pulse for a moment function (e.g. horn) is not too short
The Sequence programming is quite literal when you press(pulse) a momentary function for a locomotive. it sends an "on" command when you press the key and an "off" command as soon as you release the key. If you do this too quickly then the delays in the sequence may mean that this function will appear not to work when you run the sequence.

Don't be shy in holding the button down for half a second when programminaa

Be warned - if a train was in the middle of something, pending a stop or reverse command - it will just keep going

At this stage of the discussion I will offer the following personal conclusions.

The memory is absolutely fine for small isolated route/block control and automation (e.g. signal goes red after locomotive passes)
Random non-critical actions like sounding a horn or whistle add novelty value. Same with layout animation lights/motors 

note
However I would never program whole sequences with it. 
Without the logic to track trains at specific locations a lot of the advanced features cannot be effectively used.
The Memory may have gained advanced functionality but it only makes it harder to maintain sequences
Editing and debugging can be a nightmare.
I believe the current limitations in the user interface and poor conflict handling restrict the usability of the memory

I am quite happy to leave the CS2 to process locomotive and accessory commands out to the track and have a PC do the back end sequencing.

If there is one area where I think Marklin have missed the boat it is in a switchboard solution. There may have been a naive marketing expectation that the CS2s Layout panel would supersede this need - if so, I think they were wrong.

The CS2-Memory is an important component for this but it will not be the whole solution by itself. The subject of "how" to activate a memory sequence must be resolved. When this front-end piece of the puzzle is addressed then CS2-Memory will be raring to go.

To date the switchboard functionality could be cobbled together with switches feeding into a s88. - and triggering a CS2-Memory sequence
This is not a cheap proposition, made even less economical by the fact that any point/signal used two inputs (sometimes 3) if you wanted specific control of each device. 

Sure, if you were happy to just set routes from a single button - with a single button at the end of a switching yard will set all the points and signals leading into it - you could start to make a very productive 16 route switchboard for the 16 ports of a S88. 

If/When the new L88 (Link S88) becomes available we are told that the 16 ports can be multiplexed to indicated 64 switchboard buttons.

Now we are talking! and if there is one think that I see accelerating the use of the CS-Memory usage it will be this switchboard functionality.
It has nothing to do with technology - it is just a means to deliver a tactile and ergonomic solution to control the points and signals of a layout.

Compared to the more advanced abilities that include locomotive control and conditional triggering, this may appear like a bit retro and "last years fashion" but I think nothing could be further from the truth for people who want to look at their layouts and not a TV screen.

A brief description to get the ball rolling ...

The Ext(ra) or "Advanced" dialogue box contains two sections 1) Trigger 2) Condition

Trigger (top half)
With one exception this is exactly the same information about the S88 trigger that is seen on the main Memory sequence setup panel. The information is more spread out and easier to read especially the port numbering abbreviations. (although they are still not in english)



M:- C:- = S88 Module and Contact(port)
B:- M:- C:- = L88 Bus, then Module and Contact(port)
B:0 K:- =L88 non-Matrix - Contact(port)
B:- Z:- S:- =L88 Matrix mode ROW(Zeile) and Column(Spalte)

The exception is the additional Device ID field (Shown above with the a LinkS88 selected) which identifies which control device the S88 in question is connected to. As of Feb2015 the options are limited to the Master CS2 or a Slave(Auxiliary/Secondary) CS2. Next month we expect the addition of the L88 (60883 Link-S88) and with the unavailability of legacy S88s you can expect to see this more often.

The purpose of this "Trigger" section is simply to identify which S88 port will trigger the associated memory sequence.
UserPostedImageKeeping in mind that the Manual/Auto button to the right of the Memory's row must be set to auto as well.

An option is provided whereby the trigger event will activated when....
UserPostedImage ... the S88 sensor changes from Unoccupied to Occupied
UserPostedImage ... the S88 sensor changes from Occupied to Unoccupied

As a comment/tip... 
The option to use the Occupied->Unoccupied option should only be chosen if you have confidence that the contact will not bounce and give false pulses. This might partially be mitigated by extending the S88 delay time in the CS2 Setup section.

Condition(s) (Bottom half)
While the Trigger fields may define which S88 port is to be used - the "Condition(s)" are what permit/allow it to work.
By default there is no condition defined which means the trigger will always work.

A condition is the definition of a (totally separate) S88 port plus a state (occupied or unoccupied)

If any entries are added to the list of conditions they must ALL be in the correct state for the trigger to work.

In the example below S88 port 1 is the trigger but it will only cause the sequence activate if both ..
- S88 port 2 is occupied 
and
- S88 port 3 is Unoccupied




As a comment/tip... 
It is possible to set a S88 port on the layout diagram without an actual S88 physically available.
touching this S88 will toggle the virtual state of the sensor between Occupied and Unocupied

Speed


Re: ... page 3, under picture 2
When activated BR94 start run three seconds in speed of 53 ( at the moment I don’t excatly know what that 53 stands for)

Below is from the help file "hilfe/de/fsitem_speed.html" translated using google ...

In summary the CS2 uses a 0-1000 scale for its internal speed range - this is divided into increments based on the decoders definition of # of steps.
Possibly the easiest way to conceive this is as a percentage divided by 10 - thus 53 = 5.3% of maximum speed

This is rather an over simplification as ...
- the speed curve set into the decoders of modern locomotives is rarely linear
- for a given decoder speed step (say 14 on a 28 step decoder) the scope within the 1000 range could be from approx 482 to 512 )
however it does give a starting reference.
- the magic around a 27 step decoder interpreting a 1-14 command range depends on acceleration v deceleration.

I have my reservation about the calculation shown
I suggest you would be better to learn the speed by driving the loco the way you want and noting the values anyway.

FWIW, on the normal CS2 throttle control page, the FS (Fahstufen) value shown next to the green speed bar max's out a "-1" (1 less) than the specified decoder. i.e. for an mfx 126 step decoder it is 125 and for an old MM 14 step decoder it is 13.

Change engine run command

Loco
Selection of the loco to be controlled
Speed
desired speed of the locomotive in parts per thousand (1: 1000) of the maximum speed of the locomotive
0 = stopping the locomotive with ABV
1 = locomotive runs at the lowest possible gear
100 = train reaches 10% of full speed
500 = train reaches 50% of full speed
750 = train reaches 75% of full speed
1000 = train reaches full speed
Waiting period
The pause after this step run (real-time hh: mm: ss.ss)

If you want to calculate the (per 1000) value for an appropriate gear (decoder spreed step) , the following formula is used:
- Rate (per thousand) = 1+ (increment * ( desired_speed_step -1))

The step size is obtained from the number of speed steps, supported by the decoder:
14 speed steps
increment = 77
27 speed steps
increment = 38
28 speed steps
increment = 37
31 speed steps
increment = 33
126 speed steps
increment = 8