Subscribe via RSS
20Feb/123

Controlling points/turnouts with Servos via the Arduino

I've managed to cook many Tomix Turnouts during my tinkering with the Arduino. The main issue has been applying too much current for too long. The actual switches that come with Tomix points are momentary and, internally, the circuit is only completed very quickly via a spring mechanism. The goal, of course, is to prevent the user from holding the power to the turnout magnet for too long. Unfortunately, I've managed to (via both coding and circuitry mistakes) apply too much power in the past and it takes very little time to melt the roadbase of Tomix Finetrack.

Due to all this, and the desire to use Peco Setrack, I'd decided that instead of Peco Turnout Motors (which also require large amounts of voltage) I'd use the smallest RC servos I could find. Off to eBay I went and the following arrived not so long ago.

9g Servo 9g Servo 9g Servo

I had no idea what servos to purchase: they seem to be rated in grams as to how much they can lift? I read in a few random locations across the web that 9g would be more than enough for switching points.

Hooking up Servos to your Arduino

This could not be easier. Arduino 1.0 already comes with the Servo Library in-built. Simply include this header and then implement the following code. The basic idea is to initialise the Servo on a specific pin (they only require one pin to be controlled) and then hook up the external power source. As per usual, it's not recommended to power too many off the USB 5v.

Servo and Rotary Encoder

Mounting Servos to control Turnouts

Got some piano wire? A paperclip? Resistor legs? Any solid piece of wire/metal/rod will work to connect your turnout to a Servo. As you can see below, I've used a .55mm 'hobby wire' to connect everything up as I don't need flexibility and I want it to be robust.

Prototype Arduino + Servo controlling point

Prototype Arduino + Servo controlling point

You could also be very tricky and build a full interlocking frame to control multiple points at once. I bought a few 'hinges' (no idea what the real word should be) to allow the rodding to turn corners but thought it easier in the end to just install another Servo :).

Rotary Encoders allow you to switch the Turnout yourself...

Rotary Encoders are 'endless' switches which usually come with 5 pins + GND. You can continually turn them, allowing for applications where you want an inifinitely adjustable value. The pins are as follows: one side has two pins which are for the 'pushbutton', as the actual stem can be pushed into the base and provides a momentary switch. The other three on the other side are for the rotor location. The inside pin is 'common' and needs to go to ground; the outside pins are 'data' and need to be hooked into digital inputs somewhere on your Arduino.

Rotary Encoder

You then simply download the rotary encoder library from PJRC, drop the main Encoder.cpp and 'utils' folder into your sketch folder and include the following source lines.

#define ENCODER_DO_NOT_USE_INTERRUPTS

#include "Encoder.h"
#include <Servo.h>

Encoder myEnc(7, 8);

Servo myservo;
long position = -999;
long srv = 0;
void setup() {                
  myservo.attach(5);
}

void loop() {
  long newPos = myEnc.read();
  if (newPos != position) {
    if (newPos < position) {
      srv += 1;
      if (srv > 180) srv = 180;
    } else {
      srv -= 1;
      if (srv < 0) srv = 0;
    }
    position = newPos;
    myservo.write(srv);    
  }
}

The code above will check if the rotary encoder has moved and, if it has, then check which direction and adjust the servo accordingly. Note that the servos will hum/jam if you try to turn them past any restrictions: i.e. once hooked to a turnout, the servo's movement will be limited and you should only move them as much as required... don't try and move them past the limits of the turnout. I'm quite sure that you will ruin either the servo or the turnout if you let it hum for too long past the movement of the switch.

What to do next?

Control your points based on timing? Or even based on track occupancy detection. Computerised turnout control will allow you to automate any movement over your layout. Of course, my current goal is to build a node for the OpenLCB project to control points via servos. This will need to store data, allow max/min settings per point, etc... but more as it gets built!

17Feb/124

Persistent Data on the Arduino (EEPROM)

It's taken me a year to realise that you can actually store data at runtime on the Arduino and happily turn it off, expecting the data to still be there when you turn it on. By this, I don't mean the code you've uploaded; I mean the actual values you've created/calculated/determined whilst your code has been executing on the Arduino.

Actually, I lie... it hasn't taken a year to 'realise'... it's taken a year to actually need the ability to store information. It occurred to me, whilst looking at Don's OpenLCB railstars products, that they'd need to store everything they 'learn' as you set them up with controller nodes. All of my previous projects would've forgotten all settings once you disconnect the power!

Memory Types on the Arduino

After a little research, it turns out that Arduinos have three types of memory areas. These would be the flash, EEPROM and SRAM. The former is the location that all 'sketches' and other compiled program code go, therefore being the largest area. The EEPROM is, depending on your chip, an area around 1k to 4k in size for storing data to be persisted. Finally the SRAM is the 'running' area where data is stored during runtime of your code.

Memory Type ATMega168 ATMega328P ATmega1280 ATmega2560
Flash 16k 32k 128k 256k
SRAM 1k 2k 8k 8k
EEPROM 512 bytes 1k 4k 4k

So, as you can see, the more you pay for the microprocessor, the more space you get to play with. I have used the Arduino Mega 1280 for a while and had never used the space available in the EEPROM... what a waste. Now I'm tinkering with the Atmega328P and, as it shows, there's a lot less space available to play with. Fortunately, depending on how frugal you are with data storage, there's more than enough for creating our OpenLCB nodes.

Working with the EEPROM

Arduino 1.0 (and all previous versions) include the EEPROM Library. This library includes two calls, being read() and write(). For the Atmega328P, I'm able to store a byte in 1024 areas. This expands to 4096 areas for the Mega.

By the way, for time-critical apps, an EEPROM write takes 3.3 ms to complete.

NOTE: As the Arduino page warns, EEPROMs are only good for 100000 writes! Please only write/update your EEPROM areas sparingly and when absolutely required.

Efficient storage of Bits/Bytes

Depending on your requirements, you may want to be more efficient in the way you store certain values. We'll start with booleans: if you're lazy and wont need to store over 1024 booleans on an Atmega328p then you can simply check the boolean and store a '1' or '0' in any of the 1024 areas. Of course, if you need more, then you'd want to efficiently use the 8 bits per byte that you have available. As each of those 8 bits can be a '1' or a '0', you can then actually store 8 booleans in each byte. It's simply a matter of 'or'ing 8 booleans together and left-shifting to ensure you set the correct bit.

byte setBit(store, bit) { //bit 1 is right-most
      store |= (1 << (bit - 1)); //set bit 5 to '1'.
}

byte clearBit(store, bit) {
      store &= !(1 << (bit - 1));
}

bool getBit(store, bit) {
      byte b = (1 << (bit - 1));
      return (store & b);
}

Arduino has a good bit of information on BitMasks and BitMath for those interested.

Using PROGMEM to store 'known' data

So, as previously mentioned, the Flash area has the most space available. The Arduino comes with the PROGMEM library for storing variables in this area. Note that you cannot easily write to this at run-time (I haven't dug far enough to work out if you really can) ... the goal is to just store large data in the flash and use it from there at runtime rather than copying to your limited SRAM first.

Firstly, you need to select from a datatype below:

Data Type Description
prog_char a signed char (1 byte) -127 to 128
prog_uchar an unsigned char (1 byte) 0 to 255
prog_int16_t a signed int (2 bytes) -32,767 to 32,768
prog_uint16_t an unsigned int (2 bytes) 0 to 65,535
prog_int32_t a signed long (4 bytes) -2,147,483,648 to * 2,147,483,647.
prog_uint32_t an unsigned long (4 bytes) 0 to 4,294,967,295

Now, declare it in the PROGMEM 'space'. It seems that the Arduino devs recommended it to be stored as an array as you'd usually only use this space for large amount of data.
I've chosen the prog_uint16_t (note that this var size is a 'word'), the code below stores two of these values and then uses them during execution.

#include 
PROGMEM prog_uint16_t myValues[] = { 123, 456 };

int k; //counter? don't quite know what for.
int readValue1, readValue2;
void setup() {
      k = 0; //read the first word. 
      readValue1 = pgm_read_word_near(charSet + k);
      k = 1;
      readValue2 = pgm_read_word_near(charSet + k);
}

void loop() {
      //now you should probably do something with these values...
}

And that's it.. I hope this helps some of you to limit your SRAM requirements and also to store data for users each time your device is switched off!

14Feb/122

Building an Arduino from scratch

OK, OpenLCB is the new cool... to make 'nodes' for it, we need a skeleton Arduino to build from. This article will define how to go about this. The goal in the end is to have a prototype that can, via the Arduino IDE, have a sketch uploaded to do as you wish.

References

Firstly, a list of random links for random information on building your own Arduino:

Serial or USB?

I know the DB-9 Serial Port is archaic... needs an Interrupt Request (IRQ) assigned to it etc, etc... but there's something nostalgic about plugging in a chunky cable instead of a new USB-B connector. It's also cheaper and easier to use parts on hand and I had a few MAX232s sitting around.

To use USB you'll need an FTDI chip to convert the USB signal from your PC to the TTL protocol of which the Arduino understands. Note that there are also FTDI chips which convert USB to RS232, the serial protocol that allows devices (specifically your old dial-up modems) to communicate over serial cables. You don't want one of these as you'd then have to convert the RS232 again to TTL.

Which Microcontroller?

Good question! Your choice of microcontroller comes down to size and quantity of digital/analogue inputs and outputs. I decided on the Atmega328P as it has enough IO lines for what I need on each OpenLCB node; I'll produce more node types and have them specialise rather than one node that does everything from one board. They're cheap on eBay and they are very similar to the MCU used in the Arduino Duemilanove (5 analogue and ~13 digital IOs.)

Schematic

You'll find schematics all over the web, although none seem to agree on what components are the exact bare-minimum for an Arduino... it actually makes it quite difficult to know exactly what you need. Below is a solid basis to start your Arduino-based invention, containing everything required to program over the serial port.

BareBones

Building the prototype

There was not much out of the ordinary on the breadboarding of this project. It's actually quite simple and the standard rules of check, check and double-check your wire placement, IC pin numbers, etc... as you go is imperative. The serial cable connection on this project, due to the cable being rigid, can cause issues of dragging the board around. I'd recommend to seat connection and cable first and secure everything to your workbench... You'll then prevent your breadboard from upending when the serial cable chooses to move around.

Programming from the IDE

The MCU chosen is the Atmega328P and, as mentioned, it's closest match is the "Arduino Duemilanove w/ Atmega328". Once everything was connected I attempted to flash using this board, selected in the Arduino GUI, but it didn't work straight away. The initial error was that the chip device ID didn't match. It turns out that the Atmega328 has as a different code to the Atmega328P (something to do with Pico Power.) I had to hack the 'avrdude.conf' file buried in the arduino folder and then it just worked.

Before I knew it I had the servo library in and a mini servo from eBay controlling a Peco point on my layout.

Re-programming an Atmega MCU

I accidentally learnt how to do this... At one point I'd put the MCU in the wrong way around and expected that I'd killed it. The circuit then failed to work after numerous attempts with the TX and/or RX lights constantly lit. It wouldn't accept sketches and I therefore thought the best bet was to re-flash the bootloader + program.

It turns out that my Arduino Mega can be used as an In-Serial Programmer and so I set this up. This can be selected via the "Arduino ISP" option in the "Programmer" menu under the new Arduino 1.0 software.

ArduinoMegaISP

(Note that the capacitor from +5v to RESET is a 100n non-polarised.)

After the re-flash and a reconfigure of the MAX232 in/outs (the schematic above is the final version that now works perfectly) it all just worked again... for one of the MCUs anyway. The second simply refused to receive sketches; the RX light would not turn off. I took this as a fundamental failure in the chip (I blame my bread-boarding skills) and therefore tried something sneaky: I copied the entire code off the MCU that worked and flashed it to the 'broken' one with avrdude and it's associated avrdude-GUI [direct download link]. It turns out this worked... the chip now did what the previous one did... but in the MAX232 breadboard it still would not accept a new sketch from the Arduino GUI. I attempted to find other methods to 'completely erase/reset' an Atmega, but I couldn't get it to work and so just accepted it's fate of having to copy it's brother.

9Feb/120

OpenLCB: Controlling Your Model Railroad

It's been a while since anything remotely home-brew/electronic for model railways has appeared on this blog... but this is about to change. It's now time to try a third method of electronic control after previous attempts of controlling via DCC Boosters and then Arduino Microprocessors.

Don E. Goodman-Wilson, who you would've seen commenting on a few of my posts here regarding DCC and Arduino, has gone all-out and started production of some pretty amazing technology. He's started a company called railstars which is currently providing DCC boosters, central units and throttles. Not only are these perfectly marketed and designed, they also now incorporate a new concept known as OpenLCB.

OpenLCB

OpenLCB is an initiative by the OpenLCB team to define a network (protocol and required hardware) to control pretty much everything on your model railway. The end result is layout control and automation which is easy to install, configure and extend. As of the 9th of February 2012, there are motions for NMRA to work closely with the OpenLCB project in a venture named NMRAnet... stay tuned for more information on that!

It should be noted that the OpenLCB team is still in the early stages of design work and, although prototypes have been built and tested, there is a lot of work to do to get final products to market.

The basic concept consists of a control bus with nodes located along a network bus, terminated at each end. Each node has it's own processor that can create and respond to events. Events can be anything from controlling accessories and trains on your layout to sending informational messages to remote displays. With this, you can have a node controlling points around your layout, a node controlling trains indirectly via DCC and a final node acting as a control panel with buttons and switches configured to send specific events.

In case you were wondering, the OpenLCB venture has no intention to interact with DCC. Other parties, such as Don with his railstars products, are currently bringing DCC in as an option, but do not intend to outright replace it! Don's efforts with railstars OpenLCB components will allow DCC commands to be transmitted over the OpenLCB protocol allowing each node on the network to respond appropriately. A lot of opportunities will open up with this as you will then be able to use the OpenLCB network to transmit DCC information, allowing completely separate DCC blocks on your layout.

You can find a lot more information about OpenLCB here at their 'First Look' page.

I want to control my DC Layout?

There are currently no nodes designed for use as standard DC throttles; fortunately, controlling DC layouts via the OpenLCB bus should be completely feasible! As per my previous articles on Arduino control of model railways, a simple PWM motor controller is all that is required to supply a model railway with the appropriate power levels. Since OpenLCB is also very compatible with Arduino, it would also therefore be quite practical to transform an Arduino+Motor Controller into an OpenLCB 'node'. This would mean that any 'controller node' could then send 'events' to the 'pwm node' which would then act accordingly... be that 'supply 50% throttle'.

I'd spoken to Don on this concept and he indicated that the OpenLCB key concept was to control 'Trains' rather than 'Blocks'. This is the same as DCC... as you supply the same power+data to all rails on your layout and the locomotives respond only when called. The issue then with DC control is that trains, sitting in blocks, will respond as soon as you apply power. One answer would be to have detection circuits around the layout which would follow movement and assume where each train was. Another would be to have the 'pwm nodes' act simply as 'accessories' that supply power to each block. This concept is still under discussion.

What's Next...

I really do want to get into development and testing of the OpenLCB system. Fortunately the whole lot is open source and one can even use standard Arduinos as 'nodes' based on the code available in the OpenLCB repository. Once I have enough components I'll be building and connecting a few nodes to test the communications functionality. After that I'll go ahead and design a block-controller and pwm node. At the least this will allow me to prototype some ideas whilst controlling my latest n-scale-in-a-table layout.

The OpenLCB project will also shortly be offering a 'dev kit' to parties interested in developing for the OpenLCB project. It will have enough components to create a local network able to control a layout. You can find out more information on the Japanese Modelling & Japan Rail Enthusiasts Forum.

I intend on keeping everyone updated as I tackle the concept of DC in the newly formed OpenLCB realm.

10Nov/112

Lima HO NS Koploper

I purchased one of these from Schaal Treinen Huis in Amsterdam after travelling on one to Groningen. The Koploper reminds me a lot of the JR West Thunderbird (683 Series).

The review? It runs like a dog due to it only having a single motorised end carriage (fortunately with all-wheel pickup) and the lighting shines brightly though the shell.

Lima HO NS Koploper Lima HO NS Koploper Lima HO NS Koploper

Lima HO NS Koploper Lima HO NS Koploper Lima HO NS Koploper Lima HO NS Koploper

As you can see, the train I bought included an add-on carriage and all packaging. The price tag was on-par with what I'm seeing on eBay nowadays. The train was in a glass cabinet on display when I bought it and I didn't realise that the base package only contained one coach. I have since found and purchased another coach from eBay and will attempt to extend this set. You can also see in the comparison shot of the two passenger cars that they are slightly differing in colour. Unfortunately, this is just a side-effect from purchasing second-hand; I have no idea what their story is and if the main set was left in the sun too long...

Lima HO NS Koploper Lima HO NS Koploper Lima HO NS Koploper Lima HO NS Koploper

Either way, it's a great looking train set.

7Nov/110

The Southern Spirit – November 2011

Right, it's that time of year again... The Southern Spirit was tabled to come back through Melbourne from Adelaide on the 5th and 6th of November. What better excuse for a drive out west to see what had been happening...

Of course, there's always concerns that driving 400kms might be a complete waste of time and this TAA on occupations near Great Western should have probably received more of my attention. Just in case you're wondering... an 'occupation' is where the Australian Rail Track Corporation has requested complete manual control of a section of track. In this case it was the area between Pyrenees Loop – Great Western Loop and Great Western Loop – Deep Lead Loop... they were to do ballast cleaning!? ... this might actually be worth the trek for!

Planning

As per usual, I perused through ARTC's Train Alteration Advice and determined items which might have applied to the 5th of November; fortunately there was nothing apart from the above ballast cleaning. I therefore recorded the times on ARTC's timetables for the area into a diamond diagram and, from this, worked out where I should have been when. I, this time, wanted to check out places I hadn't been to yet and therefore started working out what train I could see where.

Diamond diagram for chasing the SS

How to read the above? The vertical axis shows the time-of-day and the horizontal the location. Each location has an arrival and departure time... so if you see a flat horizontal line for any service then it means that train has not stopped. Therefore, the train with the flat line will be moving whilst the diagonal will be waiting in a loop when you see two lines intersecting.

From the above you can see where all the regularly scheduled trains cross. I had errands to run on Saturday morning and, based on google maps estimates, could only just get to Tatyoon Loop by 11:00am. This would just be enough to see 6AM3 pass The Overland. The goal was then to wait for the Mineral Sands from Portland and follow it through to Murtoa. I would then wait for the Horsham container train, arriving in time to see the Southern Spirit arrive. 4PM6 would then be following and I'd choose a point along the way back to see this again.

Tatyoon

No, not Tatooine... there's no pod racing here. This was meant to be a loop for a pass, but it didn't seem anywhere near long enough. There was a seemingly-abandoned grain silo with a definitely unused siding for it. The poor old station platform didn't even have a station sign on it anymore... I imagine the last passenger service here would've been steam-hauled?

Tatyoon Station Silos at Tatyoon Silos at Tatyoon
Silos at Tatyoon Tatyoon Station Silos at Tatyoon Silos at Tatyoon Water tanks at Tatyoon

I waited up until the time 6AM3 was meant to arrive but realised that I was lying to myself and it wasn't coming. The lighting at Tatyoon wasn't the best for The Overland, so I bolted to Maroona and waited for it there. At the western-end of the loop was a great view with the railway sweeping to the left... it would've been perfect in the morning sun for a Melbourne-bound freighter!

Tatyoon - Looking towards Maroona Tatyoon - Looking towards Maroona Tatyoon - Looking towards Tatyoon

Maroona

Yes, Ma-roo-na. Not to be confused with: Mooroopna, Moorooduc, Maroondah, Maroota, Mooralla, etc...
This township is located due-south of Ararat (not do be confused with Ballarat) and ... there isn't much to it. Fortunately, there's a junction here to Portland which means the railway infrastructure was slightly interesting. The roads in the yard had been used recently and it seems that the trains to Portland must arrive into the yard and then depart, crossing the main.

Maroona Station Maroona Station Maroona Station
Maroona Station Maroona Station Old point levers at Maroona
Maroona Yard Maroona Station Line to Portland Maroona Station Maroona Station

The Overland, running 25 minutes late, arrived from the East and proceeded at a slower-than-usual pace through the station. This was the first and last time I was to see it.

Overland approaching Maroona Overland approaching Maroona Overland passing Maroona

I then waited for the Mineral Sands train... but realised it was never going to turn up. I therefore decided the better option was to bypass Ararat and head to Murtoa.

Murtoa

I'd never been here either... It's a large detour from the highway and it's the reason why I previously beat The Overland to Horsham as, although it can do 115km/h, the path via Murtoa adds quite a few more kilometres. Of course, it also meant I wouldn't see The Overland at Murtoa as I was never going to catch up to it on the country roads. Murtoa is the junction for the branch North to Hopetoun... the rails were quite shiny, so something must've run that way recently, but the Mineral Sands train wasn't to run this day.

Murtoa Yard Line to Warracknabeal/Hopetoun Looking towards Murtoa Station

I decided that I'd wait here for the Horsham freight. There was no reason it wasn't running, but as The Overland was 25mins late, this train would probably also be late.

Grain infrastructure at Murtoa Murtoa Station Murtoa Station

After dealing with wildlife (brown snakes, etc..) the train came through fast.

8030+GML10 on Horsham freight

8030+GML10 on Horsham freight

I then jumped in the car to Horsham... expecting to see the tail of this train, but it had a headstart on me and there was no chance.

Horsham

Last time we saw C501 and T386 doing the Horsham freight, this time it was 8030 and GML10. Other than that, not much as changed... same colourful characters on the platform watching the trains go by. Actually, there is now a rail tractor LOK001 doing the shunting/splitting of the container train instead of the actual locos that brought it in.

Rail Tractor used for shunting Rail tractor at Horsham 8030+GML10 at Horhsam
GML10 at Horsham 8030+7334 at Horsham LOK001+8030+GML10 at Horsham

NR85 brought the Southern Spirit in around 20mins late. The consist was as long as usual.

NR85 on Southern Spirit at Horsham Horsham Station Southern Spirit at Horsham

NR85 on Southern Spirit at Horsham

Southern Spirit at Horsham Southern Spirit at Horsham Southern Spirit at Horsham

And then 4PM6 came through on time based on its amended running.

4PM6 passes Southern Spirit at Horsham

4PM6 passes Southern Spirit at Horsham

And that was it... the day had turned dim and the freighter was running with the light for the rest of the trip... I chose to return home.

Ararat

So, the initial TAA I mentioned had something about ballast cleaning in it? I forgot to tell you that I actually saw the track gang in the first loop directly after Ararat. It had to be a loop (was a fair distance from the highway) as The Overland had already bolted through. I was hoping they'd be in a location closer to a road on the way back, but they'd already packed up and were in Ararat yard.

Track machines at Ararat

Track machines at Ararat

The next day...

The Southern Spirit spend the night in Maroona. It proceeded east via Melbourne but was to only stop at Broadmeadows briefly. Fortunately it was to pass the large standard gauge viaducts as per usual and I decided to catch it at the one closest to Jacana. The up V/Line SG Albury service was running around 30 minutes late, but the Southern Spirit then got the green and bolted past.

N470 on late up Albury at Jacana NR85 heads to BMS NR85 heads to BMS

NR85 heads to BMS

And that was it... this train returns via Melbourne on the 14th of November. It will actually pass via Southern Cross Station, after a pause up in Somerton. We'll see what happens...

2Nov/110

Cup Day: NSWRTM heads to Mexico

Just in case the title confused you: Most Australian's know Victoria as 'south of the border' and therefore 'Mexico'. It's a colloquialism/pay-out that's lasted generations and wont stop anytime soon. Now that we have that sorted we can get back on to the trains... The NSW Rail Transport Museum owns a large amount of heritage stock and annually visits Melbourne for the infamous 'Melbourne Cup' horse race. Unfortunately the train didn't make it all the way last year due to a derailment at Albury!

West Footscray

Melbourne struggles when it comes to good trainspotting locations making use of the morning sun. The main issue is that most of the good locations (viaducts, etc...) are good in the morning for out-bound traffic and the afternoon for in-bound traffic. As the train was in-bound in the AM it was time to think of a new strategy. I'd previously checked out Middle Footscray, but the options were limited and so I instead headed up to West Footscray.

It turns out 3 other onlookers had thought up the same concept and we all sat and waited. Fortunately we didn't have to wait long as the usual suspects soon came through... The XPT, The Overland, NRs on containers, Gs on containers... etc... etc...

LDP001 at West Footscray XPT at West Footscray NR+NR at West Footscray
V/Locity at West Footscray XPT at West Footscray NR+NR at West Footscray NR on Overland leaving Melbourne G+DL+G on 2CM2

And then ... the one we'd all been waiting for...

4490+4520 on RTM Southern Aurora 4490+4520 on RTM Southern Aurora 4490+4520 on RTM Southern Aurora

Pretty ugly eh? a 44-Class arse-end-leading isn't the prettiest site at 9am in the morning. Either way, it was worth the wait as the damn thing hauled ass through Footscray. That was it for the mornings movements; the train wasn't due out again until 1830.

Departures

ARTC posted that the departure time was 1830 and the train was right on time... fortunately there was more than enough entertainment at Sims St right up until the train left.

NR18 and QR6004 at South Dynon Junction NR47+NR57 arriving with steel NR47+NR57 arriving with steel
SS, GHAN, IP at South Dynon Loco NR89 departing with intermodal G530 departing South Dynon
G530 departing South Dynon A78 departing South Dynon A78 departing South Dynon
V/Line Albury Service departing Melbourne V/Line Albury Service departing Melbourne 4520 passing 8114
Southern Aurora deparing Melbourne Southern Aurora deparing Melbourne Southern Aurora deparing Melbourne

...and that was a wrap... Supposedly the Southern Spirit is back in town again this weekend... might go out West and see what is happening.

Complete album here.

1Nov/110

Yass Junction – October 2011

The old haunt hadn't been visited for months; it was time to check out if Saturday mornings still had a good selection of traffic. It turns out that there weren't nearly as many grain trains as I would've expected and there were absolutely zero south-bound container trains... The XPL and XPT ran as usual though.

CLF4 leading freight through Yass Junction 8159 on grain at Yass Junction NR76 leading steel through Yass Junction
NR76 leading steel through Yass Junction Griffith Xplorer at Yass Junction XPT at Yass Junction
XPT at Yass Junction XPT at Yass Junction XPT at Yass Junction
CLF4 leading freight through Yass Junction 8159 on grain at Yass Junction Griffith Xplorer at Yass Junction Griffith Xplorer at Yass Junction

Infrastructure

Yass Junction Signal Box seems to have had a repainting. I imagine ARHS ACT are to be commended as they probably still have the lease on it. Meanwhile the mudholes around the place are still just as bad as ever.

Repainted signal box at Yass Junction Mudholes at Yass Junction Mudholes at Yass Junction

...and then something different

It's always nice when the signals switch red... It means someone is in control and something different is happening. Seeing the points then shift is better, as it usually means something is about to wrong-road into the loop and allow a pass. This time around it was BL30 (I hadn't seen a BL in Yass before) leading 3x 48s on what must have been a pretty heavy load of grain.

BL30+48+48+48 at Yass Junction BL30+48+48+48 at Yass Junction BL30+48+48+48 at Yass Junction

The end of the loop is a fair way north of the station. The better viewpoint is a road bridge up along Cooks Hill Road. I could've just stayed and seen what was passing from the platforms... but I hadn't been up that way in a while.

BL30+48+48+48 at Yass Junction FL220 in LE consist heading North FL220 in LE consist heading North

It turns out that light-engine consists can fly! FL220 lead 48s35, LVR's 4702 and 48s33 on the up, flying past me near the road bridge. The poor old BL and 48s then struggled up the incline and continued north.

BL30+48+48+48 at Yass Junction BL30+48+48+48 at Yass Junction BL30+48+48+48 at Yass Junction
4898 on grain at Yass BL30+48+48+48 at Yass Junction

And that was a wrap... the day had actually warmed up and there was family to visit.

12Oct/112

Spain – August/September 2011

The final country for the European leg of the world-tour was Spain. I'd previously purchased high-speed rail tickets from RENFE and was looking forward to using them.

Time in Spain was to be shared between Valencia, Barcelona and Madrid. Valencia was visited briefly; the goal there was to head out of town to 'La Tomatina'... I can only recommend that NOBODY bother doing this... ever. Barcelona then received the most time and Madrid got one night.

We landed in Barcelona from Athens and headed straight for Barcelona Sants. We had a connecting train from there to Valencia in 'Preferente Class'. This happened to be first class and was purchased very cheaply!

High-speed at Barcelona Sants Headphones in Renfe First Class Lunch on Renfe First Class

Before we knew it we were speeding south to Valencia.

Not moving yet... En-route to Valencia First class cabin on Renfe

Valencia

The rail system around Valencia was quite nice, it seems they had recently extended the high-speed there and built a new station (or were in the progress of converting an old one.) The old Valencia Nord station was also very impressive.

Valencia Station Renfe at Valencia Renfe at Valencia

As the main goal was a daytrip to La Tomatina in Bunol, there wasn't much time to check out the freight yards in the south.

Barcelona

I'd seen a lot of freight action near Tarragona from the train to Valencia and wanted to check it out. A day was spent on the rail around Barcelona and, due to a late start, I decided that Tarragona was a little too far. Instead I made it half way south through to Sitges and Cunit.

Track machine at Sitges Track machine at Sitges Track machine at Sitges
EMU at Cunit Cunit Station, Spain EMU approaching Cunit

There wasn't a freight train to be seen and hardly any high-speed stock, mainly just standard EMUs floating around. I therefore decided to go to Martorell in the north of Barcelona where, via google maps, I'd seen that freight, passenger and high-speed converged.

Fortunately I chose to stop through Garraf on the way through. This town is on the coast just above Sitges and has a beautiful old station building. There is a tunnel to the south and it all provides a great backdrop for shots.

Garraf Station EMU approaching Garraf Station EMU departing Garraf Station

Especially when a high-speed consist comes through...

High-speed passing Garraf High-speed passing Garraf High-speed passing Garraf

At Martorell I was instantly greeted by a freighter heading west.

Freight at Martorell

I then wandered from the station to the high-speed line around one kilometre north. I only had to wait 5 minutes to see a train bolt past.

High-speed near Martorell High-speed near Martorell High-speed near Martorell

I then returned to Martorell station and was greeted by a SEAT Car Carrier.

Martorell Station SEAT Car Carrier at Martorell SEAT Car Consist at Martorell
SEAT Car Carrier at Martorell FGC on SEAT Car Consist at Martorell

I'd also seen via google maps that there was a nice tunnel/castle/vineyard area one stop east of Martorell. The station was known as Castellbisbal and was easy to get to. I caught the next service east and wandered up to the road overpass of the high-speed.

High-speed line near Castellbisbal High-speed passing Castellbisbal High-speed passing Castellbisbal
High-speed passing Castellbisbal EMU passing Castellbisbal

I then wandered back to the station.

Shunter at Castellbisbal Shunter at Castellbisbal EMU at Castellbisbal
EMU approaching Castellbisbal EMU approaching Castellbisbal

When I last expected it a freight came through heading west.

Freight passing Castellbisbal Freight passing Castellbisbal

And that was it for the daytrip...

Madrid

The final trip was 'Touriste Class' to Madrid. This was on the ICE-3'looking rolling stock from Barcelona Sants to Madrid Atocha. The service was non-existent compared to First Class, but the train was great. Unfortunately the track condition along the way lead to a few rollercoaster-like experiences. At one point we even had to hold on to our drinks! I couldn't believe they were running the train at 300km/h over the rough patches.

High-speed to Madrid High-speed cabin control panel High-speed cabin

The final stop was Madrid Atocha. This was a newly rebuilt station, full of concrete. At least it was quite clean.

Madrid Station

We stayed near a station called 'Principe Pio'. It seems to have two sides, one which they have rebuilt with the other falling into disrepair.

Principe Pio Station Príncipe Pío‎ Station

And that was it... the next day saw a flight to Hong Kong. They've since stopped freight to Hung Hom and so there was no real advantage to chasing trains. I vowed to do more upon returning to Oz.

10Oct/110

Athens – August 2011

The second last stop on the list of train-hunting was Athens. Greece, as we all know, has copped a beating globally over it's recent financial issues and this shows throughout the city. Many shops are closed or damaged, leaving a very solemn feeling with anyone travelling through. This also extends to the railways; the Goverment-owned TrainOSE has been progressing the redevelopment of the main regional railway line (known as Proastiakos) but this seems to have been put on hold.

Larissis Station (aka 'Athens Central', 'Larissa Station')

This is where everything starts to get very confusing; there is no direct Wikipedia reference to this station and, depending on which site you're browsing through, everyone has a different name for it. I've come across two reasons for this: firstly most people translate the Greek language into English differently and secondly it seems that the area used to have two stations for two different destinations. Peloponnisou, the second station, was closed in 2005, but I can't determine when the new Larissis station development started. Either way, as you can see below, it hasn't finished.

As I arrived a DMU was departing the original Larissis Station. The station was quite busy as the train was approaching.

DMU departing Larissa DMU departing Larissa DMU departing Larissa DMU departing Larissa DMU departing Larissa

The yard was looking pretty dismal... the track had been skewed to allow more point installations and there was a lot of material lying around in stockpiles.

Old point at Larissa Stockpiled sleepers at Larissa Larissa Station Redevelopment
Slewed track at Larissa Larissa Station Redevelopment Old/new track at Larissa Water feeder at Larissa Larissa Yard

I then did a lap of the area to see what had become of the new development. A track machine and a rail train were stabled in the empty platforms. I don't know how long 55-213 had been parked there, but there was absolutely no evidence of work being carried out at the time.

Track Machine at Larissa 55-213 at Larissa Station 55-213 at Larissa Station

At the other end of the station you could see the tunnelling that was partially in use. It was also made obvious that there was a lot more work to do on the station.

Larissa Station Redevelopment Tunnel southbound from LarissaLarissa Station Redevelopment
Old Larissa Station (still in use) New Larissa Station platforms

Finally, the underpass to the shopping area and Metro station had some nice artwork of days gone by.

Underpass art at Larissa Underpass art at Larissa

That was it for Athens... the rest of the time in Greece was spent driving a Nissan Micra in Santorini on the wrong side of the road.
The next stop was to be spain; it was finally time to use the Renfe tickets I'd previously purchased.