Newsgroups: comp.sys.hp48 Subject: Ram upgrade for HP48SX - How to do it Date: Mon, 22 May 1995 13:57:02 +0200 Organization: EPFL - Swiss Polytechnical School Ram upgrade for HP48SX - Compatibility with ram card (2nd version) ---------------------------------------------------- **************************INTRODUCTION********************************* I have a HP48SX. Because I wanted to learn system-RPL, I got some documentation on HPCVBBS. I found there the RPL library from Detlef Mueller (very nice library!). Unfortunately it needed about 60K, and my hp48SX had only 32K... So I bought a 128k Ram Card. Some time later, my hp was shouting: "OUT OF MEMORY" (arghh...) I could have buy another card, but 250$ seemed too much for me for a 30$ ram chip! I got the file 48gs256.zip (from hpcvbbs.external.hp.com) describing how to upgrade a hp48 S or G (not X) to 256K, and my solder iron! (Furthermore, the warranty was off, but that's an other story...) ****************************PROBLEMS*********************************** The documentation describes how to upgrade an HP48 S or G but not an SX or GX. In fact, because there's no external connector inside the S or G, you have plenty of room to add a small pcb and some wires to the needed signals. What I wanted to do, was to being able to use my two ports as if nothing was changed inside, or emulating a ram card in port2 when nothing was plugged in! I've only be able to add 128K of the 256 I first planned because of some problems I'll explain later... (GX OWNER: please read the section "Why only 128k" too!!) ************************SOLUTION (summary)***************************** WARNING: It was a painful solder job! Because of the lack of room inside a SX, I needed to use a SMD ram chip (128k x 8 bits static). It's not easy to find, but you should look around... I soldered this chip above the internal 32k ram, and add some wires to the needed signals. If you don't want to use any more the 2nd port, you can stop here. But if you want to still being able to use the port, you have to add a 2nd chip: I used a 74HC244 (2x 4bits driver/tristate) to separate completely the connector from the signals I was using to make the extension work. A dip switch glued under one rubber foot lets me disable or write protect the memory. **************************HOW TO DO IT********************************* ================================================================= || 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 || || warranty, if you had any left...... || ================================================================= You should also read the documentation (upgrade.txt) coming in the file 48gs256k.zip located at HPCVBBS.EXTERNAL.HP.COM\dist\hp48g\doc, almost for being able to open your HP nicely... I'll quote some illustrations from this file (many thanks for the authors, great job!). You are also pleased to read this entire documentation before doing anything. Try to understand what I'm doing and why. 1) SOLDERING OF THE 128K SMD RAM CHIP This is what --!!!!---OO---- Serial connector-IR I found when | | opening my | XX XXXXX XX | ?? Processor(?) ?? hp48SX | XX XXXXX XX | (Screen facing | XXXXX | down) | | | | | | | ############# | Expansion connectors | ############# | (port2 upside) | ############# | | !!!!!!!!!!!!! | small wires from port1&2 | | | XX XXX CC | RAM32k ROM(256k?) | C XX XXX CC | Condensator | C XX | Condensator |---------------| | | | | Battery Case | | --------------- You can locate the ram chip: it's a 24 pin SMD ram chip (SO package). (Just for fun: the rom chip is a SMD PLCC package!) And here's the worst part of soldering.... For a !#?*!??#!? reason, the 28 pin SMD of the 128k is a _little bit_ wider than the 24 pin SMD of the internal 32k... You can't solder directly the new ram over the old one!!! To get it work, I've soldered 22 tiny pieces of wires on the old ram chip, so I could solder the 128k over it! 128K __--------------__ _| -------------- |_ __ __ wire | | | __----------__ | 32K _| ---------- |_ Hopefully, I'm not a depressive guy! You should use a solder tip of less than 2mm (2/25 = .079 inch) wide. WATCH OUT: SOME PINS SHOULD NOT BE CONNECTED. PLEASE READ NEXT PARAGRAPH Place the 128K ram so that pin16 (Gnd) is above pin14 of the 32k ram. Pins' 1,2,31 & 32 are not above a pin. They will be connected with wires. You should NOT connect pins 20 and 28 of the 32k ram to the 128k. We need to feed the 128k chip with A15, A16 and +Vcc. You should find +Vcc on pin 28 of the 32k ram, or to the positive leg of the big black condensator (down right, OK...). Connect +Vcc to pin 32 of the 128k ram. The others' signals should be taken from the extension connector; Here's the pinout: 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 48SX. 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. So you have to connect pin 2 of the 128k ram chip to pin 19 of the connector and pin 31 of the ram to pin 18 of the connector. 2) CONNECTION OF THE LAST NEEDED SIGNALS - USE OF THE 74HC244 We need now to take the signals needed by the ram to know when it should be activated: pin 30 of the 128k ram chip (CE2) can be connected to the pin 21 of the connector. /CE1 (pin22 ram chip) should be pulled down (GND) to enable the ram. The HP needs some signals to know that there's a ram card present: pin 37&39 of the connector should be pulled down pin 38 " " " " " " high (+Vcc, on the black condo) pin 2 should be connected to +Vcc trough a 1Mohm resistance. I've chosen to use the port 2 connector, because it's easier to solder on it!! Please read the section "Why only 128k!". You have two choices: - You don't want to use the port2 anymore (Why have you bought an SX ?) ---> Just do the described connections, it works. But please, NEVER NEVER NEVER plug anything in the port2. - You want to still being able to use the port2 (when the internal 128k ram is disabled) ---> Ok, I'll explain... We need the 74HC244 (2x 4bits driver-tristate). Here's the pin layout: +Vcc /2G 1Y1 2A4 1Y2 2A3 1Y3 2A2 1Y4 2A1 ___I___I___I___I___I___I___I___I___I___I____ I 20 19 18 17 16 15 14 13 12 11 I I | | | | | | | | I \ / / / / / / / / I I / / / / / / / / I / | | | | | | | | I I 1 2 3 4 5 6 7 8 9 10 I I---I---I---I---I---I---I---I---I---I---I---I /1G 1A1 2Y4 1A2 2Y3 1A3 2Y2 1A4 2Y1 Gnd xAi : Input (Schmidt-Trigger) i=1..4 x=1..2 xYi : Output /Gx : Select (low: drive (active) high: high impedance output) ex: when /1G is pulled down, the levels on pin 1A1 to 1A4 are transmitted to pin 1Y1 to 1Y4. when /2G is pulled high, 2Y1 to 2Y4 present a high impedance: it's as if these output pins were disconnected. We will use a small dip switch (I used a 4 dip switches, and glued it under a rubber foot after making a hole in the box). I've used only two switches: One for the Enable/Disable function, and another one for the write protect function. Here's the schematic: HP connector 74HC244 DIP ___+Vcc Card present _ | 38--------1Y1| |1A1----+ |_| ! +Vcc___ /Write prot _ ______ | 37--------1Y2| |1A2----+--|______|--+ |_| | 10Kohm \ ! +--------------------o \o---+ /Ram _ | 39--------1Y3| |1A3----+ ===Gnd |_| | ! ===Gnd ! Volt. Sense ! ___+Vcc _____ _ | 2---|_____|-1Y4| |1A4----+ ___+Vcc 1Mohm |_| \ | !/1G +-------------------o \o---+ ! | ______ +--------+--|______|--+ | 10Kohm | | ===Gnd | +---------------------------> To pin 22 of the 128k ram chip (/CE1) Don't forget to connect +Vcc to the pin 20 of the 74HC244 and Gnd to pin 10. You should also connect +Vcc to /2G (to avoid oscillations). You can find +Vcc and Gnd on the big black condensator on the right. Look at what is written on the body of the condo to find where is Gnd. You can also check it by testing the contact between pin 40 of the connector and the suspected leg of the condo. The switches are normally open: The ram is enabled and not write protected. In this state, there's no current drain. When changing the position of the dip, there will be 0.5 mA flowing... I don't know if it's too much, neither if a resistor bigger than 10K will work... If you know something, please send me a message! I've soldered the wires and resistors directly on the chip. It's ugly but it works (and you don't have to show it to everybody...). Vladimir Mier-Jedrzejowicz tells me we could also use two reed-switch: These switches close when you approach a magnet near the switch. This could be useful if you don't want to make holes in the case of the hp. (Trick taken from his book about the HP28) 3) YOU HAVE DONE IT! Bravo! You manage to do it in less than a day! Of course you have double checked all the connections. You are sure that you have got the good chips (the ram 128k x 8bits static and the 74HC244). Look at the good orientation of the ram (check for Gnd and +Vcc). Are you sure you haven't made some soldering bridge? I've wrapped all the chips with rubber tape (?) to isolate them from any metallic contact. If all is OK, you can close the hp. Put the battery back (watch out of the positive contact), and turn the hp on! You should get the message "INVALID CARD DATA". It's OK. Try to use the port2 (store something in it). It should work (at least, mine works...). You can perform a ram test: press ON and D, (get the beep and the vertical line) then the up arrow key (k). You should see "RAM2 128K". Wait 8 seconds: it should write now "RAM2 OK 128K" and beep. If it does not work, sorry, but you are on your own... *********************** WHY ONLY 128K ? ******************************* GX OWNER, PLEASE READ THIS At first, I was wondering about 2x 128k ram internal, plus sometimes an external ram or application card... When I opened my SX, I saw the connectors: 40 very small wires connecting the printed circuit board to the connector itself. ___________ ___| port 2 | / |___________|__ view from the side / __| port 1 | _____/__/__|______________|________ PCB And that's the problem: you need some signals from this connector. You can easily get the signals from port2 (you can solder wires on the small wires), but you can't access port1's wires... The only way to do it, is to desolder port2's wires, bend them up so you can 'try' to access port1 signal and solder wires on it. Then you should solder port2's wires back... I said I wasn't a depressive guy, but ... remember: there is 40 pins on about 5 cm (2 inch)! If you have a small solder iron, you should be able to do it (mine was too big). And here's the GX problem: I've really no idea what signals should be used on port2 (pin 31-36). I think we have to use these pins, because they are used for the bank switching option (for BIG ram card). The other way is to use port1 to do the upgrade. But then, you have just read what problems it generates! *****************************EPILOGUE********************************** One more time: ================================================================= || 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 || || warranty, if you had any left...... || ================================================================= I think I've all explained. If something is unclear or missing, please feel free to mail me. Please send me a message too if you have any comments or if you have successfully done the upgrade. Please excuse my poor English, but it's not my mother tongue... Have a nice day! Stephane Grundschober grundsch_at_eurecom.fr Swiss Polytechnical School Lausanne i