PCB category

New Release For EAGLE CAD with PCB Alignment Tools

Since Autodesk acquired Eagle CAD, big changes have been made to Eagle CAD. Regardless of the new licensing system using subscription model, which was a subject to criticism by a lot of users, the new management of Eagle from Autodesk has successfully added a lot of demanding features that old team failed to bring out.

Eagle 8 came with a lot of new features like BGA auto-router and “Past Block Design” tool to add a complete block of connected components both in schematic and board.

The new release 8.1.1 brought PCB alignment tool to align a group of objects in different positions; top, bottom, left, right, center, and distribute horizontally / distribute vertically.

Image Source: Autodesk Eagle’s Forum

Another improvement in eagle 8.1.1 that deserves mention is that a new category has been added to DRC (Design Rule Check) called Airewire. It’s an important improvement because airwires is one of the most common things designer should be aware of. In older Eagle releases, you should work with your eyes wide open and never forget to hit ratsnest at the end of your work and read the magic sentence in the bottom corner “Ratsnest: Nothing to do !”.

Image Source: Autodesk Eagle’s Forum

Source: Autodesk Eagle’s Forum

Exploring Eagle CAD ULPs #6 – Group-aps_v4.ULP Autoplace by Group

Welcome to the 6th post of the “Exploring Eagle CAD ULPs” series. Each post will be discussing one useful ULP in Eagle CAD.

“ULP” User Language Program is a plain text file which is written in a C­-like syntax and can be used to access the EAGLE data structures and to create a wide variety of output files. You can think about it as a plug-in for Eagle.

You can reach the posts published in this series using the following link.

In the previous post we explored Place50 ULP which places all parts of the board to the position in the schematic. Place50 moves all parts of the board, but sometimes we need to do this auto-placement for just a certain group of parts. Beside that, we can’t change the position scaling factor in Place50. Group-aps_v4 ULP overcomes these two points of limitation in Place50 ULP by doing the auto-placement by group, and having user defined position scaling and offset.

To use Group-aps_v4 ULP first download it from Autodesk website. Before running it in the schematic editor, you need to define a group of parts first.

Group-aps_v4 has a simple dialog to enter scale and offset values.

Scale is used to scale the value of original position (X and Y) of the parts in the defined group in the schematic. While X,Y offset is used to offset the final position of the part in the board after scaling it. For example, if scale was 0.5 and the position (in mil) for the part is (500,100) then is will be considered as (250,50).

Group-aps_v4 ULP originally places the group in the calculated position of the the first part. So as an output, all parts will have the same X and Y and that’s not effective. So i made a simple edit to the ULP to solve this issue. You can download the updated version N_group-aps_v4.ulp.

Exploring Eagle CAD ULPs #5 – Place50.ULP Place All Parts of The Board to The Position in The Schematic

Welcome to the 5th post of the “Exploring Eagle CAD ULPs” series. Each post will be about one  useful ULP in Eagle CAD.

“ULP” User Language Program is a plain text file which is written in a C­-like syntax and can be used to access the EAGLE data structures and to create a wide variety of output files. You can think about it as a plug-in for Eagle.

You can reach the posts published in this series using the following link.

In this post, we will discuss an autoplacer ULP. Normally, Eagle CAD places parts in the board without any considerations to electrical connections, and there isn’t any built-in auto-placing tool in Eagle.

Without the help of ULPs, you will need to do this task manually by moving connected parts near to each other. However, some ULPs can solve this problem ــ manual placement is a time consuming task when the PC can help us !.

Place50 ULP has a simple and smart idea. It’s an autoplacer which places all parts of the board to the position in the schematic. To use this ULP first download it from Autodesk website to run it in schematic. Running this ULP from schematic editor will generate a script file in your home directory. Now open board editor and run the script file “place.scr”.

I made a little edit to the original ULP to make the script file be saved in the same directory of the project rather than the home directory. Download it from here.

A simple and reliable programming & test jig

Pieter @ piconomix.com tipped us with his latest build. Check it out on the link below.

I recently had to create a programming jig for an ATmega328PB based board. 1mm diameter test pads were placed on the bottom of the PCB to give access to the ISP pins. Normally one would add two 3mm diameter holes to locate the PCB on the jig, but this PCB was too small and only had two indents on each side to keep it in place

A simple and reliable programming & test jig – [Link]

Tiny ESP8266 Breakout Board

Stavros made a very small ESP8266 breakout board:

A very small breakout for the ESP8266. Includes all necessary pullups/pulldowns for it to boot to your code, a LDO regulator, a 3V3 output pin and enough breadboard space for one row on each side on a standard breadboard.

Tiny ESP8266 Breakout Board – [Link]

DIY Arduino Nano

Make Your Own Arduino Nano In The Simplest Way (DIY – Arduino Nano)

In today’s post, we are going to learn how to make an Arduino nano at home. Electronics enthusiast Pratik Makwana designed this project in instructables.com. Every step in this project is well-explained. If you already don’t know what Arduino Nano is then here is a brief introduction: Arduino Nano is a tiny yet strong member of the Arduino family. It’s powered by an ATMega328P microcontroller running on 16MHz. But, the main strength is its very small form factor.

Arduino Nnao
Arduino Nano

Now, let’s get started and make your own Arduino Nano in no time.


  • Copper clad board (Double-sided)
  • Ferric Chloride (FeCl3)
  • Acetone (Nail polish remover)
  • Glossy Paper
  • LASER Printer
  • Marker Pen
  • Scissors
  • Plastic container
  • Sandpaper
  • Safety gloves (Optional)
  • Latex gloves
  • Saw – For copper board cutting
  • Laminator or iron
  • Components of Arduino Nano (Given later)

PCB Designing:

This is a very important step of this tutorial. You need to draw the circuit of Arduino Nano first. Then you’ll design the PCB using the schematic. Design the schematic diagram in an EDA tool (Electronic design automation Software).
Here is a list of EDA Tools:

EAGLE is the most widely used PCB and schematic design software. Though my personal favorite is Proteus. You can use any software from the list.

Importing the Schematic File to PCB Editor
Importing the Schematic File to PCB Editor

To make the schematic, use the Arduino Nano Circuit Diagram and Arduino Nano Components List. Once it’s drawn completely, open the PCB designing part of the software and you’ll see that schematic is imported there. Now place the components in correct places and connect them using traces. If you are using EAGLE then you can simply download the Arduino Nano Schematic File for EAGLE and Arduino Nano PCB File for EAGLE. Open the .brd file (PCB file) to print the PCB. You can also modify it if you wish.

Place the parts in correct position
Place the parts in correct position
Connect the components and the PCB is ready
Connect the components and the PCB is ready


  • Use Only Laser printer only.
  • Use glossy papers to print.
  • Set scale factor to 1.
  • Before top layer printing, you need to mirror the image of the top layer layout.

Cut The Copper Clad Board:

Now, cut the copper clad board according to the dimensions of the PCB. You can use a hacksaw to cut it off. Be precise about the dimensions. If it’s smaller than the actual PCB then you have to do it again. Also, cut the printed glossy paper as per the size of PCB.

Cut the copper clad board using a hacksaw
Cut the copper clad board using a hacksaw

Toner Transfer and Etching Process:

In this step, the PCB design from glossy paper will be transferred to the copper board. All you need to do is place the printed side of the glossy paper on the copper board and apply both pressure and heat. You can use a modified laminator machine or an iron for this purpose. Why “modified”? Because toner transfer method requires a temperature of 210°C, where a laminator can provide 150°C maximum.

Put the board in FeCl3 solution for a while
Put the board in FeCl3 solution for a while

Make your copper clad board as clean as possible beforehand. You can use sandpaper and alcohol to do this. When the toner is transferred successfully, prepare the ferric chloride (FeCl3) solution. Before putting the board into the solution check carefully for any broken path. If found, draw it with a marker. After the etching process, use the acetone to clean the board.

After washing the PCB with Acetone
After washing the PCB with Acetone

Drilling & Soldering:

Drill the PCB using PCB drill machine. Choose the drill bit wisely else components may not fit. Now, place the components on the PCB and solder them. You can use a helping hand device to get it done nicely.

Upper layer of PCB
Upper layer of PCB
Lower layer of PCB
Lower layer of PCB

Burning The Arduino Bootloader:

In this step, you’ll need another Arduino board (e.g. Arduino UNO) to burn the bootloader to your newly made Arduino Nano for the first time. Open Arduino IDE and upload the ArduinoISP sketch to the Arduino UNO from examples option. Now, connect your Arduino Nano with Arduino UNO over SPI bus following the given instructions:

  • Arduino UNO     >>    Arduino Nano
  • ——————————————-
  • SS (Pin 10)         >>     RESET (Pin 29)
  • MISO (Pin 11)    >>     MISO (Pin 16)
  • MOSI (Pin 12)    >>    MOSI (Pin 15)
  • SCK (Pin 13)       >>    SCK (Pin 17)
  • 5V                         >>    VCC
  • GND                    >>    GND
Follow this instruction to burn bootloader
Follow this instruction to burn bootloader

After making the connections, go to Arduino IDE and follow the given instructions:

  1. Select Tool  >>  Board  >>  Arduino Nano
  2. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  3. Select Tool  >>  Programmer  >>  Arduino as ISP
  4. Select Tool  >>  Burn Bootloader

Wait for the “Done burning bootloader” message to appear.


Well, your Arduino Nano is now ready for a test run. This time you won’t need another Arduino to upload codes. Follow the instructions and connect a USB to TTL converter (a.k.a USB to UART converter) with the Arduino nano to upload sketches.

  • USB to TTL Converter (CP2102)  >>  Arduino Nano
  • —————————————————————-
  • VCC        >>     VCC
  • TX          >>    RX (Pin 30)
  • RX         >>    TX (Pin 31)
  • DTR      >>    RESET (Pin 29)
  • GND     >>    GND
  1. After making the connections, go to Arduino IDE and perform the following tasks:
  2. Select File  >>  Examples  >>  01.Basics  >>  Blink
  3. Select Tool  >>  Board  >>  Arduino Nano
  4. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  5. Select Tool  >>  Programmer  >>  AVRISP MKII

After that, upload Blink Sketch to Arduino Nano and wait for the “Done Uploading” message. LED connected to pin 13 should blink if everything is OK. Now you can upload any sketch you wish to your home made Arduino Nano.


So, this is how you can make your Arduino Nano. All you need for this project is PCB designing skill and a pretty good soldering skill as you have to deal with SMD components. This way you can make custom Arduino Nano that will fit your project perfectly. Watch the video to have a more clear idea:


Tinusaur, $3 ATtiny85 Microcontroller Board And Assembly Kit

Tinusaur is an Atmel ATtiny85 microcontroller board that comes in parts, as a kit, so you can solder it yourself and then program it. This small microcontroller board can run Arduino and its goal is to have a simple, cheap and quick-start platform for everyone interested in learning and creating things.

Tinusaur comes as an assembly kit, in parts, all in a small plastic bag, so you have to solder it yourself. In order to program this microcontroller board you will need a programmer like AVR ISP programmer, you can also use an Arduino to program the ATtiny microcontroller.

These are the components of Tinusaur standard kit:

  • PCB: Tinusaur PCB
  • MCU, Attiny85: Atmel AVR ATtiny85 microcontroller
  • Socket, DIP-8: DIP-8 socket for MCU
  • H1, Header: Header 2×4, Female
  • H2, Header: Header 2×5, Female
  • ISP, Header: Header 2×5, Male, for ISP
  • RESET, Button: Tactile push button, for RESET
  • Power, Header: Header 1×2, Male, for external power
  • Battery, Header: Header 1×2, Male, for battery power on/off
  • Battery, Jumper: Jumper, 2-pin, for battery power on/off
  • C1, Capacitor: Capacitor 100uF, Low profile 5×5 mm
  • C2, Capacitor: Capacitor 100nF, Small
  • R1, Resistor: Resistor 10K, Small, 1/8W
  • Battery holder: Battery holder for CR2032
  • Battery 3V: Battery 3V, CR2032

There is also the Tinusaur Starter – another kit that has everything included in the Tinusaur Board plus a USBasp programmer, plus few other useful things.

Tinusaur was launched 3 years ago and it is now used  in schools and universities to educate young people in both hardware and software. The team behind Tinusaur had launched an Indiegogo campaign to produce more of Tinusaur boards and bring the cost down to $3 per basic board and allow more people to be able to get them. A recent crowdfunding campaign was held by the team, it didn’t meet its goal plus it had the price multiplied by 3!

With just $3 you can get now the Lite edition of Tinusaur, the same components as the standard kit excluding the battery and its holder. You can get the Standard one for $4 and the Starter one for $6.

This Tinusaur is open source, both the hardware and the software, and you can check out the source files right here https://bitbucket.org/tinusaur. 3 days are left to end this crowdfunding campaign, so if you are interested in getting your own Tinusaur with that amazing price you should hurry up! More details can be found at the official product page, getting started page and tutorials.

ICStripBoard – PCB rapid prototyping tool


ICStripBoard is a innovative cheap tool to enable rapid prototyping of surface mount integrated circuits (IC’s) and allow their usage in prototype electronics projects.

Inline surface mount IC’s come in a Variety of packages which are different sizes and these Printed Circuit Boards (PCB’s) have been designed to accommodate the majority of IC’s. Available in the four standard IC pitches (space between IC pins) of 0.5mm, 0.65mm, 0.95mm and 1.27mm. These boards have been designed as long strips on thin (half the standard thickness) 0.8mm FR4 boards which can easily be cut to the correct amount of pins which the IC in question has. This allows the strip to be cut for multiple IC’s on multiple projects.

The cut pieces can easily be soldered and glued to other prototyping products and in conjunction with traditional through hole components can be used to create unique electronic prototypes. These boards will allow you to experiment with multiple IC’s without having to build PCB’s and is far cheaper than buying alternative break out boards due to the fact you cut them to size and the pattern repeats down the strip allowing this to be done multiple times. (more…)

Panelizing made easy in Eagle

Sjaak shared a tip for panelizing PCB boards in Eagle:

Panelizing is done by machining a slot between two or more boards, but keep them attached by a small amount of PCB material (mousebites). I used to do it by hand: generated all the schematics into multiple sheets and then route the board and finally add the slots with mousebites in the PCB editor. I generally use slotwidth of 50 mil and the smallest drill possible (12 mil) 12.5 mil apart as breakingline. I tend to place the mousebites about 2cm from each other to maintain PCB strength.

Panelizing made easy in Eagle – [Link]