Saturday, April 30, 2016

Silicon Valley Lines Operations session

Franziska and Sofia at Nowheres Yard with train #420 ready to go on AD4, and #370 ready next to the caboose track
Today was Ops Session #89 at Silicon Valley Lines. Franziska brought along her friend Sofia, and the two girls helped me run Nowheres Yard. The morning part of the session was quite intense with lots of live switching, and the girls were very happy when it was announced that the lunch sandwiches had arrived.

A part of the lunch crowd
Sofia ran the switcher engines most of the day, while Franziska manned the turnouts and uncoupled cars. Nowheres was a very busy place today, so I didn't have a chance to take a nice picture of the two girls.

Due to many willing operators today, we had a couple situations when Nowheres Yard was completely full. In the picture below the two reefer express trains #101 and #102 arrive at the yard simultaneously on AD2 and AD3, while AD1 is occupied by partially built train #376, and AD4 also has a train ready to leave. The stub-ended classification tracks in the lower half of the picture were either overflowing or had still pre-staged trains in them.

#101 and #102 are the highest priority trains on the railroad so they get express service in the yard to swap cars with the yard and each other, while everybody else needs to wait.
#420 got caught in this mayhem on its return trip from Ashgrove, and had to wait in the snow sheds at the top of The Loop for a while until we had space for them in the yard.

Yard full.
A couple engines in Nowheres were bad-ordered today and the yard was short on engines. Engine #251 of the set below was bad-ordered en route in Tracy, and only its sister engine #225 came back into Nowheres towards the end of the session.

Wednesday, April 27, 2016

Loading Dock Wednesday

If my loading doors get even remotely close to this, I'm happy.

Tuesday, April 26, 2016

Wind + Trees = Path Blocked

We had a lot of wind the last couple days. This morning my usual shortcut to Coyote Creek Trail was blocked by fallen branches. The big branch wasn't too heavy, so I could move it to the side and step over the rest.
While doing that I appreciated the mayhem of freshly overturned dirt thanks to the wild pigs in the area.

Sunday, April 24, 2016

Hallelujah Paper: Loading Docks

While waiting for the gravel roofs to dry I started painting the loading dock doors. The rubber lips need to be toned down a bit, but I'm very happy with how the doors are coming out.

Saturday, April 23, 2016

Hallelujah Paper: Painting Finished Paper Warehouse

I started painting the warehouse last week, but ran out of spray paint before the walls were appropriately painted. This weekend I finished the wall panels, masked for the trim, and painted the trim.

I went slightly overboard with masking tape here.

The trim comes out nicely. Of course, the miscolored roof areas will be covered with gravel.

Next up: the window frames, vents, and doors.

I would have very much preferred to paint this while still on the sprue, but the building was already mostly assembled when I started working on it. You can't always have it your way.

OpenWRT 15.05.1 on Soekris net4801

I had some trouble getting the OpenWRT 15.05.1 x86/Geode image download to boot on my Soekris net4801. In the default setup the boot didn't get past Grub.

Here are my notes on what I tried.
  • Download the SquashFS combined image
  • Delete CompactFlash:
    sudo dd if=/dev/zero of=/dev/sdb bs=512
  • Copy the image to CompactFlash:
    sudo dd if=openwrt-15.05.1-x86-geode-combined-squashfs.img of=/dev/sdb bs=512
  • mount the boot partition from CompactFlash 
  • in grub.cfg:
    • change serial speed to 19200 to match Soekris BIOS settings, so that we can view the whole boot process with the same settings.
    • remove console parameter from terminal_input and terminal_output entries. It appears Grub or Linux choke when console is present here.
    • in kernel command lines:
      • replace PARTUUID... parameter with /dev/sda2.
      • remove console=tty0. There is only a serial port.
      • change serial console speed to 19200. See above.
  • Attach a terminal to the serial port on the net4801 and watch boot process.
When using the squashfs image the watchdog timer kills the boot before the root file system gets mounted, while the x86/Geode image with ext4 works just fine.

Disabling watchdog on kernel command line in Grub doesn't make a difference. I suspect there's nobody else using the net4801 with OpenWRT and this specific build might not be getting tested.

Next, I tried x86/generic because I really want the Flash wear leveling provided by squashfs+jffs2. I only made the adjustments for console and serial speed from above. Sure enough, the boot pauses for a minute or two at the exact same place where the watchdog triggers with the Geode image ... and then proceeds successfully. This pause happens only on first boot after image copy, so likely some initialization is happening.

At the moment I have OpenWRT configured to match the functionality of the Netgear router I installed temporarily last week.  Using the Web interface, this was about as easy as one can make it. 

So far, so good.

Friday, April 15, 2016

Fixing the Internets

Fixing the Internets
The last couple evenings have not exactly been fun. The flash memory card in my trusty Soekris net-4801 died. Yes, that's the box I set up 10 years ago. The net-4801 acted as my firewall, dhcp server, and primary DNS server for Lostentry and related domains. I'm using secondary DNS services from RollerNet. Without Internet and working from home, I switched on the hot spot on my work phone and finished the work day.

After the pets were taken care of, I rebooted the firewall again. When it didn't come back on, I figured "No problem. I just connect the null modem cable to my MacBook Pro and ... oh, right. No serial port."

"No problem, I pull out the trusty laptop from my data center days and I'll be connected in no time ... oh, right that Compaq got stripped off it's hard disk several years ago."

While I was contemplating which monitor and desktop computer to lug to the workbench in the garage, I found another laptop in my stash. "Ah yes. This Dell Inspiron has a serial port. Let's use that, ... oh, there's no minicom installed. Nor any other program that can talk to a serial port ... and it's running an ages old Debian install, I don't feel like connecting that directly to the Internet to find the right minicom installation." [though it probably would have been fine]

"No problem. I download the Grml Live CD to the MacBook Pro, and ... ah right, it doesn't have a CD drive, let alone a burner."

"No problem. I download the Live CD to the desktop in the bed room, and burn the CD there ... ah right, that desktop isn't anywhere near the Comcast cable modem and I really shouldn't connect my LAN to the Internet." [though, it likely would not have been a problem, because by now every device in the house had lost its dhcp lease, and Comcast wouldn't route my RFC1918 LAN address range anyways]

So I went upstairs and found oldest daughter's laptop, which has a CD-R drive, downloaded the Live CD, burned it, and ... the burn failed, because the download aborted shortly before the end, while I wasn't looking. It went through properly on the second try.

Soekris net4801-60
"I have a CD, I have a serial port, I have a null modem cable, I have a terminal program." That's when I found out that the CompactFlash from 10 years ago was dead.

"No problem. I pull out the OpenBSD machine from 11 years ago and load another CompactFlash card with the OpenBSD configuration + DNS and dhcp configs I had ... oh right, that config was on the CompactFlash that died ... and I really should not put OpenBSD 3.9 if I rebuild ..." has been superseeded by flashboot, which has been superseeded by flashrd for most uses. I should use the latest OpenBSD if I go that route. Which means I first need to build an OpenBSD server again.

"Maybe I should look at a Linux option." The OpenBSD install has always been somewhat of an odd man out in this household, eclipsed only by the NetBSD on SPARC install I did for fun one time.
Turns out, there are many small Linux distros around, the vast majority of which focus on running a minimal footprint desktop system. OpenWRT looks feasible ...  It might take a little while to get it the way I want, but certainly feasible.

"OH CRAP! How long will the secondary DNS servers hold on to my zone data?" Expiration on most of my domains is 2 weeks. But on the one domain that really matters, it's one week.
"When did RollerNet do the last successful zone transfer from my primary DNS server? ...  April 10 according to the logs on the admin Web site".
Yikes! I have to have this fixed before Sunday. Otherwise email for Lostentry accounts hosted on Google@Work won't get delivered anymore.

The phone rings. It's my family calling in from their road trip. The news of no Internet in the house is not taken up enthusiastically.

The focus of attention changes to building a temporary solution that gives me WiFi, and dhcp service for the home network so that I can bootstrap a DNS server and also get the Lostentry Web server back online.

"Hmmm, I have this old Netgear router in a box somewhere..." At the end of the evening yesterday, this Netgear WNR2000 is hooked up to the cable modem, configured, and provides Wifi to the household.
I briefly investigate external DNS services, but decide to first get back to a stable state before making further changes. Along the way I read through RollerNet's conditions for disabling secondary DNS service, which include "if ICMP ping is successful, but the DNS port is closed, the zone will be disabled". Whoops. I got lucky by having the router set to drop ICMP pings, instead of replying.

Tonight, I recreated the required BIND9 configs, brought up BIND9, and port-forwarded requests from the Netgear to the DNS server.

I now have a working DNS server again, with valid (and hopefully correct) configuration. Next I need to bring the remaining systems in the house back into a functional state. Mostly by matching up an internal DNS zone with dhcp assignments. Then I can dig deeper into deciding how I want to proceed with the firewall setup.

And there I thought I would have some time this week to work on trains, or refinish the kitchen counter while the family is away ...

Thursday, April 14, 2016

"Regen am Morgen ..."

"... vertreibt Kummer und Sorgen."

A little bit of rain over night left streets and gardens wet. I really like the rain drops reflecting the morning sun on this flower in one the front yards on our street.

Tuesday, April 12, 2016

Important Liquids

Koef III delivers a beer car filled with very important liquids to the team track in Talheim.

Sunday, April 10, 2016

Welztalbahn: Loading Ramp for Emsingen (part 2)

This weekend I continued adapting Dave's loading ramp structure for the freight area in Emsingen. I started out by dressing the laser-cut wood sub-structure in Heki walls, both to give the sides more structure, and to widen the ramp a bit.

Next came the fun part. After marking the location on the layout, I used the circular saw attachment for the Dremel tool to cut the hardboard, and then remove the glued down board with hammer and chisel. A very weird feeling to attack the layout like that, right next to signals and track...

Some minor adjustments in the hole, and the ramp fits ok next to the track with no clearance issues. 

I mocked up the surface and edges. The ramp sits about a millimeter too low, but that can be easily fixed during installation if needed.

I cut the plaster deck from an Auhagen sheet, and made the edges from Evergreen 0.060x0.080 styrene strips. The Auhagen sheets can be seamlessy extended in any direction with no ugly gaps.

With some prodding and artful slicing in the back, I bent the plastic sheet into the proper shape and glued the assembly to the sub-structure with canopy glue.

One more test. Looks pretty good already. Painting is next.

Thursday, April 07, 2016

When the train is late...

I worked later than normal today, so decided to take Caltrain and beat the bus home. The idea was for train #274 to pick me up in Mountain View at 6:38, drop me at Blossom Hill at 7:15 and I'd be home shortly after 7:30, vs. some time after 8:00 if taking the bus.
That didn't quite work out...

At 6:40 the signs at the platform showed a delay of 5 minutes for train #274, and then happily showed "ARRIVING". ... But no train came. There was some light reflecting off the rails in the curve before San Antonio station, has it usually does when a train is about to come around the curve. But no train came. The signs eventually stopped their happy "ARRIVING" dance, and moved on to show that trains #276 (departure at 6:52) is 10 minutes delayed. Hmmmm. Something happened.
I checked CaltrainStatus on Twitter, but they only had a notification about non-functioning crossing gates further up the peninsula.

#274 finally pulled into Mountain View station at 6:55. Oh well, only 15 minutes late. Lots of people getting off and on. Looks like there was a Giants game today in the city, and a Sharks game in San Jose. Most people got off in San Jose and a relatively empty train kept going further south towards Gilroy.

When we stopped at Capitol Station, the doors didn't open for most of the train. And then ... *POOF* The train went dark.


We lost head-end power (HEP), which is an auxiliary power generator to feed lights, AC, and heating in the cars. The only other passenger in my car was freaking out, talking on the phone, "Yes, the whole train is dark. It's dead. Oh my God. Oh my God." I told her to relax.
The conductor announced on the PA that they are resetting HEP. I tuned in to the Caltrain channel on Railroad Radio to hear if I could pick up a few more details, but only heard protection orders for the broken crossing gates. A few minutes later the engineer had HEP running again on the second try, and we proceeded to Blossom Hill.

Arrival 30 minutes later than planned.
I should have taken the bus, but then I wouldn't have had anything to write about today...

These train sets are 30 years old. It's time that Caltrain starts the electrification project and gets new rolling stock...

Wednesday, April 06, 2016

Working on the patio

Double Sunset at the end of the first hot day of the year.

Sunday, April 03, 2016

Saturday, April 02, 2016

Friday, April 01, 2016


Artemis has no problems climbing the wall in the terrarium.