Hi, all:
Summary: I've soldered a CF socket, bridged some resistors network on the back, and got it working. Appears as secondary master (or slave, configurable), or hdc for linuxers.
Long story and details.
Finally I took my Webplayer out of the "projects" drawer and started to work on it. First I upgraded memory to 128MB. I've read here that not all PC100/PC133 SDRAM modules will work, so I must be lucky because the first one I tried worked. It's an standard 128MB PC133 SDRAM we use at work for PC104 embedded controllers. One of them will ship out with 64MB instead of 128MB
(note: for the software they're running, even 16MB would do).
Secondly, I wanted to use a CF. Works like an HD and can be connected to another computer without rebooting (using one of those USB readers, for example). Speeds up development/updates quite a lot, besides the fact they're much easier and cheaper to get than DOCs, and I needed more space.
I've read that just soldering a CF socket won't work, but I'm quite stubborn, so I did. Right, it didn't work. I checked all data I had about CFs used as hard disks, and found that no special circuits are needed. The connections are straightforward, so, why didn't it work.
I began to trace the CF socket traces and discovered:
1- R206 (component side, by the HD connector and one of the two inductances) is not mounted. It is connected to the CF pin that selected between master/slave. Slave when open, master when shorted. I shorted it simply with some solder.
2- Many of the pins of the CF connect to three missing network arrays on the solder side, just below the CF socket: RN11, RN13 and RN14.
3- The other pin of each resistor in the arrays connect to the HD connector throughr one of the resistors of the arrays that are mounted.
4- The mounted resistor arrays are 33 and 47 ohms. Such a low value is commonly used to limit current flow from/to pins in connectors in case something goes wrong (misinsertion, for example), and avoid frying the electronics. They are also used sometimes to match impedance and improve signal quality in buses. Anyway, the value is NOT critical and can be substituted by a 0 ohm resistor, i.e. a bridge.
From (3) and (4) I though that the HD and the CF share a IDE bus, so each line coming from the controller is connected through two protection resistors to each device. The CF resistor arrays are missing.
I dedided to give it a try. I shorted R206 with a drop of solder (to make the CF master), and shorted each two opposed pads of RN11, RN13 and RN14. And voila!, the CF boots.
Now a very important issue: the resistor network pads cannot be shorted with a drop of solder as R206, you need a little piece of wire (I used wirewrapping wire, applying some solder to it, leaning it in the pad and then touching it with the iron. Soldering paste will help). RN13 is bigger, but RN11 and RN14 are TINY. No, really. They are DAMN TINY. It took me like 1.5 hours to solder all 20 wires, and I have excellent soldering skills. Definitely, if you are able to do the job, you're physically qualified for brain surgery.
If you try to do it, remember to check all connections for continuity and shortcircuits with neightbours before powering the webplayer. Checking is fortunately quite easy, as you can use near vias and test points instead of the wires you just soldered. No, you cannot use the vias and test points to do the bridges, because you cannot solder on the vias without first removing the green mask, which is very dangerous, you can easily damage the via metalization. And the test points are only available on one side of the resistor network.
Oh, and I forgot two othe possibilities:
1- You can get the three network resistors from somewhere. Congratulations. Do use them instead of the wires hack.
2- You can remove and use the network resistors from the HD connector. Do not do it unless you are absolutely sure you'll no longer need the HD connector, because you'll make it unusable.
That's it. Enjoy.
P.S: One of the CFs I have lying around and have tested makes the linux kernel spit out a lot of IDE I/O errors. The other five CFs work perfectly, including a 256MB one wich boots a stripped down version of Knoppix!!!. The failing card is the only 16MB one I have, and god knows what's inside. All I remember is that it's an embedded linux version I prepared some time ago, and might be corrupted. I've though also the possibility that the card is 5V and the webplayer provides 3.3V. Don't know, and don't want to dissasemble it again now. Can somoeone please point out what's the CF VCC ?. Thankx.