Tutorial: HP 95LX 1MB RAM Upgrade

Archived 2013-12-08
This page has been archived and some links may not work correctly anymore. No updates of this page will be done anymore.

See also: Tutorial: Disassembly of a 200LX (disassembly of a 95LX is very similar, but be careful, as some details are different)

Arne Christensen provided a tutorial for a do-it-yourself RAM upgrade for a 512kB 95LX. Here it is:

Do-It-Yourself HP95LX RAM Upgrade
=================================

Some time ago upgraded my HP95LX from 0.5 Mb of RAM to 1.0
Mb with the good help of a friend who is an electronics
engineer. This is the story of why, why not, what, and how.


Why?
----

It should be clear enough why I wanted to extend the memory
of my 95: More RAM disk, room for executing larger programs.

Having this need, I immediately ran into two problems with
the regular HP upgrade program in Denmark, where I reside:
First, it was VERY expensive, in the vincinity of US$400
after sales tax was added, and secondly, they flatly refused
to upgrade my HP95LX because it was not the international
model that they sell in Denmark (I had imported it myself
from the USA).

When I heard from the chairman of the Danish HP user's
group that it was possible to do the upgrade yourself, I
talked to my friend. We made it, and here's how!


Why not?
--------

There are reasons why doing this upgrade yourself might not
be the right thing for you:
- You lose your warranty. Not a big deal now, I suppose;
  the warranty expired long ago, right?
- If you ever need to have the machine repaired, you may
  get a larger bill (pure speculation of course). Never
  mind, you save now and may never have the expense.
- You may botch this up and need to have HP repair your
  machine.
    Carefully think about this point. If you know about
  electronics, if you're confident that you can solder a
  surface mount chip, and if you're a bit adventurous, go
  on. Otherwise, I'll recommend that you don't.

In addition to this, there's a bug in the machine that might
affect you. This bug is in the ROM, and is found at least
in the 1.01A ROM version (the version number is shown when
you boot the machine with Ctrl-Alt-Del). I think it is
fixed in some of the newer versions - it certainly is in
the ROM version used in the 1.0 Mb HP95LXs, and I think
this improved ROM is also used in the newest 0.5 Mb HP95LXs.

The symptom of the problem is that if you change the System
RAM / RamDisk ratio (in the Setup utility) and make your
RAM disk too large, your machine will hang if you ever
enter Setup again.

Also, initially, Setup reports RAM disk to be at 14 K and
System RAM at 634 K, which is wrong but amusing.

If you change the ratio to "the same" it will now report
something like 14K/626K (note: the sum is 640) and, in my
experience, become unstable. The same happens if you enlarge
the RAM disk a little (even if you don't enter Setup again).
However, I _may_ have mixed this up with other problems I
had at the time. In any case, I now stick to the default,
as I don't need the extra RAM disk space (I've got a 2Mb
card) and absolutely want a stable machine (as my calendar
etc. is on it).

I'll attempt to explain what's going on. I haven't been
digging myself, but the fellow who gave me the idea of
upgrading the machine myself also explained that the Setup
utility puts some of its variables at a fixed location in
RAM, where they may get overwritten if you resize the RAM
disk. This will make Setup go beserk if activated.

Note that if you leave the ratio as it is initially the
machine works like a dream. I upgraded mine almost a year
ago and I've never had a problem.

- So, think carefully about it and decide whether the 
benefits are greater in your case than the possible
problems. In any case remember that

     YOU decided to do it!
     YOU did it!
     I only told my story!
     I am in NO WAY responsible for any damage or
     consequential problems arising from this
     YOUR fiddling around with your computer!

and,

     I warned you!

But if, in spite of my efforts at discouraging you, you
modify your HP95LX anyway, please mail me and tell me so.
Especially tell me about your experiences with the Setup
utility if you have any other ROM revison than 1.01A.
Thank you.

And now, let's get started with the fun part!


What?
-----

What do you need for doing this upgrade, apart from the
skills I referred to above? Not much:

- A RAM chip. The one that was already in the machine is
  a HM658512LFP-10, so that's what we acquired. From the
  specifications, this is a 524288-word x 8-bit high speed
  pseudo static RAM with a 100 ns access time. It's in a
  32-pin plastic SOP (FP-32D). If you understand all that,
  fine. I don't, but my HP95LX works anyway...

- A fine-pointed soldering iron, and thin solder lead
  (there sure isn't much room in that machine).

- Thin insulated wire. Wire-wrap wire will do fine.

- A single 10 KOhm resistor, small! (It's for pull-up.)

- A magnifying glass. Yes, you need that if you want to
  inspect your solder points. But if you have tried
  soldering surface-mount parts before, you know.

- A copy of the disassembly/assembly instructions that were
  posted in this newsgroup not long ago.


How?
---

1. Backup your HP95LX and take out all the batteries, even
   the backup battery. You don't want to modify a live
   circuit, and the RAM is naturally live until ALL
   batteries are out.

2. Disassemble the machine. You don't need to disassemble
   the display part, since you are not going to do any
   modifications to that one. However, you need to disconnect
   it from the main logic board. Take this board out of
   your machine.

3. Take a good look at the board. Incredible, isn't it?
   It sure is packed. Now, in order to avoid confusion in
   the following, we need to establish some common terms 
   with regard to orientation. The side of the logic board
   we're interested in for the sake of this upgrade is the
   one that faces upwards during (normal) use. Turn the
   board so it has the PCMCIA connector to the left (this is
   the way the board is oriented as I write this on my
   HP95LX). This our "standard" orientation.

4. You now see three slots for ROM/RAM chips close to
   the PCMCIA connector.
     The bottom one is a 0.5 Mb RAM chip - you'll recognize
   the part number. Otherwise, you're having a most 
   interesting case (which basically means that you're
   wholly on your own - good luck, and I'd be interested in
   hearing about it).
     The middle and top slots are for ROM chips. If you're
   lucky, the middle slot contains a 1 Mb ROM and the top
   slot is empty. The ROM is a HN62318B (mine says FC16 in
   addition to that), which is Copyright 1990 by HP. 1990!
     If both slots are occupied, you're less lucky: You've
   got a machine with two 0.5 Mb ROMs and there's no space
   for more RAM. I don't know whether 1) some early machines
   are actually configured like this, or 2) this an example
   of a last-minute change made possible by HP's usual
   over-engineering (providing an extra address bit to each
   ROM slot, thus making possible the exploiting of 1 Mb
   ROMs). Please enlighten me if you encounter a full
   machine!

5. Provided the top ROM slot IS empty, you now know where
   to put your new RAM chip. However, don't just solder it
   in - the slot is wired for a ROM, not a RAM, so you
   need to rewire a little. For those of you that want to
   know, here is the detailed explanation. If you already
   have a hot soldering iron, hurry on to step 5 and go back
   and read this step when curiosity demands.
     First thing to note is that some pins are used
   differently on the ROM and RAM chips:

	pin	ROM		    RAM
	--- -------------   --------------------
	 3	A15		    A14
	31	A18		    A15
	 1      A19		    A18
	29	A14	        Write Enable
	24  Output Enable  Output Enable/Refresh

   The first two lines show how the address bits are in a
   different order on the two chips. This does no harm: as
   long as data can be read using the same address as when
   it was written, things will be fine; don't rewire these
   pins.
     The third and fourth lines show a problem: The RAM chip
   is only half the size, so does not need the highest
   address bit (A19). However, it does need A14 (originating
   from the spot on the logic board under pin 29), which we
   will then wire to pin 1 on the RAM (A18) (swapping around
   address bits still isn't a problem).
     What, then, should pin 29 on the RAM be connected to?
   This Write Enable pin (which the ROM clearly has not much
   use for) must be connected to the corresponding pin
   on the other RAM.
      Likewise, pin 24, which has added functionality on the
   RAM, must be connected to the corresponding pin on the
   other RAM. If you fail to do this, RAM refresh will not
   work properly. The RAM test (invoked via On-Esc)
   will succeed because it accesses the RAM continuously and
   thereby refreshes it sufficiently for it to work. 
   However, if the machine stands idle for more than some
   tens of seconds, you can be sure that the RAM has lost
   its contents, soon causing a crash. (You can tell that
   we did not get this right the first time!)
     Also for reasons of refresh, a pull-up resistor needs
   to be connected between pin 22 (Chip Enable) and pin
   32 (Vcc). This is because the automatic RAM refresh that
   occurs continuously while the machine is off is enabled
   by the combination of Low on pin 24 (Output Enable/Refresh)
   and High on pin 22. Connecting pin 24 to the other RAM
   ensures the correct level for that one, but we must 
   cater for pin 22 ourselves. Using a 10 KOhm resistor
   seems to work, and puts only a small load on the batteries
   (half a mA). You may try with a larger resistor if you
   like, but this one works at least. 
     Finally, one more pin needs to be connected to the 
   corresponding one on the other RAM: Pin 32 (Vcc). The
   reason for this is that the ROM slot is not powered when
   your HP95LX is off, whereas the RAM needs power at all
   times.

6. Solder a piece of wire to the solder point below pin 29.
   It does not need to be very long; it will be connected
   to pin 1 of the new RAM chip. Be careful not to damage
   the "via" close by.

7. Prepare the RAM chip by straigthening out pins 1, 24,
   29 and 32 on the RAM and shortening them slightly. These
   are the ones that will not be soldered to their
   corresponding solder points, but will be connected
   somewhere else.

8. Solder the remaining pins of the RAM. Solder the corners
   first so the chip is fixed before the remaining pins are
   soldered.

9. Connect the free end of the wire from step 6 to pin 1
   of the RAM (which is unconnected until now).

10. Connect pins 24, 29 and 32 to the corresponding pins
   on the other RAM. The wires need to go around the chips,
   not above them, as there simply isn't room for even a
   thin wire there when the machine is reassembled.
   We let the wires for pins 29 and 32 go to the left of
   the three chips, and the wire for pin 24 to the right.
   You may decide another arrangement, but make sure there
   is space for the resistor you will solder in next.

11. Connect the 10 KOhm resistor between pins 22 and 32.
   Take care that the wire you just connected to pin 32
   doesn't fall off. The resistor will cross the wires
   on pins 24 and 29 - beware of shorts!

12. Check all your solder points, if you haven't done so
   already. This is where you need the magnifying glass.
   Pull gently (not too gently) in the wires to ensure that
   the solder points are mechanically stable.

13. As a last point, recheck that you put all the wires in
   the right places, and not on the pin next to the correct
   one! You should end up with something like this (please
   excuse the poor graphics). "RAM" means connect to the
   corresponding pin on the other RAM:

   RAM<--+-----------resistor----------+
         |                             |
      +- |--------+                    |
      |  |        |                    |
      |  |RAM<-\  |              +->RAM|
      |  |      \ |              |     |
      |  |  o  o \o  o  o  o  o  |  o  o  o  o  o  o  o
      |  |  |  |  \  |  |  |  |  |  |  |  |  |  |  |  |
      | +----------------------------------------------+
      | |32       29            24    22               |
      | |                                              |
      | |                                              |
      | |)                                             |
      | |                                              | 
      | |                                              |
      | |1                                             |
      | +----------------------------------------------+
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
      |  |  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o
      |  |
      +--+

14. Now reassemble your HP95LX. Don't just yet press the
   two halves together; the press pins are very fragile and
   don't like being taken apart and reassembled too often.
   With caution you can insert batteries and test the
   machine without assembling it fully. If you have a
   laboratory power supply, use that instead of batteries
   for reasons of mechanical stability (but do put in the
   backup battery).

15. Test the machine. Use On-Esc to run the RAM test
   (notice that now 2 RAM chips are tested rather than
   only one) and all the other self-tests. Try and read
   the files in c:\_dat, and turn off the machine and then
   on again after a minute to see if the RAM is refreshed
   properly in off periods.

16. When you are satisfied, reassemble your HP95LX fully
   and congratulate yourself! And run the tests once again..

17. If anything goes wrong, I'll do what I can to help.
   However, remember that

     YOU decided to do it!
     YOU did it!
     I only told my story!
     I am in NO WAY responsible for any damage or
     consequential problems arising from this
     YOUR fiddling around with your computer!

and,

     I warned you!


Have a good time!


Acknowledgements
----------------

I'd like to say publicly "thank you" to Frederich Schroeder
who first suggested doing the upgrade myself, and to Allan
Pedersen, who helped out a lot and held the soldering iron
in a steady hand. Thanks.

Also I'd like to thank Craig Finseth for making his Freyja
editor available for the rest of us. Had I not been able to
do some serious writing on the road you would never have
had this writeup.


( Copyright (C) 1993 by Arne Christensen. All right reserved.
  Permission is granted to distribute without limitation on
  BBS's and user group newsletters. Distribution in other
  printed form requires the written permission of the author. )

----
Arne Christensen,
Pine Tree Systems ApS, Denmark.
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.    or    ...!uunet!mcsun!dkuug!pine!arc
Fax: +45 43 71 43 42        Voice: +45 43 71 07 04

Do you like to support me?

Dear fellow Palmtopper!

If you like, you may reward me for the work I put into this website with a donation.

 

For a donation in US$:

For a donation in €:

Your donation, even if it's just a single USD, will help me to:

  • finance the server that hosts the site
  • justify time I spend with maintaining the site and do not spend with earning money otherwise (wife is watching! ;D)
  • just continue to be motivated :)

Since my company "hermocom" does not exist for many years anymore, I am now spending my spare time and private money for all of this. Thank you very much! 🙂

Yours truly,
Daniel Hertrich