Now the ISPError is raised from the _send_command method, not each caller. There will be a few cases where I need that to not be an exception, but I can just wrap it in a try block then, so there's no problem.
In-system programming tool for LPC microcontrollers