The device uses a Arduino Micro to read ... to interpret it. The keyboard communicates bidirectionally with the computer, so they needed to send the correct frames to key data back.