Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

My Begginnings With CadSoft Eagle, Critique Appreciated.

Status
Not open for further replies.

Jugurtha

Member
So I had a flu… Wouldn’t go out.. Couldn’t anyway… And decided to learn CadSoft Eagle.

I opened a thread about Microcontrollers recently, and I wanted to build a PIC Programmer … I’ll eventually buy one (PICKit 2 or something), I just wanted to lose my PCB virginity with this project.

Anyway, I wanted something simple, so I exluded de facto clones with microcontrollers which have to be programmed in the first place inside them 
(The ones I found had a PIC18 inside, like PICKit2 clones).

Anyway… Eagle thingy..

The project I chose is a JDM Serial PIC Programmer… (JDM stands for Jens Dyekjaer Madsen) which I found here :
http://webspace.webring.com/people/jl/leon_heller/pic.html

And which the author found here :
**broken link removed**

He substituted the 25 pin connector with a 9 pin connector ( DB25 – DB9 … RS-232) .. I like the DB9 more.

I worked with the schematic from the original page. Have in mind though that pins like TxD (2) or GND (7) refer to the DB25 Pinout, while I’m going to do a DB9 version.

To get the corresponding pins in a DB9, you can search for something like « RS232 pinout » or « DB9 pinout » or something like that..


Anyway … Here are schematics I did…

Serial JDM PIC Programmer_Rev1.1.png

Serial JDM PIC Programmer_Rev1.4.png (Notice how angles are « rounded », it’s called « Mitering », there’s a button for it on the left)

Here’s ultimately the « Board », revision 4… The file named "General.png". Not all layers are displayed here.

I drew a rectangle on the whole surface on vRestrict, I didn’t want any Vias in there. I’m a beginner, so I didn’t want to do that yet.

I drew two small rectangles under the PIC on two layers tRestrict and bRestrict, they’re a match. I didn’t want any routing under the PIC, because I thought it would better (Less heat influencing its functionning, and I wanted to diminish the influence of a field that would be created by the the current in a hypothetical route.)
I had a problem as shown in the image, where these rectangles crossed over the pads, and it showed errors when I hit DRC (Design Rules Check).

I couldn’t draw accurate enough rectangles to include the whole chip, so I increased the Grid resolution by chosing 5 mils in « Size ». I could draw more my rectangles with more precision.

I think I managed to have a single sided board before (drawing a rectangle in tRestrict that included the whole surface), but NOT with that disposition. This one is very symmetrical as you can see here :


Not very big board, 1.8’’ by 2.135’’.

My questions are :

1. Concerning the schematic : Are there guidelines or Good practice rules or something ? I know I can make Non visually connected components to make things « neat », but as long as it’s not complicated, I prefer to « see » the flow of current and stuff… But anyhow, is there something that can be improved in the schematic ?
2. Am I thinking too much about the board ? Protecting the chip from stuff and all ?
3. I can do « Copper Pouring » for say Ground or in my case N $3 ‘because it’s used a lot ‘. I think that i twill spare some un-necessary etching and will save etchant (Less copper to etch, less molecules of etchant will be used, so quantity of etchant will last longer, etc)… How would these « planes » affect the functionning of the board practically…Any unliked capacitive effect or something ? How bad is it ?

I know it’s been only a day since I’m using Eagle and I’ll discover stuff as I work with it and make boards. I’ll start making them as soon as I can.

Thanks,

~Jugurtha Hadjar,
 

Attachments

  • Serial JDM PIC Programmer_Rev1.1.png
    Serial JDM PIC Programmer_Rev1.1.png
    42.9 KB · Views: 512
  • Serial JDM PIC Programmer_Rev1.4.png
    Serial JDM PIC Programmer_Rev1.4.png
    43.3 KB · Views: 572
  • General.png
    General.png
    7.8 KB · Views: 359
  • tRestrict, bRestrict Under PIC.JPG
    tRestrict, bRestrict Under PIC.JPG
    170.6 KB · Views: 377
  • N$3_Copper_Pouring_Top_Layer.png
    N$3_Copper_Pouring_Top_Layer.png
    73.1 KB · Views: 378
  • Restrict_Error_Layer_16.JPG
    Restrict_Error_Layer_16.JPG
    123.4 KB · Views: 401
  • Restrict_Error_Layer_16_Zoom_In.JPG
    Restrict_Error_Layer_16_Zoom_In.JPG
    156.3 KB · Views: 423
  • Ripup_and_Route_Again_Previous.JPG
    Ripup_and_Route_Again_Previous.JPG
    86.9 KB · Views: 344
  • Ripup_and_Route_Again_Next.JPG
    Ripup_and_Route_Again_Next.JPG
    87.7 KB · Views: 341
Last edited:
Another question: I don't really like when routes pass under resistors or diodes, because these components lose accuracy with temperature. I can do restrictions under each resistor, etc... Is this too much ? I mean, some boards will eventually contain lots of components, and it will be more complicated to route, how can it be done ? Do I have to write some script that will draw a restricted area over each of these components ?
 
You need to consider a couple of points:

1) Most modern PC's don't have serial ports any more, so you can't use a JDM.

2) The JDM is the worlds most unreliable programmer, it's always struck me as it was designed purely as a clever piece of design, and never as a wroking practical design.

The days of serial and parallel port programmers is long over, USB ones are the way to go now - as the writer of the worlds first Windows PIC programmer software I've long since moved to USB and MPLAB :D
 
I don't really like when routes pass under resistors or diodes, because these components lose accuracy with temperature.
This is not a problem.
I can do « Copper Pouring » for say Ground or in my case N $3 ‘because it’s used a lot ‘. I think that i twill spare some un-necessary etching and will save etchant (Less copper to etch, less molecules of etchant will be used, so quantity of etchant will last longer, etc)… How would these « planes » affect the functionning of the board practically…Any unliked capacitive effect or something ? How bad is it ?
Copper Pouring is good. Ground and Power! Yes the capacitance goes up a little. For you simple circuit this not a problem.
 
On the copper fill, pin5, is an 'island'. Try moving the two traces around pin5 to the left 0.1 inch so pin5 connects to pin 6,7,8,9 better.
 
I marked places where you can move a trace and get the ground to flow into more areas. It is good to have more ground.
 

Attachments

  • pcb.jpg
    pcb.jpg
    55.4 KB · Views: 348
Hi Jugurtha,

first thing to take care of a safe distance between pads and traces on a PCB design. If you don't use a PCB made by a board house it won't have a solder stop print, thus making shorts more easily.

With a circuit like that you should try to get away with a single sided board and substitute the top layer using wire jumps connecting to the bottom.

Acute angles are a "No-No" on a good PCB design. Mechanical stress (caused by heat or other factors) on traces will half when using two 45 degrees angles instead of one 90 degree angle. Moreover two 45 degree angles just look better than a sharp "turn". Sometimes you can't avoid an acute angle when a straight trace is being intercepted (for a junction) at 90 degrees. Even that should be smoothened to make two 45 degree angles into the junction. It can be done using the same trace width drawing two small traces using "wire".

Working at clock frequencies around 20MHz there is no problem when "throwing" some traces underneath an IC going alongside with sufficient space between traces and IC pads.

I disagree with Nigel Goodwin saying modern PCs do neither have a serial nor a parallel port. It's just the cable connectors (SUB-D9 and SUB-D25) for direct access from the rear connector panel which are missing.

I purchased a total of eight new mainboards this year with the smallest (Micro-ATX from BIOSTAR) all being equipped with onboard two row connectors (like the USB and sound connector for the front panel) offering connection to an additional ribbon cable connection between mainboard and rear connector panel (that's where you find the connector for the monitor using a PCI-E graphic acellerator card - onboard video acelleration is really not what I'd call "creme de la creme".)

Those connectors are available at average computer shops pretty cheap. Just take along the connection diagram (There are differences in connections mainly for the serial port.)

I would like to design a board for you to see the difference of design. Therefor I'll pass my email address in a PM.

Kind regards

Boncuk
 
Last edited:
Hello, Nigel

Nigel Goodwin said:
1) Most modern PC's don't have serial ports any more, so you can't use a JDM.

I guess, yes.. Something to have in mind is that this project is a "solitary pleasure" kind of thing :D It is aimed to Me and my PC does have a serial port..

The purpose of this project is two points:

1.Losing my V-card, PCB/CAD wise.

2.Having a tiny programmer to eventually program the PIC18 that we find in more elaborated PIC Programmers so I could make one of those beautiful things.

So it's making a programmer that I'll use to program a PIC that will land on another programmer..

I know I can eventually give the dude in the shop a file and tell him to load it in the PIC and build a Good programmer, but I'm doing this for the little bits of knowledge I'll get doing things myself (Knowing that, economically and practically, it isn't that much interesting to do them myself).


Nigel Goodwin said:
2) The JDM is the worlds most unreliable programmer, it's always struck me as it was designed purely as a clever piece of design, and never as a wroking practical design.

I didn't know that. I knew it was old, for sure.

Could you point me to some stable USB PIC Programmer that does not include a PIC18 inside ? Like, a very basic one more stable than the JDM and with USB ? Is it one of those things that create a virtual com port ?

I asked in a shop about programmers, and they told me they had a USB programmer that pretty much programmed 'many' PICs. I asked the guy if it had a ZIF. He said he wasn't sure. He said they sold them for about 35 dollars. (The ferric chloride sells for about 5 dollars a liter. The 40 pin ZIF sells for 20 dollars, maybe cheaper on another store I'll go to next).

The days of serial and parallel port programmers is long over, USB ones are the way to go now - as the writer of the worlds first Windows PIC programmer software I've long since moved to USB and MPLAB

:) I'll eventually move to better solutions, now I'm just doing it for the PCB/CAD primarly, and the PIC programming is a secondary goal.

Next I'll do it with an inverse order of priorities.

-

Hello, Ron

ronsimpson said:
Copper Pouring is good. Ground and Power! Yes the capacitance goes up a little. For you simple circuit this not a problem.

Why do we do it for Ground and Power and not for others ? Is that in the sens that little instability on the the Power part isn't as important as the instability that would be caused if we did Copper Pouring on say a data signal ? In other words: Do I have to stick only to Ground and Power when Copper Pouring or can I chose other signals ?



ronsimpson said:
Jugurtha said:
I don't really like when routes pass under resistors or diodes, because these components lose accuracy with temperature.

This is not a problem.

All right :)


ronsimpson said:
On the copper fill, pin5, is an 'island'. Try moving the two traces around pin5 to the left 0.1 inch so pin5 connects to pin 6,7,8,9 better.

My bad, this was from revision 1.2 or 1.3 I think (Note how routes pass under the PIC, of which I restricted the area in revision 1.4).. Nonetheless, I couldn't figure out the meaning of what you wrote, I know it's for the copper to "flow" around and cover more aread, but I can't see the meaning of the traces you drew.

See attachement Revision.1.3.3_air_wires_corrected_Pads_Dimension_Bottom.

These are the Pads and Bottom layers (+Dimension) from Revision 1.3.

I had 3 wires that couldn't be routed and stayed as air-wires because I had put a rectangle in the tRestrict layer (I wanted a single sided board), and the software couldn't find a way to do it.

Notice how it is better looking, and I guess doesn't contain what I think you meant by an "island" (A rather big surface with copper around)

I chose the RS-232 GND as a signal for the polygon, instead of N$3 like in the picture I provided before.

-

Hi Boncuk,

Boncuk said:
first thing to take care of a safe distance between pads and traces on a PCB design. If you don't use a PCB made by a board house it won't have a solder stop print, thus making shorts more easily.

Noted. I found the "clearance" button, etc... I'll search for good numbers to put..

Boncuk said:
With a circuit like that you should try to get away with a single sided board and substitute the top layer using wire jumps connecting to the bottom.

Hmmm... Wire jumps... :) I'll try to get away with a bigger board, I'll try to have something that isn't bread-bordy. Maybe I'll increase the size of the board or something and route. If I can't, I'll make wires, get it to work, and tackle double-sided boards later. I got a single-sided with just one wire that was unrouted, maybe I'll start with that. It's more interesting, you're right.

Boncuk said:
Acute angles are a "No-No" on a good PCB design. Mechanical stress (caused by heat or other factors) on traces will half when using two 45 degrees angles instead of one 90 degree angle. Moreover two 45 degree angles just look better than a sharp "turn". Sometimes you can't avoid an acute angle when a straight trace is being intercepted (for a junction) at 90 degrees. Even that should be smoothened to make two 45 degree angles into the junction. It can be done using the same trace width drawing two small traces using "wire".

100% agree on that. Hell, it even bothered me on the schematic, and I "mitered" the angles. Straight angles just don't do it for me. I did re-route one angle, but it's kind of tiring: I did "ripup" and then re-routed it. But when I missed, it said something about back-annotation. It's a daunting process.

Is there a setting to make it do two 45° automatically ? There's something in the DRC settings, but it only "signals" angles that aren't a multiple of 45°. 90° is a multiple of 45, so I can't use that..

I've never thaught about mechanical stress in this design, although it makes perfect sens when I did canalisation and I chose elbows, we always picked two 45° instead of a 90° for better water flow... Eh ! Will sleep less dumb :)


Boncuk said:
Working at clock frequencies around 20MHz there is no problem when "throwing" some traces underneath an IC going alongside with sufficient space between traces and IC pads.

All right, so a lot less that is a problem on bread-board, and 20MHz isn't a problem on a PCB. Cool. I'll get to that when (if ?) I'll start working on high frequencies projects.

Boncuk said:
I would like to design a board for you to see the difference of design. Therefor I'll pass my email address in a PM.

That would be cool... I'll send you an email with attachements to the adress you provided.


Thanks, everyone .. :)
 

Attachments

  • RS323_GND_Copper_Pouring_Revision.1.3.3_air_wires_corrected_Pads_Dimension_Bottom.png
    RS323_GND_Copper_Pouring_Revision.1.3.3_air_wires_corrected_Pads_Dimension_Bottom.png
    9.8 KB · Views: 310
  • 1_air_wire_tRestrict.png
    1_air_wire_tRestrict.png
    50.2 KB · Views: 323
Last edited:
Hi Jugurtha,

here is my board design, one image with the copper traces and the other on including the ground pour.

Boncuk
 

Attachments

  • JDM-01.gif
    JDM-01.gif
    27.9 KB · Views: 375
  • JDM-02.gif
    JDM-02.gif
    29.3 KB · Views: 376
Beauty and the Beast, man ! :D .. It looks really cute, and I notice that the board is less than twice the DB9 connector.. That's kind of small ..

I also notice there isn't a lot of wire length .. It's tiny..

Meanwhile, I continued to work on my board, and something hit me, something embarrassing...

I started using the "SHOW" command/button more and more... And I was astonished following the signal, to see for example that a signal would go from DB9 pin6 all the way up to a component, then get out and make all the way down to pin7... It made no sens.. Why didn't I just put the component near the pins ? And it wasn't only one component that was like that..

So, I would get the component near the signals it served, and started optimizing a little bit.

First consequence: I managed to get single sided boards. Not only that, but it was possible to have single boards frequently.

If I didn't like something, I would imagine a better route and follow the signal (I did SHOW and I see) .. Then I arrange the component, and "ripup;" in the command window and hit Enter and then "auto;" and hit Enter. (Better than using the button in my experience).

Getting single sided boards was no more like a Halley thing, it was recurrent and it's reassuring. I'll keep improving the thing little by little, and hopefully get to do a beautiful thing like yours..

My questions regarding your design:

With which parameters did you route to get this ?

I notice when there's a junction between nets, yours is smoothed out, it's not a sharp junction.. How did you do that ?

How did you force your angles to all be 45 degrees incrementations ?

Is it okay if I do Copper Pouring for another signal than Ground ? You noticed that the N$8 is all over the place...


I joined the Rev.1.5 in the message here. I did copper pouring for the RS 232 GND signal:

Before routing, I put a rectangle on bRestrict layer covering the board. (To get a single sided board with routing on the Top layer and not touching the bottom layer)

Autoroute. Got a single sided board.

Removed the bRestrict rectangle from the board.

Drew a polygon in the Bottom layer (16)

Renamed the polygon as the GND signal.

Hit Ratsnet. Got a HUGE copper pour with some thermal pads/connections.



Thanks, H, for your time.. I appreciate,
 

Attachments

  • Single_Sided_Rev.1.5.png
    Single_Sided_Rev.1.5.png
    25.2 KB · Views: 325
  • Ground_Plane_Cop_Pour_Bottom_Pads.png
    Ground_Plane_Cop_Pour_Bottom_Pads.png
    3.9 KB · Views: 313
Last edited:
My questions regarding your design:

With which parameters did you route to get this ?

I didn't use any parameters. Every trace is routed manually using a grid size of 0.3175mm

I notice when there's a junction between nets, yours is smoothed out, it's not a sharp junction.. How did you do that ?

I already described it in a former reply. (#7)
Sometimes you can't avoid an acute angle when a straight trace is being intercepted (for a junction) at 90 degrees. Even that should be smoothened to make two 45 degree angles into the junction. It can be done using the same trace width drawing two small traces using "wire".

But here it's again:

Use the same grid size you used for routing. Select the layer you want to draw on, then select "wire" (just below "route") and draw two wires onto the junction using the same trace width as you used for the original trace.

Being able to read is not a disadvantage. :p

How did you force your angles to all be 45 degrees incrementations ?

Simply click the R/H mouse button until you get traces at an angle of 45degrees.

Is it okay if I do Copper Pouring for another signal than Ground ? You noticed that the N$8 is all over the place...

Why should a single signal have priority over circuit ground?

Why do you overcomplicate a thing like a ground pour? Just switch to "bottom" (in that case) and draw a polygon of 0.254mm around the board. Hit "ratsnest" and you're done.

Also try to avoid long names like this: SYSTEM_RS_232_GND. If you get a typo when naming the polygon you won't get the proper ground pour. Just call it SYSGND.

Regards

Boncuk


P.S. A schematic is not a knitting or sewing pattern. Kick out all your curved bends and replace them with 90 degree angles. Make sure the net names won't be changed. If they do it will mess up your board design.
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top