Subscribe via RSS
29Mar/170

Plarail: Percy, The Engine That Couldn’t

After scouring recycling shops in Japan and finding some Pla-rail 300-series Shinkansen... I did a little more investigation (aka. purchasing) of tracks and other relevant equipment to set up a test layout. As with any hobby, this small intial effort then kept expanding once I'd realised that Tomy released Plarail in Australia under the Thomas brand.

Trash and Treasure is a usual haunt on Sunday mornings and I have been happening across more and more Plarail equipment. Sure, it's for 2-4 year-olds, but some of it is just so simple and easy, that it can actually be rewarding. You then look at the components available from Japan and start to realise what can actually be built! I reckon, with a little bit of further modification and automation, you could create some seriously crazy layouts.

The design and equipment is also rugged and resilient. As that it's made to be run on carpet (by children), the tracks are easy to connect and hold together after being kicked and beaten. The locomotives also are built to cop a beating, with internal gearing to allow the axles to be held whilst the train is trying to move. You can even wrench them backwards when they want to go forwards. Of course, with age, any fail-safe equipment can also fail.

DSC00069

I've only learnt all this recently. I picked up a Percy The Small Engine from Trash recently and found it to be defective. With zero loading, the loco could move around... but as soon as you gave it something to haul it just sat still. The engine was still rotating... you could even see the gear on the driving axle spinning. It seemed to have quite a 'click' on every rotation.

The cause turned out to be a split final gear on the driving axle. It was still on the axle, but due to a split between two teeth, it had very minimal grip. This meant that it'd keep contact with the axle on light load, but spin incessantly on anything else.

DSC00117

The gears are held onto the axle by friction. The axle is roughed-up where the gear is finally meant to sit, but the diameter of the hole in the gear is smaller than the diameter of the axle to ensure a proper fit. This meant that, any attempts to glue the gear shut would fail; the pressure would snap the gear back open as soon as I tried to slide it back on.

DSC00078 DSC00079 DSC00080

From here, I tried to widen the hole in the gear, to allow it to slide on easier. This worked, and I then attempted to also glue it to the axle. Unfortunately, I had no type of glue that would correctly bond to both substances.

DSC00064

Not even Araldyte worked! The next step was to scour eBay for gears. Turns out they're dirt cheap.. when purchased from China. Of course, that means 4++ weeks of waiting. So.. 4 weeks later, the following arrived.

DSC00001

Included was a total assortment of gears. Around 6 of them were in the right ballpark. The blue ones fit way too easy and I'd have to work out a method for securing them to the axle. I tried the hot-glue-gun... but I was just making a mess.

DSC00003

The next effort was with one of the white gears. They were the right diameter, but too wide. Their hole diameter was also too small. Firstly I widened this with a ~2.0mm drill bit in the dremel. Make sure that you drill perfectly perpendicular and centered!

DSC00006

Once on I then used a grinding stone chomp the gear in half. I filed it down afterwards to clean it all up. It actually worked!

DSC00008

Based on the note above, the first one I did actually failed to run smoothly... Percy had a huge limp! Turns out I drilled out the center hole completely off-center. The gear actually 'wobbled' around the axle badly and pushed the innards of the gearbox up into the chassis! Be really careful. The second one worked perfectly and Percy was grinding along again once more!

Filed under: MRR No Comments
28Mar/170

Javascript numbers with leading zeroes

Here is yet another public service announcement. I've recently been coding times for this post to track train timetables. Whilst doing so, I had the times in my array fully padded out to make everything easier to read.

i.e. for the southbound passenger timetable, I had the following:

var southbound_pax = [
    0530,0611,0633,0703,0714,0725,0733,0743,0752,0808,0823,
    0830,0841,0859,0917,0928,0944,1006,1029,1053,1109,1128,
    1148,1209,1230,1251,1309,1327,1348,1409,1427,1448,1512,
    1532,1550,1607,1618,1631,1651,1709,1726,1737,1754,1808,
    1818,1831,1844,1902,1915,1925,1937,1955,2014,2029,2050,
    2102,2121,2143,2208,2227,2255,2349
];

All of my testing had been done after 10am, so everything worked fine. This morning I get in and check the timings and it's all really wrong. I whipped up a quick test as I'd seen strange values in the arrays.

> var number_array = [0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007, 0008, 0009, 0010, 0011, 0012];

> number_array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 9, 10]

Wait, what?... we're good until 0009. Then it goes nuts? A heavy bit of googling produced this warning on w3schools:

Never write a number with a leading zero (like 07).
Some JavaScript versions interpret numbers as octal if they are written with a leading zero.

Ohh.... riiiight... some... Did anyone else know of this feature?
Effectively, if it's octal, then 0009 should throw an error, right? Not just silently work and then flip back to '8' at 0010. Grrr...

27Mar/172

486DX266: S3 86C801/805 VLB

A motherboard with VLB slots meant a video card that made the most of the hardware available. I had an alert running on eBay and this card came up one evening with a totally affordable buy-it-now price tag. There are many other VLB cards on eBay, but the sellers are valuing them at prices much higher than I'm wishing to pay.

DSC00204

DSC00205 DSC00207 DSC00209

The card was easy to install and POST'd fine. (Here's the BIOS file if anyone is interested.)

DSC00019

Windows 3.11 had no default drivers, so I scoured the web and found a driver named 80x241.zip. This zip was extracted into a temporary folder and then installed via the Windows Setup application under the Main program group. SF is Small Fonts, with LF therefore standing for Large Fonts.

DSC00025 DSC00026 DSC00040

Note the max resolution above is 1280x1024 @ 256 colours. Not bad at all for a card of this vintage? Unfortuantely, selecting anything above 800x600 caused the following.

DSC00020

Ok, great, hard-coded refresh rates? Fortunately, in the driver folder is REFRESH.EXE. Note that when you're in Win3.11 and can't see a thing, just hit Alt-F4, Left Arrow and then press Enter. This will exit Program Manager back to DOS.

DSC00022

Choose the appropriate refresh rates as per your monitor. There's no save button... just hit Exit and it'll apply any changes. If you need to change the resolution in windows, run SETUP.EXE from the Windows folder.

DSC00021

And now, testing the huge resolution...

DSC00029

Resolution is delicious... screen artefacts not so much. From here I could only assume that the 'block' down below was the area where the 1mb 'option' should go. The card was expecting that the user had added the 1mb before using the resolution. Ok... how does one upgrade ram for an old card? Steal it from another!

DSC00031 DSC00032 DSC00036

Just to re-emphasize: The memory chips are the wrong way around in the middle photo below!

DSC00037

These RAM chips are awful! They have a dot on either corner and that makes it really hard to work out the orientation. Even better, the socket on the Trident board has a triangle chipped of it, but that is the opposite to the 'key' triangle on the S3 board. Of course, I got it wrong the first time, the machine didn't boot and the RAM chips got very hot. As James has mentioned in the comments, the middle photo above shows the chips inserted the wrong way around. Don't do this! I switched it off quickly and resocketed them. And then...

DSC00024

Winner! Ridiculous for Win 3.11 ... but still cool.

But the refresh rate doesn't stick...

Every reboot, the refresh rates need to be re-programmed. REFRESH.EXE gives you the following options.

DSC00012

You'll just need to add REFRESH.EXE 1280 3 or such to your autoexec.bat.

A quick note on MDI applications

The Multiple Document Interface is all about having sub-windows in your application. Cakewalk Audio has an issue where it thinks it's maximised when the application starts. You can't actually drag the the window bigger and it seems stuck.

DSC00014 DSC00016 DSC00017

Fortunately, the work-around is to Cascade all windows (from the Window menu) and then maximise it once more... it'll then take the whole screen.

24Mar/170

Mt Fuji Live View!

So this is actually a Mt Fuji monitoring camera... probably specifically for traffic? But it also has a great view of the Tokaido Main Line between Okitsu Station and Yui Station. The main link is here and the 'close angle' view is here.

The timetable below is based on weekday services between Yui and Okitsu (and return.) I checked the weekends and the timetable seems to be exactly the same? There might be more peak-hour services during the week, so don't be sad if there's a train or two missing on weekends.

Next Trains between Yui and Okitsu (Current time in Shizuoka: )
~??:??
Northbound
~??:??
Southbound
Next Freight Train
~??:??
Northbound
~??:??
Southbound

Here's the actual camera location... or thereabouts. I've guessed it's on one of the buildings under the pin.
Click the map to go to the area on Google Maps.

Passenger Train Timetable

There's no need to write this down here, just browse over to Hyperdia and check out their running sheets. From Okitsu, it's around 3 minutes travel time to the centerpoint of the webcam view. Using the interval timetable here, you can guess when the next passenger train will be. In the other direction, it's about a 2 minute travel time, so use the reverse timetable here to work out the timings.

As for limited express passenger trains, there are the Sunrise Seto/Izumo (~midnight and ~430am) and the Wide-View Fuji services (8-10 services a day). They're all plugged in and you'll get an idea as to when they'll show up in the tables above the video feed.

Freight Train Timetable

Fortunately, there's a lot of freight to see on the tracks. Using the timestamp in the video, hang around to see the following trains! If you have any other data to add to this table, then please tell me in the comment area below.

Sightings... to be incorporated to below.
2017-03-23 - 13:37:15 - Southbound?
2017-03-24 - 08:03:35 - Southbound?
2017-03-28 - 13:37:00 - Southbound?
2017-04-04 - 14:33:05 - Southbound Toyota Long Pass Express... REALLY LATE?
2017-04-13 - 14:19:20 - Northbound? - Early 5094?
2017-04-18 - 13:36:32 - Southbound?

# Shizuoka ~Webcam From/To Comments Sighted
61 0021 0001 Tokyo - Ajikawaguchi Container
No Sundays
1067 2349 0009 Koshigaya - Kudara/Hirano Container
1069 0049 0029 Niiza - Osaka Container
1093 0106 0046 Tokyo - Nagoya Container
51 0114 0054 Tokyo - Ajikawaguchi M250 Super Rail Cargo
No Sundays
65 0120 0100 Tokyo - Kudara/Hirano Container
No Sundays
5057 0126 0106 Kuragano - Fukuoka Container
7053 0133 0113 Tokyo - Fukuoka Container
53 0058 0118 Tokyo - Suita Container
No Sundays
69 0147 0127 Tokyo - Kobe Container
No Sundays
1057 0154 0134 Kuragano - Fukuoka Container
No Sundays
55 0158 0138 Tokyo - East Fukuyama 福山レールエクスプレス
No Sundays
5081 0204 0144 Sendai - Ajikawaguchi Container
1051 0208 0148 Tokyo - Fukuoka Container
1053 0215 0155 Tokyo - Fukuoka Container
5088 0137 0157 Ajikawaguchi - Sendai Container
3095 0225 0205 Onahama - Nagoya Container
1099 0225 0205 Niiza - Nagoya Container
1059 0230 0210 Utsunomiya - Fukuoka Container
1098 0202 0222 Nagoya - Sumidagawa Container
No Sundays
2050 0207 0227 Nagoya - Morioka Container
1080 0222 0242 Osaka - Niiza Container
5096 0230 0250 Nagoya - Hachinohe Container
1092 0235 0255 Nagoya - Tokyo Container
1084 0238 0258 Osaka - Sendai Container
1066 0248 0308 Osaka - Tokyo Container
64 0301 0321 Kudara/Hirano - Tokyo Container
No Sundays
1088 0305 0325 Kudara/Hirano - Koshigaya Container
50 0321 0341 Ajikawaguchi - Tokyo M250 Super Rail Cargo
No Sundays
52 0324 0344 Suita - Tokyo Container
No Sundays
5054 0334 0354 East Mizushima - Tokyo Container
No Sundays
1096 0339 0359 Nagoya - Sapporo Container
5056 0350 0410 Fukuoka - Kuragano Container
No Sundays
60 0357 0417 Ajikawaguchi - Tokyo Container
No Sat/Pub.Hols
68 0405 0425 Kobe - Tokyo Container
No Sundays
7082 0411 0431 Kudara/Hirano - Tokyo Container
5082 0415 0435 Ube - Koshigaya Container
70 0422 0442 Niihama - Tokyo Container
5091 0459 0445 Sendai - Nagoya Container 2017-05-15 04:45:25
5062 0428 0448 East Mizushima - Tokyo Container
No Sundays
1055 0504 0449 Tokyo - Fukuoka ContainerNo Pub.Hols 2017-05-15 04:49:40
3074 0432 0452 Nagoya - Sapporo Container
66 0453 0513 East Fukuyama - Tokyo Container
5086 0500 0520 Kudara/Hirano - Sapporo Container
No Sundays
5085 0534 0514 Sendai - Hiroshima Container 2017-04-28 05:13:05
3071 0553 0533 Sapporo - West Hamamatsu Container
No Mondays
1071 0558 0538 Tokyo - Kagoshima Container 2017-04-28 05:38:30
5087 0607 0544 North Asahikawa - Kudara/Hirano Container
No Mondays
2017-04-20 05:44:35
2017-04-28 05:44:10
2017-05-16 05:44:32
5071 0635 0622 Sendai - Fukuoka Container 2017-04-28 06:22:20
2017-05-15 06:23:10
2017-05-16 06:22:20
2017-05-24 06:22:50
2017-05-25 06:23:20
8860 0612 0632 Suita - Koriyama Other
54 0734 0747 East Fukuyama - Tokyo 福山レールエクスプレス
No Sundays
2017-04-07 07:47:30
2017-04-18 08:51:01
2017-04-20 07:48:54
2017-04-21 08:46:46
2017-04-28 07:47:40
2017-05-11 08:48:14
2017-05-16 07:48:48
2017-05-19 07:48:15
2017-05-24 07:46:01
2017-05-25 07:47:00
1097 0903 0848 Sapporo - Nagoya Container 2017-03-28 08:48:50
2017-03-29 08:49:50
2017-03-31 08:48:45
2017-04-03 08:49:50
2017-04-04 08:47:42
2017-04-06 08:49:31
2017-04-07 08:48:55
2017-04-12 08:49:45
2017-04-18 08:50:01
2017-04-28 08:51:05
2017-05-10 08:49:05
2017-05-11 08:49:20
2017-05-15 08:48:40
2017-05-16 08:49:27
2017-05-19 08:49:15
2017-05-24 08:49:55
2017-05-25 08:49:50
8863 0920 0905 Kawasaki - Shin-Nan-Yo Other
1068 0907 0921 Shimonoseki - Tokyo Container 2017-03-28 09:21:00
2017-03-29 09:20:50
2017-04-04 09:20:48
2017-04-05 09:20:25
2017-04-06 09:20:55
2017-04-07 09:21:55
2017-04-12 09:21:55
2017-04-13 09:21:20
2017-04-18 09:22:00
2017-04-27 09:20:45
2017-04-28 09:20:35
2017-05-09 09:20:20
2017-05-10 09:25:55
2017-05-11 09:22:45
2017-05-16 09:21:10
2017-05-19 09:21:45
2017-05-24 09:31:50
2017-05-25 09:20:30
2053 0950 0935 Morioka - Nagoya Toyota Long Pass Express
No Sat/Pub.Hols
2017-03-24 09:35:30
2017-03-28 09:34:45
2017-03-29 09:35:05
2017-03-31 09:35:35
2017-04-05 09:34:45
2017-04-06 09:35:30
2017-04-12 09:35:45
2017-04-13 09:35:33
2017-04-18 09:35:03
2017-04-26 09:35:30
2017-04-27 09:35:00
2017-04-28 09:34:50
2017-05-09 09:35:14
2017-05-10 09:34:38
2017-05-11 09:35:20
2017-05-12 09:35:32
2017-05-16 09:35:20
2017-05-19 09:35:23
2017-05-24 09:35:18
2017-05-25 09:35:05
1060 0923 0938 Hiroshima - Tokyo Container 2017-03-27 09:38:05
2017-03-28 09:38:14
2017-03-29 09:38:30
2017-03-31 09:37:57
2017-04-03 09:38:25
2017-04-04 09:39:40
2017-04-05 09:38:15
2017-04-06 09:38:00
2017-04-18 09:38:30
2017-04-20 09:38:55
2017-04-21 09:37:38
2017-04-26 09:38:50
2017-04-27 09:38:20
2017-04-28 09:37:55
2017-05-09 09:38:10
2017-05-10 09:39:10
2017-05-11 09:37:39
2017-05-16 09:38:15
2017-05-19 09:39:25
2017-05-24 09:42:55
2017-05-25 09:38:20
8091 1033 1015 Tokyo - North Kyushu Rail Train 2017-04-18 10:15:30
2017-04-20 10:16:12
2017-04-28 10:15:42
2017-05-11 10:14:50
2017-05-25 10:16:15
5052 1014 1027 Fukuoka - Tokyo Container
No Sundays
2017-03-28 10:29:12
2017-03-29 10:29:00
2017-03-30 10:27:30
2017-04-05 10:27:35
2017-04-06 10:27:16
2017-04-07 10:27:30
2017-04-12 10:28:18
2017-04-13 10:29:40
2017-04-18 10:28:05
2017-04-21 10:26:59
2017-04-28 10:29:45
2017-05-10 10:28:24
2017-05-11 10:28:20
2017-05-16 10:29:50
2015-05-17 10:29:18
2015-05-19 10:28:50
2015-05-24 10:27:40
2015-05-25 10:27:44
5073 1050 1035 Tokyo - Fukuoka Container 2017-03-27 10:35:00
2017-03-28 10:35:20
2017-03-29 10:34:30
2017-03-30 10:34:50
2017-04-03 10:35:15
2017-04-04 10:34:40
2017-04-05 10:35:01
2017-04-06 10:34:45
2017-04-07 10:34:43
2017-04-12 10:34:33
2017-04-13 10:34:40
2017-04-18 10:34:54
2017-04-19 10:34:45
2017-04-21 10:35:30
2017-05-01 10:35:12
2017-05-10 10:34:38
2017-05-11 10:34:40
2017-05-17 10:34:40
2017-05-19 10:34:54
2017-05-24 10:35:05
2017-05-25 10:35:00
5094 1041 1101 Nagoya - Tokyo Container
1090 1052 1105 Niihama - Numazu Container 2017-03-24 11:05:50
2017-03-27 11:05:10
2017-03-28 11:05:45
2017-03-29 11:05:50
2017-03-31 11:05:41
2017-04-10 11:05:50
2017-04-12 11:06:20
2017-04-18 11:05:10
2017-04-19 11:05:38
2017-05-09 11:05:24
2017-05-10 11:05:59
2017-05-11 11:05:56
2017-05-17 11:05:45
2017-05-19 11:05:33
2017-05-24 11:05:20
2017-05-25 11:05:52
8090 1211 1230 North Kyushu - Tokyo Rail Train
2079 1402 1337 Numazu - Inazawa Container 2017-05-09 13:37:05
2017-05-10 13:36:37
2017-05-11 13:35:55
2017-05-12 13:36:45
2017-05-15 13:36:50
2017-05-16 13:36:44
2017-05-19 13:37:08
2017-05-24 13:37:10
2017-05-25 13:36:45
8052 1332 1345 Fukuoka - Utsunomiya Container 2017-03-23 13:45:50
2017-03-24 13:48:20
2017-03-27 13:46:10
2017-03-28 13:46:15
2017-03-29 13:46:10
2017-04-13 13:47:45
2017-04-18 13:47:44
2017-04-19 13:48:20
2017-04-21 13:46:25
2017-04-26 13:46:52
2017-04-27 13:47:40
2017-05-11 13:47:05
2017-05-12 13:48:50
2017-05-15 13:46:25
2017-05-16 13:46:40
2017-05-19 13:46:51
2017-05-24 13:49:38
2015-05-25 13:46:55
2078 1423 1438 Inazawa - Numazu Container 2017-03-24 14:38:42
2017-03-25 14:38:10
2017-03-27 14:38:20
2017-03-28 14:38:05
2017-04-07 14:38:30
2017-04-10 14:39:10
2017-04-13 14:38:28
2017-04-18 14:38:50
2017-04-19 14:38:50
2017-04-20 14:38:10
2017-04-21 14:38:02
2017-04-27 14:37:38
2017-04-28 14:38:20
2017-05-10 14:38:40
2017-05-11 14:39:05
2017-05-16 14:38:30
2017-05-19 14:38:55
2017-05-24 14:37:42
2017-05-25 14:38:20
5075 1537 1523 Tokyo - Fukuoka Container 2017-03-28 15:23:19
2017-04-03 15:23:25
2017-04-10 15:23:25
2017-04-12 15:23:50
2017-04-18 15:23:10
2017-05-10 15:23:37
2017-05-11 15:22:55
2017-05-12 15:26:40
2017-05-15 15:23:10
2017-05-19 15:23:07
2017-05-24 15:23:20
2017-05-25 15:23:33
8862 1521 1541 Shin-Nan-Yo - Kawasaki Other
3075 1611 1556 Sapporo - Nagoya Container 2017-03-28 15:56:50
2017-04-04 15:56:28
2017-04-07 15:56:31
2017-04-18 15:56:35
2017-04-19 15:57:00
2017-04-21 15:56:30
2017-04-27 15:56:15
2017-05-10 15:56:20
2017-05-11 15:56:53
2017-05-24 15:56:28
2017-05-25 15:56:15
5095 1630 1610 Tokyo - Inazawa Container 2017-03-24 16:14:00
2017-03-28 16:14:40
2052 1603 1620 Inazawa - Morioka Toyota Long Pass Express
No Sat/Pub.Hols
2017-03-24 16:20:00
2017-03-28 16:20:00
5050 1644 1704 Fukuoka - Tokyo Container
1070 1653 1713 Kumamoto - Tokyo Container
1050 1700 1720 Fukuoka - Tokyo Container 2017-03-24 17:15:00
71 1841 1825 Tokyo - Niihama Container 2017-03-29 18:25:50
2017-04-01 18:24:20
2017-04-10 18:24:26
1054 1822 1837 Nabeshima - Tokyo Container 2017-03-29 18:37:25
1072 1835 1850 Hiroshima - Sendai Container 2017-03-29 18:50:54
1091 1949 1929 Numazu - Fukuoka Container 2017-03-27 19:38:00
1052 1922 1942 Fukuoka - Koshigaya Container
5074 1931 1948 North Kyushu - Tokyo Container 2017-03-24 19:48:00
2017-03-27 19:47:40
2017-04-02 19:48:40
1058 2000 2016 Fukuoka - Utsunomiya Container 2017-03-28 20:16:10
2017-04-11 20:16:20
5053 2053 2033 Tokyo - Fukuoka Container
No Sundays
2017-03-28 20:39:20
5070 2106 2126 Fukuoka - Sendai Container 2017-03-28 21:28:22
5058 2131 2145 Okayama - Tokyo Container 2017-04-11 21:45:30
5055 2230 2210 Tokyo - Fukuoka Container
No Sundays
3070 2235 2255 West Hamamatsu - Sapporo Container
No Sundays
7085 2250 2230 Tokyo - Kudara/Hirano Container
67 2321 2301 Tokyo - East Fukuyama Container
5061 2328 2308 Chiba - Hiroshima Container
1085 2333 2313 Sendai - Osaka Container
8053 2255 2315 Utsunomiya - Hiroshima Container
1089 2345 2325 Tokyo - Osaka Container
5090 2313 2333 Nagoya - Sendai Container
2051 2317 2337 Morioka - Nagoya Container
No Sat/Sun
1061 0013 2353 Tokyo - Hiroshima Container

I hope I copied the above correctly!

Filed under: JPN No Comments
23Mar/170

486DX266: CMOS Battery and PC Speaker

After building this machine, I am finding that I am losing my BIOS settings each time I pull the plug at the wall. The original motherboard owner/restorer replaced the onboard battery with a coin cell socket, but it seems that the 3v cell I put in there isn't powerful enough to keep the charge!

DSC00010

PC Restorer has a great article on CMOS batteries and the best point to take form their site is that most BIOS' need 3.6-4.5v to keep their memory.

DSC00011

In the picture above, you'll see the 4-pin header for an external battery. Pin 2 is missing. On this motherboard, pin 1 is positive and pins 3 and 4 are ground.

Using a standard 4-pin header plug from Jaycar, I wired up a 4-cell AA battery pack, but only used 3 cells. This required soldering new wires to allow current to flow between only three of the batteries.

DSC00004 DSC00006 DSC00008

With this all soldered, a quick test with the multimeter saw ~4.89v on the pins... which was more than expected, but an acceptable value.

DSC00013

Installation was a breeze and testing proved that my BIOS settings finally held!

PC Speaker

The case I have installed this machine in didn't have a PC Speaker installed by default. Therefore I used the same 4-pin header to rig up an 8ohm speaker from Jaycar. There's no real need to worry about the polarity here as it's just mainly beeps and boops. Who cares which way the diaphragm shifts?

DSC00015 DSC00016 DSC00017

On first boot, the machine-gun noise of RAM counting up was music to my ears!!

16Mar/170

486DX266: Rebuilding my childhood PC

I've been itching to do this for a while. There've been some nice 486 motherboards coming up on eBay, but I haven't been in the position to get them until now. A Hippo VL+ board appeared and, although it had suffered battery damaged (and been repaired!), it was a bargain for the price. I've always wanted to tinker with the VESA Local Bus and now was my chance. I did have a VLB board back in the day, but hardly knew what it meant.

Base Components

This was to be a completely build-it-yourself project. Each item was individually selected from whatever came on offer via eBay. First up was the motherboard with 4mb of RAM and that all-important exactly-what-I-wanted 486 DX2/66 processor.

DSC00191

DSC00192 DSC00193 DSC00194

DSC00195 DSC00197DSC00198

You can see where the previous owner has repaired a leaking CMOS battery. The wiring has been well-done and is all hot-glue-gunned down. The coin cell slot is in its place, but I seem to still be getting CMOS battery low issues. It could be that the coin cell battery is only 3v when the CMOS needs 3.5v+.

Next up was the VLB controller card. These full-length half-height cards provide two IDE channels, two floppy drives (via one cable), 2 com ports, a game port and a printer port! The HDD activity LED is also attached to this card.

DSC00199

DSC00200 DSC00201 DSC00202

Finally, the all-important video card. I happened across a cheap S3 86C805i VLB card. It has expandable RAM of which I'll try and fill later on.

DSC00204

DSC00205 DSC00207 DSC00209

There are only three slots where these cards fit into. You'll also find that they are named as to their purpose! There are two 'master' slots and a 'slave'. For those playing at home, the 'master' slots allow cards that support bus mastering; where the card will receive direct information rather than data via the CPU, and have it's own processing power on-board. The slave slot is for cards that don't support bus mastering but want the additional bandwidth of the VLB.

DSC00210

A quick trial assembly then took place. Be really careful when doing this on a flat surface! The end plates have tabs that are meant to slot into the case when the board is mounted... when not, they will simply push into your desk/table and pressing further is strongly discouraged!

DSC00213

Housing

I picked up a AUD$1.00 ATX case from eBay. Yes. ATX. It'll never work, you say? I have previously already put a 386 in an ATX case, but that was whilst keeping its old AT power supply and having the power cord hanging out the side. Not very neat. This time around we're going to do things differently.

DSC00314

Meet the case, creepy photo, right? It's full ATX... soft buttons and all. It even has an ATX power supply.

DSC00316

How do we possibly use an ATX supply with an AT motherboard? With an adapter plug! This beauty was found on eBay for the handsome sum of AUD$5.00.

DSC00320

So, simple mounting of the board ensued. Turns out the back plane is riveted into the case; annoying as previous cases I've dealt with usually allow this panel to be removed for easier motherboard mounting. Either way, the motherboard was mounted in and the adapter was hooked to the power supply.

DSC00321

The other end was then slapped onto the board itself. Remember with AT plugs, keep the black wires together!

DSC00323

Great ... so ... now what? The front panel can be rudimentarily hooked up. Reset, Power LED, Turbo LED? and that's it.

DSC00319

The case was stood up, all cables checked and arranged neatly so as to not cause any shorting issues and then a monitor was connected. The power supply was then jump started. This is simple: simple join the 'dangling' green and black wires together.

It worked!

ATX case + power supply without an ATX motherboard

Here's the trick you've been waiting for. The power button on the front of the ATX is momentary. This means that when you press it, power is conducted for only the timespan until you let go. So, if we hooked this up directly to the green/black wires from the power supply, we'd need to hold/tape the button down until we were done with the computer... not very handy.

Because of this, we're going to use a relay to latch the required power supply wires. The basic idea is that we'll put the momentary button on the green and black wires from the power supply and then latch those down when power starts to flow. To do this, we'll use a drive power plug which will supply us with 12v/5v when we've pressed the power button. This power feed will then latch a relay that'll latch the power button. When we let go, the power will continue as the relay will emulate an extended press!

initial-atx-power-hook

So, apologies for the crude diagram, but that's the basic idea above. The relay is a 12v single-pole-double-throw and therefore has power, common, normally-connected and normally-open terminals. Power is used to actually throw the relay and is fed from the 12v drive power. Normally-opened isn't used as we only care about the actuation of the relay. The normally-closed side is therefore put in parallel with the power switch. When the switch is pressed, the relay fires and reinforces the power button.

The best part? It worked perfectly! The machine came on and I played A-Train. The problem? Hitting Reset did as expected... it reset the machine, but I had no way of turning it off without yanking power cables! I originally hoped that reset would trip the drive power and reset the relay; alas it turns out that the 12v stays constant. We therefore have to amend the circuit to allow powering down the machine from the reset button.

reset-atx-power-hook

Here, we've taken the reset switch off the motherboard and used it for an off switch. This means that the machine is power-for-on, reset-for-off. It makes sense... doing an actual reset will just mean hitting reset-and-then-power instead of just reset.

In the above diagram, we've used a second identical relay to interrupt the power supply of the first relay. To do this, we've fed one of the coil power feeds of the first relay through the normally-closed line of the second relay. This means that, when the second relay is not active, the current can flow through it to the first relay. Exactly as we want, as we don't want to do anything until the reset button is pressed.

When the reset button is pressed, it'll actuate the second relay and break the current to the first relay. This will, in turn, break the latch on the power switch and the ATX supply will shut off. Pressing the power switch again will re-latch the power and we'll be up and running again.

Actually building it

I used some crappy veroboard and a spare drive power plug that I had laying around. Hot glue then helped to insulate everything. Note that in my initial sketch, I was trying to be overly-tricky and had the 5v power fed through the other side of a DPDT really. This is redundant and really not needed!

DSC00006

DSC00009 DSC00011 DSC00013

The final product worked perfectly!

10Mar/170

Compaq Deskpro 386s/20n: RH Linux 5.2

I had tried to load BSD on this thing a while back, but didn't get very far. Recently I found an original boxed-set of RedHat Linux 5.2 and, to my surprise, the system requirements had this machine's specifications as the recommended minimum! I was therefore very happy that I had previously managed to find an 8mb RAM upgrade for this machine.

Installing a big-enough IDE disk

The 40mb Conner that was in there was never going to suffice. I'd previously installed a 256mb 'SSD' disk, but this wouldn't do either. Instead, I'd recently picked up a 1.2g IDE from the flea markets, which won't work straight away with DOS (Use AnyDrive for that), but will work fine in Linux as the bios specifications are bypassed.

DSC00258

RedHat 5.2 comes with 3 installation CDs and a boot disk. I had previously built a PIII-500 and installed RH from these disks, so I knew the software was in working order. It was whilst installing RedHat on that machine that I saw that it may well also work with the 386. Just for fun, I slapped the boot disk in to the 386 and quickly got the LILO boot loader. After a short while I was in the installer, only to hit my first hurdle: the installation obviously needs CD access! The Compaq has a very slim case, so there was no option to install an internal drive. I'd previously used my Microsolutions Backpack Parallel Port drive under DOS on this machine, so I thought I'd give it a go with Linux.

RedHat comes with a bpcd.o driver for this device but I couldn't get it going! I tried all permutations of configuration for the driver (linux bpcd=0x3bc as a LILO boot command and also bp_base=0x3bc during install), but nothing would get the drive to spin up! Booting into DOS, I found the correct address to be 0x3bc... but nothing would make it work.

Turns out I'm not the only one.

Installing over the network

I could choose FTP from the boot disk, but it them asked for a supplementary disk? I only had CDs at this point, so I couldn't continue.

DSC00259

The next best option was NFS and so I started searching for NFS Servers on Windows, as that was the easiest and closest machine available to host the required files. There were three options: FreeNFS, winnfsd and nfsAxe.

Of the three options, nfsaxe was the only one I could get working. I had copied the RedHat CD to a folder in Windows and pointed nfsAxe there. I then mounted it on the RedHat installer on the 386, but it quickly failed trying to find files.

Looking at the logs on the 386, I could see it looking for 'RedHat'. Looking at the folder on Windows, I could only see 'REDHAT'. I knew that Linux was case-sensitive, so I realised that this wouldn't work. Once in the RPMS folder, I then saw that all filenames were in capitals and the old 8.3 format!

Oh shit... Windows is reading the CD as ISO file format and not Linux... I couldn't work out a way to get around this natively in Windows. Instead, I had to copy the files from a Linux machine into the NFS server on Windows. As previously mentioned, I'd set up a Linux machine on another box, so I booted this up and mounted the NFS share on Windows. It all worked and I started copying over the CD's contents! Here you need to realise that nfsAxe has a 30-minute trial period! If it detects file activity on the NFS server, it'll start a stopwatch and shut the server down after 30 minutes.

So, the experience was terrible and took quite a few attempts, but the CD was copied over to Windows. I then booted the 386 and pointed it to the NFS. It found the files!! Installation started and showed an estimated time of 1.5hrs to install. Hah. That wont work... the NFS server, even with a freshly timed restart will only stay up for 30 minutes.

Using a virtual machine?

TurnKey Linux has a fileserver image that, when spun up, provides a 'NAS' style linux machine. I downloaded the ISO, set up a VM on Hyper-V and got it going pretty quickly. You'll need to run service nfs-kernel-server start to start NFS as it's not enabled by default. The exports are all configured, so you can test it locally with mount localhost:/srv/storage ./test and see that you can loopback to yourself. I then mounted the CD and copied the guts into that folder.

Meanwhile, the 386 couldn't see the share. I tried disabling nFS v4 and then NFS v3 (at this point I couldn't even loopback mount as V2 is not supported!) but nothing worked. I was worried that it was a network bridge issue between the physical machine and the virtual. I had the NIC set to the physical adapters 'bridge' in Windows, but ... meh ... it hated me!

Enabling an NFS share on 'Workstation' Redhat

What next? Let's set up a real physical NFS server on that RedHat 5.2 machine I mentioned earlier. I'd done the 'workstation' install, so NFS wasn't up and running by default. Firstly I edited /etc/exportfs and added /mnt/cdrom *(ro) as the first export. A reboot just threw 'permission denied' on the 386.

Trying to mount this as a local loopback threw permission denied also? Did that mean a firewall? Folder access? Where am I actually denied? I really had no clue at this point as I thought I'd done everything as needed. NFS seemed to just be a very built-in thing for Linux and should just-work(tm).

If no options are passed to the /usr/sbin/exportfs command, it displays a list of currently exported file systems. Ok, let's check... no.. let's not check... the exportfs only accepts -a. Ok... stuff it... time to install a real version of the OS.

After re-installing RedHat 5.2 in 'Server' mode, I type net *tab* *tab* and to my surprise: netconf appeared...

DSC00270

DSC00271 DSC00272 DSC00273

Hah! I wonder if this was there in 'workstation' version? We'll find out once the 386 is installed. I set /mnt/cdrom as an export and ticked all of the dangerous options. The bloody thing mounted locally and also worked on the 386.

DSC00284

Yeeey... activity on the RedHat 5.2 Server CD. We could finally get this installation started... and completed...

5 hours later...

The installation completed and I was prompted to remove all boot media and restart. I did as requested and... hahaha... what the hell... the screen just kept scrolling the magical number 04. The picture below is funny as you can actually see the redraw/scroll at the bottom edge.

DSC00001

Seems someone else has had this problem also. I let the installer configure the disks, so maybe it got the bootloader wrong.

Hah. Nice. So I then re-installed using 'custom' and also opted to make a rescue boot disk. I chose to install LILO in the MBR and got the same screen as above. Fortunately, the boot disk loaded the hdd perfectly.

It made it to the console... but it took around 6 minutes to boot. I then bit the bullet and started the x-window-server.

DSC00292

DSC00293 DSC00295 DSC00296

It actually failed to load anything past the xterm. The dock to the right nearly loaded, but bombed out and disappeared. The xterm was functional... slowly. I checked top and saw that there was swap memory, but no physical. This poor thing would be thrashing the page file and not getting anywhere. So, although I already knew the answer, I tried to launch netscape-communicator. No chance... it froze.

Therefore, RedHat will run! But don't expect X11 with 8mb of RAM. Use it for ... a file server? Am sure it'll serve up the web also. Good luck.

9Mar/170

Using your Sega Dreamcast on a new TV

I had recently been playing my Dreamcast on my old TV, which had a VGA input. Using the DC VGA BOX, I had VGA and audio output from the Dreamcast and all worked perfectly.

DSC00308

In the last fortnight, I've picked up a brand new Sony KD49X8000D and it doesn't have VGA input! HDMI, Composite or Component... they're the options. It was time to browse eBay for options.

VGA to HDMI

Without doing any research, or reading the product description, I jumped straight in and purchased a cheap straight-through VGA to HDMI cable.

DSC00305

It was never going to work. It seems to only be for projectors where they transmit random signals via VGA plugs. Don't expect that an analogue VGA signal can just magically transform inside a cable to HDMI.

VGA to RGB

I then saw this cable at trash and treasure last weekend. It's got VGA at one end and RGB on the other. I thought that it might be component, so I paid the handsome sum of $2 to test it out.

DSC00307

I'd forgotten to test it, but just read online that it also wont work. The description of a similar cable here indicates that this is for specific projectors under specific circumstances.

MINI VGA2HDMI Adapter

I resorted back to eBay and looked for an 'active' adapter. I found this one, cheap, on eBay and thought I'd give it a go.

DSC00301

DSC00302 DSC00303 DSC00304

In the end, the cabling is a nightmare as there aren't nice small VGA cables available.

DSC00309 DSC00310 DSC00311

Super simple to connect. But it didn't work first off. Someone else has made this item work before, so I must have something wrong with my configuration. It could also be that my TV doesn't support the resolution over HDMI.

Uhmm... nope.... I then tried another HDMI cable and realised that this one seated in around 2mm further! And worked! Switching back to the other HDMI cable saw it working too: it just needed a bit more of a jab to make proper contact with the converter. Note! These converters are cheap and cheerful, so do be careful when hooking them up.

DSC00002

Check that out... you can see the TV LED at the bottom... that's the initial picture at 1:1 640x480. Very clear!

DSC00005

And then scaled... looking great. Sounding o..k.. a bit scratchy at times. Will check my headphone cable between the devices. Anyway. Success!

Final Note - Overheating...

This adapter is indeed cheap and cheerful! If yours stops working, then check my post here on how to apply a heatsink.

Filed under: Retro No Comments
7Mar/170

Burning M27C256B EPROMs with a Willem

This is another public service announcement. I've just wasted around 3 weeks trying to burn an EPROM which shouldn't've taken more than 1 minute. I purchased a Willem Parallel Port 5.0 PCB burner from eBay (cheap, I know) and although I could happily read chips, I couldn't write them.

The settings were correctly configured for the M27C256B chips. You need 6.2v to write and 12.75v external. This means you can't use the USB to power. This PCB 5.0 is dual power, so it should've selected the correct source.

Every time I tried to burn I got the following error: Error at 0x000000 chip = 0xFF buffer = 0x58. Note that all three of those values would change, a lot. 0x24 and 0x46 were frequently seen yelling at me.

eprom burner

Turns out that the 'latest and greatest' version of the software doesn't select the correct power source. Downgrading to 0.97ja (as per the screenshot above works fine.)

So if you're getting the errors as I was above, then use the 'alternate' version that should be on the driver CD that you were provided with.