SMB ATmega32u4

IDEAL INTERACTION:

This is the ideal final product I intend to develop. A USB fake pen drive. Once you connect this device to your computer it will open a blog note and write "You are being observed, turn around slowly".The project invite people to question: How vulne…

This is the ideal final product I intend to develop. A USB fake pen drive. Once you connect this device to your computer it will open a blog note and write "You are being observed, turn around slowly".

The project invite people to question: How vulnerable are we? 

I found Adafruit developed an ATmega32u4 adding a couple of extra security features which is good news for our project. I was able to get their eagle file and redesign the board without all the pins I won't use. As a reminder we just want the ISP and USB interface to program and connect to the computer respectively. 

Adafruit ATmega32u4 breakout board.

Adafruit ATmega32u4 breakout board.

Solder Jumpers

Screen Shot 2018-03-22 at 11.31.14 AM.png

There are two solder joints on the breakout board from Adafruit. According to  its documentation, they are:

VCC solder jumper
The board is powered by the USB port at 5V. There is a 500mA polyfuse to protect your computer from a shorted circuit. If you'd like to run the board off of another voltage, you can do that by cutting the VCC solder jumper bridge underneath and connecting an external voltage to pin #2 of the ISP header. Note that running the board at 3.3v @16mhz is considered overclocking. We do it for prototypes and it seems to work fine but it's out of spec!

HWB solder jumper
If you ever want to disable the bootloader you can cut the bottom 'HWB' jumper trace. This will disconnect the 'hardware bootloader' pin, you can then use the button as a plain reset button. For the first few runs of this board we set the fuses to still use the bootloader even with the HWB jumper cut, if you want to get rid of the bootloader, please set the fuses to remove the BOOTRST fuse. Sorry!

This is important being that our board does not have a bootloader and we will be connecting this guy via USB and ISP 

PROTOTYPING:
BOM:

1 - LP2985-33DBVR
1 - USB 2.0 SOCKET/male
2 - 18pF capacitors
2 - 22R RN3D/2 Resistors
1 - 16MHz KX-7/1 Crystal
1 - ATmega32u4
1 - RN1D 10K/1 Resistor
1 - CAPACITOR 0.1u/4
1 - CAPACITOR 10u/1

All the parts are available at Digikey.com
Fortunately, I had just to buy the Atmega microcontroller. I bought 2 just in case.
https://www.digikey.com/product-detail/en/microchip-technology/ATMEGA32U4-AUR/ATMEGA32U4-AURCT-ND/3440960

DESIGN

I decided to design one-sided board in order to check all the connections just in one look. I was using 14 components which can be arranged without air cables. If I want to make the board smaller I can try to make it double - sided but as long as I decided to acid etching this will make it more complicated.

I decided to get off the solder jumpers (connecting them completely) which will represent a problem in the future, as long as the HWB jumper allows to power up the board via ISP.

FABRICATION:

 

I did acid etching in order to subtract the copper that I wasn't interested in using. Fortunately, all my connections were working without any short cut.

My only issue was that the rubbering acid didn't work for me (It took too long and I had to manipulate the board a lot). I used acetone instead which is stronger

Once I checked this I printed a stencil to put all the solder paste in just one go because I tremble a lot. This work just fine as well. Once I put my parts I used the oven to heat the solder up. The temperature reached 340 degrees Celsius.

I decided to check my connections again and I found several issues:

  1. Some paths were broken. I suppose I manipulated too much the board with the rubber alcohol. Next time acetone as first try.
  2. The crystal 16MHZ is huge and is touching another path which is not supposed to. Getting this crystal out I take off the copper as well so I had to repair manually with some paste and wire. I had to use the microscope because the path is way too thin. I changed the crystal to a smaller one.
  3. All the routes were too thin and easy to break in general.

BURN THE BOOTLOADER

Being that the ATmega32u4 is new, it does not have a bootloader. We have to put it via ISP with the Arduino as Programmer. So we prepare the next set up:

This schematic represents the Arduino connected as programmer to a 6 pin header.

This schematic represents the Arduino connected as programmer to a 6 pin header.

Current status