Author Topic: The Living PCB Design Thread  (Read 382590 times)

0 Members and 1 Guest are viewing this topic.

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #150 on: Wed, 22 April 2015, 15:28:50 »
Sorry, I was just trying to be funny =)

If you check the VCC and GND pins on the ATmega on the Teensy you will find that they are all connected to where they are supposed to. And there are bypass capacitors spread out around the chip as well.

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #151 on: Wed, 22 April 2015, 15:51:03 »
You should connect all the Vcc and GND pins the package has. And you should add all the bypass capacitors especially if the common power filtering capacitor (C2 on my picture) is not very near the controller package. The bypass capacitors should be SMD so that you can put them within 1-2 millimeters from the package pins. If you cannot use SMD bypass capacitors and the common power filtering capacitor is as near as possible to the package then you can leave out the bypass capacitors (but still connect the pins) since the through hole bypass capacitors will not help much for such a small package. The scheme I posted does not have the bypass capacitors drawn. If your supply voltage is significantly higher than the minimum for the given controller clock and the main filtering capacitor is near the package then there is a good chance it will work well without the SMD bypass capacitors. I would rather put them on the final revision though.

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #152 on: Fri, 24 April 2015, 05:04:34 »
I'm not sure I would be fudging around that much with the Reset pin. On the Teensy they didn't put any extra components on it. It has an internal pull-up which seem to be perfectly sufficient. I have another development board which has a lot of extra junk on the reset pin, and it has troubles starting from the application when powered up. I think this is due to the Reset pin being pulled low at startup before C2 (or corresponding on my board) has charged up. Perhaps the D1 diode solves that issue. But I really don't think you should need to fuss around with the Reset at all..

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #153 on: Fri, 24 April 2015, 08:23:54 »
I agree, I do not use the stuff around the reset myself on my ATXmega board. I have only a switch there which can short reset to GND and nothing else. But ATXmega has better ESD protection on the reset pin than ATmega.

I can roughly explain why the example scheme is there the way it was drawn. I did not do any simulations so it is only a rough idea and guesses.

ATmega32u4 can use parallel programming which is started with 12V applied to the reset pin. To allow this there is no (or lower) ESD protection on the reset pin. The diode D1 is there to provide the ESD protection: any voltage higher than 5V from a user when he presses a reset button (the reset button is not drawn in the scheme) should be shorted to Vcc. The C8 is there to provide more stability for reset pin. No idea how it could be problem for start-up as you indicated. If you keep reset low at start-up it should only postpone the start-up (since the voltage eventually rises and it should rise later on C8 than on C2 since C8 is powered from C2 through 10kΩ pull-up resistor R3 (and the internal reset pin pull-up which is probably about 20kΩ or more).

So my conclusion is:
  • D1 is there for ESD
  • C8 is there to have more stable reset (probably for the cases when a small ESD happens)
  • R3 is there to deactivate reset at start-up sooner (otherwise it would take longer because of C8)

Offline sypl

  • Posts: 116
Re: The Living PCB Design Thread
« Reply #154 on: Sat, 25 April 2015, 17:22:56 »
Thanks again, fellas. This is what I have now, which is looking more and more just like the teensy schematic. Any egregious errors?
98494-0

I added a crystal and connected vbus to vcc (forgot to do that previously). If I understand correctly the .1uF capacitors must be placed as closely to the chip as possible, correct?

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #155 on: Sun, 26 April 2015, 04:36:05 »
If I understand correctly the .1uF capacitors must be placed as closely to the chip as possible, correct?
Yes.

Do not connect RESET pin to GND in the PCB. The chip would never start (exit from reset). You can pull it out to a connector as you indicated in the schematic and then (if you want to externally reset the chip) you would connect the pin to ground temporally (probably with some push button).

The 1µF capacitor between VBUS and GND looks small to me (but it will probably work as you have it). I would put there something between 10 - 20 µF.

And maybe something else I did not notice :)

Next time assign unique references to the parts so that it is easier to talk about them.

Offline hasu

  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: The Living PCB Design Thread
« Reply #156 on: Sun, 26 April 2015, 23:07:25 »
The 1�F capacitor between VBUS and GND looks small to me (but it will probably work as you have it). I would put there something between 10 - 20 �F.

Bypass capacitance of device is limited to 1-10uF if I read the spec correctly.

From 7.2.4.1 Inrush Current Limiting of USB2.0 specification,
Quote
The maximum droop in the hub V BUS is 330 mV, or about 10% of the nominal signal swing from the function.
In order to meet this requirement, the following conditions must be met:
• The maximum load (C RPB ) that can be placed at the downstream end of a cable is 10 μ F in parallel with
44 Ω . The 10 μ F capacitance represents any bypass capacitor directly connected across the V BUS lines in
the function plus any capacitive effects visible through the regulator in the device. The 44 Ω resistance
represents one unit load of current drawn by the device during connect.
• If more bypass capacitance is required in the device, then the device must incorporate some form of V BUS
surge current limiting, such that it matches the characteristics of the above load.

And see Upstream Facing Port Bypass Capacitance(CRPB) of Table 7-7. DC Electrical Characteristics.
« Last Edit: Sun, 26 April 2015, 23:09:53 by hasu »

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #157 on: Sun, 26 April 2015, 23:58:59 »
Regarding the capacitor on Reset, my idea is that when plugging the USB in GND is first pulled low, this pulls reset to GND. When VCC is applied a fraction of a second afterwards the capacitor will need time to charge up before Reset isn't considered low by the chip anymore. This is done through the 10kΩ resistor R3. This takes some time proportional to RC (~10kΩ×4.7nF). Anyway that is what I guess is happening to my troublesome board.

I first thought the diode could fix that by quickly letting C8 charge up, but that would be backwards. Electrons moving one direction and current the other bit me once again...
« Last Edit: Mon, 27 April 2015, 05:22:25 by bpiphany »

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #158 on: Mon, 27 April 2015, 04:09:57 »
I see. Other devices on the same bus may have a problem if that capacitance is more than 10µF and the charging current is not limited by some other way.

Offline twiddle

  • Posts: 165
    • Portfolio
Re: The Living PCB Design Thread
« Reply #159 on: Mon, 27 April 2015, 09:29:07 »
Just figured I'd toss one of my designs in here, more as something for others to take a peek at rather than to specifically canvas feedback, but I'll not complain if anybody has any to offer (the one ratline visible is a graphical glitch, the pins are connected and DRC reports no errors).


Next controller experiment. STM32F373CCT6 breakout on a 2-layer board. Figured I'd see how I went breaking *all* the I/O pins out. You can really tell the difference between this STM and the NXP/Freescale parts I was experimenting with before - I think the STM design has prioritized pin-compatibility at the expense of good routing.
Sent this off to the proto-fab, will update my controller experiments thread with the actual board and how it all goes when I get the boards.

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #160 on: Mon, 27 April 2015, 11:19:49 »
I'll plan to try some STM32F373 too. Not for a keyboard though.

Offline sethk_

  • Grand Master Wizard Pizza
  • * Esteemed Elder
  • Posts: 2710
  • Location: Pittsburgh, Pennsylvania
  • www.kbdhub.com
    • My webstore
Re: The Living PCB Design Thread
« Reply #161 on: Sat, 02 May 2015, 09:39:37 »
I am trying to make a USB powered LED tester, and I think this is all I need, but it is giving me errors. Any help would be appreciated! (and the diode is only there for the holes, I am putting in a throughole resistor)


Offline joey

  • Posts: 2296
  • Location: UK
Re: The Living PCB Design Thread
« Reply #162 on: Sat, 02 May 2015, 13:42:05 »
pwnnarwhal needed a PWR_FLAG on VBUS. (I told him on IRC and he just told me it's working!)

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #163 on: Tue, 26 May 2015, 05:44:35 »
This is a response to this message: https://geekhack.org/index.php?topic=62667.msg1758789#msg1758789

We tried a laminator (it can take ~2mm thick items) but it did not work well. It did not heat the toner enough to stick well. Even when we run it about 5 times through it. The best option which works fine for us is a simple iron set to "wool" setting (no idea what the actual temperature it is) and ironing just like closes. That means not a simple press and holding under preasure for some time but a sliding movements over the paper/pcb sufface. Do not use much preasure since it would flatten your traces, make them thicker, and in the worst case it could merge adjacent traces. Then put it in water about 37°C hot for about 5 minutes and rubbing the paper off with fingers and tooth brush.

This works somewhat okay with press-and-peel, but for the glossy paper it tends to make the waxes in the paper bond to the toner, and the paper is then really hard to remove and interferes with the etching process.
We may be lucky with the glossy paper from the old catalog. But what you describe is exactly what we got with the expensive photo paper. So an expensive photopaper can cause the same problems even with a good (low temperature) toner.

Small vias are a problem that is the reason I use huge Ø 1 mm vias using Ø  0.5 mm hole. Ø 0.5 mm drils are not expensive over here (it is in the range of tens of cents) and if you have a drill press then the drill will not break easily. The other thing is that all the hole driling is rather booring so we start to prefer SMD components. I'm thinking of putting a drill on my 3d Printer so that I can avoid it. But chemical etching of the traces works well enoug for us. May be we are just lucky. I think it is good for simple prototypes.

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #164 on: Tue, 26 May 2015, 06:15:47 »
Prototype batches of PCBs are pretty cheap. Maintaining a home brew process that is used only sporadically isn't quite justified for me myself. There is a bit of a wait to get the PCBs from the manufacturer, but if you can live with that I see few reasons to muck around at home any more...

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #165 on: Tue, 26 May 2015, 11:48:19 »
Turnaround is the only point. You can have a small PCB etched in about an hour (maybe even quicker) and drilled in another one (well maby more if you have a lot of holes).

Price may possibly be the second point. But here it depends whether you enjoy doing it (i.e. should the time be included in price?), and how reliable unregistered mail is in your location (does unregistered mail like to get lost in your area?). Or mabye you are a lucky one and there is a cheap PCB shop in your town. For me, if I would like to use a local shop (where delivery is reliable) to make one piece of 51x66 mm single side PCB then the price would be about 40 €. I can make this at home in about 2 - 3 hours for material cost of about 2 €.

Offline vvp

  • Posts: 886
Re: The Living PCB Design Thread
« Reply #166 on: Sat, 30 May 2015, 18:53:33 »
Just an example of a simple toner transfer result. This is also a bit complicated for home etching (too many holes). But easier than building it on a bread board.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #167 on: Fri, 10 July 2015, 14:06:05 »
I'm working on designing a business card I can give out to my friends at cons (taking inspiration from i3oilermaker ;) ) and would appreciate any feedback people may have on my design. The schematic is pretty straightforward:



Here's how I've laid out the parts. I'd like the keyboard to fit into a small area (currently 20x40mm) so that people can cut it down to just the one key if they want.



And here's the rest of it (still a work in progress) for anyone who is wants to see the whole project in progress.


Offline komar007

  • Thread Starter
  • Posts: 712
  • Location: Poland
    • komar's blog
Re: The Living PCB Design Thread
« Reply #168 on: Fri, 10 July 2015, 15:33:20 »
Hi,
nice design, but let me share a couple quick concerns:
1. I am not entirely sure about atmega32u4, but most atmegas do not have internal pull-up resistors (or they have some very weak ones) on the RESET line, so I always put 10k there; unless you're sure it's okay like this, I'd add an extra resistor,
2. your traces look very thin (4mil?), not many places will produce such a board cheaply, if that really is 4mil, even oshpark won't do it, and they do have very good specs; I think this board should be easily routable with 8/8,
3. U$3 - why are both switch pins connected to uC lines? You could connect the other one to ground,
4. USB is based on differential D+ and D- lines, so it's recommended to keep their lengths equal and the 2 lines as close to each other as possible; I'm almost sure your design will work in most conditions, but for the highest frequency lines on board, I would try to keep them on the same layer and close to each other,
5. it is very highly recommended to put one 100nF cap for each VCC/GND pin pair of the micro, as close to the chip as possible; this will supply the higher current during peak consumption and eliminate brownout,
6. watch out for your clearances, especially around the qfn package; the pad in the middle has to be soldered (to ground, I think), so you have to make sure the soldermask completely covers those traces around it,
7. if you're going to have the board soldered, remember about proper preparation of the solder paste layer (which isn't shown here), in particular, you cannot apply a square of solder paste as big as the thermal pad of the QFN, or the chip will be lifted too high by the surface tension and the little pads will end up floating above the board; consult google for "qfn thermal pad paste pattern",
8. use thicker power lines, I suppose even 4 mil should be enough for a chip that won't take more than 30mA, but it's good practice to use significantly thicker VCC and GND lines if possible,
9. and last but not least - consider adding a ground pour (on both sides of the board), this will provide additional shielding (especially of the USB differential pair) and shorter ground loops in some cases.
« Last Edit: Fri, 10 July 2015, 15:35:49 by komar007 »
GH60 rev. B w/ ali's case|Cherry G80-3000 HFU/05|IBM Model M (51G8572)
Check out the GH60 project! | How to make a keyboard

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #169 on: Fri, 10 July 2015, 16:23:32 »
Thanks for the very detailed feedback. I'm already understanding this a lot better than I did.

1. I started with the teensy schematic, which doesn't have a pull up resistor there. I actually considered not hooking up the reset at all, but I wasn't sure if I'd regret that or not. Is it worth the extra space to add the resistor too?

2. I sent a different circuit with thin traces to dirtypcbs, and that didn't seem to affect the cost. If it's more expensive at some houses to use traces that thin I'll adjust them bigger now.

3. I debated this one. It came down to it being easier to modify an existing TMK firmware if I just made a 1 switch row, but if I'm gonna make my own fork of TMK anyway it's probably not bad.

4. Good to know. I've been using the autorouter so far but maybe I should route those manually first instead.

5. At first I was gonna ask why the teensy didn't have those, but now I see I simply missed them. Adding them in.

6. I wondered about those. The autorouter likes to sneak traces in there. I'm using .1mm, perhaps with .2mm it'll avoid that.

7. I'm still debating about whether I'll have them assembled or if I'll do it myself. I probably won't make more than 15 or 20 depending on fab costs. Thanks for the pointer about the pad.

8. I'll bump those up to .3mm.

9. Sounds like the perfect finishing touch

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #170 on: Fri, 10 July 2015, 18:55:19 »
Here's revision 2. No ground pour yet but it should incorporate all your other feedback. I couldn't fit a reset button into this iteration, will I end up regretting that?





(Edit: uploaded the wrong images at first)
« Last Edit: Fri, 10 July 2015, 19:08:21 by skullydazed »

Offline komar007

  • Thread Starter
  • Posts: 712
  • Location: Poland
    • komar's blog
Re: The Living PCB Design Thread
« Reply #171 on: Wed, 15 July 2015, 07:29:24 »
I like revision 2.

1. I wouldn't add a physical reset button to such a small board, I'd probably design a PCB based reset "button" - 2 exposed pads near each other that you can short with a piece of wire; as for pull-up resistor, I couldn't find in the datasheet if it's really necessary or not, so I'd still put one there just in case or at least leave a footprint which you can just not populate later;
2. if your manufactuter is OK with thin traces, then go ahead, but sometimes they'll only find out something is not within specs after manual inspection and will refuse to proceed or charge extra and I like to always keep the board compatible with a wide range of manufacturers;
3. okay, so a 1x1 matrix for compatibility with firmware, understood;
4. most autorouters are really poor, I wouldn't recommend any:/;
5. -
6. I'd say 0.2mm (8mil) is the thinnest trace to use if you don't want to limit yourself to more expensive manufacturers, that's the basic rule I use: I go below 8mil only when I need to; BTW there's nothing wrong with having traces as wide as the QFN pads and no distinction between pad and trace, provided that the solder mask has holes of the right size;
7. for a quantity of 10 or 20, dispensing solder paste onto the QFN pads will be a nightmare (although totally doable with a bit of practice), so I recommend a $5 stencil from oshstencils which makes doing this a breeze, but if you're going to use it, make sure to design the thermal pad properly, because it'll be hard to manually remove some of the excess paste from there without destroying the blobs on the pads;
8. or even to .4mm if you have the space;
9. -

10. it's good to expand the solder mask a bit (1 mil max), so that the solder mask openings are larger than the pads - this will protect you from misalignment errors which occur a lot; when choosing the solder mask expansion size, try to choose a value small enough to have the mask remain between the QFN pads or it might be hard to hot-air solder without making bridges otherwise.

Good job and good luck with the the remaining work!
GH60 rev. B w/ ali's case|Cherry G80-3000 HFU/05|IBM Model M (51G8572)
Check out the GH60 project! | How to make a keyboard

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #172 on: Fri, 17 July 2015, 12:36:12 »
And, here's revision 3. I swapped out all the generic parts with parts from seeed's catalog, they have a really good catalog for this sort of thing and an assembly service that seems pretty reasonably priced, so I won't have to deal with the most painful parts if I ever want to have a bunch made. I also swapped out the USB A connector for a card-edge connector I found in sparkfun's library. If the fab house balks at the odd shape I can always square it off and cut them myself on my CNC.





I was able to fit a full reset button into the lower left, with space for a pull-up resistor. I can leave it unpopulated initially so there are pads to be shorted, and if someone wants to drop an appropriate reset button onto the board they can do so.

I swapped out the footprint I found online with one I made myself that has both cherry and matias compatibility. I just got a test board from bayareacircuits so I can prove it, and other than the PCB mounting holes being too small (which I can drill here, so I can salvage these boards) the footprint seems to work perfectly with both mx switches. I need to make a couple adjustments to the footprint for alps.

A friend of mine turned me onto a pretty neat web-based gerber visualizer. It doesn't like the drill files I send it for whatever reason but otherwise it's a great way to render a pcb before sending it off to fab:





Thanks for all your feedback.

Offline twiddle

  • Posts: 165
    • Portfolio
Re: The Living PCB Design Thread
« Reply #173 on: Sat, 18 July 2015, 04:42:11 »
Speaking of Gerber visualisation, I've had good luck with the zofzpcb tool : http://www.zofzpcb.com/Gerber-Viewer-Download.html
Windows-only unfortunately, but its free, pretty slick and has its own sanity checking functionality.

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #174 on: Fri, 24 July 2015, 06:44:11 »
I like gerbv for looking at my gerbers. It's in the Ubuntu repositories. It's very simple, most only for visual inspection, but that's generally all I need at that stage.

Offline komar007

  • Thread Starter
  • Posts: 712
  • Location: Poland
    • komar's blog
Re: The Living PCB Design Thread
« Reply #175 on: Fri, 24 July 2015, 12:22:38 »
For examining gerbers, I recommend gerbv too, and also the oshpark web interface. It does a pretty good job, but doesn't have zoom, unfortunately.

@skullydazed, I also just noticed you have some wrong values of components on both the schematic and PCB.
I think you meant R1, R2 to be 22, not 22K and C3, C4 - 10pF (or a bit more), not 10uF.
As for R3, I don't know if this is a problem, but I think you're getting dangerously close to the internal weak pull-up resistance. I normally use 10K successfully for HWB, I'm not actually sure this pin is pulled-up or not during boot, but I wouldn't use more than 10K there.
GH60 rev. B w/ ali's case|Cherry G80-3000 HFU/05|IBM Model M (51G8572)
Check out the GH60 project! | How to make a keyboard

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #176 on: Fri, 24 July 2015, 18:23:20 »
@skullydazed, I also just noticed you have some wrong values of components on both the schematic and PCB.
I think you meant R1, R2 to be 22, not 22K and C3, C4 - 10pF (or a bit more), not 10uF.

I had actually noticed C3/C4 at one point, but had not noticed R1/R2. Thanks for pointing those out.

Quote
As for R3, I don't know if this is a problem, but I think you're getting dangerously close to the internal weak pull-up resistance. I normally use 10K successfully for HWB, I'm not actually sure this pin is pulled-up or not during boot, but I wouldn't use more than 10K there.

The teensy uses 1k here, and they don't seem to have any problems when that's all that there, so I assumed it was probably OK. Swapping that out for 10k is easy enough.

Offline komar007

  • Thread Starter
  • Posts: 712
  • Location: Poland
    • komar's blog
Re: The Living PCB Design Thread
« Reply #177 on: Sat, 25 July 2015, 01:53:06 »
The teensy uses 1k here, and they don't seem to have any problems when that's all that there, so I assumed it was probably OK. Swapping that out for 10k is easy enough.

For R3, 1k is OK, and even shorting HWB to ground without a resistor would be okay too (unless you set it to "1" in output mode in firmware:D), it's the higher values I'm worried about.
GH60 rev. B w/ ali's case|Cherry G80-3000 HFU/05|IBM Model M (51G8572)
Check out the GH60 project! | How to make a keyboard

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #178 on: Fri, 31 July 2015, 11:51:44 »
For R3, 1k is OK, and even shorting HWB to ground without a resistor would be okay too (unless you set it to "1" in output mode in firmware:D), it's the higher values I'm worried about.

Ah, yes, I missed updating that in this project. I have 3 different keyboard projects going now, I keep discovering new bugs/improvements in one and haven't gotten good at applying them back to the others. That's part of the fun of this stuff, figuring out good systems for keeping everything in sync.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #179 on: Fri, 31 July 2015, 12:13:18 »
I've just published the eagle footprints I developed. Right now there are 5 variants:

  • ALPSMX-1U - Single 1U switch, no LED or Diode support
  • ALPSMX-1U-LED - Single switch with LED
  • ALPSMX-2U-LED - Single switch with LED and 2/2.25/2.5U PCB Stabilizer Hole
  • ALPSMX-2SWITCH-0.5-LED - Two switches in the same footprint to support a switch that could be offset by 0.5U
  • ALPSMX-2SWITCH-0.25-LED - Two switches in the same footprint to support a switch that could be offset by 0.25U

All variants except for ALPSMX-2SWITCH-0.5-LED have been proven electrically:



I have not had anything made since creating ALPSMX-2SWITCH-0.5-LED yet, but I will be sending something off to the fab house next week.

I know a lot of people are using KiCad or gEDA since eagle is so expensive, but if anyone else is using eagle I hope you will find these useful.

Offline Zustiur

  • Posts: 235
Re: The Living PCB Design Thread
« Reply #180 on: Tue, 04 August 2015, 20:58:47 »
I am really really confused right now. I copied down the lib and mod files from the geekhack repository, and the lib provided by Moz.
First let me say that those two things are not related. I believe you can use one or the other.
Secondly, it appears kiCAD has gone through a version upgrade since then and no longer expects .lib and .mod files. I am using the current stable version for windows, installed from kicad-product-r5528.036404d-x86_64.exe
I managed to import all the footprints from the above sources into a new lib.pretty folder and they are saved as .kicad_mod files.
However. None of the footprints provided by Moz seem to correspond with the switch/diode pair which I think also came from Moz.
There also does not appear to be a teensy footprint anywhere. Is that correct?
I was planning an ergodox style flippable board, and the switch footprints don't look flippable to me.

The tutorials I've seen so far (written and video) are either amateurish or incomplete. They also seem to be using older versions of kiCad.

Will I need to just create the footprints myself?

Offline swill

  • * Elevated Elder
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: The Living PCB Design Thread
« Reply #181 on: Fri, 07 August 2015, 15:31:53 »
I would like to get some feedback from the experts in this thread about something that has been taking up a lot of my brainspace recently.

Most of you probably have checked out my plate/case tool builder.swillkb.com at this point.  When I started that project I had the pipe dream of being able to take a JSON input and generate the plate, case, pcb and firmware for a custom keyboard layout in a few clicks.  Obviously, that was way too ambitious for a first pass, so I just started with what I could reasonably bite off and built the plate/case builder.  skullydazed has put together a pretty cool tool to help create EAGLE scripts based on the same Keyboard Layout Editor input (GH Thread).  His tool is written in Python, so I open sourced my original builder engine which was also written in Python.  It would be cool if someone wanted to integrate those two code bases, but thats not what this post is about.

I am not sure that creating EAGLE scripts is really the best way to solve this problem for my tool because most people won't be able to validate or even open them.  It is just too hard of a format for the regular person to work with.

I am currently looking into producing Gerber files from my tool to define the PCB design.  The Gerber files would have corresponding SVG files so you could visually inspect that the output is what you expect.  The Gerber files would be generated from these SVG files, so you could be confident with what is in the Gerber file without having the means to actually view it.  I would also be exposing a tool for being able to convert an SVG to Gerber file, so if you would like to modify the layout in any way, you could modify the SVG and then reupload it and get the resulting Gerber files.

There are many obstacles in my way to be able to actually make this work.  Including, but not limited to:
  • Develop the ability to generate Gerber files from an SVG
  • Develop an autorouter that will deterministically output SVG files for any keyboard layout
  • Implement the autorouter into the core engine of my tool

Before I go too far down this road, I am interested in feedback on this approach.  Am I sane?  Given that I am really focusing my tool on builders who have ideas but don't have the technical means to be able to do every step, is this realistic from a usability and modification perspective?  If you don't think this is realistic, how would you approach the problem and what would you be targeting to produce?

I understand the complexity of what I am trying to do here is pretty crazy and it won't be something I develop in a few weeks, this is going to take all my free time for months.  That being said, I really want to orient my self so I start moving in at least close to the right direction.  :P

I appreciate all feedback, regardless of what you have to say.  :)  Cheers...
« Last Edit: Fri, 07 August 2015, 15:35:34 by swill »

Offline VinnyCordeiro

  • Posts: 432
Re: The Living PCB Design Thread
« Reply #182 on: Fri, 07 August 2015, 18:00:17 »
I would like to get some feedback from the experts in this thread about something that has been taking up a lot of my brainspace recently.

Most of you probably have checked out my plate/case tool builder.swillkb.com at this point.  When I started that project I had the pipe dream of being able to take a JSON input and generate the plate, case, pcb and firmware for a custom keyboard layout in a few clicks.  Obviously, that was way too ambitious for a first pass, so I just started with what I could reasonably bite off and built the plate/case builder.  skullydazed has put together a pretty cool tool to help create EAGLE scripts based on the same Keyboard Layout Editor input (GH Thread).  His tool is written in Python, so I open sourced my original builder engine which was also written in Python.  It would be cool if someone wanted to integrate those two code bases, but thats not what this post is about.

I am not sure that creating EAGLE scripts is really the best way to solve this problem for my tool because most people won't be able to validate or even open them.  It is just too hard of a format for the regular person to work with.

I am currently looking into producing Gerber files from my tool to define the PCB design.  The Gerber files would have corresponding SVG files so you could visually inspect that the output is what you expect.  The Gerber files would be generated from these SVG files, so you could be confident with what is in the Gerber file without having the means to actually view it.  I would also be exposing a tool for being able to convert an SVG to Gerber file, so if you would like to modify the layout in any way, you could modify the SVG and then reupload it and get the resulting Gerber files.

There are many obstacles in my way to be able to actually make this work.  Including, but not limited to:
  • Develop the ability to generate Gerber files from an SVG
  • Develop an autorouter that will deterministically output SVG files for any keyboard layout
  • Implement the autorouter into the core engine of my tool

Before I go too far down this road, I am interested in feedback on this approach.  Am I sane?  Given that I am really focusing my tool on builders who have ideas but don't have the technical means to be able to do every step, is this realistic from a usability and modification perspective?  If you don't think this is realistic, how would you approach the problem and what would you be targeting to produce?

I understand the complexity of what I am trying to do here is pretty crazy and it won't be something I develop in a few weeks, this is going to take all my free time for months.  That being said, I really want to orient my self so I start moving in at least close to the right direction.  :P

I appreciate all feedback, regardless of what you have to say.  :)  Cheers...

Since version 6 (I think) all EAGLE files are written in XML. So you can try to directly generate a XML file that is a valid schematic and/or PCB. Will need to deal with customs libraries for the MX switches, but other components (like diodes, through hole or SMD) are probably already supported with standard EAGLE libraries. I can say that ATmega32u4 microcontroller requires a custom library.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #183 on: Fri, 07 August 2015, 19:18:38 »
I am not sure that creating EAGLE scripts is really the best way to solve this problem for my tool because most people won't be able to validate or even open them.  It is just too hard of a format for the regular person to work with.

I agree with you here, but the problem is that the other PCB tools are even harder for most people to work with. Before I settled on using EAGLE I tried to get gEDA and KiCAD going and while I was able to make them work every step was a challenge.

I am currently looking into producing Gerber files from my tool to define the PCB design.  The Gerber files would have corresponding SVG files so you could visually inspect that the output is what you expect.  The Gerber files would be generated from these SVG files, so you could be confident with what is in the Gerber file without having the means to actually view it.  I would also be exposing a tool for being able to convert an SVG to Gerber file, so if you would like to modify the layout in any way, you could modify the SVG and then reupload it and get the resulting Gerber files.

Generating the gerbers is only half the challenge. You have to get them made too. I haven't been able to find a fab house to make single keyboard-sized PCB's for less than about $80, and it takes a few weeks to get them at that price. People can etch the board themselves for less than $50, but for that they just need SVG (or something else they can print from accurately.)

The ability to edit the layout will be necessary too, and I think your SVG approach may the best choice for that. However, you will have to deal with error detection. For example, what if they cross two traces, or run a trace through the middle of the MX switch's hole? If you can design a UI that prevents them from making those mistakes in the first place it'd be a lot more work on the frontend, but also more user friendly and potentially saves you having to catch a million corner cases in your SVG processing code.

Before I go too far down this road, I am interested in feedback on this approach.  Am I sane?  Given that I am really focusing my tool on builders who have ideas but don't have the technical means to be able to do every step, is this realistic from a usability and modification perspective?  If you don't think this is realistic, how would you approach the problem and what would you be targeting to produce?

I understand the complexity of what I am trying to do here is pretty crazy and it won't be something I develop in a few weeks, this is going to take all my free time for months.  That being said, I really want to orient my self so I start moving in at least close to the right direction.  :P

I'm pretty sure that thinking about tackling a project like this rules out sanity. ;D I think the approach you're looking at can work, and work quite well. I think you are probably underestimating how hard it will be to route the columns (or rows for row-staggered keyboards) when you write your autorouter, but perhaps I'm just overestimating it.

Since version 6 (I think) all EAGLE files are written in XML. So you can try to directly generate a XML file that is a valid schematic and/or PCB. Will need to deal with customs libraries for the MX switches, but other components (like diodes, through hole or SMD) are probably already supported with standard EAGLE libraries. I can say that ATmega32u4 microcontroller requires a custom library.

Both seeedstudio and sparkfun publish open libraries with footprints for those parts. I prefer the seeed version because it has outlines for automatic pick-n-place, which is actually cheaper than you might imagine.

Offline VinnyCordeiro

  • Posts: 432
Re: The Living PCB Design Thread
« Reply #184 on: Fri, 07 August 2015, 19:56:00 »
Both seeedstudio and sparkfun publish open libraries with footprints for those parts. I prefer the seeed version because it has outlines for automatic pick-n-place, which is actually cheaper than you might imagine.
That's new to me, thank you for the information.

Offline twiddle

  • Posts: 165
    • Portfolio
Re: The Living PCB Design Thread
« Reply #185 on: Sat, 08 August 2015, 02:34:01 »

Generating the gerbers is only half the challenge. You have to get them made too. I haven't been able to find a fab house to make single keyboard-sized PCB's for less than about $80, and it takes a few weeks to get them at that price.

On that note, check out pcbshopper - I just tested with 130mm x 350mm dimensions (roughly the size of the phantom plate I have lying about, presuming it's fairly indicative of the size of the PCB underneath), 2 layer with HASL and standard solder mask, quantity 5, and was quoted $150 US including shipping for a 5 day turn around with PCBWay, and $120+ shipping via Smart-prototyping. YMMV (I find sometimes the actual order page has slightly different pricing) but I think you'll find that getting a small batch fabbed is actually feasible now. Just takes a couple mates who want the same switch layout, and it becomes surprisingly affordable.

Given that I'm not really interested in anything other than scratchbuilt boards with my own PCB designs, I don't have a lot to add to the feasibility of the tools proposed other than to say that autorouting is a fairly significant issue, but perhaps some of Kicad's source might give insight there.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #186 on: Sat, 08 August 2015, 09:22:26 »
On that note, check out pcbshopper - I just tested with 130mm x 350mm dimensions (roughly the size of the phantom plate I have lying about, presuming it's fairly indicative of the size of the PCB underneath), 2 layer with HASL and standard solder mask, quantity 5, and was quoted $150 US including shipping for a 5 day turn around with PCBWay, and $120+ shipping via Smart-prototyping. YMMV (I find sometimes the actual order page has slightly different pricing) but I think you'll find that getting a small batch fabbed is actually feasible now. Just takes a couple mates who want the same switch layout, and it becomes surprisingly affordable.

You are right, the main cost here is the setup. If you can get others to go in with you it'll save you a lot.

I've been experimenting a bit with PCB fab at home, actually. I tried the toner transfer method which works but was a few hours of work. This weekend I'm going to try out the photoresist method to see how that works for me. I want to do a lot of experimentation with layouts and spending $25 on the raw materials (and getting my results the same day) is very appealing to me.

Offline swill

  • * Elevated Elder
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: The Living PCB Design Thread
« Reply #187 on: Sat, 08 August 2015, 21:53:44 »

Sorry for the delay to get some responses in here.  I had company the last couple days, so I have not had a chance to sit down at the computer for a little while.


On that note, check out pcbshopper - I just tested with 130mm x 350mm dimensions (roughly the size of the phantom plate I have lying about, presuming it's fairly indicative of the size of the PCB underneath), 2 layer with HASL and standard solder mask, quantity 5, and was quoted $150 US including shipping for a 5 day turn around with PCBWay, and $120+ shipping via Smart-prototyping. YMMV (I find sometimes the actual order page has slightly different pricing) but I think you'll find that getting a small batch fabbed is actually feasible now. Just takes a couple mates who want the same switch layout, and it becomes surprisingly affordable.

You are right, the main cost here is the setup. If you can get others to go in with you it'll save you a lot.

I've been experimenting a bit with PCB fab at home, actually. I tried the toner transfer method which works but was a few hours of work. This weekend I'm going to try out the photoresist method to see how that works for me. I want to do a lot of experimentation with layouts and spending $25 on the raw materials (and getting my results the same day) is very appealing to me.


What are the most common file types that fab shops will take?  I would like to be generating SVG files natively and then converting them into the final form if possible.  So image based formats are better for me.  It also makes the modification of the files more accessible because anyone can use Inkscape or Adobe Illustrator to make basic modifications.  If I can do that, then I would be relying on a format converter (SVG to Whatever), so I could easily accept anyone's SVG (in theory).  I think scripting is a totally valid way to solve this, but I think it is going to be less accessible for people.  None will have tools to check it and making modifications will be impossible for the general user group.

Is there a graphics format and a different format for the drilling of the holes?  How does this work and what would I need to produce?


I am not sure that creating EAGLE scripts is really the best way to solve this problem for my tool because most people won't be able to validate or even open them.  It is just too hard of a format for the regular person to work with.

I agree with you here, but the problem is that the other PCB tools are even harder for most people to work with. Before I settled on using EAGLE I tried to get gEDA and KiCAD going and while I was able to make them work every step was a challenge.


Yes, this is why I would like to see if I can make an image based model work.  I think people will have a lot harder time if they have to learn an actual PCB design software to use what they were provided.  What formats does KiCAD use natively?  Basic premise of that format?  That seems like the most accessible of the different PCB modeling softwares.  What formats CAN it export into?


I am currently looking into producing Gerber files from my tool to define the PCB design.  The Gerber files would have corresponding SVG files so you could visually inspect that the output is what you expect.  The Gerber files would be generated from these SVG files, so you could be confident with what is in the Gerber file without having the means to actually view it.  I would also be exposing a tool for being able to convert an SVG to Gerber file, so if you would like to modify the layout in any way, you could modify the SVG and then reupload it and get the resulting Gerber files.

Generating the gerbers is only half the challenge. You have to get them made too. I haven't been able to find a fab house to make single keyboard-sized PCB's for less than about $80, and it takes a few weeks to get them at that price. People can etch the board themselves for less than $50, but for that they just need SVG (or something else they can print from accurately.)


Yes, exactly.  I think that an SVG is a good format to start with because I think it would enable people being able to experiment with making PCBs as well.  I see people probably doing micro-GBs and getting like 5 PCBs made at a time to bring the costs down.  Would Gerber files be a good fit for that type of use case?


The ability to edit the layout will be necessary too, and I think your SVG approach may the best choice for that. However, you will have to deal with error detection. For example, what if they cross two traces, or run a trace through the middle of the MX switch's hole? If you can design a UI that prevents them from making those mistakes in the first place it'd be a lot more work on the frontend, but also more user friendly and potentially saves you having to catch a million corner cases in your SVG processing code.


I agree that using a format that can be easily edited is a good idea.

Your points are valid about the 'error detection'.  I think my ability to write an autorouter that will fit into my application cleanly is going to be a pretty central aspect to my success doing this.  I would be trying to make it so people would not have to modify it and I could validate what the autorouter has produced by showing each of the layers on its own and showing an SVG of the layers superimposed on each other with different colors.  I would be focusing on trying to make sure there are no errors produced by my autorouter, but I would probably not be checking the files if someone uploaded their own SVG because I won't have all of the parameters of the PCB in the system when I do the SVG to Gerber (or whatever) process unless the routing of the PCB has been generated by my tool in that instance.  Hope that makes sense...


Before I go too far down this road, I am interested in feedback on this approach.  Am I sane?  Given that I am really focusing my tool on builders who have ideas but don't have the technical means to be able to do every step, is this realistic from a usability and modification perspective?  If you don't think this is realistic, how would you approach the problem and what would you be targeting to produce?

I understand the complexity of what I am trying to do here is pretty crazy and it won't be something I develop in a few weeks, this is going to take all my free time for months.  That being said, I really want to orient my self so I start moving in at least close to the right direction.  :P

I'm pretty sure that thinking about tackling a project like this rules out sanity. ;D I think the approach you're looking at can work, and work quite well. I think you are probably underestimating how hard it will be to route the columns (or rows for row-staggered keyboards) when you write your autorouter, but perhaps I'm just overestimating it.


Yes, I am going to have to do a bit of a refresher on different algorithms and graph theory I took in Uni.  I also need to study all the the PCBs I have here to get a feel for how they run everything.  I am guessing that in general they will probably run the rows on one side and the columns on the other side of the PCB?  That may be way too simplistic for the real complexity, but would make sense for making things not cross and such.  I suspect I am going to be writing a lot of proximity algorithms.  Haha...  The autorouter is the one piece that I feel the most intimidated by.  I have a pretty solid grasp on the rest (I think), at least in theory.  We will see how I do I guess...


Since version 6 (I think) all EAGLE files are written in XML. So you can try to directly generate a XML file that is a valid schematic and/or PCB. Will need to deal with customs libraries for the MX switches, but other components (like diodes, through hole or SMD) are probably already supported with standard EAGLE libraries. I can say that ATmega32u4 microcontroller requires a custom library.

Both seeedstudio and sparkfun publish open libraries with footprints for those parts. I prefer the seeed version because it has outlines for automatic pick-n-place, which is actually cheaper than you might imagine.


Producing an XML would not be too much different from creating an SVG, but I am not sure its the same style of information.  I am guessing it is probably represents the movements and order and then pulls from a catalog of parts or something like that (similar to the EAGLE script concept)?  I need to spent a couple weeks and just get my head into all the different aspects of what I will need to be doing.  I am kind of testing the waters now and trying to validate my ideas before I get too deep into research.  Bear with me...  :P

« Last Edit: Sat, 08 August 2015, 22:00:16 by swill »

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #188 on: Sun, 09 August 2015, 11:45:50 »
To be honest I didn't read everything in the previous posts, but have you looked at the specifications for the gerber file format? It's v e r y simple. If you know your way around svg's (which I don't) learning gerber should be a walk in the park. It's a very simple vectorized thing, translating from something else vectorized should be decently straight forward.. Gerbers are the standard in PCB manufacturing (to my knowledge). Any serious manufacturer should accept them.

The specification is linked from this page http://www.ucamco.com/downloads

Offline swill

  • * Elevated Elder
  • Posts: 3365
  • Location: Canada eh
  • builder & enabler
    • swillkb.com
Re: The Living PCB Design Thread
« Reply #189 on: Sun, 09 August 2015, 13:14:50 »
To be honest I didn't read everything in the previous posts, but have you looked at the specifications for the gerber file format? It's v e r y simple. If you know your way around svg's (which I don't) learning gerber should be a walk in the park. It's a very simple vectorized thing, translating from something else vectorized should be decently straight forward.. Gerbers are the standard in PCB manufacturing (to my knowledge). Any serious manufacturer should accept them.

The specification is linked from this page http://www.ucamco.com/downloads
Awesome. Thanks for this, I will check that out.

Offline bpiphany

  • Posts: 1033
  • Location: Stockholm, Sweden
  • bpiph is a special type of crazy. //mkawa
Re: The Living PCB Design Thread
« Reply #190 on: Sun, 09 August 2015, 13:44:19 »
Actually I just discovered that there has been an update to the new X2 format. I've read the documentation for the RS-274X version. They are supposed to be both back and forward compatible, and still just about as simple. The new documentation is a good number of pages longer. I can't say anything about the new documentation, but the old document had simple detailed explained examples. I'm sure the new one is along the same lines.

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #191 on: Sun, 09 August 2015, 13:54:43 »
What are the most common file types that fab shops will take?  I would like to be generating SVG files natively and then converting them into the final form if possible.  So image based formats are better for me.  It also makes the modification of the files more accessible because anyone can use Inkscape or Adobe Illustrator to make basic modifications.  If I can do that, then I would be relying on a format converter (SVG to Whatever), so I could easily accept anyone's SVG (in theory).  I think scripting is a totally valid way to solve this, but I think it is going to be less accessible for people.  None will have tools to check it and making modifications will be impossible for the general user group.

Is there a graphics format and a different format for the drilling of the holes?  How does this work and what would I need to produce?
[/tt]

Gerber is THE standard. Some shops take gerber drill files and other shops take Excellon but the rest of the layers are always gerber (RS-247x) files. (bpiphany already gave you the same encouragement I would have.)

Yes, exactly.  I think that an SVG is a good format to start with because I think it would enable people being able to experiment with making PCBs as well.  I see people probably doing micro-GBs and getting like 5 PCBs made at a time to bring the costs down.  Would Gerber files be a good fit for that type of use case?
[/tt]

If your goal is to let people do micro-groupbuys (great goal btw) gerber is a must.

Yes, I am going to have to do a bit of a refresher on different algorithms and graph theory I took in Uni.  I also need to study all the the PCBs I have here to get a feel for how they run everything.  I am guessing that in general they will probably run the rows on one side and the columns on the other side of the PCB?  That may be way too simplistic for the real complexity, but would make sense for making things not cross and such.  I suspect I am going to be writing a lot of proximity algorithms.  Haha...  The autorouter is the one piece that I feel the most intimidated by.  I have a pretty solid grasp on the rest (I think), at least in theory.  We will see how I do I guess...
[/tt]

Rows on one side and columns on the other is exactly how I connect mine up. If you only need to connect rows/columns (no controller connections) it's probably pretty easy to write an auto-router for. Once you want to start adding traces for a controller is where it'll get complex.

Offline Zustiur

  • Posts: 235
Re: The Living PCB Design Thread
« Reply #192 on: Sat, 22 August 2015, 01:31:09 »
I'm still confused. I just can't get the library part of kicad to work properly.
Even using the tutorial files from https://github.com/BathroomEpiphanies/KiCAD-Keyboard-Tutorial when I click on Cvpcb I get an error message warning me that it can't autolink the components:
---------------------------
Some of the assigned footprints are legacy entries (are missing lib nicknames). Would you like CvPcb to attempt to convert them to the new required FPID format? (If you answer no, then these assignments will be cleared out and you will have to re-assign these footprints yourself.)
---------------------------
Yes   No   
---------------------------
Doesn't matter which way I answer, the result is that none of the components have footprints assigned.


I tried adding the lib and mod files that came with the tutorial but when I select 'footprint' from the list on the left, no components appear on the right.
Could someone (using the current version of kicad) please explain how to import the MX switches, diodes and teensy controller into my project so that I can use them in all the necessary places?

Offline mrflow3r

  • Posts: 158
  • Location: Vancouver
    • T
Re: The Living PCB Design Thread
« Reply #193 on: Sat, 22 August 2015, 02:55:43 »
I'm still confused. I just can't get the library part of kicad to work properly.
Even using the tutorial files from https://github.com/BathroomEpiphanies/KiCAD-Keyboard-Tutorial when I click on Cvpcb I get an error message warning me that it can't autolink the components:
---------------------------
Some of the assigned footprints are legacy entries (are missing lib nicknames). Would you like CvPcb to attempt to convert them to the new required FPID format? (If you answer no, then these assignments will be cleared out and you will have to re-assign these footprints yourself.)
---------------------------
Yes   No   
---------------------------
Doesn't matter which way I answer, the result is that none of the components have footprints assigned.


I tried adding the lib and mod files that came with the tutorial but when I select 'footprint' from the list on the left, no components appear on the right.
Could someone (using the current version of kicad) please explain how to import the MX switches, diodes and teensy controller into my project so that I can use them in all the necessary places?

Which build are you running on? I have 7-15-2015 build running on Windows 10. I don't see such message. Also Kicad forum is pretty active. You should post there too. You will get an answer in matter of hours!
 

Offline Zustiur

  • Posts: 235
Re: The Living PCB Design Thread
« Reply #194 on: Sat, 22 August 2015, 23:40:50 »
I installed it from kicad-product-r5528.036404d-x86_64.exe
I believe that is 2015-04-13. I figured I was better off using the 'stable' versions rather than debug versions. Judging by the date you mentioned, you got your copy from somewhere else entirely. That date isn't listed here: http://www2.futureware.at/~nickoe/ which I reached from http://www.kicad-pcb.org/display/KICAD/Installing+KiCad#InstallingKiCad-Windows

Offline BlueNalgene

  • Posts: 739
  • Location: Oklahoma, USA
Re: The Living PCB Design Thread
« Reply #195 on: Sun, 23 August 2015, 00:02:43 »
I'm still confused. I just can't get the library part of kicad to work properly.
Even using the tutorial files from https://github.com/BathroomEpiphanies/KiCAD-Keyboard-Tutorial when I click on Cvpcb I get an error message warning me that it can't autolink the components:
---------------------------
Some of the assigned footprints are legacy entries (are missing lib nicknames). Would you like CvPcb to attempt to convert them to the new required FPID format? (If you answer no, then these assignments will be cleared out and you will have to re-assign these footprints yourself.)
---------------------------
Yes   No   
---------------------------
Doesn't matter which way I answer, the result is that none of the components have footprints assigned.


I tried adding the lib and mod files that came with the tutorial but when I select 'footprint' from the list on the left, no components appear on the right.
Could someone (using the current version of kicad) please explain how to import the MX switches, diodes and teensy controller into my project so that I can use them in all the necessary places?

I can't reproduce your error.

I downloaded the zip file, extracted and ran KiCAD.  Then opened the tutorial.pro file.  I checked Eeschema, nothing unusual.  I checked Cvpcb, nothing unusual.  It looked like this:



I checked pcbnew, it brought up a small error window:



Upon clicking OK, it brought up the board, and it looked like what I would expect.




Can you confirm you followed these steps?

Offline Zustiur

  • Posts: 235
Re: The Living PCB Design Thread
« Reply #196 on: Sun, 23 August 2015, 01:31:35 »
I've just reinstalled kicad.
Then reextracted the tutorial
As with you, Then opened the tutorial.pro file.  I checked Eeschema, nothing unusual.
But then: when I click on Cvpcb I get the error message previously noted:
---------------------------
Confirmation
---------------------------
Some of the assigned footprints are legacy entries (are missing lib nicknames). Would you like CvPcb to attempt to convert them to the new required FPID format? (If you answer no, then these assignments will be cleared out and you will have to re-assign these footprints yourself.)
---------------------------
Yes   No   

I select Yes and it gives me this message:
The following errors occurred attempting to convert the footprint assignments:

Component 'D0:0' footprint 'DIODE' was not found in any library.

Component 'D0:1' footprint 'DIODE' was not found in any library.

Component 'D0:2' footprint 'DIODE' was not found in any library.

Component 'D0:7' footprint 'DIODE' was not found in any library.

Component 'D0:10' footprint 'DIODE' was not found in any library.

Component 'D0:11' footprint 'DIODE' was not found in any library.

Component 'D0:12' footprint 'DIODE' was not found in any library.

Component 'D0:13' footprint 'DIODE' was not found in any library.

Component 'D1:0' footprint 'DIODE' was not found in any library.

Component 'D1:2' footprint 'DIODE' was not found in any library.

Component 'D1:3' footprint 'DIODE' was not found in any library.

Component 'D1:4' footprint 'DIODE' was not found in any library.

Component 'D1:5' footprint 'DIODE' was not found in any library.

Component 'D1:6' footprint 'DIODE' was not found in any library.

Component 'D1:7' footprint 'DIODE' was not found in any library.

Component 'D1:8' footprint 'DIODE' was not found in any library.

Component 'D1:9' footprint 'DIODE' was not found in any library.

which goes on and on...

Your screen cap of Cvpcb looks different. I have 3 'panes' the left pane is for categories, then the middle and right panes look like yours.

PCBNew gives me the same warning as you and appears to display properly.


If I add switches and diodes to the eeschematic, then generate netlist and go to Cvpcb there does not appear to be any way to assign the existing types in use (DIODE, CHERRY_PCB_100H) etc. They don't appear as options I can select anywhere. What is the correct way to add them to the library so that I can assign them to my new keys?

Offline mrflow3r

  • Posts: 158
  • Location: Vancouver
    • T
Re: The Living PCB Design Thread
« Reply #197 on: Sun, 23 August 2015, 01:45:50 »
I installed it from kicad-product-r5528.036404d-x86_64.exe
I believe that is 2015-04-13. I figured I was better off using the 'stable' versions rather than debug versions. Judging by the date you mentioned, you got your copy from somewhere else entirely. That date isn't listed here: http://www2.futureware.at/~nickoe/ which I reached from http://www.kicad-pcb.org/display/KICAD/Installing+KiCad#InstallingKiCad-Windows

Ah, I am using the nightly build from http://www2.futureware.at/~nickoe/. It has been working well for me.
 

Offline Zustiur

  • Posts: 235
Re: The Living PCB Design Thread
« Reply #198 on: Sun, 23 August 2015, 02:20:20 »
Of course... I realize now that the most recent build is NOT at the top of the list... Hmm. Will try a new one.
Ok, Now when I go to Cvpcb I get no error, but it has blanked out all of the footprint assignments.
« Last Edit: Sun, 23 August 2015, 02:41:19 by Zustiur »

Offline skullydazed

  • * Vendor
  • Posts: 307
  • Location: Bay Area, CA
  • Had to turn PM's off. Email info@clueboard.co!
    • Clueboard
Re: The Living PCB Design Thread
« Reply #199 on: Wed, 09 September 2015, 09:05:35 »
I recently received the first batch of my business cards back from the assembly house. They work great if you can plug them into the USB port, but I've already found a lot of machines where it doesn't quite make contact. For revision 2 I've extended that out another MM which will fix the clearance issues on every machine I've tried.



I'm still working some software issues out (and trying to get some working code for that ws2812) but the hardware seems to work great.