Todo list: Generally, search for "todo" in the source and there will pop up a few places where improvements are needed. Here is a more general list I'm keeping: - Detect switcher type and firmware version in library - In runloop, detect if connection is kept open (maybe mimick how the PC software is also sending keep-alive packets every half second), and if down, try to reconnect automatically. This is more nice-to-have - a reconnection can easily be established with a hardware reset of the Arduino. - Implement key-on for upstream keyers (We know how to protocol wise...) A note from the atemuser.com forum, which I might need to keep in mind although I haven't experienced the need for this: // You must listen for when the Atem starts to use an new 'UUID' or session ID, and start using that when sending commands.