copy driver
add framework for pulse length / period sweeps
fix permissions
add untested pulse functions