Я не хочу обуздать ваш энтузиазм, но то, что вы пытаетесь сделать, может быть немного жесткой корзиной. Система USB состоит из хост-контроллера и одного или нескольких периферийных устройств. Именно хост управляет потоком трафика на устройства, что означает, что устройства не могут передавать данные по шине без явного запроса от контроллера хоста.
Я не знаком ни с платформой nanoKey, ни с платформой Arduino, но вполне уверен, что nanoKey - это USB-устройство, обычно подключаемое к компьютеру, который будет выполнять роль хоста. Поэтому для работы этой системы вам потребуется, чтобы Arduino выступал в роли хоста при взаимодействии с nanoKey. Arduino схема показывает, что Arduino Uno использует ATmega8U2 для подключения USB. К сожалению, ATmega8U2 - это USB-устройство, поэтому у вас есть два периферийных устройства, но нет хост-контроллера, который бы облегчал передачу данных между ними. Вам лучше использовать плату для разработки для микро, которая обеспечивает либо USB Host, либо USB On-the-Go.