need help in ps2 port power toggle
i did an led mod on my dell latitude c600 using the ps2 port for power is there any way to toggle the power with out a switch
heres a vid of the mod
On the top of my head, place the LED on a MCU unit of some kind. Write a keyboard emulating piece of software that responds on the initial command RESET that the host (Your computer) sends to the keyboard for identification and initialization.
Implement to to run the LED high or low based on RESET commands from the host or similar.
You could also implement your own device driver to send custom data to the PS/2 port instead as I'm not exactly sure how the RESET command works in different operating systems.
There might also be a possibility to fiddle with IRQ 1 to run the entire PS/2 port low, but doubtful that the user space allows you to do this without kernel spacing.
More reading:
Your video reminded me of this. Could do this with your setup. If you used an Arduino Mini or a Teensy, you could hid all the guts in the formfactor. This could also add the switching functionality, code is required, but I could help you out. It doesn't use the ps2 port though, rather a serial or usb(used a COM).
never mind found it it runs on IDE Code
//Developed by Rajarshi Roy import java.awt.Robot; //java library that lets us take screenshots import java.awt.AWTException; import java.awt.event.InputEvent; import java.awt.image.BufferedImage; import java.awt.Rectangle; import java.awt.Dimension; import processing.serial.*; //library for serial communication
Serial port; //creates object "port" of serial class Robot robby; //creates object "robby" of robot class
void setup() { port = new Serial(this, Serial.list()[0],9600); //set baud rate size(100, 100); //window size (doesn't matter) try //standard Robot class error check { robby = new Robot(); } catch (AWTException e) { println("Robot class not supported by your system!"); exit(); } }
void draw() { int pixel; //ARGB variable with 32 int bytes where //sets of 8 bytes are: Alpha, Red, Green, Blue float r=0; float g=0; float b=0;
//get screenshot into object "screenshot" of class BufferedImage BufferedImage screenshot = robby.createScreenCapture(new Rectangle(new Dimension(1368,928))); //1368*928 is the screen resolution
int i=0; int j=0; //1368928 //I skip every alternate pixel making my program 4 times faster for(i =0;i<1368; i=i+2){ for(j=0; j<928;j=j+2){ pixel = screenshot.getRGB(i,j); //the ARGB integer has the colors of pixel (i,j) r = r+(int)(255&(pixel>>16)); //add up reds g = g+(int)(255&(pixel>>8)); //add up greens b = b+(int)(255&(pixel)); //add up blues } } r=r/(684464); //average red (remember that I skipped ever alternate pixel) g=g/(684464); //average green b=b/(684464); //average blue
port.write(0xff); //write marker (0xff) for synchronization port.write((byte)(r)); //write red value port.write((byte)(g)); //write green value port.write((byte)(b)); //write blue value delay(10); //delay for safety
background(r,g,b); //make window background average color }