so its solved!
Code:
if(WaitJig) {
int n = 0;
if(WaitJig == 1) {
if(usb_kbhit(2)) {
Chirp();
usb_get_packet(2, jig_response + nJigs * 8, 8);
delay_us(24000);
nJigs++;
EP_BDxST_I(1) = 0x40; //Clear IN endpoint
if(nJigs == 8) {
etc etc
you can use your loop with a delay of 3000 as well. currently ive only tested 1000 (8000 without loop) and it didnt work. i went as high as 240 000 without your loop and it does the same thing (turns off)
im sure the delay could be tweaked some more, but it does work. the ps3 will turn off within a second after the lights come on the jig to show its successful.