For those of you following the Open Hardware PLC project (delayed for funding) here is an article that proposes a definition for OSHW, not unlike the definition of OSS. This is important as it defines what an OSHW license must include. This is a direct link which I found through Linux Today and LinuxPro magazine.
Anything they missed?
They've got a list of licenses they feel meet that criteria. Most of those seem to be fairly generic. Which of those do you think meets your own criteria? It might be more productive to debate the merits of those actual licenses, as that gives something more tangible to discuss.
Well, first you have to define "Open" :^) I saw some traces of "consortium disease" already in this definition, but really, it's a start on a really thorny subject. For example, it could be perverted by releasing design files that only work on a particular vendor's product. In fact, at this point, any design files are likely usable only on one tool, closed or Open. For example, many release Eagle files. I've downloaded it, it does nice work, it was free ($), but it is most definitely not Open. At least it runs on Linux. Doesn't this immediately put restrictions on the hardware? If you use their free ($) version, it's for non-profit use only. Does this make these designs invalid for automation work? Are they free? I can solve the problem by using only OSS for my designs, but will the term Open Hardware mean anything?
One side of this argument would say that the Gerber files are open and that since you can distribute them anyone can make the boards or modify the gerbers.
However, Anyone who has done any board that is even remotely complex realizes that a GERBER file is not *really* editable the same way a PCB design file format is.
On the other hand, if Eagle is Free ($) and anyone can use it, isn't the same goal accomplished? Its not as ideal as if Eagle were to release its source code under GPL, but its not far off.
I think the ideal is that if there were a common open file format for schematics, netlists, and board files. Then you really could edit someone elses board design from your favorite board design package, purchased or GPL. Unfortunately I don't think you will see this anytime soon since the commercial vendors don't seem to be interested (yet) in interoperability to open hardware projects. The open source options still seem to be a little clunky compared to the commercial offerings. I am fortunate enough (or should I say unlucky enough??) to have access to a license and support package for Mentor Graphics Pads/DxDesigner suite with 2 layer autorouter. Lets just say that even they are mangling their design formats into increasingly more complicated database systems and scrapping file formats. It makes it very difficult to do basic to intermediate board layout several times a year because the overhead of managing projects and libraries is so much more complicated than your project.
So, I would like something that is simple and powerful and GPL, but I'm not completely satisfied with some of the free offerings I've seen (Disclaimer, I haven't downloaded a lot of these, just looked at the feature lists).
No, it's not the same simply because it's ($) free. CadSoft's license states that the free version can only be used for non-profit designs. Hardware costs money, and I find it unlikely that only non-profits would want to use the hardware. And they should not be able to restrict Open Hardware. And yes, a single Open format for source files is the answer. But the consortium members want it both ways. Open, but using _their_ format, which is a contradiction. I don't think they get it. Sounds very familiar. That's why I use PCB. As I understand it, it places no restrictions on what I do with the output.
The problem with the open source PCB tools is that they are not even close to competing to the professional offerings from the medium scale offerings of Mentor Graphics (pads) or Altium (used to be protel). The same cannot be said about C compilers because GCC and GNU tools are very powerful and rival the commercial offerings.
My hope is that some key open hardware projects take off financially and some companies start supplying some more for funding projects like PCB. I am not sure, but I don't think this has really happened yet.
One question: if you were running a business based off of using Eagle, why not pay them for it? I don't think they charge ridiculous prices if you were in business. I agree that a mainstream open product is preferred, but they are still in their infancy.
If I were making money with it, I wouldn't have a philosophical problem with paying for it. The problem would be financial:^). So you can use the free version to make restricted hardware and you have to pay big bucks to make Open Hardware. Hmmmmm.......
The Linux Fund (linuxfund.org) has agreed to fund improvements in PCB. I can simplify it even further, right now, if I want to make Open Hardware, except as a hobby, there simply isn't any choice. If I sell you a board blank for $10 that cost $9.95 to make, it's a license violation with the commercial products. And it would take a lot of illegal nickels to buy their "standard" versions. Now, to be fair, if someone hires me to design and build in house or commercial hardware, and that _could_ happen, Eagle would be at the top of my list because they are competitive and support Linux. I'm pretty sure that's why "Open" designs are appearing done in all the "big name" tools. It's what someones employer uses. And if I were doing something like the BeagleBoard, PCB might be a problem. But, for the boards I just did, or say, a *duino type board, or even the densities needed for automation, PCB works just fine. It's not an extreme view or splitting hairs, it's simply free or not free. As in freedom, not beer.
You could develop with Eagle Free version and when you plan to sell boards buy their $49 "lite" license (Basically the same as the free version, but you can use it for profit). That seems reasonable to me as a business model that they have. I don't know if Eagle is much better than PCB, I just wanted to point this out.
That might work in this one case, and it's not at all hard to understand their business model, they want you to buy stuff so they make money. The point is that Open Hardware should not come with anyone's business model attached. Let's pick on someone else. Let's say Open Hardware has a tag attached like AC, water heaters. etc. The tags now would say: Open except for the license conditions of Calma Inc. Free to anyone who can spend thousands on a Calma workstation. And the board you want to use with it might say: Open except for the license conditions of OrCad Inc. Free if you buy their software which only runs on something you don't have. So, now to use "Open" hardware, I'm up to probably $5K and whatever capricious BS they have in their licenses. And I have to buy a third licensed product to use the software. This is beginning to sound like the definition of Open in automation, which basically means you're Free to Open your wallet, but we dictate everything else.
As written, the Open Hardware model is exactly the same as the regular commercial model except that the author and the user give up their rights and choice. To the tools vendor. So the label Open Hardware becomes less than meaningless, it should be Handcuff Hardware because it chains you to a partner you may tire of rather quickly. I hope we can do better than that. Open Hardware should mean that anyone can use it for anything. Or as close as we can get.
Eagle's Lite version is limited to 80x100mm board, two layers, and one schematic sheet. This would be way too limiting for me.
I like FreePCB, it is open source and very high quality but it only runs in MS Windows.
One problem you can have with the proprietary software packages is that a lot of companies have limited distribution. They may sell over the Internet but they often only take credit card orders and their credit card processors often reject orders from anywhere outside of a fairly small list of countries. Even if you can get around that, then if it's a US company they often aren't allowed to sell to countries like Cuba, etc. Some companies have local distributors to deal with this, but then you have to do a lot of digging to see what their distribution network is like.
Even aside from the cost, if you are trying to run an open project sorting out those problems can be a big headache. With the Free/Open Source programs, you don't have those third party problems and you can just concentrate on your own goals.
I'm not planning on doing any hardware design, so my opinion doesn't really count. However, it's something you might want to think about.
Right now the problem with open hardware is the tools. As Curt said, doing a simple 2-4 layer board is probably fine with the open source PCB. My opinion is that complex boards using fine pitch SMDs, highly dense boards, and sophisticated auto-routing rules will probably not be covered by simple open source PCB packages in the very near future (I hope I'm wrong, but its looking this way). Does anyone have evidence of any sophisticated projects using PCB? Were the boards autorouted, or painstakingly manually routed?
I don't think the problem with designing with purchased software is with *using* the files in the project. Anyone can use GERBER and drill files to make boards. So in that sense I'm not sure I agree with the argument about people in Cuba e.g. not being able to make boards, etc.
The problem I see in using "purchased" software for development is that you would be limited on who could contribute because of the software licenses issues, and who would be able to pick up the project if the original contributor were to loose interest or die, etc. In my mind this would prevent a lot of people from being interested in it because they loose a sense of "community ownership" in the open source sense of the term.
We differ only in how "using" the product is defined. The software equivalent to using the Gerbers or a graphical representation is running the program as compiled. By that definition, shrinkwrap software is Open. That's why they put in the clause about supplying the source in the preferred form for editing, etc. To be Open, I should be able to fix bugs, add chips, etc. That would be very difficult to impossible with the Gerbers or in my case, even having the source, if it needs a $2000 package to do so. PCB is not fully up to the commercial packages that have man-years of development in some areas. But, none of the packages below say, $1500, have an autorouter that doesn't need a lot of human help. It does get a little grayer for the really high density boards, because, besides the tools you need a lot of expertise to change things. I've seen a SMD motor driver redesign that looked great and passed Spice and other sims. In the real world it would have large black holes burned in it in seconds. You can get power devices in tiny packages, but they can no longer dissipate 20 watts. What is needed is a common exchange format, but the commercial companies will go out of business fighting that, which makes their participation in Open Hardware rather dubious.
I'll buy what you said about changing things. I've been stuck in situations supporting old hardware enough to know the frustration of needing to replace a single obsolete component. Having the design "source" files are the ultimate in this arena. I've actually had old photo negatives of boards scanned and converted to gerbers and done minor edits, but this only goes so far! What we are talking about is somewhat the equivalent but purely in the digital realm.
Just as a side comment I've been really disappointed at how the mid range PCB packages have progressed. My company bought into the Viewlogic/PADS thing years ago through a suggestion from a colleague and it really wasn't a great choice for a small manufacturing company doing a board or three a year. I've watched them be acquired twice and finally Mentor Graphics is taking this simple but powerful board package and is trying to make it a mega monster swiss army knife. Oh yeah, and they refuse to develop parts libraries because somehow everyone that uses their software can afford a full time person to act as a librarian.. That's crap IMO!! Meanwhile all the other companies are doing the same or going out of business. Freeware applications are popping up, but they really aren't *that* capable and seem to be tied into some other business model such as coercing you into their fabrication facility, etc.
KEJR Said: "Freeware applications are popping up, but they really aren't *that* capable and seem to be tied into some other business model such as coercing you into their fabrication facility, etc."
Have you even looked at FreePCB? http://www.freepcb.com/ I have nothing to gain and either do they (I believe). The software and docs for laying out a board are amazingly good. Their libraries lack a bit, but according to many on their forum, this is common with many commercial packages also. It is easy to make new footprints though. They use a "free" online autorouter written in Java. It is very easy to make routing adjustments, which is also commonly needed. Try it, for what it is, it is very high quality IMHO. The person who masterminded it def knows how to develop PCB software.
I definitely want to give FreePCB a try. I don't have anything against it per se. As I understand you have to use a separate schematic software (Tiny CAD??)?? Have you tried this? I am a little leery on it because of the online autorouter and the separate schematic, but if it works, it works. I'm always afraid online services that are free will disappear!
TinyCAD works pretty well, but I don't like it as much as FreePCB. It gets the job done for sure, and the price is right though. I understand your concerns about the online autorouter, who knows what the long range plan is? Do you really need an autorouter? I sure spent a lot of time fixing up my design after the autorouting was finished.
Thanks for the reply. Sorry to hear that TinyCAD isn't the best thing going. I was kind of hoping you'd say it was really slick! I feel that schematic capture is an important part of board design as you can perform design rule checks on the netlist.
As far as the autorouter, I have been spoiled by the PADS router and it basically makes manual routing just about obsolete except for fixing a trace or two in extreme cases. On designs that don't have power planes (e.g. 2 layer) I will route a fat power bus around the board for the autorouter to use, but that's about it. I don't expect a GPL solution to be as good as the PADS autorouter just yet, but I look forward to that day!
I do kind of wish that Eagle had a bit larger board size for the Free and Lite versions of license, because their "non lite" version is still expensive for the small company or hobbyist. I haven't played with their autorouter in years, but I remember I was not overly impressed with it, but that it worked well enough. I do like their integrated package and the fact that they have very good libraries and are not trying to be everything to everyone with > $10K price tags and "mandatory for upgrade" service contracts and hardware dongles. Ugh....
I think the three different opinions just in this discussion is enough to say that there isn't a strong consensus on what packages to use for open hardware. My biggest concern is that these packages discussed won't really handle large designs with dense routing and [almost mandatory] complex autorouting. In the mean time I think you are going to see a little freedom in these open licenses that allows people to use the tool of their choice and rely on the design output (Gerber Artwork) to be the distribution format. Its not the same as GPL software, but it's a start.
I think that is what they are trying to do also. The problem with that is if you call what makes the tools vendors happy Open Hardware, that is as Open as it will ever get. All you have is the good name and the goodwill that goes with it. Once it's spent, there is no incentive to do better. And they get to have it both ways. Open and still locked-in. So, IMHO it's up to the authors to make it Open or not. So, tool choice is important. If you want to further Open Hardware, use Open tools.
I did some poking around last night on the net and found that there is another younger but increasingly popular integrated schematic/board package that is GPL'ed. It is also cross platform, so contribution support could be had from MAC and Windows folks in addition to the Linux guys. It seems to be a fairly active project. Its called KiCAD (I guess its pronounced "Key-CAD".). I was planning on downloading it later on and trying it. I think they have an integrated autorouter, but they also have an output compatible with the free internet autorouter Bill had mentioned.
While I would not say this software is entirely "integrated", it does not seem to suffer the same "problem" as gEDA (the parent project of the software "PCB") in that all of the individual programs are not maintained by separate developers and tied together by loosely affiliated scripts. I admit that some folks would argue that this loose affiliation allows each program to be best in class, but my gut tells me the integrated package is a better approach for future enhancements such as forward and back annotation, pinswap, gateswap and the like.
Just thought I'd mention it.
Just a couple points:
gEDA does not "suffer" from a lack of integration. It is a *NIX suite and follows the time tested, maximally flexible, *NIX pattern of tools that do one function well and can be used separately or piped or scripted together in new and ingenious ways. Any one piece can be upgraded or replaced.
Integration, like most buzzwords, is a two edged sword.
Integration can make GUIs easier to use and provide some consistency and a few other advantages.
Integration can also produce enormous, ugly, monoliths that are nearly impossible to maintain and extremely difficult to change or improve because at some point a minor change can have obscure and far reaching effects. It also tends to make software inflexible and lacking in APIs for reasonable adaptation.
This is a difference in philosophy and is why Windows requires a fast, modern PC or go home. And the same Linux can run on tiny embedded processors or an IBM360.
It is an important distinction, because I have made entire large, viable, projects myself by simply stringing modules together because they are all written to be used that way as much as possible. It would take man-years to write the whole ball of wax for an integrated solution.
One shouldn't wish for too much integration. The sad part is that the cries for integration are causing too much bloat in Linux too. Fortunately, most can be be trimmed off for technical use, as it's modular bloat.
The other is a minor detail. gEDA is not the parent of PCB. PCB predates gEDA by a long time. It was started on an AtariSt in 1990 and ported to UNIX and X11 in 1994. It's getting a little bloated as well.
This isn't a Windows Vs. *nix argument. I've used Linux and windows extensibly and I understand the differences. For programming I use IDEs where they work (and sometimes you are required to such as IDEs for automation tools) but I usually prefer emacs with gnu make where I can get away with it. Generating code files is not a decent analogy for PCB development, however.
An integrated package for PCB development saves you time. Simply put, from an ideal workflow, going from schematic to board should not entail shutting down your schematic, running a script, and then manually importing the changes into your PCB package. The better packages I've seen demonstrated are so integrated that you add a resistor in the schematic and the component appears in the PCB window with the rubber band connections already attached. This is usually a good thing (provided it works).
> Integration can also produce enormous, ugly, monoliths that are nearly impossible to maintain and extremely difficult to change or improve because at some point a minor change can have obscure and far reaching effects. <
I don't believe this is a valid argument. Any added complexity can make things more difficult to maintain, this is a fact of engineering. Living without *valid* features for the sake of simplicity is not always the right way to go.
I don't know if KiCAD really can even approach the ideal level of integration, it seems to be more of a shell that can launch the different applications and generate the netlists, etc. Is this really so bad? I've never used the program, it might really be bad, I just wanted to throw it out there.
Let me clarify that my arguments are based in the realm of trying to design medium complexity boards that are integrated to schematics with hundreds or thousands of nets. The gEDA suite will do this, KiCAD will do this, FreePCB will do this (using TinyCAD). You had designed some SPI boards for the PLC backplane project, but you weren't able to communicate the schematics to anyone else because you did it all on the "PCB" program without schematic integration. Have you used the gEDA schematic editor and the entire workflow to and from PCB? What are your experiences with this? I honestly would like to try some GPL programs, and I haven't ruled out the gEDA suite.
The fact that KiCAD runs on three operating systems is nice for contributors since you aren't souly reliant on the windows crowd or the Linux crowd alone.
I don't disagree fundamentally with your arguments. If you prefer the IDE style, that's fine. And for the run of the mill commercial designs, $10,000 might even be justified. Or even choosing your OS because that's what the software runs on. But you can't make something Open, that's not, with any of those otherwise sound arguments. And that's what we're talking about is how we achieve truly Open Hardware. If the designs you produce are encumbered by a non-Open license, or if any use of the files requires the purchase of restrictively licensed software, how Open is it? The rest was just the *NIX philosophy of making modules that can be used together. And yes, it is conceivable that Open Software need not be hosted on OSS. I'm sure there are plenty of tools that are more comfortable or convenient than PCB, but I just finished drawing up a DRO "shield" for the *duino and I did it in PCB so that anyone can use the design, improve it, what ever. There are lots of Eagle files floating around and I doubt there will be convictions, but many are in violation of Eagle's license as designs done on the "free" version are being sold. Maybe that's the new definition of Open, the license doesn't matter.
Are we talking about the same thing? I had mentioned checking out an
open source, GPL'ed software called KiCAD and you responded with
arguments about licensing. I also was interested in your thoughts
regarding the schematic entry and netlisting of gEDA and you did not
respond to that.
Actually I didn't respond because I haven't had the chance to thoroughly evaluate either one. I did have yum install Kicad when it was mentioned. It wasn't obvious how to use it, or gEDA, which is installed on this system. The way this came about is because I had a graphics environment talking to a reasonably powerful uP and I have needed a DRO for my mill/drill and I have a kinda crappy Compaq notebook interfaced, and I have one of the low cost digital scales installed, and it came to me how to do it. I needed a tool to write down a schematic ASAP. I might have gone directly to hardware if I had it all, but it needed severe cost analysis, because I have to buy stuff. And these things come to me more or less complete and I didn't want to forget it. So I loaded up the best schematic software I am familiar with, XCircuit, and went at it. The cost of fabbing boards is nearly out of the question in my situation so I tried to find a way to do it on an OTS prototype shield. That clearly wouldn't work so I, very late, decided it needed it's own shield. There were Eagle connector layouts, but they have 0,0 in the wrong corner so I transposed the origin and plopped the connectors in PCB, then the IC's, then the passives and then wired it. My point is that not everyone works in the same way. A net list would have confused the issue and I have never had any luck with analog circuits that are autorouted with the typical design rules.
Now, if someone gave me a complex digital board design job, the usual process might apply. But then, _they_ buy the tools, and I'm certain they wouldn't be interested in making the design accessable and buildable by anyone. But, that is my "market" so to speak, and a design in Orcad or similar wouldn't be nearly as useful. It would be closed to them, very effectively unless they happened to work somewhere with the particular package and they could steal time.
I have found a site that will make the board for $10 setup and $2.50/sq.in. It takes forever, but it's cheap. And they have a spot to put the boards up for sale at cost or with a small royalty. So, they won't knowingly accept encumbered artwork for sale. I have no problem, and the folks that want a cheap DRO for their machine tools are served. It's a whole different system when you _want_ to make a design useful for as many folks as possible. And to be really useful, the firmware and software must be Open as well. The commercial stuff simply won't, legally, let me do this. This system of doing things would be maximally useful for automation gear as well. Actually. a DRO is in that arena.
This is kind of off topic, but did you use a cheap quadrature scale, or one of those "chinese calipers"?
I had looked into doing a DRO with the chinese scales but I was not impressed by the YADRO or the Shumatech stuff in that they both seemed far too complicated for the simple "dual axis with 2 clear buttons" DRO I need. I kind of regret looking at the chinese scales after looking at their mechanical quality. One I got is nice, the other is real scratchy and not very accurate.
I agree that Yadro and Shumatech are overkill for what most users need and in particular, me. Since the theme is low cost, it will use an OTS Freeduino, the "shield" described, the Chinese scales or converted calipers, this last is quite popular for Z axis, and any old laptop for display. Check out the yahoo milldrill group for details. I'm still changing things, so don't take the drawings too seriously yet. 3 axis and a tach were planned, but I don't know about the tach. No, the Chinese scales don't compete with Heidenhain, but there aren't any good low cost alternatives. IGaging nearly blew this project out of the water with their _cheaper_ scales with a remote readout included. But you don't have to make chips very long before you get tired of squinting at those little LCDs.
You might also want to ask in the forums at "http://linuxcnc.org/". EMC2 is a very active project for CNC software with lots of users. Someone there should be able to make some good suggestions with regards to scale hardware.
Off topic, again...
M. Griffin: I think the parallel port with Mach software (and probably EMC2 as well) will take in quadrature signals and display the position on the PC. Surely once you have the data in the AVR sending it out over the serial port and displaying it with a custom program is simple enough. I think the last time I looked the glass scales for doing the
quadrature thing were $150 or so a piece and were chinese origin. At that price they aren't Heidenhain for sure, but probably better than the caliper type scales. I hate buying cheap measurement equipment but at the same time my lathe and bridgeport aren't exactly high end (They were gotten nearly free).
I might look at the igauging stuff again, its so simple, but I do agree that something else out there with a larger display would be best.
Curt, do you have any idea what your shield board might cost and whats on it for components? I was turned off by the YADRO because it was a lot of money for the board and you had to source all of the components if you wanted to make it cheap (Sourcing onesy twosy electronics can get expensive sometimes, especially if you forget something and have to pay shipping twice....).
Well, the first one will probably be a bit more expensive:^), but I'm thinking less than $50, complete, excluding the scales and notebook. You could, of course spend more if you buy instead of build.
The Freeduino is about $17. The DRO shield bare board is currently $25 for 1, $40 for 2, etc. The components are 2 2N7000, 3 LM339
1 7660H and A few cheap passives. If I have your email I'll send today's schematic. I'm rounding up DigiKey PN's for everything to save shipping. But I think, except for the things sold in qty 10, I should stay under $50. A qty buy on the boards would drop things quite a bit.
I haven't built one and I haven't written the AVR code yet. But I think it will work.