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: * Implement more palette features (like configuration of the keyers) * 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. * Look into a possible bug in the UDP library of Arduino - one that may cause buffer overflows and resulting non-connection to ATEM switcher 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.