At our university, we bought a PC that was intended for testing during development of low-level components in operating systems (drivers, kernels, etc.). In such tests it is common that the machine gets stuck because of various bugs and it is necessary to perform hard reset to recover from such situations. To our surprise the machine we ordered had neither a reset button on the case nor any connector on the motherboard where the button could be connected. It was a Dell machine.

Moreover, we want to share this PC between multiple people and be able to run some tests automatically. Therefore we wanted to use a remotely controllable relay and serial port to reset the box remotely. I thought that we were lost without the reset button until a colleague of mine brought my attention to PWR_OK signal of ATX motherboards. Using this signal, it is possible to initiate the reset of the motherboard, but things were not so simple as they initially seemed to be.

Power supply uses PWR_OK signal to inform the motherboard that the voltage it generates is stable. When the signal goes low, the motherboard should go to the reset state and remain there until PWR_OK goes up again. So the plan was simple. Use the relay to control the PWR_OK signal and it allows us to reset the motherboard. The problem with this approach was that the motherboard was reset but it also caused the power supply to switch off for about one second and we wanted to avoid frequent switching off and on. The reason for this switching off was that upon detecting low level on PWR_OK, the motherboard responds with deasserting PS_ON signal which causes the power supply to switch off. Therefore, to reset only the motherboard, we had to keep the PS_ON asserted, while playing with PWR_ON. Finally, we ended up with this schematics:

schema.png

You can see that the PS_ON signal is always tied to ground. This makes the power supply always switched on. We can afford this because we use RELAY1 to switch on/off the computer. The second relay controls PWR_OK signal. In the default position, PWR_OK signal connects the power qsupply with the motherboard as it normally do. When the relay switches, PWR_OK on motherboard side is tied to GND and motherboard gets reset.

The final solution now looks like this:

iprelay.jpg

After doing all of this, I’ve found that you can buy a simple adapter, which allows you to do the same without cutting the wires of the power supply.

Posted Fri 03 Aug 2012 06:36:59 PM CEST Tags:

This is mostly a bugfix release. The last version was released almost four years ago so it is definitely time for a new release. One big change since the last release is that ORTE is no longer distributed as a part of OCERA project. We created a new project at sourceforge specifically for ORTE. With this change we also moved the source repository from CVS to Git and created a new homepage.

This release does not contain Windows binaries. If you have trouble compiling them from sources, let us know.

About ORTE

ORTE is an open source implementation of Real-Time Publish-Subscribe (RTPS) communication protocol. RTPS is new application layer protocol targeted to real-time communication area, which is build on the top of standard UDP stack. Since there are many TCP/IP stack implementations under many operating systems and RTPS protocol does not have any other special HW/SW requirements, it should be easily ported to many HW/SW target platforms. Because it uses only UDP protocol, it retains control of timing and reliability.

ORTE homepage: http://orte.sf.net/

Posted Thu 16 Aug 2012 11:42:41 AM CEST Tags: