Summary: The objective here was to make a USB breakout board that incorporates the hardware required to implement the mostly-software-based USB protocol, V-USB from Ojective Development. The completed V-USB module is able to be connected to a range of Atmel AVR® microprocessors involved in various projects at the breadboard stage, obviating the need for additional USB circuit components be added separately to the project breadboard whenever USB functionality is required. The use of V-USB where the USB protocol is incorporated into the main project AVR microcontroller also replaces the need for a dedicated chip to handle the USB protocol.
Make a USB breakout board, to be used with the software-implemented USB protocol, V-USB, that can be attached to any Atmel AVR®-based electronics project at the breadboard stage. This will provide the hardware to easily connect any electronics prototype to a computer via USB and the V-USB protocol.
Although a USB circuit can be constructed on a breadboard, to do so on each as every project can be tedious and time-consuming. So the simple answer is to use a USB breakout board that can be attached to a project as a separate module. Another issue with a breadboarded USB circuit is that, when the USB cable is attached, it is a royal pain 🙂 to keep the breadboarded USB circuit in place and functional as the USB cable is relatively heavy and unwieldy. So to overcome these limitations, a USB breakout PCB that could be duplicated easily and attached to multiple projects as and when required was needed.
The final design involves a relatively simple circuit (Figure 1) that is designed for implementing the virtual USB protocol, V-USB from Objective Development, where the USB control is, for the most part, executed as part of the main project code running on the primary Atmel AVR® microcontroller of a project, as opposed to being integrated into a separate USB control chip.
Making the PCB: The USB Breakout board is made using do-it-yourself PCB-etching via the toner-transfer technique using a single-sided photo-sensitive copper-clad board. Since I only have one side of the board to draw electrical traces on (and I am using through-hole components), I tend to use the bottom layer in Eagle as the copper layer while the components sit on the top layer (Figure 2).
For PCB-etching, the board layout is printed with only some layers showing, which will be where the copper should remain on the board (as opposed to being etched). Other layers (like the silkscreen) should be turned off (see Figure 3). In addition, mounting holes at each corner allows attachment to the breadboard. This is particularly important for when a USB cable is eventually attached to the small breakout board, it will sit securely attached to the breadboard and not be dragged around.
Figure 4 shows what the final board layout should look like when printed out on acetate transparency from a laser printer.
Figure 5 shows the photo-etched board (NB: the labelling of USB data lines (D- / D+) are incorrect - they should be reversed - these have been corrected in version 1.1 and in the download files below). Drill Bits used:
A 3D model of an adaptor was created in blender to allow attachment of the PCB to a breadboard so that when the USB cable was attached, the breakout board would not be dragged around and off the table! It was printed out on a Velleman K8200 3D printer (.stl file included in the file download section below)
Figure 7 shows the USB breakout PCB with components soldered on and attached to the top of the breadboard using the adapter (pink structure - pink filament was on special, what can I say!). The PCB was attached to the adapter using M3 bolts without nuts (the holes were just the right diameter to self-tap, although if I make a new breakout board in the future, I will drill 3.5mm screw holes in the PCB instead of 3mm and use thicker 3/8" x 6 panhead screws that provide a tighter fit in the adaptor). The adapter itself was bolted onto the breadboard using 4x M3 nuts and bolts.