Well... that's all for now.
Hi all! This page shows how I completed a recent hobby project--a
small video I/O PCB board based on Spartan-2. The board was hot-air
reflowed at home using a small toaster oven. The pictures on this page
illustrate the process. Apart from the FPGA the board also has a USB
controller chip, some SDRAM, video decoder, video encoder, and a PLL
on the back side of the board. My goal was to build something simple
that allows me to do experiments with digital video processing and at
the same time gain practical experience with FPGAs, SDRAM, USB,
and--last but not least--making a PCB board with fine-pitch components
First, The Final Result
OK, a picture is worth 210 words... Here's the final
result--the assembled PCB after reflowing it in a small toaster oven
and manually soldering all through-hole componets and the components
on tha bottom side. You can click this image (and all others on this
page) for a larger version.
Looks pretty good for a bake-it-yourself project, doesn't it?
The big chip in the middle is the Xilinx Spartan-2 FPGA. The
1Mx16 SDRAM is on it's right side. Under the FPGA you can see
the FTDI FT2232C USB controller with its configuration EEPROM
and quartz crystal. The video decoder (TI TVP5150AM1) is to the
left of the FPGA and below it are its quartz crystal and 1.8V
voltage regulator. The RCA and S-Video connectors provide the
input video signal. The video encoder (ADI ADV7173) did not
arrive in time--you can see where it should be, just above the
video decoder--and I will have to solder in manually. It will
not look pretty... oh, well. The JTAG connector is in the top-
left corner and next to it are the 3.3V and 2.5V voltage
regulators. The DC power connector is in the top-right corner.
BTW the board has four layers and I designed it using the non-profit
version of Cadsoft Eagle PCB.
There is no solder mask as it raises the PCB manufacturing cost
significantly above the bare board cost. Most of the ICs are in
fine-pitch TQFP and TSOP packages, which makes it hard to solder
Pictures? What Pictures?
Well, I took a number of pictures because I wanted to document the
process. I even made a small video clip through the glass of the
oven but it didn't come through very well. The oven is a simple
Black&Decker that I got brand new for $18 at the local Target
store (note: lead is poisonous; do not use the oven for cooking
food after reflowing PCBs inside). Anyway, here are the pictures.
This picture shows some of the tools that I used arranged
around the bare PCB. The top syringe contains liquid rosin flux.
The solder paste is in the bottom one. I got no-clean paste and
flux because didn't want to deal with yet another manufacturing
step: cleaning the board after reflow. I got the solder paste from
Wassco. It came in a
larger syringe, which I keep in the fridge as the solder paste
dries out if left at room temperature. I also used a 212°C
(413°F) Tempilstik (not pictured): it's a temperature
indicator that melts at the specified temperature and you know
your cookies are done... sort of. The vacuum pickup was handy
for larger chips but it was easier to use the tweezers for the
smaller components, e.g., 0805 resistors and capacitors.
Here you see how I applied the solder paste to the pads. A
nice desciption of this process is
available here. I was worried that when the solder paste
is applied like that the layer is too thick and when the IC
is placed on the paste the excess paste will go between the
pins and make solder bridges. So I decided to flatten out the
solder paste using a fine brush that I got from an art supply
store; you can't say that PCB manufacturing at home isn't an art :)
BTW Sunstone Printed Circuit Boards
(previously called PCB Express) has an
option to make you a stencil for applying the solder paste
only to the pads. I didn't use that option although I ordered
my boards there because I thought that I'll smear the nice
solder paste islands anyway when I place the components.
Now the solder paste is flat and I'm ready to place the ICs on
the board... or am I? Again thinking about solder bridges
between the fine-pitch pins I decided to slightly wet the pins
with rosin flux because I thought it may help get rid of the
solder bridges. Maybe that wasn't such a good idea; in any
case, there were a lot of solder bridges as you can see later.
All the top-side SMD components are on the board. We are ready
to bake it. It took some careful pushing from this side and
that side of the ICs to get them properly aligned on the pads.
Slight misalignment is OK since the surface tension of the
molten solder attracts the pins to the pads and the chips
realign themselves on the pads during reflow. I was very
careful place the ICs properly as it is possible to rotate the
packages to 90 or 180 degrees.
The board after the reflow in the toaster oven. Note that
there are many solder bridges between the pins. I was hoping
for fewer than that. However, it turned out to be very easy
to remove them using solder wick. The dark red drop in the
lower-right corner is the molten Tempilsilk indicator. You are
supposed to wait till it begins to melt and turn off the heat.
I was able to see the solder paste melting and solder joints
forming through the glass of the oven, so the temperature
indicator was just a reassurance, not a necessity.
This is the board after removing the solder bridges. I used a
magnifying glass to carefully inspect the pins. The bottom
side of the board has mostly resistors and capacitors, which
I soldered manually. The problem was that the small 0805
components move easily when the tip of the soldering iron is
removed and end up in weird orientations. That's how I managed
to create a short between a power plane and the ground plane.
I was lucky that I tested the board for this kind of short
before I plugged the power in. Since the bottom side is
otherwise not very interesting, I'm not going to show pictures
And finally, after soldering the through-hole components, we
are done! I gradually started testing the board: first a smoke
test (if there's no smoke when you plug the power in - good),
then the USB (Windows detected a new device and installed the
driver), the JTAG (Xilinx IMPACT recognized the device on the
JTAG chain), etc. I'm still working on the board; one of the
last things I did was to write an I2C controller for the FPGA.
It configures the video decoder to output a "video lock"
signal on one of its pins. So when I connect a DVD player to
the input and turn it on an LED lights on. I played about two
minutes with that--press the power button on the DVD remote
and the LED on the board turns on. Press it again--the LED
turns off. Okay, it was 1:00 AM...
FPGA Booting Over USB
For the first experiments with the board I booted the FPGA using the
Xilinx Parallel Cable IV JTAG pod. However, I had designed the board
with the ability to boot from the USB chip in slave serial mode and
wanted to try that. The FT2232C USB controller has a nice
synchronous serial port that is easy to use for FPGA configuration.
So I wrote a simple Windows application to talk to the USB
drivers and upload a configuration bitstream to the FPGA over
the USB connection. This worked out quite well and now I don't
need to plug-in the JTAG cable to the board. The programmer
can stay open and when I build a bitstream in WebPack I simply
hit the Program button: it loads the bitstream and sends it to
the FPGA in less than a second. I used an evaluation version
of Borland C++ Builder and am considering to buy the personal
edition. The image on the left is a screenshot of the current
FPGA programmer user interface.
In the future I will write little specialized applications that
download and upload data from/to the SDRAM and control the video
processing inside the FPGA. The documentation of the FT2232C chip is
not very good but once you understand what's going on it is easy to
write the top-level software.
The Eagle schematic and PCB files as well as the USB downloader
application are available here: vio.zip. They
are free to use for any purpose. No warranties. Enjoy :)