EAGLE library for 16X2 and 20X4 LCDs

These are the parts that I have used for quite some time for all circuit boards I designed that have LCDs. Free for the grab but please check the dimension of your LCD before using them as some suppliers have smaller/larger mounting holes and not all LCDs have the holes at the same locations. Some parts have only 3 mounting holes since the bottom right corner of the LCD would be right above the GPS connector on phi-2 shields. The 16X2 LCD with connectors on bottom left have been used for some projects too.

Link: http://code.google.com/p/phi-prompt-user-interface-library/downloads/detail?name=HD44780LCD.lbr&can=2&q=#makechanges

Ordering PCB from seeedstudio

Here is the updated tutorial:


This is a short tutorial on how to order your PCB from seeedstudio.com

I am not associated with seeedstudio but just a regular customer. They have competitive price and decent quality. They also recently automated design file submission process, although there is still some kinks.

Once you finish designing your PCB with EAGAL CAD, you should use seeedstudio’s CAM file to export the design into several files. The CAM exports many files but only the following are useful and should be zipped in a .zip file, per their sales page:

  • Top Layer: pcbname.GTL
  • Bottom Layer: pcbname.GBL
  • Solder Mask Top: pcbname.GTS
  • Solder Mask Bottom: pcbname.GBS
  • Silk Top: pcbname.GTO
  • Silk Bottom: pcbname.GBO
  • Drill Drawing: pcbname.TXT

Once you have a .zip file, direct your web browser to seeedstudio.com  and you will see their store front:


Once you are on their web store, look for “Services” on the navigation bar on the left and click it. It will bring up their services page, with three types of service.


The second one “Fusion PCB Service” will take you to their online PCB ordering page. Click “Fusion PCB Service” and you will see the following page:3

There are a lot of options on this page. I will list what they are below:

  • File: Pick the .zip file that contains your design. I have two zip files, Shield_V1.0.5.zip, and Power_supply_V1.0.2.zip. I will select Power_supply_V1.0.2.zip
  • Qty: Seeedstudio doesn’t make 1 PCB, the least amount is 10 PCBs. Go ahead and pick 10, unless you want 50 or 100.
  • Layer: You will pick 2 layers. This means you will have circuits both on top and bottom of your circuit boards. I don’t see many single layer PCB any more but they were popular decades ago.
  • PCB Thickness: Go ahead and pick 1.6mm. Most popular thickness is 1.6mm. If you want some added mechanical strength on your larger boards, you can go with 2.0mm.
  • PCB Dimension: This is the maximal size of your PCB. Typical sizes they provide are 5cm*5cm (about 2″*2″) for $10 (10 boards), and 10cm*10cm (about 4″*4″) for $25 (10 boards).
  • PCB Color: You can leave this as Green since other colors cost extra $10-$20. It’s just the look. Your PCB will be painted with color paint.
  • Surface Finish: Pick HASL (Hot Air Surface Leveling). It’s a technique that plates holes with hot molten solder and the excess is removed by hot air. You can also pick leadless HASL if you want to go green. You may upgrade to ENIG, which is Electroless Nickel Immersion Gold. Holes will be covered by a thin layer of gold to prevent oxidation.
  • E-Test: For somewhat sophisticated designs, E-testing is recommended. For something simple such as the power supply board, it’s not very necessary.

Say I have two designs, Shield_V1.0.5.zip, and Power_supply_V1.0.2.zip. I will first select Shield_V1.0.5.zip in the file selector, select everything according to the list explained previously (Qty=10, Layer=2, Thickness=1.6mm, Dimension=10cm*10cmColor=Green, Finish=Hasl, E-test=100%),  then push “Add to Cart”.

Then I will push “continue to shop” and be brought back to the PCB ordering page. I will pick Power_supply_V1.0.2.zip and select 5cm*5cm. Similar settings to the other design (Qty=10, Layer=2, Thickness=1.6mm, Dimension=5cm*5cmColor=Green, Finish=Hasl, E-test=50%) and add to cart. I’m not testing these boards 100% since they are simple.


After everything is added to cart, I would proceed to check out. You need to set up an account with seeedstudio and have a paypal account. Shipping is less than $10 but slow. I average about 3 weeks between design submission and delivery (to Mid-west, USA). You can also pay DHL and save maybe a week or more, although I never used it. I guess that’s it. Well, one bug on their site though: if you select a design zip file and push add to cart, but later remove the item from the cart, you can’t upload the same file anymore. I guess they buffer your file but don’t remove them when you remove your item from cart. You will have to change the name of the zip file if you do encounter this problem. I’m sure they’ll fix it soon.

Oh by the way, since you’ve read this far, I’ll tell you a secret or two:

  1. If you order $50+ at their store, they ship for free.
  2. If you order 10, you will likely receive 11 or even 12 boards. If you order 50, you probably get 51. Sometimes it’s cheaper to order 10 PCS the same design from time to time than ordering 50 pcs, since you get 10%-20% more boards and only like 2%-4% more boards with 50 PCS 😉

Middle click on laptops – for EAGLE

A quick trick in EAGLE is to middle-click while moving a part to mirror it, essentially putting the part from top layer to bottom layer in board view, or mirror a bottom layer part to top layer.

A friend asked me how to middle click on a laptop. Here is an answer I found on my laptop. Hope it helps you too.

Find mouse property either from control panel or bottom right corner of your screen.

  1. Click Device Setting ( the red symbol is Synaptics touch pad)
  2. Click Settings
  3. Select Tapping and expand it
  4. Select Tap Zone and expand it
  5. Select one of the zones you desire
  6. On the right side, select middle click.
  7. Click OK. You have just assigned the bottom left corner of your touch pad as middle click button. Tap it and it mirrors your parts.

New Arduino shield – Phi-1

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

I have developed this shield in my spare time to make prototyping with Arduino much easier. The shield, when assembled, has one LCD monitor, 6 buttons, real time clock and battery backup for keeping time, EEPROM for data storage, GPS connector, buzzer, LED, and two RJ11 connectors for things you absolutely want secured against pull.

Here is a video of a 360 degree view of an assembled Phi-1 shield:

Just running a clock with DS1307 Real Time Clock (RTC) module

Running a testing routine to make sure everything works

Running a fully-functional alarm clock (it woke me up this morning) Details of making the alarm clock is on a separate post. The code is listed near the end of this post.

Morse encoder: type in a sentence and translate it into Morse code.

Function list:

  • 16X2 LCD character display
  • 6 push buttons –  four arranged in arrow keys and two more on the side
  • 2 RJ11 ports for long and robust connections with sensors or control devices
  • Optional buzzer and LED in place of the RJ11 ports
  • Real time clock with battery backup keeps the time when Arduino is turned off
  • EEPROM for easy data logging keeps data when Arduino is turned off. Use 24LC256 or compatible I2C EEPROM
  • GPS connector and breakout for this popular GPS module (http://www.sparkfun.com/commerce/product_info.php?products_id=465)
  • Reset button for Arduino
  • All Arduino pins are brought out for maximal flexibility.
  • Hackable for more functionalities (see the end of the assembling)

 Possible projects with this shield:

  • Alarm clock
  • Standalone or PC data logger
  • Lab data acquisition system (Physics, Chemistry etc)
  • Weather station
  • Input or operating panel, like security panels or garage door opener
  • Handheld GPS
  • Morse code generator
  • The list goes on… 


Phi-1 shield documentation revision 11/19/2010

PCB design:


Fully assembled shield running clock:


PCB and parts:

Connector board design pictures:

Standard board breaks out connections from the RJ11 jack and 5V/GND. The prototype space has 5V/GND running down middle for convenience. You can make a TTL-RS232 circuit on it, or maybe power an opamp, add I2C A/D converter to it or else. The screw terminals are pretty convenient and their connections are brought out for prototyping. You can also simply plug it into a breadboard. It also has two LED indicators and has connections for X, Y, 5V and GND.

The relay board has a standard AC or DC relay with control signal coming through the RJ11 jack from the main board. Several screw terminals are included for wiring. A power jack is also included so that it can easily power a single piece of equipment with the relay. You can turn on and off an electromagnetor else light with it. 

This board passes the RJ11 connection to a 3.5mm stereo plug. It also has an LED indicator.

Assembling pictures:

Sample codes:

Clock display This is a basic program that displays the Clock. You can modify it to suit your needs.

Testing all functions This program tests everything, LCD, buttons, the clock, and EEPROM if you have one on board. Learn the basics of everything with this program.

Alarm clock (buzzer and LED) This program is a fully-functional alarm clock. You will find it more complex than the basic clock. If you can’t understand, try the Click display first.

Morse encoder This program allows you to type in a sentence in letters, numbers, and symbols. Then it plays it in Morse code. Use the arrow up and down to type letters (think old-school arcade game record) use left and right to move cursor. Use B to enter.

More to come!

I am coordinating an effort to have it made in a small quantity so it will be affordable. If I have one made, it will cost me around $30, but if I have more made, I could cut the cost down and possibly have it for $12. Leave me a message if you’re interested in getting one. I might be able to get my favorate electronics online store to sell these so you could buy the board along with all needed components in one purchase.

Updated photogate shield PCB – simple

I’ve decided to get rid of the buttons and LCD connector and make a bare minimal PCB for those that are only interested in using Arduino for photogates. This shield should work with both Pasco and ScienceSource photogates. I’ve used Pasco gates since the summer. I asked the tech at ScienceSource. Their gates are compatible with Pasco.
Here is schematic:

Here is the board:

Design file:

Simple photogate shield design

You can download it and have it made at a PCB online service. But making one or two is very costly (>$20 per board). If you want these made. Leave your contact info as a comment (your email address in the email field is not published) and I could coordinate an effort to bacth make for low cost (<$10 per board).

You will need a couple of 3.5 mm to 1/4 stereo plug adapter to connect to Pasco or ScienceSource gates. If you use the smaller gates, here’s the PCB for the smaller gates ($2.5 from various vendors). The part number is Sharp IA57HR:

Design files:

Simple photogate shield design

Again just getting a couple of these made will cost around $20, but batch make saves a lot (a few bucks each). Let me know if you want these.

Download these programs:

PC software

Arduino source code

How to add some pin numbers to your PCB design?

Many times I feel uncomfortable with the Eagle PCB program under the board view, because I’m looking at a pin header, and there’s no pin number. Which side is pin 1? If I go back to the schematic, I see all the pin numbers 1 through 8. Then back to board view, there’s no numbers. I’ve gotta fix this.

Here is how to display pin numbers of a pin header on the board view. Well, there isn’t a way. The pin header numbers don’t exist in the package so there’s nothing to display. In order to display pin number, you need to open the Eagle library and add those numbers yourself. Here’s how.

First I added an 8-pin header onto my schematic and connected pin 1 to a resistor. I turned to the board view, no pin nmuber:

Then, I go to Eagle’s control panel and double-clicked the library that has this half-cooked part, the library is pinhead.lbr.

Then I go and click package button and choose the 1X08 package.

With the text tool, I added 1 and 8 and repositioned the other texts. Save it.

Then I go back to Eagle and choose menu Library->update all.

Here is the new look of my board view:

This will not only make the number 1 and 8 display on the board view, but also add the numbers to the final PCB’s silk screen, which will help a person populate the board. So don’t put all the numbers, the board gets too busy.

Here is another way from macegr on arduino forum:

In DRC>Shapes>First you can choose the shape of pads marked “First” as you already tried. The problem is that pretty much nobody marks the first pin when they’re creating their part packages. You can go into the library, call up the appropriate package, right-click on the first pad, choose Properties, then check the “First” box. Now, if you use that part on a board, when a First shape is chosen in DRC, the shape of that pad will change to what you selected.

It doesn’t add that much flexibility and isn’t that much more convenient than just changing the shape of the first pin permanently in the library.

In general you’ll want to mark the first pin on silkscreen anyway. When you’ve soldered a header in place, the square pad isn’t visible anymore.

%d bloggers like this: