USB host - Homemade hardware

Have you ever receive a free USB? or maybe pick one up from the street?

CAREFUL. This devices will have access to your hardware with your authorization, sending and receiving data and if you are careless, It might be more data than you intended.

My device will take advantage of its size to camouflage as USB device and work as tool to make people aware of their vulnerabilities. Think it twice you receive an USB from me.

I will use the Keyboard.h library for Arduino. This library allows us to send data from an Arduino to our computer in order to simulate keyboard's keys or even mouse actions. This library just works fine with Leonardo, Esplora, Zero, Due and MKR Family, due to the microcontroller in these boards supports USB host i/o.

https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

The board is the ATMEGA32U4

https://www.digikey.com/product-detail/en/microchip-technology/ATMEGA32U4-AUR/ATMEGA32U4-AURCT-ND/3440960

We ordered two just in case.
Getting the Eagle file from the Arduino Leonardo. We got off all the unnecessary hardware (more of it security measures and I/O pins I won't use). We got this board:

 

arduino.JPG

And this schematic:

 

schematic.JPG

This Microcontroller has (ATMEGA32U4) 44 pins and make a boards in its current state will demand a double-sided copper board which I wont use. The idea is to keep it as simple as possible. So, in the next iteration we will get off of more parts.

What I notice is that Leonardo board does not have a second microcontroller to convert USB to Serial which are good news, meaning that in some way we can connect the USB socket directly to the microcontroller without any middleware. I will keep the 6 headers ISCP to program the ATMEGA32U4 in the future.

So far the list of parts are:

LP2985-33DBVR/1
USB 2.0 SOCKET/1
CG0603MLC-05E/2
22R RN3D/1
22R RN3A/1
MF-MSMFMF050-2 500mA/1
16MHz KX-7/1
CD1206-S01575/1
RN1D 10K/1
CAPACITOR 100n/4
CAPACITOR 1u/4
CAPACITOR 10u/1

Let's hope to make it smaller.