kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #01426
Re: Fileformats and library
-
To:
kicad-devel@xxxxxxxxxxxxxxx
-
From:
"khiraly k" <khiraly@...>
-
Date:
Thu, 3 Apr 2008 23:14:46 +0200
-
In-reply-to:
<47F14E9A.7050206@...>
> Dear Khiraly,
Dear Dick,
First, I really appreciate you have took time to read my long proposal.
I try to answer all of your questions,
and elaborate my proposal here and there.
>
> This is good stuff. I am surprised that you have not gotten anybody
> else to respond. I was waiting for others to comment before I did, but
> none have yet so I thought at least I would tell you that your ideas are
> appreciated, and seem to be quite well thought out.
Thank you.
>
> Here is my understanding of your suggestions:
>
> You suggest a two phase transition.
>
> In the first phase, all we do is split the schematic symbols and
> footprints into individual files and teach eeschema and pcbnew how to
> scan a subdirectory tree (one or more such trees with different base
> directories would be nice) to find all the symbols and footprints. And
> commit each of these files to subversion.
Yes, exactly.
>
> In the second phase, and concurrent with support for first phase so a
> gradual migration can occur, you suggest moving to an integrated file
> per symbol, and that integrated file would have all the required pieces
> to describe a electronic component.
>
> The first phase seems reasonable. I am not sure about the second
> phase. It seems you might be suggesting that for example all SMT 0805
> footprints would point to (would be bundled with in phase II) the same
> 3d model? I think that train of thought needs more clarification and
> elaboration.
>
Yes, it needs some clarification, because it is not what I would like to
see.
>It seems you might be suggesting that for example all SMT 0805
> footprints would point to (would be bundled with in phase II) the same
> 3d model?
Nope. All I have wanted to say, that some footprints can have requirements,
which can be listed in the footprint file itself.
Something like:
<footprint>
<name>SMT 0805</name>
....
<filters>3dpackages/foo, 3dpackages/bar</filters>
</footprint>
Its really the same what we HAVE NOW in CvPcb. We have an icon:
"Display the filtered footprint list for the current component"
Which display the logical choices for a particular schematic symbol.
>you suggest moving to an integrated file
> per symbol, and that integrated file would have all the required pieces
> to describe a electronic component.
This integrated file thingy: I propose a file per physical device to easy
the SEARCHING. And not to replace any other file formats (schematic,
footprint, 3dpackage).
Let me take an example:
I want to switch 3 leds at once with my microprocessor.
My microprocessor cant feed enough current to drive directly my
leds, so I need a transistor. Lets suppose also, that im new to all these
electornic thingy and pcb design process.
So I google up for something usable, and I find out that I need an NPN
transistor (and a ~5k resistor).
I look in my local electronic store for the CHEAPEST transistor.
I have bought one for 3 cents. It is marked BC547B on it.
So this is the backround story;) Now I want to integrate my brand
new transistor into my kicad project.
I need the following information:
transistor type: NPN
packaging: TO92
3dmodel: TO92
There is two possibility:
1. there are already someone who have looked into this,
and collected the above informations for me (this the purpose
of the library/device/ folder, the "integrated file per symbol"
as you referred it)
2. I google all of these. I read the relevant datasheets and find out
the packaging. (note: I didnt even know that the packaging has
standard names! Who cares anyway?;)
Ok. Let take an another example:
I want an optoisolator, I find an smd model in
my local electronic store: TLP-281.
- Optoisolator schematic are not in Kicad right now.
- there is no packaging in Kicad.
- there is no 3d model.
I look in the datasheet, and
- draw the schematic
- find out the packaging name is: soic4,
and I draw the packaging with the *appropriate* name
For me it took more than 2 days initially figuring out all of these!
(like for a simple transistor what packaging should I choose?
For my first project I choosed a pinarray 3x1, because I only knew
that I need 3 legs.)
So for ease this process Im proposing a description file per device.
So each physical device would have one file which points to the right
informations. Something like
<device>
<name>BC547</name>
<description>General purpose NPN transistor</description>
<alias>BC546, BC547B, BC547B</alias>
<schematic>schematic/device/npn.dsch</schematic>
<footprint>footprints/discret/to-92.foot</footprint>
<package>packages3D/to-92.wrl<package>
<datasheet>
<url>http://www.alldatasheets.com/to-92.pdf</url>
<file>datasheet/to-92.pdf</file>
</device>
If a device has multiple packages(and footprints),
we can just list all the alternatives:
<device>
<name>TL71</name>
<description>JFET Op-amp</description>
<alias>TL071C, TL072C, TL074C, TL071AC, TL072AC</alias>
<schematic>schematic/device/opamp.dsch</schematic>
<footprint>footprints/device/pdip.foot</footprint>
<footprint>footprints/device/so8.foot</footprint>
<package>packages3D/so8.wrl<package>
<package>packages3D/pdip.wrl<package>
<datasheet>
<url>http://www.alldatasheets.com/tl72a.pdf</url>
<file>datasheet/tl72.pdf</file>
</device>
I hope you can get now a better idea what I want.
So to summerizing up:
* I want to separate all information into separate files.
* Introduce a new file which ease the searching
(map a particular device to its package(s), footprint(s), schematic)
If this reorganization happens, it ease:
* third party applications to grow, like library browser
* specialized wiki like website collecting the most used parts
* a standard exchanging fileformat for the above tools
(from the wiki we could generate the device files for offline searching)
There are so many comments in this thread, that I will answer to them in
an another mail.
Best regards,
Khiraly
------=_Part_3526_10197577.1207257287039 Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
<span style="font-family: courier new,monospace;">> Dear Khiraly,<br><br><br>Dear Dick, <br><br><br></span><span style="font-family: courier new,monospace;">First, I really appreciate you have took time to read my long proposal.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I try to answer all of your questions, <br>and elaborate my proposal here and there.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> This is good stuff. I am surprised that you have not gotten anybody </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> else to respond. I was waiting for others to comment before I did, but </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> none have yet so I thought at least I would tell you that your ideas are </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> appreciated, and seem to be quite well thought out.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Thank you.<br>
<br>> </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> Here is my understanding of your suggestions:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> You suggest a two phase transition. </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> In the first phase, all we do is split the schematic symbols and </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> footprints into individual files and teach eeschema and pcbnew how to </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> scan a subdirectory tree (one or more such trees with different base </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> directories would be nice) to find all the symbols and footprints. And </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> commit each of these files to subversion.<br><br>Yes, exactly.<br><br style="font-family: courier new,monospace;"></span><span style="font-family: courier new,monospace;">> </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> In the second phase, and concurrent with support for first phase so a </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> gradual migration can occur, you suggest moving to an integrated file </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> per symbol, and that integrated file would have all the required pieces </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> to describe a electronic component.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> The first phase seems reasonable. I am not sure about the second </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> phase. It seems you might be suggesting that for example all SMT 0805 </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> footprints would point to (would be bundled with in phase II) the same </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> 3d model? I think that train of thought needs more clarification and </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> elaboration.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> <br><br>Yes, it needs some clarification, because it is not what I would like to see.<br><br></span><span style="font-family: courier new,monospace;">>It seems you might be suggesting that for example all SMT 0805 </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> footprints would point to (would be bundled with in phase II) the same </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> 3d model?<br>
<br></span><span style="font-family: courier new,monospace;">Nope. All I have wanted to say, that some footprints can have requirements, which can be listed in the footprint file itself.<br>Something like:<br><footprint><br>
<name>SMT 0805</name><br> ....<br> <filters>3dpackages/foo, 3dpackages/bar</filters><br></footprint><br><br>Its really the same what we HAVE NOW in CvPcb. We have an icon:<br>"Display the filtered footprint list for the current component"<br>
Which display the logical choices for a particular schematic symbol.<br><br></span><span style="font-family: courier new,monospace;">>you suggest moving to an integrated file </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">> per symbol, and that integrated file would have all the required pieces </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> to describe a electronic component.</span><br>
<span style="font-family: courier new,monospace;"><br>This integrated file thingy: I propose a file per physical device to easy the SEARCHING. And not to replace any other file formats (schematic, footprint, 3dpackage).<br>
<br>Let me take an example:<br>I want to switch 3 leds at once with my microprocessor. <br>My microprocessor cant feed enough current to drive directly my <br>leds, so I need a transistor. Lets suppose also, that im new to all these<br>
electornic thingy and pcb design process.<br>So I google up for something usable, and I find out that I need an NPN <br>transistor (and a ~5k resistor).<br>I look in my local electronic store for the CHEAPEST transistor.<br>
I have bought one for 3 cents. It is marked BC547B on it.<br>So this is the backround story;) Now I want to integrate my brand <br>new transistor into my kicad project. <br>I need the following information:<br>transistor type: NPN<br>
packaging: TO92<br>3dmodel: TO92<br><br>There is two possibility:<br>1. there are already someone who have looked into this, <br> and collected the above informations for me (this the purpose<br> of the library/device/ folder, the "</span><span style="font-family: courier new,monospace;">integrated file </span><span style="font-family: courier new,monospace;">per symbol" <br>
as you referred it)<br><br>2. I google all of these. I read the relevant datasheets and find out <br> the packaging. (note: I didnt even know that the packaging has <br> standard names! Who cares anyway?;)<br></span><span style="font-family: courier new,monospace;"><br>
Ok. Let take an another example:<br>I want an optoisolator, I find an smd model in <br>my local electronic store: TLP-281.<br>- Optoisolator schematic are not in Kicad right now.<br>- there is no packaging in Kicad. <br>- there is no 3d model.<br>
<br>I look in the datasheet, and<br>- draw the schematic<br>- find out the packaging name is: soic4, <br> and I draw the packaging with the *appropriate* name<br><br>For me it took more than 2 days initially figuring out all of these!<br>
(like for a simple transistor what packaging should I choose?<br>For my first project I choosed a pinarray 3x1, because I only knew <br>that I need 3 legs.)<br><br>So for ease this process Im proposing a description file per device.<br>
So each physical device would have one file which points to the right informations. Something like<br><device><br> <name>BC547</name><br> <description>General purpose NPN transistor</description><br>
<alias>BC546, BC547B, BC547B</alias><br> <schematic>schematic/device/npn.dsch</schematic><br> <footprint>footprints/discret/to-92.foot</footprint><br> <package>packages3D/to-92.wrl<package><br>
<datasheet><br> <url><a href="http://www.alldatasheets.com/to-92.pdf">http://www.alldatasheets.com/to-92.pdf</a></url><br> <file>datasheet/to-92.pdf</file><br></device><br><br>If a device has multiple packages(and footprints), <br>
we can just list all the alternatives:<br><br></span><span style="font-family: courier new,monospace;"><device><br>
<name>TL71</name><br> <description>JFET Op-amp</description><br>
<alias>TL071C, TL072C, TL074C, </span><span style="font-family: courier new,monospace;">TL071AC, TL072AC</span><span style="font-family: courier new,monospace;"></alias><br>
<schematic>schematic/device/opamp.dsch</schematic><br>
<footprint>footprints/device/pdip.foot</footprint><br></span><span style="font-family: courier new,monospace;"> <footprint>footprints/device/so8.foot</footprint></span><br><span style="font-family: courier new,monospace;">
<package>packages3D/so8.wrl<package><br></span><span style="font-family: courier new,monospace;"> <package>packages3D/pdip.wrl<package></span><br><span style="font-family: courier new,monospace;">
<datasheet><br>
<url><a href="http://www.alldatasheets.com/tl72a.pdf">http://www.alldatasheets.com/tl72a.pdf</a></url><br>
<file>datasheet/tl72.pdf</file><br>
</device></span><br><span style="font-family: courier new,monospace;"><br>I hope you can get now a better idea what I want.<br><br>So to summerizing up:<br>* I want to separate all information into separate files.<br>
* Introduce a new file which ease the searching <br> (map a particular device to its package(s), footprint(s), schematic)<br><br>If this reorganization happens, it ease:<br>* third party applications to grow, like library browser<br>
* specialized wiki like website collecting the most used parts<br>* a standard exchanging fileformat for the above tools<br>(from the wiki we could generate the device files for offline searching)<br><br>There are so many comments in this thread, that I will answer to them in <br>
an another mail.<br><br>Best regards, <br> Khiraly<br><br><br><br></span><span style="font-family: courier new,monospace;"></span><span style="font-family: courier new,monospace;"></span><br style="font-family: courier new,monospace;">
------=_Part_3526_10197577.1207257287039--
References