Houston, we have a problem: See my division into blocks:A typical pattern would be that a train A is positioned in block 21. A is planned for departure “downstairs” via blocks 23, 11, 12 etc.. In addition another train B has stopped with it’s front in block 26 and it’s rear in block 11 and is on it’s way into block 21, but cannot go further due to signal 26-21 showing “stop”.
What will then happen is that train A proceeds past signal 21-23, which shows “proceed”, when it’s warrant become active, but stops as soon as the front of the train is inside block 23 (still with the rear of the train in block 21, so that signal 26-21 shows “stop” and holds train B back), because signal 23-11 shows “stop”. This establishes a deadlock since the two trains are waiting for each other.
The circle is not big enough. I need more blocks and signals. The question is how?
Block 23 and 26 can be split in the middle, i.e. at the edge of turnouts T11 and T15. That will make both trains move a little further. But not enough to get the rear ends out of blocks 11 and 21.
Block 21 can be split in the middle. That might just do the last bit. But it will not look very nice to have train halfway at the platform stopping for an invisible virtual signal. So it will be block 11 that is being split into more than one block. I can do it in the middle and probably solve most cases.
But I can also split it into 3 blocks, so that the middle block consists of 6 track pieces (corresponding to my maximum train length) and so that the turnout + 1 track piece in each end form the other two blocks. I suppose this will give better flexibility, since a waiting train will get fully into block 11.
The target is to be able to run 3 trains simultaneously. I.e. two trains must be able to be waiting to enter the station without blocking the train at the station from leaving.
Ultimately each and every piece of track could be it’s own block. But it must be sufficient if the circle is divided into blocks so that every second block is 6 track pieces long and the other quite short:I.e. I will be needing 5 additional sensors. And I haven’t got 5 free sensors. I only have 4. There is probably no benefit in splitting block 23 as indicated. So I can save the 5th sensor right there.
On the following pictures, the liquorice bits are illustrating the front of three trains. Train A is in block 21, trains B and C are waiting to enter block 21:When train A is started, it has permission to go as far as the block before train C:Then train B can move into block 21 and train C can move forward to wait at the next waiting position:Finally, train A can move on. Either in the back of the queue for block 21 or more likely away via block 12:For this reason, my layout is going to be changes like this:
I did some measurements on current sensor 32 (the one that has never worked). The S88-N module works OK. But there might be something wrong with the diodes. Either one of them is turned the wrong way around or one is defect. I need to take the entire module out for repairs, if I must use number 32 at some point in time.
I got the extra blocks defined today. It was quite fast to do the physical part with isolating track and soldering wires.
But the JMRI setup turned out to take longer time. Even though the most annoying errors in the editor seem to have been corrected by somebody, but it took me 3 – 4 hours to re-define a good part of the layout.
And now it seems the there is no more frost at night. That means cleaning and preparing the green house and planting tomatoes tomorrow. And not much model railroading until autumn.
Even though it is spring, I did a railrod-thing today. I have been at Togdillen to collect my Heljan IC3 train. It has been there for repairs – or rather finalization on behalf of Heljan.
The specific problem was that the drive shafts, which from Heljan’s hands are made of plastic, kept falling off or falling apart. But now Togdillen have replaced them with metal drive shafts.
Until further, it looks good. The train has been running several rounds on my layout without blowing itself up.
The train is a bit noisy. For one thing the collector shoe “talks” somewhat loud and for another, the new drive shafts are not exactly silent either. But it runs. And to be fair, the noise is not much worse than what could as well come from a Märklin locomotive.
Instead of pulling weeds from the garden, I experimented with automatic train driving.
It works pretty well as long as I only run locomotives without wagons. But I have one train with wagons. And even though the rear wagon is equipped with a collector shoe and actually draws current, it happens quite often that other trains are permitted to move and thereby crash with this one.
I have tried debugging the problem. And it looks very much as if it is not reliable enough with a single collector shoe that is not even placed at the rear boogie.
Another problem is that as trains are constantly waiting for each other, they move in an unrealistic pattern with way to much starting and stopping.
The question is if I really want several trains to run behind each other? Maybe I should only run one train at a time?
On the other hand, it looks good if – just occasionally – two trains could enter Skive H simultaneously (of course from each direction and to each their own platform).
Maybe I should – instead of having SCWarrants carefully trying to free blocks up for subsequent trains – change it so that a train does not start unless the entire route can be allocated and before all turnouts are set? That also means that if just one block is occupied, no part of the route may be allocated. And blocks may not be de-allocated one at a time, but have to be de-allocated in one bulk operation when the train has moved fully into the final destination bLock and the warrant is finalized.
Thinking about it, it may be enough to do the last bit, i.e. de-allocate in a bulk operation. That change can be made by just deleting a single line of code. So I will try it out first.
The weather was no good, so I managed to implement the bulk allocation and deallocation of SCWarrant routes.
At the same time, I also made sure that all turnouts are set before the train starts to move.
It makes the layout less lively, but it is more realistic that having trains queing up behind each other.
It works great. No more collisions.
I did try the easy fix with only bulk de-allocation. But it didn’t work. Deadlock situations occurred very fast.
The weather is nice and warm, and I am mostly outside enjoying it. But I could not completely stay away from the railroad. I had to see if I can still run several trains simultaneously.
And to upper the odds a bit, I was putting some Lima B wagons behind to locomotives and ran my Roco train as the third train. JMRI and warrant-wise, it works fine. But the Lima wagons are not 100% reliable. At one time I had a bad derailment accident. And a couple of times wagons decoupled. All in all good. But I need som better (and nicer looking) wagons.
An other irritating issue that I did a little to cope with: Since it takes a while to move a turnout (I have programmed the ECOS to wait 2,5 seconds), since the ECOS only seem to move one turnout at a time and since JMRI/Warrants seems to sometimes set all turnouts along the route twice, it takes some time before a train starts moving. I tampered a bit with the ECOS turnout code inside JMRI, so that if a turnout is already set in its wanted position (JMRI knows very well the position of all turnouts), no command is sent to ECOS. That helped a lot. But I will leave it as prototype code until further.
I also ran my newly renovated Heljan IC3 train. It actually runs pretty stable. It looks as if it can pass the curved R1 turnouts without problems. It gous uphill, downhill, around in narrow curves. But but but. It derails if it shall leave the main track through a “normal” 24611 or 24612 turnout, which is supposed to be R2, but where on my layout the train must continue through an S-curve, which is also R2. I will have to define Warrants for the IC3 train without such S-curves.
Apart from that I have not touched the train since my latest update. I am growing tomatoes etc. And I have been playing with home automation in Domoticz. Se separate page.