Subject: 256K or more memory for the G ! Here's how. 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 ) HP48S 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 mailed me for my first posting 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 memoory (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. PD431000A-70L (NEC) or 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 unsolder (what is the right word for that?) 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! I'll try to connect the disabled 32K chip there in some days. General note: Thijs Kaper (thijs@stack.urc.tue.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 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 way it' wired 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 and I enjoyed it. Greetings, Thomas