Open source PLC hardware

C
Hi all

I sent a concept drawing to Bill. It is done in QCad which is free on Linux and of nominal cost on Windows. I sent a .png and a .dxf. The .dxf is supposed to be in AutoCad 2000 format for those who have AutoCad. The drawing is to scale and can be modified to show other ideas or ? I don't know how well the interchange with AutoCad works, so QCad is preferred. This drawing is for the 1.25" slots. I will do another with 1.00" slots when I get the 1" backplane done.

Regards
cww
 
C
Exactly right, Bill, except a switcher there gives me pause for noise considerations. I'm looking at it though. I hate to generate extra
heat.

Regards
cww
 
C
The more the merrier! Ours is aimed at a different segment of the market. And it ties into my software plans quite a bit better, but it's good to know of other Open efforts.

Regards
cww
 
C
Here's what I think I'm gonna do for the CPU power. The little switcher module Bill found will should work. I have a little heartburn about a single source and it is kinda spendy. It's fairly clear what they did, they simply bundled one of the many packaged switchmode chips with the inductor and caps, etc and heatshrinked the whole blob. Its pretty much what I had in mind if I built in a switcher. Only I'd do it on the board. A 7805 or better, heatsinked to the case would also work, but it would make more heat than the rest of the PLC. And, for all we know, the ultimate user may well want 12V or 3.3V or ?

What I can do is site two TO220 outlines on the backplane. One will be oriented so that a regulator could be screwed to the case, and one will be oriented perpendicular to the backplane long axis. I will provide for brute force cap filtering. This way you can use a linear, the module, or if worse comes to worst, I can draw up a small regulator board that will plug in the TO220 space. Holes can be drilled to mount a magnetic or Faraday shield between the regulator and the CPU. After all, this is Open Hardware, and choice is consistent with the goals.

Regards
cww
 
C
Ok, tonight I did the 1" card spacing backplane. It's 8.5" X 1.5" with the extra .5" on the CPU end. Because the space is more limited, this is arranged for the 90 degree connector on the component side of the cards. It has the two TO220 spaces to use either a linear (7805 or better) or the switcher which shouldn't require a heatsink. I did move the connectors up to gain more space for the CS lines. I'll do a .png and adjust the box drawing and send them to Bill in the AM. I have a little more checking to do with hole sizes and the like. I am leaning towards the male connector being on the card as male pins should be the non powered half and it would be easier to repair on the card.

Regards
cww
 
W
Yes, male pins on the card sounds right. 1" spacing sounds reasonable. If the regulator doesn't dissipate much, we should screw it to the board and maybe a plated area to soak up the heat (shouldn't be much). One thing I would suggest, we should start with a smaller rack, like 4 slots max to keep the cost down while we are developing our ideas.

Bill Sturm
 
C
Hi All

As Michael suggested, I'm looking at licensing. Considering the TAPR Open Hardware License, which see.
Comments?

Regards
cww
 
C
It didn't look like the module had a screw hole anymore! For industrial use, I would like to see some way of supporting it so vibration doesn't fatigue the leads off. The cost comes in in some strange places. I was looking at the simple and ubiquitous .100" headers and receptacles. Just looking at Digikey's selection the cost varies from about $3 a card to over $10 at qty 100. Since there are often several on a $10 card, they aren't paying anything like that. But unless you have to throw away a few revs, it really wouldn't save much if you know you need to do a full compliment once you are satisfied. We can simply not populate the entire card until it works. I am pretty confident in the cards as drawn as they are really simple cards. Getting a full set to test with will be a stretch, but, if an input card and an output card work, chances are good that they'll work in any combination. I don't expect to make more than 1 fixup rev at the most. One of the few good things about my situation is that I can take all the time I want to check. There's no one pushing.

Regards
cww
 
In reply to Curt Wuollet: I've looked at the TAPR license, and I'm not sure I would recommend it as it stands. I see a few problems with it.

1) There are two versions - the OHL (Open Hardware License) and the NCL (Non-Commercial License). You definitely don't want to use the NCL version, as it it says you can only distribute hardware on a non-profit basis. That is a big can of worms you don't want to open for an industrial control system.

2) The OHL version states you must "Attempt to send the modified documentation by email to any of the developers who have provided their email address. This is a good faith obligation -- if the email fails, you need do nothing more and may go on with your distribution."

That is a very wishy-washy statement, and really has no point. What's more, it ends up being like a chain letter with e-mails going all over the place. The GPL by contrast doesn't bother with a requirement like this (deliberately).

3) The OHL version states that "You may include files in proprietary formats, but you must also include open format versions (such as Gerber, ASCII, Postscript, or PDF) if your tools can create them."

The phrase "open format" is left undefined. That pretty much defeats the whole point, as pretty much every vendor these days calls their proprietary product "open". The phrase "if your tools can create them" then waters down that requirement to the point of meaninglessness.

4) It is not clear to me where the boundaries on the license are. That is, when you include a licensed board in a product, where is the limit on the "assembled or partially assembled units" which are "based in whole or in part on the Documentation". It's not clear to me whether someone can draw a black box in the middle of an existing board design and then say that it's "documented". On the other hand, you obviously don't want the license to try to apply to the circuits inside the chips you use (if you did that, you wouldn't be able to use chips).

5) The copyright notice on the circuit boards sounds like the old style BSD "advertising clause". This sounds like it could be a problem if a design goes through multiple revisions by different parties over time.

A lot of interest in open hardware has developed in the past year or so. Someone like the SFLC or the FSF might be willing to put together a better license based on something like the GPL. TAPR have based their own license on the GPL, but they've added some points of their own that I think are problematical and I'm not sure they've properly addressed the differences between how software copyright and hardware designs.

I don't know if you agree with me on the above points, but I think they need to be considered. On the other hand, I definitely wouldn't recommend trying to write your own license. If you decide that you can't be bothered with the whole issue, then you would probably be better off with the TAPR OHL than with nothing.

I have been thinking of contacting the FSF and/or SFLC with a question of my own. I can ask them about this issue as well if you like. This is the sort of thing they do (for free), so I can't think of a better party to ask. However, you will need to be prepared to answer questions about things like data formats.
 
W
Curt said: "One of the few good things about my situation is that I can take all the time I want to check. There's no one pushing."

And that is one of the main reasons that free, open source, and public domain products frequently are designed so well, there is no unrealistic deadline set by some manager or marketing department...

Bill Sturm
 
C
Hi Michael

I agree that it's got problems, the whole business of trying to accomplish for hardware what the GPL does for software has many problems. You don't have to even think very hard to find them. Even the phrase, "So it stays free and Open", is a legal nightmare to define. So yes, if you could get the EFF, etal. current thought on the matter it would be great. I did like their clause that the customer gets the stuff to make his own. That would mitigate most of the extortion that happens now. No one license will please everyone and the whole idea seem to displease some, but we go on. Any license will disclaim any liability for stuff beyond our control.

Regards
cww
 
I didn't get to work on anything this weekend as we had a terrible storm in New England that caused major power outages for several days. So I was running around for Groceries and Gas for the generator, etc. Things have stabilized now.

The data formats are tricky. Some hardware projects may require high end PCB tools that are definitely not GPL. The GPL tools are starting to get there, but they still can't compete with the likes of Mentor Graphics and Altium (formerly Protel). CPLDs and FPGAs tools have their own issues as well, although Verilog and VHDL is easier to distribute.

At this point, with this project, I think we want to *at least* mandate the inclusion of GERBER outputs and PDFs of schematics in a license. This way anyone can use their own tool to do their designs, but allow others to recreate the boards at the Fab of their choosing. Unfortunately this will not inspire people to alter/enhance schematics and netlist the design changes to the PCB program because GERBERs are not *that* editable, and sufficiently complex designs mandate Schematic/Netlist/PCB/(maybe)AutoRouter. I think the lack of a standard schematic format and netlist will hinder the community effort.

Bill Suggested a couple schematic/PCB packages for windows, and Curt suggested using "PCB" for linux. Is there a defacto standard out there in the GPL world? If it is "PCB", what is the program used to do schematics? Are these tools able to migrate to more complicated designs as [hopefully] someday we will have CPU cards designed specifically for plugging into the backplane? I know this is a long ways off, I'm just looking toward the future. Maybe its worth contacting some of the guys doing "open" CPU cards for linux as they have probably already solved some of these issues. I'll work in whatever program as long as it is decent.

As Curt already mentioned, Mechanical designs can be exported to DXF, which is an editable format and most packages support it for import/export. I don't think the simple nature of this project warrants the complexity of a 3D CAD package.

KEJR
 
If we are looking at spending $3 a connector we should consider the 2 row DIN connectors as they were about $3-$4 for a 20 pin version from Hirose, also at Digikey. They are probably overkill, but they do offer more chamfer lead-in distance than a standard header, which will allow for looser mechanical tolerances. I'm not sure what target application uses a 20 pin DIN connector, so I can't say how standard it is, but it would be interesting to find out.

Would it be possible to put holes on the board and either use the screw down headers or "non screw down" headers as the application requires? We have to be careful with headers as there are several types with different dimensions. We will have to pick some standard connector since the mechanical spec would vary if we have different height connectors, etc. There is probably some de facto standard.

KEJR
 
C
Hi Ken

There is a standard for the Open Source world and that is The GEDA Project. It includes an attribute editor and a schematic editor and a gerber viewer and PCB. Your humble correspondent unfortunately learned PCB layout before integrated tools and I did not generate netlists, etc. for this project. For 1 or 3 chip boards, I didn't think it very handy, but it would be valuable if you have a whole board of logic. Developing a competitive CPU board would be such a case, but for now, I think the market offerings with their board support packages are more cost effective, even with volunteer labor. I have done a microcomputer before, but today you almost need automated equipment to build a board that compares in space efficiency and the like. But, the tools are there if it should become a burning desire for someone. On a related note, the 4x4 space I am allowing for a CPU board may be a hindrance, limiting the selection of boards, but I hate to make things much bigger. I did try some samples of terminals, and while I need the current capability of the .200" wide terminals on the BP, we could use .150" spaced terminals on the cards and gain 5 extra spaces. I can't conveniently do 3.5 mm without metricating the whole board. Perhaps the 3.8mm, .150" spacing would be a good compromise? I still have to see if the variety of terminals in the .150" spacing would meet foreseeable needs.

I have upgraded the 1" spacing backplane +24V bus to carry 15A conservatively which should be enough. And I added terminals for the power connections. I'll send Bill the .png. The 1" BP is getting close to doing a DFM check and release. I have redrawn the input card for the .150" connectors. And I've found headers and receptacles for reasonable cost at Jameco. They are .25 and .65 respectively at qty 100. The screw clamp terminals are still spendy, but I'm looking around.

Regards
cww
 
W

William Sturm

Curt says: "The screw clamp terminals are still spendy, but I'm looking around."

I presume you've tried Mouser, they have decent prices and a wide selection.

Bill Sturm
 
It sounds as if the answer to data formats should be:

1) Always include a PDF version.

2) Mechanical designs must be in DXF format.

3) For the PCB files, there is another way of looking at this question. You guys should be setting a policy for the project itself as to what formats these designs will be in. That is, you don't want to have Curt Wuollet's files in one format, Ken E's files in another incompatible format, etc. If I download the files, they should be in some consistent format, you should be able to read and work with each other's files, and I shouldn't need to use several different programs which all do the same thing.

For the particular boards you are designing, you could then have the license state that any derivatives of these designs must retain the existing formats (or newer versions of those same formats). That pretty much solves the whole issue (except of course the arguing amongst yourselves as to what those formats should be).

Now if someone else designs a board that is not a derivative of one of your designs, he could use whatever format he desires. To use the same license however, he must include all the files used in the design and manufacture of it. In addition, he must include PDF versions.

I am assuming in this that anyone can interface a board of their own (or someone else's) design to the backplane without using the same license. That's how for example you would use off the shelf CPU boards, or interface off the shelf third party assemblies. This is analogous to how if you modify a GPL licensed program the changes must be GPL also (or compatible with GPL), but simply communicating with a GPL program over a network does not cause the same terms to apply.

So, I think the file format question is best solved by setting a policy for the project, and then having the license require the same policy for derivatives. That will also help when you get other people interested in this. If anyone else wants to contribute designs then you will want them to be in the same consistent format that you are already using. Once you get enough people using a format, it becomes the "defacto" standard for this particular field (open PLC hardware).
 
W

William Sturm

I have an idea for the backplane. Could we have an 8 output SPI digital I/O chip on the backplane for the 8 chip selects? With that, the number of wires from the host computer can be reduced by 7. We would need only 4 wires plus power. We would simply send an address followed by data, all in SPI. We would have one chip select from the host CPU for address select. I guess we would also need a logic chip to gate the address bits from the data bus. Does this make sense or is it better to keep the backplane purely passive?

Bill Sturm
 
C
The gEDA suite is the only contender here, I'd much rather spend money on the prototype than on tools or especially Windows. It is also the only choice where you don't have to pay to play. Combined with QCad, a poor student or itinerant automation guy can contribute. It's quite doable to put the whole works on a USB thumb drive and use it with any PC.

Regards
cww
 
Bill,

Even with 16 chip selects (slot selects) the CPU connector is under 26 pins which is still really cheap to acquire. Keep in mind that the Slot connectors can be the smaller 10 pin or whatever we choose in the end. I really would encourage a completely passive backplane for simplicity.

KEJR
 
Hello,

I don't mind using GEDA if it is becoming a defacto standard for the open world. For needing a schematic I wasn't necessarily considering a CPU design just yet [ maybe an AVR version of CPU], but more likely a board that has optical isolation. Having the rubber bands on an opto isolated card is nice because the interconnects get a lot more involved.

I don't have a problem with 3.81mm field wiring connectors. If they are more common it would actually be better. Lets just make sure they have front entry pluggable versions. I personally like being able to wire to the connectors without removing the pluggable portion to be able to access the cage clamp or screw terminal.

I have a virtual PC running Ubuntu so I am sure I can install the GEDA fairly painlessly and give it a try at home.

KEJR
 
Top