https://www.viasion.com/blog/pcb-software-and-programming-guide/