Based off the spike driver from https://github.com/scottellis/spike