Subscribe via RSS

Plarail: Percy, The Engine That Couldn’t

After scouring recycling shops in Japan and finding some 300-series Shinkansens... I did a little more investigation (aka. purchasing) of tracks and other relevant equipment to set up a test track. This 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've 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/170

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.

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

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. 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.

Filed under: Retro No Comments
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-03-28 - 15:23:19 - Southbound? - Late 5075?
2017-04-03 - 15:23:25 - Southbound? - Late 5075? (I think I need the latest freight timetable!)
2017-04-04 - 14:33:05 - Southbound Toyota Long Pass Express... REALLY LATE?
2017-04-10 - 15:23:25 - Southbound? - Late 5075?
2017-04-12 - 15:23:50 - Southbound? - Late 5075?
2017-04-13 - 14:19:20 - Northbound? - Early 5094?
2017-04-18 - 13:36:32 - Southbound?
2017-04-18 - 15:23:10 - Southbound? - Late 5075?

# Shizuoka ~Webcam From/To Comments Sighted
8053 0007 2347 Utsunomiya - Hiroshima Container
1061 0013 2353 Tokyo - Hiroshima Container
61 0021 0001 Tokyo - Ajikawaguchi Container
No Sundays
1069 0049 0029 Niiza - Osaka Container
53 0058 0038 Tokyo - Suita Container
No Sundays
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
5055 0126 0106 Niiza - Fukuoka Container
No Sundays
5088 0132 0152 Ajikawaguchi - Sendai Container
7053 0133 0113 Tokyo - Fukuoka Container
57 0147 0127 Tokyo - Suita Container
No Sat/Pub.Hols
1057 0154 0134 Kuragano - Fukuoka Container
No Sundays
55 0158 0138 Tokyo - East Fukuyama Container
No Sundays
1098 0202 0222 Nagoya - Sumidagawa Container
No Sundays
1081 0204 0144 Sendai - Ajikawaguchi Container
1051 0208 0148 Tokyo - Fukuoka Container
1053 0215 0155 Tokyo - Fukuoka Container
1099 0219 0159 Niiza - Nagoya Container
1080 0222 0242 Osaka - Niiza Container
3095 0225 0205 Onahama - Nagoya Container
1059 0230 0210 Utsunomiya - Fukuoka Container
5096 0230 0250 Nagoya - Hachinohe Container
1092 0235 0255 Nagoya - Tokyo Container
1084 0238 0258 Osaka - Sendai Container
1066 0247 0307 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
1056 0334 0354 Fukuoka - Tokyo Container
No Sundays/Mondays
1098 0339 0359 Nagoya - Sapporo Container
5056 0350 0410 Fukuoka - Kuragano Container
No Sundays
60 0357 0417 Ajikawaguchi - Tokyo Container
No Sat/Pub.Hols
56 0405 0425 Suita - Tokyo Container
No Sundays
7082 0411 0431 Kudara/Hirano - Tokyo Container
5080 0415 0435 Ube - Koshigaya Container
70 0422 0442 Niihama - Tokyo Container
5054 0428 0448 East Mizushima - Tokyo Container
No Sundays
374 0432 0452 Nagoya - Sapporo Container
66 0453 0513 East Fukuyama - Tokyo Container
5091 0458 0438 Sendai - Nagoya Container
5086 0500 0520 Kudara/Hirano - Sapporo Container
No Sundays
1055 0503 0443 Tokyo - Fukuoka Container
No Pub.Hols
5087 0534 0514 North Asahikawa - Kudara/Hirano Container
No Mondays
3071 0553 0533 Sapporo - West Hamamatsu Container
No Mondays
1071 0558 0538 Tokyo - Kagoshima Container
8060 0606 0626 Suita - Koriyama Other
5085 0607 0544 Sendai - Hiroshima Container 2017-04-20 05:44:35
5071 0635 0615 Sendai - Fukuoka Container
54 0734 0747 East Fukuyama - Tokyo All Green Containers?
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
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
5060 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
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-21 09:52:15
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
8091 1033 1015 Tokyo - North Kyushu Rail Train 2017-04-18 10:15:30
2017-04-20 10:16:12
5052 1013 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
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
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
8090 1210 1230 North Kyushu - Tokyo Rail Train
8052 1331 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
5099 1431 1415 Numazu - Hiroshima Container 2017-03-24 14:15:20
5094 1401 1438 Nagoya - Tokyo 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
5075 1520 1500 Tokyo - Fukuoka Container
3075 1612 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
1070 1604 1624 Kumamoto - Tokyo Container
5095 1644 1624 Tokyo - Inazawa Container 2017-03-24 16:14:00
2017-03-28 16:14:40
5050 1653 1713 Fukuoka - Tokyo Container 2017-03-24 17:08:00
1050 1700 1720 Fukuoka - Tokyo Container 2017-03-24 17:15:00
2052 1721 1741 Inazawa - Morioka Toyota Long Pass Express
No Sat/Pub.Hols
2017-03-24 16:20:00 (1hr early?)
2017-03-28 16:20:00 (1hr early?)
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 1946 1930 Numazu - Fukuoka Container 2017-03-27 19:38:00
1052 1922 1942 Fukuoka - Koshigaya Container
5074 1930 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 2110 2128 Fukuoka - Sendai Container 2017-03-28 21:28:22
5058 2131 2145 Okayama - Tokyo Container 2017-04-11 21:45:30
5051 2230 2214 Tokyo - Fukuoka Container
No Sundays
2017-03-27 22:14:15
3070 2235 2255 West Hamamatsu - Sapporo Container
No Sundays
7085 2250 2230 Tokyo - Kudara/Hirano Container
5090 2313 2333 Nagoya - Sendai Container
67 2325 2305 Tokyo - East Fukuyama Container
5061 2329 2309 Chiba - Hiroshima Container
1067 2338 2318 Koshigaya - Kudara/Hirano Container
1089 2343 2323 Tokyo - Osaka Container
1085 2350 2330 Sendai - Osaka 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!!

Filed under: Retro No Comments
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!

Filed under: Retro No Comments
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.

Filed under: Retro No Comments
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!

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.

3Feb/170

NEC PC-8201A Portable Computer – Black Screen

Here's a new acquisition. It's an all-in-one portable machine from the early 80s. It was sold cheaply as non-working and, indeed, it non-works.

DSC00081

DSC00082 DSC00084 DSC00085

I hadn't realised how big these things were!? I was expecting something around half the thickness and maybe 60% the width/height. It's actually a really nice machine and I do like the form-factor. This item came quite scuffed and 'used'. All to be expected and nothing to worry about. I purchased it since they seem to have a great array of I/O ports and programmability. They run Microsoft BASIC off-the-shelf and have 32kb of storage.

Initial Inspection

First signs of tear-it-down-before-turning-it-on showed up as soon as I checked out the battery pack. The batteries weren't in there, but there was a LOT of corrosion. The circuit board in the battery pack even seemed to have components missing? Did they corrode and disintegrate away?

DSC00088 DSC00089 DSC00095

After a good scrub, all was much cleaner... I had already decided to pull the main machine apart first though. Corrosion has a magical property of travelling inside metal (just like electricity) and conquering whatever it can get its green rusty mits on.

DSC00097 DSC00105 DSC00106

DSC00102 DSC00103 DSC00104

Of course, it had spread. The terminal and battery pack isolation switch were the main victims. Fortunately, it didn't seem that the tracks or other components were affected?

DSC00107 DSC00108 DSC00109

DSC00113

Both Isopropyl alcohol and cleaning wipes were used to clean up the board. Light scrubbing was also required in the hard to get areas.

Powering it up

After all the cleaning and soldering above, it was time to bite the bullet. I found 4 random AA batteries and slotted them into the pack. My multimeter showed 6 volts, so I slapped it in an gave it a go.

DSC00100

Flicking the power switch on the side gave no response. I had read online somewhere that the first thing to check is the "Back Up Power" switch. I initially thought this meant "use the internal battery", but it doesn't. It actually means "use the batteries you've just inserted". With this switched over, the power switch on the side saw the unit come to life... well... there were at least a few electrons flowing.

Black Screen Of Death

For now, we're going to disregard the damage to the LCD. you can see that something pointy has taken out a sizable area of the screen... but 95% of it will still be usable prior to needing to replace that.

DSC00115

After the power switch was flicked, the screen produced the result you see above. Trouble-shooting this is pretty straight forward. As per the instructions here, press Enter, then type BEEP and press Enter again. If you get a beep, then your mainboard is fine and your screen is crap. My mainboard was not fine!

The next bit of googlin' found this result on diagnosing and repairing a black screen. Turns out one of the 245 chips was only half-functioning. I love that the author also found errors in the service manual. Either way, the repair-man found a defective IC and replaced it... as that I had no way of determining what was defective, I started replacing everything.

Component Shopping List

From the service manual, I found the following replaceable chips at my local electronics store.

Original Chip Jaycar's Version
40H139 : U1, U53, 74HC139 (ZC-4848)
40H386 : U51 74HC86 (ZC4835) IS NOT PIN COMPATIBLE!
Jaycar therefore doesn't have a replacement.
40H245 : U13, U42 74HC245 (ZC4870)
40H373 : U15 74HC373 (ZC4874)
40H367 : U??, U?? 74HC367 (ZC4872)
40H138 : U2, U3, U4, U5, U6 74HC138, but Jaycar doesn't stock it!
40H175 : U11, U12 74HC175, but Jaycar doesn't stock it!
603 Transistors BC547?
115 Transistors BC556/560?

Note: The above list is a work-in-progress. I'll update this as I continue identifying and replacing parts.

Find and Replace

Removing components from PCBs is always a challenge. Even with the best solder-sucker, you can still have a very hard time making sure every pin is free. In the end, as long as you don't need the existing IC, snipping legs and then removing those can be a much better option.

DSC00119

DSC00120 DSC00122 DSC00123

DSC00126 DSC00127 DSC00129

I've used sockets for each IC I'm putting in as well... I've no idea if this whole board is pointless, so I'd prefer to waste a socket more than an IC. I started with the 245 that was mentioned above and got nowhere... still the blank screen... I then replaced a 367 and had no luck either. This was really a crap-shoot and a very slow process. From here I thought there had to be a better option... so I consulted the service manual.

Troubleshooting via the Service Manual

I really should've started here when diagnosing the issues in this machine but, when I had first read it, I saw the word 'Oscilloscope' and got scared off. I don't have one of these, so I didn't think to pursue this area of investigation. I had since come back to it after realising that replacing each of the ICs was going to take a REALLY long time.

On page 54 you actually get to test each of the pins on the CPU itself. It indicates the pin and the expected voltage. Note that the CLK pin is meant to flip/flop and this can't be seen from a multimeter. All you can really look for is a 'half' voltage, as the flicking effectively provides 50% 0v and 50% 5v totalling 2.5v. All of the pins on my CPU came up OK as per the values stated!?

From page 85 of the manual, you get instructions on what voltages are meant to be seen from the power supply board when the computer is powered on. All but one of these turned out to be OK. Pin 10 was meant to be greater than 7.5v, but mine was only just over 7.0v. The manual then tells you that U2, Q16, C1, or D7 of power board are bad. Ok... this is good! Let's replace everything we can.

Something weird happened next. I didn't have the required components to repair the power supply, so I tidied up the desk for the evening. As I put the machine back together (aka. placed it into a pile of loose parts), I accidentally toggled the power switch.

DSC00137

Wait... what... we've got movement! The screen displayed a bunch of random rubbish. Sometimes a cursor, other times a heap of LOAD statements and at one point I could even type in a command... I didn't get a BEEP though.

DSC00131 DSC00134 DSC00135

The only thing I can attribute this to is that the power supply board received attention. I had shifted the caps around and also wiggled transistors. Maybe some of these had faulty solder joints? I should've measured pin 10 again here, to see if it all happened because of a 7.5v reading. Unfortunately, I couldn't get it back into such a state. I went ahead and purchased parts to fix the power supply. Unfortunately, I couldn't find the correct transistors at Jaycar to replace Q16 as per the instructions above.

DSC00138

DSC00140 DSC00143 DSC00145

I replaced all I could but still couldn't get the machine to do what I wanted. Actually, as I first started tinkering, the display of crappy text was satisfying. Towards the end, I hardly had a jumble of pixels. Toying with the ROM did seem to help... I wonder if the chip or socket area was damaged? Maybe static had fried it? Out of desperation, I attempted to swap some transistors around on the power board. Maybe that Q16 was the final issue. I did note that the 7.5v was still very intermittent. It didn't quite appear when the machine was half-working and only appeared at other random times... maybe the board was pulling too much current due to other issues and therefore was never actually going to let the power supply do it's thing?

DSC00147

Playing switch-a-roo with transistors revealed some information on the power supply. Swapping the 603s between Q2, Q16 and Q3 made either the speaker click, the relay click or nothing at all. To me this meant that one/some of the transistors were faulty. It didn't matter which as I didn't have a replacement. Trying to find actual 603s was impossible but, using the cross-reference tool here, I have just found out that BC556s are a valid substitute.

Or are they? Let's rewind a bit... I assumed that the transistor was a 2SA603... but it actually can't be. Using this complimentary transistor table, it seems that my transistors are 2SC2603 and 2SA1115. It would make sense that one was NPN and the other PNP. I therefore need BC547s (although they seem to be rated 100mA less and the pins are reversed!) for the '603' and BC560s for the '115'. Unfortunately, Jaycar doesn't have 560s, so I'll choose 556s instead, which are just have a higher voltage tolerance and a lower amperage. I might also order the correct components from eBay.

DSC00013

So, transistors... turns out that on page 108 of the service manual, the components are listed. I was totally correct on the transistor model... well, after I corrected myself. I therefore bought 20 of each from Jaycar.

DSC00001 DSC00004 DSC00005

Of course, I jumped the gun and didn't correctly review each component. The pins weren't backwards, they were actually out of order!

DSC00015

So, with the legs crossed, just enough, the order of the pins could be adjusted...

DSC00017

Whilst replacing the transistors, I also replaced the capacitors. Of course, one had to have exploded. Happened to be the 33uf that assists with the -5v output. I assume it's a cap that stabilises the voltage. I simply used solder to bridge the damage.

DSC00009

The results started off erratic... but then seemed closer to rendering a real screen?

DSC00021 DSC00027 DSC00026

And then it happened!

DSC00029

Keyboard didn't work.. screen was frozen... but shiiiiit... that's the actual main menu! I actually nearly have a real computer! I then replaced all the signal diodes on the power supply.

DSC00031 DSC00033 DSC00034

With the diodes replaced, the keyboard worked! Note that at this point in time, the board relay was not actuating on power on. It had previously, intermittently... but doesn't seem to be essential? Either way, as above, the menu worked and BASIC loaded. Unfortunately, once loaded, BASIC was useless with a screen full of junk. Any keypress resulted in Memory Full and a system beep.

DSC00037

I opened up TEX, typed in the obligatory sentence, pressed enter and the machine froze up... the work continues!

One step forward...

And then back to the beginning. I did something stupid over the weekend. On Saturday night I placed the ICs I had purchased over the top of the ICs they were to replace, so as to be able to see what ICs I still needed to replace/purchase. With these piggy-backed loosely, I closed the machine and put it aside.

Forgetting that I'd done this, I attempted to boot the machine the next morning... It presented the infamous black screen and not much else. As I shifted the machine to the center of the workbench, I heard parts move and instantly remembered what I'd done the night before. What a bloody waste of time I am; forgetting that I'd left the ICs in there and hence possibly doing all kinds of damage.

For the life of me, I could not get the machine back to where I was on Saturday afternoon. Such a let down! The only real goal was to hope that I'd only damaged mounted items and not the new items I'd purchased... then again, I could just re-purchase as I'll socket all the ICs.

IC Replacement

Solder suckers are fun, but Desoldering Braid is the best thing since sliced bread! Once you've removed the IC+legs from the mainboard, you'll find it quite difficult to remove the solder from the holes. Desoldering braid does this for you and does it quickly and cleanly. All you have to do is unreel enough to cover the hole and then press your soldering iron directly into the center of the area. The chemicals in the braid them somehow manage to attract the solder!

If it doesn't work the first time, then re-apply solder first. Only use the braid on holes that are full. If there's a gap, then the solder wont jump, it'll only flow! Also, the longer you hold the soldering iron there, the better. Watch as the solder flows into the braid and lift when it stops flowing up.

After removing the TC40H386P, and thinking that the 74HC86 was a replacement, I worked out that it wasn't. A hack was employed to get around this.

DSC00052 DSC00053 DSC00058

I lost a lot of faith with hacks like the above. Regardless, I ended up replacing half the chips on the mainboard and didn't get anywhere... it was time to wait for the oscilloscope to arrive.

Filed under: Retro No Comments