Tuesday, February 21, 2023

Introduction to FPGA for Makers


For hobbyist and makers, exploring FPGA ( Field Programmable Gate Array ) is a major milestones as a maker. My experience with FPGA was when I was working for a web acceleration company that uses FPGA to accelerate web connections and DDoS prevention. 

My reasons to start exploring FPGA was when I was designing a hardware that requires me to support multiple hardware and sensors and ability to detect and use those hardware seemlessly.

As a maker, we always find the lowest cost method to get the best bang for the buck and secondly, it MUST be open source and not using any proprietary software as much as possible.

While exploring and searching for my FPGA, several FPGA brands appear quite often like Xilinx, Altera and Lattice. After much more digging, I found out that Lattice have very good support for open source hardware as they were the smallest of the 3 trios.

A few FPGA development boards caught my attention and one was really interesting ( and low cost too ), it was actually a LED Driver ( read more details in the link) called ColorLight 5A-75B with a Lattice ECP5 with 25k LUT, lots of pins, 2 x Gigabit Ethernet and external RAM. The reason I like this FPGA board is because during that time, I was also exploring and driving LED Panels with 64x64 pixels.

ColorLight 5A-75B

After some trial and errors, I managed to program the ColorLight to drive an actual 64x64 LED Panels. First time successfully program a FPGA.

ColorLight with LED Panels

The ColorLight was program using a FT2232 board that comes with 2 UART ports and commonly used in Lattice official development board.

FT2232 with ColorLight

One of the major drawback of this FPGA board - ColorLight was that it can ONLY have output ports and only 1 input port for the build-in button at the corner. that was because it was specially made to drive 5V LED Panels, 8 of them while accepting video input from the gigabit ethernet ports from the video server.

Many hardware hackers did a lot of hacking on this board like below :-

Lots of details here ( your starting point at first link )

After ordering the chips listed by the tweet, I proceed to swap out the 74HC245 with the bi-directional chip. The part number is SN74CBT3245APW

With some hotair, I pasted some kapton take to protect the plastic parts, the 74HC245 come off easily. After cleaning up the pads, I proceed to solder the new FET to the pads. Lets try with some solderpaste as the pins are very small and close together.

After blowing hotair, those solderpaste becomes a big solder bridge and I use a wick to suck up all excess solder on the pins. The results was good but just too much work. For the second chip, I just directly apply solder and and wick all the excess solder on the pins.

Here is the results after soldering two chips to the board. 

*** The input voltage must be lowered using a diode to 4.3V from 5V

After a successful test that the pins can support both input and output, I switch to use icestudio from fpgawars to program the FPGA using a graphical flow based interface with apio.


Above is the final picture with 8-DIP switches pmod as input and 8-LED tristate pmod as output.

summary Links
  • https://hackaday.com/2020/01/24/new-part-day-led-driver-is-fpga-dev-board-in-disguise/#more-395868
  • https://github.com/q3k/chubby75/tree/master/5a-75b
  • https://github.com/FPGAwars/icestudio

No comments:

Post a Comment


Related Posts Plugin for WordPress, Blogger...