(This is the "December '95" revision of my posting. It is upgraded with respect to the previous "April '95" version to include some asked questions) This document describes how to upgrade your HP48G (or 48S) to 256K Ram ---------------------------------------------------------------------- The main piece of research (for HP48G) is done by Thomas Otten. Thank you Thomas, great job !! Other people who contributed are mentioned in the included posting. This document is written especially for the HP48G, but as far as i can see the PCB is also usable for the HP48S. In that case you just have to connect some wires differently, and you don't need the 74HC00. If you are going to upgrade an 48S, read the special part for the 48S after reading the global-G text... Warning ! I haven't tried this on a HP48S ! I've created a little PCB (printed-ciruit-board) by using the information supplied by Thomas. On this PCB are two 128K*8 static ram's, which both have the normal DIP (dual-in-line) package. They are stacked on top of each other, and the one on the bottom is mounted on the PCB as if it were a real SMD device. The PCB itself is connected to the HP48 by 40 tiny pieces of wire. It's a very rigid construction; no glue needed, and possible wiring mistakes reduced... ============================================================================= = I did my memory upgrade using this PCB somewhere round july 16. 1994, and = = it still works great (it's now dec. 5. '95). = ============================================================================= Included in the zip-file are the mem-pcb.plt, mem-pcb.lj(r) and mem-pcb.2lj files. These contain the PCB layout. The *.plt file is a HPGL plotter file, the *.lj file is a 100% PCL-file, the *.ljr is a 100% reflected PCL-file and the *.2lj is a 200% PCL-file. The PCL files can be printed on HP-laserjet or HP-deskjet printers. I created my PCB by printing the 100% laserjet file on a piece of calc-sheet, and directly etching the print using this sheet. If your'e going to print the image on a dot-matrix printer, you better use the HPGL version, set your software for a 200% copy, and scale the result down. You could use for example the utility from a Simtel mirror; .../msdos/plot/prtgl140.zip, a very usefull program which is able to output the HPGL file to many devices (screen/printer). In other cases you might be able to use Word-perfect, Draw-perfect or some other graphics programs to print the HPGL file. If you copy one of the files directly to your printing device (with MSDOS), remember to use the "/b" switch ! [ copy /b mem-pcb.2lj lpt1: ] If you want to print on unix systems be sure you use the "RAW" printing mode. See the manual pages of "lp" or "lpr" for the correct options. Or just ask someone who knows what to do (system-administrator). If you can't create the PCB by yourself, just make the printout on paper, and get it to your local electronic's shop. They probably can do it for you, otherwise contact a friend who's able to help you... By the way, a 200% printout photographically down-scaled always gives a better result. Double check the size of the final PCB you create before soldering anything ! The connector-strip on the PCB should allign exactley (pin distance) with the connector inside your HP48 ! The print should be cut as small as possible, and right next along the edge of the 40 pin connector. The printed text on the PCB should be readable (i mean not mirrored ! Probably the small text won't be visible after etching, but you get the point...) Oh yes, and NO HOLES should be drilled !!! It's an SMD- like setup (the components are soldered on the side where the traces are...). Before you start the project i strongly suggest you read all of the included postings !!! [ Or else you won't be able to open up your HP nicely :) ]. Ok, the things you need are two 681000(ALP)/DIP ram chip's (or equivalent), a 74HC00/SMD (only for 48G), the PCB, 40 pieces of stripped (hardcore) wire (i used the ends of some 1/4 watt resitors for this...), 8 pieces of extra wire (with isolation), soldering stuff, one 1 Meg Resistor (1/4 watt) and of course a HP48G (or 48S) with just 32K of memory... :) Optional stuff for adding a write-protect switch: a little dip-switch bank with at least 4 switches and one 2K2 Resistor (1/4 watt). FAQ: What is a 74HC00 ? It is a quadruple two input NAND gate. Logically spoken in signal levels at pins: pin-3 = NOT ( pin-1 AND pin-2 ) pin-6 = NOT ( pin-4 AND pin-5 ) pin-8 = NOT ( pin-9 AND pin-10 ) pin-11 = NOT ( pin-12 AND pin-13 ) The power supply is connected to pin-7 (GND, 0 volt) and pin-14 (VCC, 5 volt). FAQ: Where do i buy those chips ?? I've no idea, just look for local electronics stores. I know only of some dutch stores, and here in holland it's no problem to get the needed parts. I really can't help you in finding a shop in other country's, so don't bother to ask me, but ask in the news-group to get someone living in your country to answer the question. FAQ: The shop offers me a ram chip with only 24 or 28 pins, is that OK ? No it is not ! The ram chips should have 32 pins, otherwise there are not enough pins to wire all needed address lines for the 128K BYTE of memory. They probably are trying to sell you a 128K BIT chip instead of a 128K BYTE chip. Make sure you ask for a 128 KILO by 8 BITS STATIC RAM CHIP, preferably in a LOW POWER version. FAQ: The part they offer me has some characters in front and/or behind the version number you gave us. Can i use those parts also ? Yes. Those characters in front and/or behind the chip-number define a specific batch of chips for the manufacturer, and often indicate specific versions of a chip, or the package type of the chip. For example something ending with the characters "LP" could mean you have a LOW POWER PLASTIC version of the chip. Or a chip starting with "AM" is manufactured by AMD, or a chip ending in "C" means it is suited for a temperature range of 0 to 70 degrees centigrade. And so on, and so on.... FAQ: What does SMD or DIP stand for ? SMD stands for Surface Mounted Device, and just means you use a very small version of the chip. DIP means Dual Inline Package, which is just a generic term for integrated circuits. It actually means that you have two rows of connection pins. When i type DIP without mentioning SMD, i mean the "normal" large version of a chip. FAQ: I have version xxxxxx of your posting, is this the latest one ? The posting is not upgraded regularly, so you probably have the latest version, or at least the version you have is perfectly usable ! If you want to make sure you have the latest, try looking at World-Wide-Web page "http://www.xs4all.nl/~protask/thijs/index.html". FAQ: Do you have any digitized pictures of the inside of your HP48 ? No, i'm sorry but i don't have a scanner available, and my 48 is closed up already... NO FAQ, but it could be: Which version of the HP did you upgrade ? I've done the upgrade to a HP48G revision P, and it still works OK. ============================================================================== || Warning ! Watch out for static-discharges ! I actually connected the tip || || of my soldering iron to the negative pole of the HP48 while soldering || || things inside it... Officially you also should tie yourself and || || everything else to the ground-level :) || ============================================================================== Start by soldering in the 74HC00/SMD (48G only). For information on how to open up your HP and to find the location for 74HC00 see the included posting written by Thomas. Here's a (poor looking) side view of the setup.... |----------------------| |-| CHIP-1 |-| | |----------------------| | | | | | |----------------------| |-| CHIP-2 |-| | |----------------------| | ___| |___ Wires for 40-Pin connector ------| ==256K-PCB=========================================================== | |---- ========HP48PCB================================================================ <----- Display to the left..... .....Battery compartment to the right ----> Keyboard and display facing downwards... The 256K-PCB also serves as isolation for the added wiring because all of the copper-wires on this PCB are on the upper-side (if looking at above picture). You should bend all of the little feet of CHIP-2 as you can see in the above picture. I actually had to shorten the legg's a little bit, to get them to fit on their pads on the PCB. Watch very carefully ! You don't want to make any shortcuts ! If all of the pin's of CHIP-2 are ready, you can solder them all to the PCB. Pin one of the chip should be in the upper right corner if you have the PCB with the 40-pin connector pointing at you. But if everything is ok, you should have a 1 marked on the PCB at the corner which reads 256K HP48. CHIP-1 has to be soldered on top of CHIP-2. But before you do so, you should bend out the pins 22, 24 and 30 a little bit. These pins should not be soldered to the corresponding pins of CHIP-2, as is the case with all others. Connect pin 30 (chip-1) to pin 32 (chip-1/2) with a little piece of wire. Attach seperate wires to pin 22 (chip-1), 24 (chip-1) and to the solder island on the PCB at pin 32 (chip-1/2). These will go to the HP48 system-board. Now prepare for a nasty piece of soldering.... the 40 pin connector... Put the PCB on top of the HP48 system board, and allign the two connectors. The 256K-PCB is not completely lying flat on the HP because of some components on the HP under it. But that's no problem, just keep the 40 pin connector part flat on the board. Now bend 40 tiny pieces of wire in the right shape, and solder the two PCB's together... Be very carefull or you will solder two neighbour-connector pads together !!! I actually didn't bend 40 pieces of wire in the right shape in advance. A better way to do this is to take one long piece of (hard-core) wire, and bend one end of it in the right shape. Then solder this end to the two PCB's, and cut it off. Of course you may skip pads which aren't connected to anything... I used the ends of a couple of 1/4 watt resitors as wire, perfect for this purpose ! Be sure you connect the PCB to the part of the 40-pin connector which is located away from the battery case. (Some pin's are split in two, see posting). By this time your PCB should rigidly be connected to your HP. No glue needed as you see, and no big wire mess... [ Although a bunch of wires will also work perfect... no PCB needed, but i think it looks nice... :) ] Now use a needle (and iron :) to de-solder two pins of the internal 32K chip. Be very carefull, not too much heat, and don't force the pin's, they just have to be bend a little up in the air to get rid of their contact with the HP. The pin's are 20 and 22 of the M5M5256BFP-15L or what ever 32K chip they used inside your HP. Just read the included posting from Thomas if you can't find the right chip (you should read it anyway to open up your HP, and to learn how all this magic works !). Connect the wire of pin 22 of chip-1 to pad 20 of the HP-board. Yes, the one from which you just desoldered a pin. Same for pin 24/chip-1 to 22 on HP. The wire from the solder island at pin 32/chip-1/2 should be connected to the VCC pin of the internal 32K, which is pin 28. I actually connected this wire two pads further near the battery case, but if your'e not sure which pin i mean by this, just connect it to 28 of the 32K ram. Be sure that the two desoldered SMD pins do not touch the newly connected wires. The two floating pin's of the SMD should also be connected to the VCC (pin 28 of ram). Don't use wires which are too short for this purpose, in future these two pins have to be connected somewhere else, to enable the 32K as extra port-memory ! Almost ready, just two resistors left, and a dip-switch bank... One end of the 1 Meg resitor has to be soldered on pin 2 of the HP-connector, the other end goes to pin 32 of chip-1/2. This is the "battery-check" for the new port-memory. The dip-switch schematics: ------- "T"-pin-37. | | | DIP | --------- --------- |--1 ----| SW1 |---- 8-------------------|2k2 res|------ GND | | | --------- ---2 ----| SW2 |---- 7-----> pin 1 of HP connector | | 3 ----| SW3 |---- 6 | | 4 ----| SW4 |---- 5 --------- Connect pin 1 and 2 of this switch to the "T"-shaped pad on the 256K-PCB. This pad is connected to pin 37 of the 40-pin HP-connector. Connect pin 7 of the dip-switch to pin 1 of the 40-pin HP-connector. Connect a wire to pin 8 of the dip-switch, and connect this wire to one end of the 2k2 resitor. Connect the other end of the 2k2 resistor to a GND-wire. A nice position for this resistor is the leftmost trace on the 256K-PCB. This trace is connected to GND pin 40 of the HP connector. Just put the resitor vertically (flat) on top of this trace, and solder one end of it to the trace. The other end is of course connected to the DIP-switch. This way the dip-switch can be used to switch your memory to write-protected state, read/write state and invisible state (I actually have no use for the invisible state, it's just a side effect..). Just don't turn on both switches SW1 and SW2 at the same time for a long period. This drains your battery. The proper procedure is: Turn of your HP, change switch positions, and turn on again. Just keep the two switches always in the opposite position. If you accidently turn on both switches your HP won't blow up or something like that. For this reason the 2K2 resitor is installed. It just is going to drain your battery a little bit faster this way. If you turn of both switches the HP won't see the extra port memory. By the way, this switch is only used to protect the port-1 memory. The 128K base is of course always enabled. You can also skip this dip-switch stuff, and connect the "T"-pin to pin 1 of the 40-pin connector. This way the memory is always enabled. In this case you don't need the disp-switch bank and the 2k2 resistor. But i recommend to anyone who's going to do any sys-rpl programming to install the dip-switch. Now where should you put this dip-switch bank ???? Just find a nice spot, and create a hole to access it. I did glue it underneath one of the rubber feet of the HP. Actually the one nearest the negative power pin of the battery-case. (Or the one at the same side your reset-button probably is). I took out the rubber-piece, and created a hole underneath it. If i want to change the memory state i now just have to remove the rubber-piece, change the switch, and put the piece back. Very nice, you don't see a thing from the outside !! Just like the reset button... Before you glue it inside your HP, be sure you still will be able to close the HP again ! Of course i flattened all the pins of the dip-switch to safe space. Why 4 switches ??? Well, that's obvious... The internal 32K is the future port-2 memory, and i already reserved two switches for this one... (See the HP48S-part for the connection of the other two switches). FAQ/Note added: After some tests i finally removed the 32K chip, because i didn't get it to work, and this way some of the batery power is saved. Now you just have to cut a hole into the shielding of the back at the place where the new ram-bank resides, and close up your calculator.... Ready.... Just add some isolating stuff at the places where you think it is needed, i only isolated the sharp edges of the hole in the shielding to keep my fingers alive... To test new memory inside the HP48G, press ON, then ON-D to enter test mode, and after the vertical line(s) apear press the "k" key (arrow up). After this the display should say "RAM1 OK 128K" and something like "RAM2 90000". The first "OK" just stays on my display a very short time. Press "k" again to test it another time if you missed the message... Leave test with ON-C. To test the new internal 128K (the previous test was an external port-mem test only), press ON, ON-D, and then EEX. Now wait for a message stating "IRAM OK 128K". Leave the test with ON-C. Don't be afraid if you see a "fail 100" or "fail 180" mesasage at the end ! This message was already present before you upgraded your calculator, and as far as i can see the "fail 180" means that both port-1 and port-2 memory are missing, and in the same way "fail 100" indicates the missing port-2 memory (you only installed port-1). So if everything is Ok, you should see the "fail 100" message after doing the upgrade. To get rid of the "Invalid card data" message, type PINIT, or just start using the port. One last thing: inside my HP, pin 38 and 39 of the 40 pin connector are not connected to anything, so i didn't connect them. If they are connected inside your HP, read the included posting to see what you should do with them. ================================================================= || Do the upgrade only if you know you're qualified to do it ! || || Watch out for any Static-discharges ! || || Of course this upgrade is at your own risk, you lose all || || waranty, if you had any left...... || ================================================================= I wish everybody good luck on doing the upgrade ! Questions/Comments/Experiences??? Just send some mail, and i see what i can do for you... Greetings, Thijs Kaper (tka@dasc.nl) --------------------------------------------------------------------------- o Is it a bird ?............ | Thijs Kaper, Zaanstad (Near Amsterdam) ~(S)~ ...Is it a plane ?........ | tka@dasc.nl, protask@xs4all.nl / \ ......No, it's aScii-man ! | Yes ! This is holland speaking... ======SPECIAL HP48S PART======== Again: Warning, untested, but it should work ! The only thing i'm unsure of is the question if there's enough space to get the PCB to be placed flat inside your HP. According to information i received from Matthias Krok (m_krok@tron.gun.de) there should be enough room to place the PCB. First read all of the above, some things are the same for both calculators. Ok, no need for the 74HC00 as mentioned before, and no need for some extra wires... Create the PCB as mentioned... Solder CHIP-2 onto the PCB.... Solder CHIP-1 onto CHIP-2, and in this case just leave pin 30 unconnected !!! You don't have to bend pin 22 and 24, these should be connected to their corresponding pins of chip-2. Connect a short wire to pin 30 of chip-1. Put the 256K-PCB inside your HP, and solder the connectors together with the small wire-pieces. Again, solder the PCB to the connector part located away from the battery case. Connect the wire from pin 30/chip-1 to pin 21 of the 40 pin HP-connector, and in this case to the part located NEAR the battery case ! Connect BOTH parts of pin 39 to pin 40 (HP-conn). Connect BOTH parts of pin 38 to pin 1 (HP-conn). Install the two resitors, and the dip-switch, and duplicate that part for the side of the connector NEAR the battery case as follows: ------- "T"-pin-37. | | | DIP | --------- --------- |--1 ----| SW1 |---- 8----------------------|2k2 res|------ GND | | | | --------- ---2 ----| SW2 |---- 7-----> pin 1 HP | | | | ---3 ----| SW3 |---- 6------------------| | | | |--4 ----| SW4 |---- 5-----> pin 1 HP-conn. | --------- | ---- "NEAR" half op pin 37. Don't forget an extra 1 Meg resistor for "NEAR" pin 2 (HP). Or just connect the two parts of pin 2 together. Don't mess with the on-board 32K chip, no need for it. Close the case.... and ready.... Check out your HP-manual for a test of the newly installed port-memory. The main difference between the two setup's is that inside the HP48G you have to replace the 32K chip by the 128K chip-1 because of the memory allocation system used. The HP48S works a little differently, and doesn't need the replacement of the 32K. In this case you just added port-1 and 2. The opening and closing of the 48S is the same as for the G. ===================================================== || Of course this upgrade is at your own risk !!!! || || You lose all waranty, if you had any left...... || ===================================================== Good luck !! Thijs Kaper (tka@dasc.nl) Please let me know if anything should be changed in this 48S part. ======END OF SPECIAL HP48S PART======== ------------Included posting from Thomas (otti@megatel.de)------------- Newsgroups: comp.sys.hp48 Subject: Expand your HP48G to 256K - here's how Date: Tue, 13 Sep 94 09:25:21 GMT Lines: 511 Hi everybody, I offered to send my "old" posting about expanding the HP48G to 128K or 256K RAM to everyone who is interested. Since so much people mailed me I repeat that posting here. Maybe it should be added to the FAQ (?). I'm still happy with the expanded 48. I just had that 'memory lost' problem I mentioned some days ago but since I included that daily timer event everything is fine. I have forgotten to write that I used RAM chips with DIP package. There is enough room in the G. [Posting about this problem also included at the end of this doc...] FYI: I wrote that I don't know the meaning of some pins of the card connector in the following posting. By now someone told us in this newsgroup that those pins contain some video signals on one port. But this doesn't matter for the RAM expansion described below. If you don't are the pioneer kind of hardware hacker (like I'm a little bit) just wait before opening your 48. Someone I'm in contact with developed a little PCB board for the expansion and I think he'll publish this in the near future. You won't have to use that much wire as I did - but on the other hand it won't look that daring if you show the internals of your expanded HP to someone else ;-) . So if you don't mind some wiring feel free to follow my instructions. Greetings and good luck, Thomas ============== start of old posting ============ My calculator started to shout "expand me" and I went out to get some meat (did you see "Little Shop of Horrors"?). And when I turned it on today it happily said "Mem available: 256440 Bytes" Credits: 1) Like my first posting this text is based on a text by Holger Meyer ( 85348@NOVELL1.RZ.FHT-MANNHEIM.DE ) by simulating one or two RAM cards. The pictures of the pin layouts are his art work and only modified by me. 2) Carl Raffa (ccraffa@cotton.vislab.olemiss.edu) who opened his HP48GX and told me about the missing chips. 3) Paul Smith (akcs.n2kyw@hpcvbbs.cv.hp.com) who wrote the text about opening the 48 that is included in this posting. 4) Everyone who replied to any of my first postings In my first posting one week ago I described how to expand the HP48G to 128K RAM. I wrote that I couldn't connect it as port memory. Later I got the information about the missing chips in the G and was able to simulate a RAM card. I tried to reactivate the 32K internal RAM. This was possible but I could use the extra 128K only as port memory (not as merged user memory) afterwards (I posted this, too). Now I bought a second 128K chip and my G has no problems to merge both chips to a total of 256K. It should be possible to include a third chip (as port 2) and expand to 384K. Only the space needed for that chip could be a problem. Now for the instructions: 1) Opening the case -------------------- This text is written by Paul Smith: ++++++++++++++++ start forwarded text ++++++++++++++++++ Disassembling the hp48sx (may or may not correspond to the 48s, but probably will to some extent) Sufficient numbers of people (more than 1) have requested information on how to disassemble their hp48. Despite the fact that that's pretty scary, I will entail what I know here. Thanks to David Holmes for taking the first step and helping make my attempt more informed. None of the information that follows came from hp, so if what I say starts to sound rather official, it's not. For the few folks out there who've actually had to send their hp48 back to hp for service, you probably ended up with an entirely new unit. I suspect the reason for this, aside from some labor cost savings on the part of hp, is that they really aren't much fun to take apart. You can draw your own conclusions as to why it was designed that way. 0. Backup your memory. You will need to remove the batteries for awhile to disassemble the unit, and you may have them out long enough to cause memory loss (although in my case, even 2 days didn't wipe anything out). 1. Remove the tin key overlay. The overlay is attached with double- sided tape of some sort. A little care and patience will allow you to remove it only slightly warped, and it is fairly easy to straighten out later. I took a small jewelers screwdriver and started prying near the "ON" button, and worked upward toward the screen. When you get near the screen, try to preserve the shape of the overlay because that portion is a bit more difficult to properly straighten later. Once the overlay is removed, put it in a container or somewhere away from dust. The double-sided tape should stay with the overlay (mine did, at least) and will gather dust and stuff making it less sticky if left out in the open. 48sx owners will need to remove the little hp logo insert above the screen as well. 2. Defeat the 10 plastic rivets. Believe it or not, these rivets aren't all that critical to holding the unit together, so you can be as careful or as reckless as you want (I prefer reckless, because I hate plastic rivets). A good way to carefully remove the rivet heads is to use a flat head screwdriver that is the same width as the recessed rivet hole (4mm?) and "drill" the head away by hand with the screwdriver. The head is about 2mm deep, so stop "drilling" there to leave the keyboard material shoulder intact for easier reconnection later. There are 6 rivets near the number keys and four above the screen. These rivets above the screen perform more of a holding function than the others, and you may want to consider using some screws and small washers to replace them when you re-assemble. 3. Separate the lower half from the upper half. The upper half of the calculator contains almost all of the components except for the piezo "beeper" element, and there are no interconnecting wires between halves. The only obstacle is the snap-together "hooks" that David Holmes refers to. These hooks are positioned near the [A], [F], [SIN], [1/x], [ON], [+] and [.] keys (the one by the [.] key is a real bugger!). Refer to the cutaway diagram below for details. Key overlay here ___ \ ____________ \ | | ____________| ______ | | _ | | <--- Upper section. | | | | | ________________| | | |_| | | |___ Circuit board and other | | | components (affixed to | / | <--- Lower section. upper section) |/__ | Has a lip which | | | engages with metal Metal "hook" ---> | / | | "hook" from upper |/ | | section. | | | ________________| | | | | To separate the two sections, you will need to push the lower section out and down around the hooks. You can't do this from the outside because the upper section hangs over the lower, so you have to go from the inside. Luckily, the six slots in the keyboard (used by the separate user-overlays that fit over the original overlay) near the [MTH], [ENTER], [blushift], [NXT], [backspace] and [-], come in handy for this. These slots are not exactly lined up with the hooks, but are close enough. You can insert something in these holes (I used a jewelers screwdriver, flat head) at an angle that is mostly down and somewhat out, to a depth of about 5mm, and come in contact with the lower section. Push the lower section out about 2mm (this will take a bit of force), while wedging something in the outside gap to separate and hold the sections apart while working on the other hook positions ( a wooden matchstick works). I recommend starting with the [A] or [F] positions first, working down whichever side you started with, then do the other side, and leave the [.] position for later (there is no helpful slot there). 4. Remove the battery cover and the batteries. The two battery contacts which come through the case will need to go back through the case when the sections separate. The upper contact is hooked on a plastic boss, and needs to be freed from it. Just pop it off with your finger or a screwdriver. 5. Very carefully pull the two sections apart at the top (above the screen). If you have freed all the hooks, the case should sort of hinge at the bottom edge. This is due to the last hook (near the [.] key). Some careful twisting and working of the sections should free this hook as well. You should now be able to completely separate the two sections. I recommend at this point that you take a pair of pliers and flatten that last hook so that it will not hold next time. It is really not needed anyway, as the other six hooks hold the unit together just fine. Now you can poke around and explore things. Be careful what you touch, I'm not sure how sensitive the insides are to static discharge from your fingers, etc. If you're interested in adding stuff, some open real estate can be found in the areas between the battery compartment and the card receivers, and in the cavities in the lower section below the tin shielding on either side of the card ports (this is where I put some jacks). If you own a 48s, you may find a lot more space. If you want to disassemble the unit further, like removing the circuit board from the upper section, you have a considerably tougher job on your hands, and you're on your own. Also, if you separate the screen from it's circuit board, you will disturb the rubber conductors (there are two) which provide electrical connection to the lcd rows and columns (zebra strips). Upon reassembly of the screen, you may find that you have lost some rows or columns in the display (not permanent, just a zebra strip alignment problem) and will have to keep reassembling and perhaps cleaning until it comes out okay. I haven't done this to my hp (yet) but I have done it to other cheap calculators and it wasn't fun. As to questions about what exactly is inside, I can only guess. David Holmes had some observations, and there are apparently a lot of people out there in netland that know a lot more about the insides already. Reassembly- Putting it back together is much easier. You may need to clean up the remains of the rivet heads so they will easily reinsert into their holes. Make sure the battery connections align with their respective holes, and snap the unit together, applying pressure where the six (or seven, if you left that one near the [.] key alone) hooks are. You will probably want to hold the case together at the top with one or two of the rivets there. If you can find a wood screw with a flat or thin head, you can screw it into the body of the rivet and let the head hold the upper section surface. You may need a small washer for this. A machine screw will probably work as well, but will strip the plastic easier and not hold as well. I have only one screw holding mine together and it works fine. You will probably need to re-shape your tin overlay, as it probably took a beating during removal. I removed the sticky tape from mine, but it's probably better not to (unless it really wont stick anymore). Put wax paper over the tape and put the overlay face down on a hard cover book. Grab a hammer with a smooth and somewhat flat head, and pound away. DONT pound away on the part that surrounds the screen (beveled part). You can probably use your fingers and a little massaging to fix that area. With a little care you can end up with an overlay that looks like new. Press the overlay in place and hope it sticks. If not, a little rubber cement wouldn't hurt. Have fun! Paul Smith v055qmd6@ubvms.cc.buffalo.edu ++++++++++++++++ end forwarded text ++++++++++++++++++ 2) Connecting the RAM chips --------------------------- You have two choices for your configuration: (A) Replace internal RAM by 128K You need one 128K RAM chip. (B) Replace internal RAM by 128K and simulate a chip card in port one by one more 128K chip. You need two 128K RAM chips, a 74HC00 with SMD case and a 1MOhm resistor. I already described configuration (A) in an earlier posting. So if you just want to do that better use the old posting since there is a lot of unneccessary stuff for you in this one. It's not very useful to only add 128K as port memory because the HP48G (at least with my ROM version K) can't merge 32K and 128K. And 32K user memory and 128K port memory is something most people don't need. You have to use static RAM chips organised 128K * 8. I don't know the excact access time needed but 100ns works in my G. HM628128 (HITACHI) for his HP48S, I found a 681000 working. Carl Raffa told me this is the chip that is in his GX so my choice can't be wrong (only differnce: it's in an SMD case in the GX). I think all chips with 128K * 8 have the same pin assignments (but I'm not sure!). You should use low power chips (marked with a L) to extend your battery live. Since some people asked: I paid ca. $25 for one 128K*8 chip in a local store. The mail order price in Germany is about $18. If you have a look on the circuit board you will see a row of pins that connect to the chip card slots of the 48GX. Most pins are connected in the G, too. If the battery case points to you the pins are numbered RIGHT TO LEFT. You can verify that if you know that the pins 2,21,37,38 and 39 are devided for the two card slots. These are the pins. PIN: Signal: PIN: Signal: 1 VCC (only if HP48 is ON) 21 Card enable (active HIGH) 2 RAM Battery measure 22 Output enable (active low) 3 Addr. 0 23 Data 1 4 Addr. 1 24 Data 2 5 Addr. 2 25 Data 3 6 Addr. 3 26 Data 4 7 Addr. 4 27 Data 5 8 Addr. 5 28 Data 6 9 Addr. 6 29 Data 7 10 Addr. 7 30 Data 8 11 Addr. 8 31 ?? 12 Addr. 9 32 ?? 13 Addr. 10 33 ?? 14 Addr. 11 34 ?? 15 Addr. 12 35 ?? 16 Addr. 13 36 ?? 17 Addr. 14 37 Write prot. in (act low) 18 Addr. 15 38 Card present in (act high) 19 Addr. 16 39 Card type (low for RAM) 20 Write enable (active low) 40 Ground Notes: 1. In the G(X) the pins 31 to 36 aren't NC like they are in the S(X) but I don't know their meaning. They are connected to an empty chip place on the board. I assume they are needed to address the larger RAM cards (up to 4MB) and provide additional card enable signals. Carl Raffa told me there is a HC174 in the GX but if you don't plan to connect a RAM expansion box to your 48 or have really small RAM chips you don't need it. The G with ROM version K will not be able to use that at all since the command PINIT is missing in that release (thanks to James H. Cloos, Jr. for that info). 2. Pin 22 leads to a second empty chip place (on the right side above the battery case). Thanks to Carl Raffa I now know that this place has to be filled with an 74HC00 (costs ca. 50 cents) to decode the OE (output enable) pin for simulating a RAM card in the 48G. So according to Note 2 it's your first task to solder in the 74HC00 in that empty place if you choose my configuration (B). The marked pin 1 has to point _away_ from the battery case (validate that pin 7 is connected to ground, then you're right). The RAM and ROM chips point to the battery case! This is the pin layout of the 128K RAM chips: __ __ __ Vcc A15 CE2 WE A13 A8 A9 A11 OE A10 CE1 D8 D7 D6 D5 D4 ____I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I____ I 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 I I I \ I I I / I I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 I I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I NC A16 A14 A12 A7 A6 A5 A4 A3 A2 A1 A0 D1 D2 D3 Gnd And this is for the built in 32K chip. In my G it's labeled M5M5256BFP and is located just above the battery case (the left one of the two chips located there before you inserted the HC00). __ __ __ VCC WE A13 A8 A9 A11 OE A10 CE1 D8 D7 D6 D5 D4 ___I___I___I___I___I___I___I___I___I___I___I___I___I___I____ I 28 27 26 25 24 23 22 21 20 19 18 17 16 15 I I I \ I I I / I I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 I I- -I---I---I---I---I---I---I---I---I---I---I---I---I---I--I A14 A12 A7 A6 A5 A4 A3 A2 A1 A0 D1 D2 D3 Gnd As you can see the layout is nearly the same. Not for the pin numbers but for the pin places if the chips are right assigned. I would recommend to glue the RAM just in the middle of the circuit board with it's upper side down and to bend all pins to the middle. If you want to get configuration B you can solder the first RAM chip just to the second one. Just leave the following pins unconnected: 22 (CE1), 24 (OE) and 30 (CE2). So you end up with a RAM sandwich. These are the connections: 128K 128K card slot 32K chip chip1 chip2 connector (on board) Pin 1 ---- 1 ( NC ) 2 ---- 2 ------- 19 3 ---- 3 ------- 17 4 ---- 4 ------- 15 5 ---- 5 ------- 10 6 ---- 6 -------- 9 7 ---- 7 -------- 8 8 ---- 8 -------- 7 9 ---- 9 -------- 6 10 ---- 10 -------- 5 11 ---- 11-------- 4 12 ---- 12 -------- 3 13 ---- 13 ------- 23 14 ---- 14 ------- 24 15 ---- 15 ------- 25 16 ---- 16 ------- 40 17 ---- 17 ------- 26 18 ---- 18 ------- 27 19 ---- 19 ------- 28 20 ---- 20 ------- 29 21 ---- 21 ------- 30 22 ----------------------------- 20 see Note 1 22 ------- 40 see Note 4 23 ---- 23 ------- 13 24 ----------------------------- 22 24 ------- 22 see Note 4 25 ---- 25 ------- 14 26 ---- 26 ------- 12 27 ---- 27 ------- 11 28 ---- 28 ------- 16 29 ---- 29 ------- 20 30 ----------------------------- 28 30 ------- 21 31 ---- 31 ------- 18 32 -----32 -------------------+- 28 I +++ I I 1 M Ohm I I +++ I 2 -------+ (simulate card battery since the 48 measures this) 1 ----+ | 37 ----+ (set write protect to VCC => not write | protected) 38 ----+ (set "card present") 40 ----+ | 39 ----+ (set card type to "RAM") Note 1: Pin 20 of the 32K RAM has to be connected to VCC to disable that chip. So you have to desolder it. Use a small needle to bend that pin up a little while heating it. Connect it to pin 28 of the same chip. Now pin 22 of the 128K RAM chip 1 can be connected to the place pin 20 of the 32K was connected before. I hope someone can understand that description. ;-) Note 2: Output enable (pin 24) of chip 1 is connected to the corresponding pin of the 32K RAM. Note 3: Pin 1 of the card slot connector is switched by the power of the HP so you can't use it to supply the RAM chips (the RAM cards that normally are connected there have their own backup batteries). To keep the contents of the RAM chips pin 32 (VCC) has to be connected to pin 28 of the internal RAM that is always connected to the battery. Note 4: Chip 2 (the optional chip for simulating the RAM card in slot 1) is connected to some pins of the card connector where chip 1 is connected to the internal RAM chip. The pins 2,21,37,38 and 39 of the card connector are devided for the two card slots. For all those pins you have to use only the part of that pins that has more distance from the battery case. This is the part for card slot 1. If you want to try to expand your 48 even more you can use a third chip and connect it like the second one except for that pins (you guess: you have to connect them to the part of the pins pointing to the battery case. Yes, you're right). The second part of the pins 2, 37, 38 and 39 has to be connected like the first part. I never tried to use port 2 so it's up to you to verify this! General note: Thijs Kaper (tka@dasc.nl) gave the recommendation that you can swap the address lines if you want. So you can swap all from A0 to A16 as you want to keep the wires short. For example swap A0 and A3. You can do the same with the data lines. The HP won't mind if D2 is connected to D7 at the RAM chip if all address lines end up at address pins and all data lines end up at data pins. I didn't do it but if it helps you... [ I did use this swapping on the PCB... Thijs. ] I think this all has to sound confusing. But take some time to understand it. If you know a little about computer logic and addressing it's really easy. You have to cut some of the shielding metal in the case of the HP to get space for the new chip(s). The metal at the battery case has to be connected to the rest of it (for the beep and the reset button to work). Use some cable to reconnect it if necessary. Be sure to isolate everything. I glued some paper to the back side of the RAM chips to keep it away from the shielding. A little sheet of paper between pin 20 of the 32K and it's former connection keeps these pins apart. 3) Closing the HP ----------------- This is covered in the text by Paul Smith I included above. Pay attention to the "plus" battery connector: it has to snap back into its place or you will get a nice shortcut! 4) Testing ---------- Turn on the HP. If it asks "revover memory" answer with no. If it doesn't ask use ON-A-F to force it since it won't recognize the 128K otherwise. Press MEMORY NXT SIZE and have a look at that nice number. Use ON-D to enter test mode. Press EEX and wait for "IRAM OK 128K". Press ON-C to leave test mode. If you did configuration (B): either store something to port 1 or merge port 1 to get a total of 256K user memory. If you don't merge port one that memory will even survive a ON-A-F without memory recovering (like a RAM card would, too). So it's nice to use it as backup memory if you do sysrpl or assembler programming. Maybe you can even insert a switch to write protect it. The time you have to exchange batteries will now be less than before since there is only a electrolyte condensator (is this the right name?) that supplies the RAM when the batteries are out. I didn't test the maximum time but it's enough time to exchange batteries. My G has to supply 3 RAM chips now since the 32K is disabled but it's still powered. Please be aware of the ROM version L bug (that should be in the K, too) about loosing memory when the clock is in the display. Read about that in the FAQ! My next idea is to reenable the 32K as port 2 memory. I will try it in some days. If you're daring you can try that if you should decide to expand your G before. This way that chip isn't useless. Maybe I should think about adding a hard disk after that... no, just kidding. IMPORTANT: ========== I don't know if this works for anyone except me. I don't give any warranty on this text. It's your risk. You will at least loose your warranty, maybe you loose your HP. I expanded my HP on 05/28/94 to 128K and today (06/07/94) to 256K. If you want to wait for a long time test feel free to mail me in a month or so. Wait at least some days until some people have read this text and thought about it. Try to understand the reason for the wiring I used and validate it before you try to expand yout G. I would be happy if I get some mail about this posting. The mail I got the last time was really nice. Greetings, Thomas -- Thomas Otten otti@megatel.de (NeXTmail welcome) megatel GmbH * Wiener Str. 3 * 28359 Bremen * Germany Voice: ++49-421-22095-0 FAX:++49-421-22095-16 ------------------------End of included Posting------------------------------- And here's the posting about the solved "problem".... ------------------------------------------------------------------------------ Newsgroups: comp.sys.hp48 From: otti@megatel.de (Thomas Otten) Subject: Experiences with memory expansion Date: Mon, 12 Sep 94 09:58:04 GMT Lines: 29 Richard Cox asked me about experiences with the memory expansion for the HP48G I posted some months ago. Since his replay address bounces (sorry Richard) and this may be interesting for some of you I'm posting it "to the world": The memory expansion of my 48G works quite well. I just had one problem: I lost memory twice after the HP stayed turned off for some days. I think this is caused by my use of rechargeable batteries since they don't have as much current as normal batteries (HP warns about using them but I don't like spending much money for batteries). The solution that works for me is rather simple: I entered a timer repeating once a day executing simply a "off" statement. This seems to be sufficient to refresh the ram. The HP has a device that transforms the battery power to 5V (and some other currents for the LCD...) no matter how low the batteries are. This device doesn't work when the HP is turned off so the memory just gets what the batteries deliver. Maybe my new ram chips work near their current limits when powered by rechargeables. This way the 48 surviced my four week vacation without harm to the memory. I never had any problems ever after. I can't guarantee what I describe was really the problem but since my workaround works... Does anybody who tried the expansion use rechargeable batteries, too? -- Thomas Otten otti@megatel.de (NeXTmail welcome) megatel GmbH * Wiener Str. 3 * 28359 Bremen * Germany Voice: ++49-421-22095-0 FAX:++49-421-22095-16 ------------------------End of included Posting-------------------------------