2005-10-12, 06:19 PM
(Thread http://forums.nextpvr.com/showthread.php?t=5588 continued.)
Hi folks,
after several hours of working and testing, I am now glad to inform you that I finally have a system for my "Mr. Data" that
. can be waked from hibernate via the hauppauge remote
. has an incredible sexy LED status monitor.
Both facilities are done by /one/ little hardware thingy that I would like to describe. Anybody could perhaps be interested in ;-)
So here we go:
** First I decribe the part for wake-up: my intention was not to open the computer's case (which usually has to be done to get some power from the +5VSB-line and/or to initiiate the wake-up via a bypass of the normal power button or a special "ATX" jumper). So I looked around at the rear part of my case and there I found:
- The PS2-port for the keyboard. When "Enable wake-up via keyboard" is enabled in the BIOS menu (and on my mainboard, there is also a Jumper that has to be set correctly) the keyboard can be used to wake the machine from hibernate. This means that there is some power at this port for sure (to supply the keyboard), even when the machine is in hibernate and the "normal" power is off. Otherwise it would not be possible to wake the machine by pressing a special key on the keyboard. I decided to put an adapter to the PS2-cable from the keyboard. This adapter has one female PS2-jack (where the keyboard can be connected to) and a male PS2-plug that is connected to the PS2-connector at the rear side of my computer. The female jack and the male plug are connected to each other via a short cable. This cable transports "GND", "+5VSB" (jepee!) as well as two lines for transmitting data from the keyboard to the computer. So I only had to connect two wires to "GND" and "+5VSB" and bring it to my hardware thingy. Voila!
- The 9-pin RS232-port. If the BIOS option "Wake on Ring" is enabled, the computer can be started via the pin no. 9 of this port. During stone age, this feature was intended to be used by modems. An incoming call should wake the computer in order for it to receive a fax or record a voice message on the answering machine. I decided to use this feature for my thingy, because there is no modem connected to my "Mr. Data" ;-) I found out that for starting the machine the signal on pin no. 9 has to change from -9V to +9V (which has the same meaning like the change from logic "H" to logic "L"). My mainboard immedeately initiates the power-up if this voltage change at pin no. 9 is done.
Now we have all we need for the little thingy to have power (always) and an indicator that the user wants to start the machine. Of course the original IR sensor (that is connected to the PVR150) cannot be used, because like most parts of the computer, the PVR150 has no power during hibernate.
We need an extra IR sensor that is connected to a microcontroller. This microcontoller is power-supplied by the PS2 port. The simple programm running on this microcontroller is checking all the time if the green power button of the hauppage's remote control was pressed. If so, the controller generates a short logic "L" pulse on one of its outputs. After a RS232 level converter (that does the conversion to +/-9V), this signal reaches pin no. 9 of my RS232-port and the machine wakes up from hibernate. Great!
** That's it! Now to the 2nd feature - the LED status monitor:
Betlit wrote a program (ParaLED.exe, see thread http://forums.nextpvr.com/showthread.php?t=5588) that runs on my computer. It checks if the frontend is running, if either of the capture sources is recording and - very important - if the hard disk is nearly full. It uses the 8 pins of the parallel port to show this information. At the moment I use only 4 pins:
- frontend running
- source 1 recording
- source 2 recording
- disk full
All of these signals could be connected direcly to LEDs that indicate the status of the computer (betlit explains this in the readme file). But, as the microcontroller still had some unused pins, I decided to bring these signals to the inputs of the microcontroller. My intention was to let a LED blink slowly during power-up, light it up continously when the frontend is running and let it blink fast when the machine prepares to hibernate. Without a microcontroller, this would not be possible. The LED would either light up (if the frontend is running) or be dark (if its not running).
To differ between the cases:
- machine has no power (LED is dark)
- machine powers up (LED blinks slowly)
- frontend is running (LED lights up)
- machine prepares to hibernate (LED blinks fast)
we need still one kind of information: does the machine have power or not?
Please remember: the microcontroller does not know that by now, b/c it always gets power through the PS2-port, even if the computer itself has no power.
Fortunately, there is another signal at the RS232-port that has shows this: pin no. 7 (which seems to be some handshake signal); it has 0V if the machine hibernates and -9V otherwise.
So the 4 cases shown above can be seen as follows:
pin no. 7: 0V --> machine has no power
pin no. 7: -9V, but no "frontend running"-signal from parallel port --> machine powers up
pin no. 7: -9V AND "frontend running"-signal: OK, lets use the computer
pin no. 7: -9V, but no "frontend tunning"-signal ANYMORE --> machine prepares to hibernate
(Please have a look on the small difference between case 2 and case 4: -9V and no "frontend" means either: machine powers up OR machine prepares to hibernate! The difference "ANYMORE" can be seen only if we determine the status before - and that's what we need the microcontroller for.)
All other signals from the parallel port (source 1/2 recording, disk full) can be connected to 3 LEDs directly but then they start to flash when betlit's programm starts to work (which usually is /before/ the frontend is running). So I connected these 3 signals to 3 inputs of the controller as well and connected the 3 LEDs to 3 outputs. The program running on the controller checks the input signals all the time and gives power to the LEDs accordingly, but only if the frontend is running. So during power up or power down, no other LEDs light up.
Last but not least I use an extra LED to show if any button on the hauppauge remote was pressed, you know, the good old "IR receive indicator" ;-) Every time a button is pressed, it flashes for a very short time.
The colour code of my 5 LEDs (developed together with my wife to increase the W.A.F) is:
blue1: power status
blue2: IR receive incicator
red: disk full
green1: capture source 1 recording
green2: capture source 2 recording
Together with the microcontroller, the original hauppauge IR sensor and the "new" IR sensor, I put these 5 LEDs inside the case of a very old VCR. From this VCR, three cables lead to some plugs that are connected to the computer. The computer's case has not to be opened, nor is there any need for holes in the case. We get all we need at the normal interface jacks at the rear side: power from the PS2-port, betlit's info at the parallel port, and "power on"-info from the RS232-port (pin no. 7). The only signal that goes TO the computer is the wake-up-signal on pin no. 9 of the RS232-port.
Finally I connected the original "power/stand-by" button on the front side of the VCR's case to the last remaining input of the microcontroller, giving me the possibility to power on the PC via this button.
For better imagination, I enclose a drawing that shows the principle and some pix.
Greetings, Alex
Hi folks,
after several hours of working and testing, I am now glad to inform you that I finally have a system for my "Mr. Data" that
. can be waked from hibernate via the hauppauge remote
. has an incredible sexy LED status monitor.
Both facilities are done by /one/ little hardware thingy that I would like to describe. Anybody could perhaps be interested in ;-)
So here we go:
** First I decribe the part for wake-up: my intention was not to open the computer's case (which usually has to be done to get some power from the +5VSB-line and/or to initiiate the wake-up via a bypass of the normal power button or a special "ATX" jumper). So I looked around at the rear part of my case and there I found:
- The PS2-port for the keyboard. When "Enable wake-up via keyboard" is enabled in the BIOS menu (and on my mainboard, there is also a Jumper that has to be set correctly) the keyboard can be used to wake the machine from hibernate. This means that there is some power at this port for sure (to supply the keyboard), even when the machine is in hibernate and the "normal" power is off. Otherwise it would not be possible to wake the machine by pressing a special key on the keyboard. I decided to put an adapter to the PS2-cable from the keyboard. This adapter has one female PS2-jack (where the keyboard can be connected to) and a male PS2-plug that is connected to the PS2-connector at the rear side of my computer. The female jack and the male plug are connected to each other via a short cable. This cable transports "GND", "+5VSB" (jepee!) as well as two lines for transmitting data from the keyboard to the computer. So I only had to connect two wires to "GND" and "+5VSB" and bring it to my hardware thingy. Voila!
- The 9-pin RS232-port. If the BIOS option "Wake on Ring" is enabled, the computer can be started via the pin no. 9 of this port. During stone age, this feature was intended to be used by modems. An incoming call should wake the computer in order for it to receive a fax or record a voice message on the answering machine. I decided to use this feature for my thingy, because there is no modem connected to my "Mr. Data" ;-) I found out that for starting the machine the signal on pin no. 9 has to change from -9V to +9V (which has the same meaning like the change from logic "H" to logic "L"). My mainboard immedeately initiates the power-up if this voltage change at pin no. 9 is done.
Now we have all we need for the little thingy to have power (always) and an indicator that the user wants to start the machine. Of course the original IR sensor (that is connected to the PVR150) cannot be used, because like most parts of the computer, the PVR150 has no power during hibernate.
We need an extra IR sensor that is connected to a microcontroller. This microcontoller is power-supplied by the PS2 port. The simple programm running on this microcontroller is checking all the time if the green power button of the hauppage's remote control was pressed. If so, the controller generates a short logic "L" pulse on one of its outputs. After a RS232 level converter (that does the conversion to +/-9V), this signal reaches pin no. 9 of my RS232-port and the machine wakes up from hibernate. Great!
** That's it! Now to the 2nd feature - the LED status monitor:
Betlit wrote a program (ParaLED.exe, see thread http://forums.nextpvr.com/showthread.php?t=5588) that runs on my computer. It checks if the frontend is running, if either of the capture sources is recording and - very important - if the hard disk is nearly full. It uses the 8 pins of the parallel port to show this information. At the moment I use only 4 pins:
- frontend running
- source 1 recording
- source 2 recording
- disk full
All of these signals could be connected direcly to LEDs that indicate the status of the computer (betlit explains this in the readme file). But, as the microcontroller still had some unused pins, I decided to bring these signals to the inputs of the microcontroller. My intention was to let a LED blink slowly during power-up, light it up continously when the frontend is running and let it blink fast when the machine prepares to hibernate. Without a microcontroller, this would not be possible. The LED would either light up (if the frontend is running) or be dark (if its not running).
To differ between the cases:
- machine has no power (LED is dark)
- machine powers up (LED blinks slowly)
- frontend is running (LED lights up)
- machine prepares to hibernate (LED blinks fast)
we need still one kind of information: does the machine have power or not?
Please remember: the microcontroller does not know that by now, b/c it always gets power through the PS2-port, even if the computer itself has no power.
Fortunately, there is another signal at the RS232-port that has shows this: pin no. 7 (which seems to be some handshake signal); it has 0V if the machine hibernates and -9V otherwise.
So the 4 cases shown above can be seen as follows:
pin no. 7: 0V --> machine has no power
pin no. 7: -9V, but no "frontend running"-signal from parallel port --> machine powers up
pin no. 7: -9V AND "frontend running"-signal: OK, lets use the computer
pin no. 7: -9V, but no "frontend tunning"-signal ANYMORE --> machine prepares to hibernate
(Please have a look on the small difference between case 2 and case 4: -9V and no "frontend" means either: machine powers up OR machine prepares to hibernate! The difference "ANYMORE" can be seen only if we determine the status before - and that's what we need the microcontroller for.)
All other signals from the parallel port (source 1/2 recording, disk full) can be connected to 3 LEDs directly but then they start to flash when betlit's programm starts to work (which usually is /before/ the frontend is running). So I connected these 3 signals to 3 inputs of the controller as well and connected the 3 LEDs to 3 outputs. The program running on the controller checks the input signals all the time and gives power to the LEDs accordingly, but only if the frontend is running. So during power up or power down, no other LEDs light up.
Last but not least I use an extra LED to show if any button on the hauppauge remote was pressed, you know, the good old "IR receive indicator" ;-) Every time a button is pressed, it flashes for a very short time.
The colour code of my 5 LEDs (developed together with my wife to increase the W.A.F) is:
blue1: power status
blue2: IR receive incicator
red: disk full
green1: capture source 1 recording
green2: capture source 2 recording
Together with the microcontroller, the original hauppauge IR sensor and the "new" IR sensor, I put these 5 LEDs inside the case of a very old VCR. From this VCR, three cables lead to some plugs that are connected to the computer. The computer's case has not to be opened, nor is there any need for holes in the case. We get all we need at the normal interface jacks at the rear side: power from the PS2-port, betlit's info at the parallel port, and "power on"-info from the RS232-port (pin no. 7). The only signal that goes TO the computer is the wake-up-signal on pin no. 9 of the RS232-port.
Finally I connected the original "power/stand-by" button on the front side of the VCR's case to the last remaining input of the microcontroller, giving me the possibility to power on the PC via this button.
For better imagination, I enclose a drawing that shows the principle and some pix.
Greetings, Alex
[SIZE="1"]AOpen i855GMEm-LFS, Celeron M 360, 512 MB DDR-333, 1xSamsung 160GB IDE HDD (System+Archive), 1xSeagate 500 GB IDE HDD (Data), LiteOn SOHW-1653SX extern DVD drive, 2xHauppauge PVR150, Sigma XCard, fanless 350 W power supply, WinXP Pro SP2, ParaLED Plugin & self-built LED status monitor (sexy :p )[/SIZE]