## A Calculator (3): Practical Numerical Methods

In the last post, we verified and quantified the precision of the basic four functions (addition, subtraction, multiplication, and division). Now, we can use them as a stepping stone for more complex functions. We can assume they will be available, so our experimentation could simply use built-in C++ functions.

In this article, the third in a series, we will continue with the proof-of-concept, or pathfinding, research.

## A Calculator

The idea for this project came about during a week of freezing winter arctic events here in Austin, Texas, with a failed power grid (as well as the Texas government), while keeping close to a gas fireplace, the only source of heat and light, for a couple of days. With a weak internet over a phone data line, I could only do some preliminary searches and mainly work out various details on a writing pad, growing feeling that the project may be personally exciting and practically doable.

It took a long time, but this FPGA Calculator is now finished and I am really happy with how well it turned out.

## PCB Making: 1. Introduction

This set of short articles will show you the making of a PCB, from the initial requirement stage, through the design and manufacture, and to final software programming.

If you are new to PCB making, I am hoping this text should paint some basic picture of what is involved in a home board design and manufacture. If you are already an experienced hobbyist, I hope you will find some parts informative or interesting enough to try them yourself on your next project. If you see anything wrong or have a better way of doing it, please post it in a comment. I will appreciate learning from you and sharing the experience!

## PCB Making: 2. Get Started

This is a step of looking for an idea or for the purpose of what a board should be doing. You will likely know what you need and then build a suitable board. I needed to build something useful so I can look forward to it once it was done: I wanted to be able to interact with it but also use parts that I already have at home.

In my parts bin, I found a fairly standard LCD display that I got with an Arduino board. It can display 16 characters in 2 rows. This should be a good display device to use.

## PCB Making: 3. Schematics

The software I use to create board schematics and layouts is Eagle CAD.

Software-wise, I also use git version control: I frequently version and commit all changes to project files and then upload them to a cloud server. I like GitHub and BitBucket servers which are free. My suggestion is to always version your work and to always backs it up.

There are a number of great tutorials on the web about using Eagle and git, so I will not go into it here.

## PCB Making: 4. Layout

When you switch to Eagle’s layout editor, all the components are going to be grouped together in a corner. Yellow lines (“air wires”) will connect pins. A good way to start untangling that mess is to separate and group components that belong to each design block. For example, the power block contains 7805 and a couple of caps and connectors or terminals. Then you can move them around as groups and play with the placement to get a feel of where they would fit on the final board.

## PCB Making: 5. The Mask

Before placing (expensive) transparency into a laser printer, I do several test prints using regular paper.

When you print a transparency mask always invert the TOP layer so that the ink die is close to a board when sandwiched and the thicknesses of a transparency foil are not in the way => print with MIRROR option checked.

Double-sided
TOP: select (1) Top, (17) Pads, (18) Vias, (20) Dimension and MIRROR option
BOTTOM: select (2) Bottom, (17) Pads, (18) Vias, (20) Dimension. Do not print with MIRROR.

Single-sided
BOTTOM: select (2) Bottom, (17) Pads, (18) Vias, (20) Dimension. Do not print with MIRROR.

Don’t forget to do the ground pour before the printing! The ground pour will flood selected signals (usually ground) over empty space on the board.