Printed circuit board 'Multiuse PCB2'
This small PCB, which I named Multiuse PCB2
is an improved version of
multiuse tiny 1
I designed Multiuse tiny1 for my
NES/SNES controllers to USB
Since there is not a lot of space availabe inside an SNES controller, I designed the PCB to be as
small as necessary. The PCB has improved since the beginning, thanks to the many other uses
I found for this PCB.
Known projects which use this PCB:
- Small: width=27.5mm, height=17.7mm, thickness=3.4mm (without regulator) or 5.3mm (with regulator)
- Atmel AVR Atmega8 microcontroller on-board. Runs up to 16mhz.
- The following microcontroller signals are available via solder pads: PC5(ADC5/SCL), PC4(ADC4/SDA), PC3(ADC3), PC2(ADC2),
PC1(ADC1), PC0(ADC0), PB5(SCK), PB4(MISO), PB3(MOSI), PB2(SS/OC1B), PB1(OC1A), PB0(ICP1), PD0(RXD), PD1(TXD), PD2(INT0). Please
note that PD0(RXD) and PD1(TXD) are tied together.
- Optional voltage regulator can supply a lower voltage to the MCU and/or external peripherals.
- This circuit is perfect for the
Firmware-Only USB Driver from
Objective development. All necessary components are there (Atmega8, 12mhz crystal with capacitors,
68 ohms resistors and zener diodes).
- Pull up or pull down (selectable) can be installed on many signals.
- Convenient pass through signal 'S' which crosses the board, but can
optionally be connected to the pull-up/down array of resistors.
The schematic is split on 3 different pages.
Here is the the schematics in png format:
And in PDF format: multiuse_pcb2_schematic.pdf
To program the microcontroller, the ISP wires must be soldered directly on the board. Look
at the schematic for the locations.
If you are not familiar with the programming procedure for Atmel AVRs using ISP, consult
my AVR programming page
When USB is not used, it is not necessary to solder the zener diodes and R1. The 68 ohms
resistors R2 and R3 may be replaced by 0 ohm resistors if you need to use those ports. (That's what I
did for the
SNES/NES Gamepad to Gamecube/Wii adapter
The PCB backside has a footprint for an lm1117 voltage regulator. 0 ohm
resistors or solder bridges must be installed to select the power source
for the microcontroller and the circuit output.
When no regulator is needed, installing U3, R9, R10, C5, R7 and R8 is not necessary. But don't
forget to install R6, R7 and C1.
The voltage regulator has an adjustable output. Here is a convenient tool you can use to calculate the
output voltage that would be obtained depending on the selected resistors.
Here are composite images of the PCB top and bottom sides:
The picture on the right shows the top side populated for USB communication (12mhz crystal, 68 ohm resistors,
1.5k resistor and two 3.6 volt zeners). Notice the two solder pad labelled 'S'. This is a pass-through
signal that is useful for some adapters. This signal is also accesible on the back side via R18.
Option 'with regulator'
The regulator used is an lm1117mp-adj. 0 ohm resistors must be installed in order
to select the power source (Input voltage or regulator output voltage) of the microcontroller
and the board power output.
For example, to supply 5 volts (from USB) to the microcontroller
and 3.3 volts (regulator output) to a game controller, resistors R5 and R8 would have to
The picture on the right is an interesting example which demonstrates the circuit
flexibility (for the gc/n64 to usb adapter). A regulator
is installed with resistors for a 3.3 volts output. A pull-up is installed (R16, 2.2k) and
is connected to 3.3 volts via R20 (0 ohms). The 'S' signal is connected to the input voltage (for
this project, 5 volts from USB) by connecting R19 with R18 with a 0 ohm resistor.
Option 'No regulator'
When no voltage regulator is required, the only components
that must be installed on the bottom side are two 0 ohm
resistors. Install them according to the picture on the right. If
you don't have 0 ohm resistors, use short pieces of wire or do
a solder bridge.
Of course, even if there is no regulator, it's still possible to install pull-ups or pull-down
resistors on many IOs.
Here are the gerber files
which you may use to produce this
Programming the circuit requires soldering the programmer wires at the correct spots or
building a jig with correcly placed spring loaded contacts. Look at the schematic and note the MCU pin names where the ISP
|Signal ISP||MCU Pin|
Then looking at the PCB, you should see labels B5, B4, B3 in the lower right.
As you are probably already guessing, B5 is for PB5, B4 for PB4, etc.
The reset signal is at the top, marked nRST. ISP gnd and vcc must also be connected,
and remember that normally (at least, with the official mkII Atmel programmer)
the programmer does not supply power.
I cannot be held responsible for any damages that could occur to you
or your equipment while following the procedures present on this page.
Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability
of the informations on this page. Please note, however, that the procedures
above have worked in my case without any damages or problems.
Now you cannot say that I did not warn you :)