"Retaliation" kicks ass ... works like a charm, and it's super easy to change and run ...
https://github.com/codedance/Retaliation
you need to download and set up access to the USB library in Python so that it works http://sourceforge.net/apps/trac/libusb-win32/wiki
install the filter driver with this program, this will allow you to capture everything sent via this USB port, remember which one, because it will work only if you plug it in again in this particular port ...
after that just run retaliation.py and enjoy =)
I made some changes to my answer. I, since I have an old booster model, it does not come with a βboot sequenceβ without firing ...
elif command == "prefire": send_cmd(FIRE) time.sleep(4.5) send_cmd(STOP) elif command == "firewithprefire": send_cmd(FIRE) time.sleep(.5) send_cmd(STOP)
the second command is triggered after "loading up", so unknown victims do not hear the sound of loading, since it was "pre-loaded", just a click and a rocket fly ...
also with the old version of the booster you can send too high values ββin the move command and the booster will try to do this, it seems that newer versions stop the base after some points, the older version does the same, but only when it reaches the maximum values, so sending a move (2,000,000, left) will make it go all the way to the left, and then try to keep moving left, basically breaking gears, but if it's already at the maximum on the left, it will ignore the command, so I'm changing Neil course as follows:
def send_move(cmd, duration_ms): secs = (duration_ms / 1000.0) for x in range(0, int(secs)): send_cmd(cmd) time.sleep(1) send_cmd(STOP)
this may sound awful, but this is the only way to make sure it doesn't reach its maximum value when sending a move command, especially when using the park command, which moves the launcher to position 0,0 ...
hope this helps someone =)
amuses