\input zb-basic \input zb-ioport \iteman{io-port 06071519} \itemau{Gill, Andy; Neuenschwander, Bowe} \itemti{Handshaking in Kansas Lava using patch logic.} \itemso{Russo, Claudio (ed.) et al., Practical aspects of declarative languages. 14th international symposium, PADL 2012, Philadelphia, PA, USA, January 23--24, 2012. Proceedings. Berlin: Springer (ISBN 978-3-642-27693-4/pbk). Lecture Notes in Computer Science 7149, 212-226 (2012).} \itemab Summary: Designing hardware is like writing music for an orchestra -- lots of pieces have to come together at the correct time for everything to work. In systems design, there is a confusing array of standards for allowing cooperating components, and little type-level support in traditional design methodologies for helping connect components with pre-arranged protocols. In this paper, we explore bringing protocol-level types to communicating processes. Inside our hardware description language Kansas Lava we introduce the notation of a patch, which is a communicating component with well-understood protocols. We build a theory round the notion of patches, which we call patch logic, and then use the patch abstraction to build a small driver for an FPGA board. \itemrv{~} \itemcc{} \itemut{} \itemli{doi:10.1007/978-3-642-27694-1\_16} \end