Optimize GPIO writes, only send if bits changed
Use different limit semaphore for SPI
Initialize GPIO pins on load