I just discovered something kind of interesting. I was curious as to how long the whole send loop took to execute, so I programmed it to display how long it took in hopes of creating the same delay in the slave program. When I tested it, the jerkiness was completely gone with no modifications to the display program. Maybe there's some kind of a magic number for Bluetooth loops? The whole loop took 87-88ms to execute. I did the same thing to the loop in the slave program, and it takes 105ms with a 100ms delay programmed in. Maybe there's some kind of relation to these numbers? This seems like something that should be explored further. I attached the programs here for anyone interested. The only special block you need is the PSP-Nx Lean block (for the PS2 controller)
Edit:
Okay, I just did something that messed that whole thing up. I forgot to fix a couple blocks related to sending the open-close claw motor commands, and the jerkiness is back. The loop now takes 177-179ms to execute. Maybe the problem has something to do with the master loop taking longer than the slave loop? Or maybe the slave NXT just can't handle information coming into three mailboxes at once...
This is really interesting; I'm gonna keep experimenting and see what happens.
Another edit:
I changed the delay on the slave loop so it runs at 180ms exactly, and the jerkiness is gone. It definitely seems to be caused by the master loop taking longer than the slave loop. This is weird because it seems like this problem should be caused by the master being faster than the slave, and the slave gets overloaded with messages.
Programs: