Sorry for the long post, I guess I just got carried away when I started typing!!
After reading the catfish post "Dremel vs. Sandisk Controller..." (thanks for the inspiration catfish!!) and looking at the specs posted for the sandisk at:
http://www6.ewebcity.com/iopener/ (great site, thanks to whomever set it up!!)
I decided to try disabling the sandisk controller to allow both a CDROM and hard drive, and to prevent QNX from accidentally booting and phoning home. Based on the limited information in the SanDisk spec. (I sure wish they had a more detailed spec available on their site!) I decided (after consulting with another engineer here at work) to try holding reset low to disable the controller. This seemed to be the approach which was the most likely to be successful, and least likely to cause any damage or interfere with the rest of the IO. Normally when a chip is held in reset, the outputs are floating (if they can be), and it doesn't try to do anything.
After performing the operation described below, I get a disk boot failure if I try booting from the sandisk!! The bios will still sometimes report that the sandisk was detected, although I don't know if this is because it can still see it, or if the bios is trying to "force" the sandisk to be recognized.
I am able to detect my hard drive as either a master or a slave, but can only detect the CDROM as a master. I have a Hitachi DK224A14 1.44G hard drive, and a generic 40X ATAPI CDROM. If I leave the hard drive as a slave, it will boot whether or not the CDROM is connected as the master, and will recognize the CDROM when it is connected. Since I tried this I have found some posts that suggest that this master/slave detection is "normal", even with the sandisk enabled. If someone could direct me to some posts which deal with this, I would appreciate it. I tried searching, but didn't really find anything conclusive.
I am hoping that this will help some people who have had problems detecting both a hard drive & CDROM. Please post your results if you try this. I'm curious as to how well this works for others.
Here are the gory details:
You could end up with a $99 door stop!
Your sandisk controller could overheat and start your house on fire!!
Aliens may come and take your IO away!!
*** End legal disclaimers!! ***
I'm sorry I don't have a digital camera, or other means to easily get a picture to post, so I will try to describe things in enough detail. If I get ambitious, I might try my polaroid and scanner this weekend, but I'm not sure how well it focuses at close distances.
I have a version 3 IO with a re-flashed 10-01? BIOS (not sure of the date, but I used the i-opener_bios_old.bin file.) I flashed the bios in a programmer at work.
The reset pin is pin 36 of the controller, which is the TQFP chip of the 2 chip set. This is the chip with pins on all 4 sides, next to the IDE connector. The corner pin numbers of the chip are labeled on the motherboard. They count up going counter-clockwise around the chip. Look at page 2 of the spec posted at the site mentioned above for a graphic showing the arrangement of the pins.
Since this reset signal is tied to many locations on the motherboard, one cannot simply connect it to ground. This would result in the entire i-opener being continually stuck in reset, and you wouldn't get very far!!!!! Therefore I had to unsolder the pin and lift it up, away from the pad on the circuit board. I used my 25W Weller pencil soldering iron, which was really too big for this job, but is all I have. I hooked a test clip behind the pin, and heated the solder joint with the iron while gently pulling on the pin. (While doing this, I managed to create a solder bridge between 2 other adjacent pins, and used some solder wick to remove it.) The pins on this chip are very small so be very careful not to over-bend it or it might break off, and you'll have a very hard time connecting anything to it!!!
I used a 10K resistor as a pull-down. I placed the body of the resistor on the processor side of the chip, parallel to the IDE connector with one of the leads laying on top of the chip. For the ground side of the resistor I soldered the end to a square pad on the circuit board with a screw through it. This pad is located towards the processor from the controller chip. After the resistor was "anchored" to the board with this solder joint, I formed the lead at a 90 degreee angle on top of the chip so that it was perpendicular to the side of the chip with the reset pin and directly above the pin. I cut the lead so that the end was just above the reset pin. I then soldered the end to the reset pin. (It is a good idea to "wet" the end of the resistor before trying to solder it to the reset pin.)
I did not experiment with different resistor values, but with the 10k, the voltage read 0.00 on my DMM, so anything between 0 and 1M would probably work. BTW, I verified that the reset is active low by measuring the voltage at this pin. While running, the voltage is 5V, and if I press the reset switch, located next to the parallel port connector, the voltage goes to 0V. I used a resistor as opposed to just a jumper wire because sometimes a chip will drive the reset pin as well as use it as an input. I doubt that this is true in this case, but I didn't want to take a chance of burning out the chip. I may want to use it sometime in the future.
After all this I tried connecting my hard drive and CDROM. I placed a standard 40 pin ribbon cable receptacle (male pins) with IDC terminals on my 2.5" hard drive cable, about 1" from the hard drive. With the cable split into 2 conductor strips, it was easy to align the wires with the 40 pin receptacle, and use my bench vise to seat the connection. I oriented the connector so it points toward the back of the i-opener, and I think I will cut an opening in the back of the IO so that I can connect another IDE device without opening it up.
As an aside, and no offense to catfish (who gave me the inspiration to try this) I am very concerned about using something like a dremel to cut off the controller. The dremel grinds the pins into fine metalic power, and sprays it all over the inside or your IO. This obviously could cause reliability problems!! If I were going to use a dremel I would try to mask off the rest of the IO to prevent getting metalic dust where I didn't want it. Another thought is to use a side cutter to cut off the pins, and then unsolder the part that was left stuck to the pads. This would be more difficult due to the extremely small size of these pins, but I think it is much safer.