element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE User Support (English) Create library device to use board as component?
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 10 replies
  • Subscribers 180 subscribers
  • Views 1945 views
  • Users 0 members are here
  • package
  • library
Related

Create library device to use board as component?

gwideman
gwideman over 10 years ago

What's the best way to create a device from an existing Eagle schematic/board design?

 

That is, you have an existing board, for which you have the Eagle project, and you now want to make a library component so you can use that board as a component on another board.

 

Example, picked at random:

https://www.adafruit.com/products/269

https://github.com/adafruit/Adafruit-MAX31855-breakout-board

 

... and you want to use that board as a component on a new board.

 

Obviously the existing Eagle board project contains a lot of data that could be used in the library component, but I am not seeing a straightforward path to making that happen.

 

I've tried two approaches, neither of which worked well. (Using the example board.)

 

1. I tried copying salient layers from the Board editor to the Library package editor: Layers Pads, Dimension, tPlace, tOrigins, bOrigins, Drills, Holes

 

  • During the group Copy process (Board editor viewing the source board) I got error message: "Can't backannotate this operation. Please do this in the schematic!". This seems bogus, since Copy shouldn't change anything in the source data. Nonetheless, something did appear to get copied to the clipboard ...
  • During the Paste operation (into the destination library component Package), the initial movable visualization showed the entire board data seemingly about to be pasted (not just the layers I'd selected), but then when I went to actually paste, I got message "Skipped unsuitable objects", and the only things that actually pasted were items on the Dimension and tPlace layers. So, no pads or holes.

 

2. An alternate approach I tried was to use an image of the board as an underlay in the Package editor, over which to stick all new pads, holes, text and so on.

 

  • I made an image of the board's package, either using Eagle layout editor Export > Image, or just a screen shot of the layout
  • I used import-bmp.ulp, to get this background into the Package editor.  This "works", though it converts the bitmap into a huge mess of rectangles and/or lines, on separate layers per color. It's good that they are on separate layers, but to use this background of course it must be visible, in which this proliferation of shapes makes it difficult to pick and move the actual useful new pads, text and so on.
  • This seems very manual and crude, failing as it does to take advantage of the exact pad positioning, outline, holes, pad and pin names and so on that's already in the existing board project.

 

Is there a better way to go about this?

 

-- Graham

  • Sign in to reply
  • Cancel
Parents
  • gwideman
    0 gwideman over 10 years ago

    Additional note:

     

    If creating the new component mostly manual, one time-saver is to find the library components that the original board used (for example, its headers), and copy that component's package into the new library component.  For this purpose, it can be useful to open the original board file and export its library using exp-lbrs.ulp.

     

    Still laborious, but saves having to recreate individual pads and their silkscreens.

     

    -- Graham

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • autodeskguest
    0 autodeskguest over 10 years ago in reply to gwideman

    On 8/7/2015 7:47 PM, Graham Wideman wrote:

    Additional note:

     

    If creating the new component mostly manual, one time-saver is to find

    the library components that the original board used (for example, its

    headers), and copy that component's package into the new library

    component.  For this purpose, it can be useful to open the original

    board file and export its library using exp-lbrs.ulp.

     

    Still laborious, but saves having to recreate individual pads and their

    silkscreens.

     

     

    Hi Graham,

     

    I think the best way to handle this is to use the EXTERNAL attribute

    to to create a symbol representing that board.

     

    Check out the libraries that Newark distributes for Arduino, BeagleBone,

    and Raspberry Pi.

     

    They use this method to indicate on the schematic that an external board

    needs to be plugged into.

     

    I think this is what you need from reading the rest of the posts.

     

    Let me know if there's anything else I can do for you.

     

    Best Regards,

    Jorge Garcia

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • autodeskguest
    0 autodeskguest over 10 years ago in reply to gwideman

    On 8/7/2015 7:47 PM, Graham Wideman wrote:

    Additional note:

     

    If creating the new component mostly manual, one time-saver is to find

    the library components that the original board used (for example, its

    headers), and copy that component's package into the new library

    component.  For this purpose, it can be useful to open the original

    board file and export its library using exp-lbrs.ulp.

     

    Still laborious, but saves having to recreate individual pads and their

    silkscreens.

     

     

    Hi Graham,

     

    I think the best way to handle this is to use the EXTERNAL attribute

    to to create a symbol representing that board.

     

    Check out the libraries that Newark distributes for Arduino, BeagleBone,

    and Raspberry Pi.

     

    They use this method to indicate on the schematic that an external board

    needs to be plugged into.

     

    I think this is what you need from reading the rest of the posts.

     

    Let me know if there's anything else I can do for you.

     

    Best Regards,

    Jorge Garcia

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • gwideman
    0 gwideman over 10 years ago in reply to autodeskguest

    Hi Jorge: Thanks for the reply.

     

    I am pretty sure you misunderstood this question.  In a separate thread I asked how to represent an off-board component, for which you suggested using the [underscore]EXTERNAL[underscore] attribute, and that was great (-ish... still requires separate library part -- sniff).

     

    Here I'm asking how to start with schematic/board "A", (one that probably has headers on it that can plug into another board), and use that existing project "A" to create a device/package/symbol ("A-As-Component") that can be used on schematics/boards ("B"..."Z") that can receive A-As-Component.

     

    I don't see how EXTERNAL helps at all with that.

     

    > Check out the libraries that Newark distributes for Arduino, BeagleBone, and Raspberry Pi.

    > They use this method to indicate on the schematic that an external board needs to be plugged into.

     

    Actually, I just used the Arduino library in another project. It doesn't involved indicating EXTERNAL anywhere. It provides an Arduino symbol/package/device which gets *included* on the new PCB -- that's kind of the point.

     

    But since you bring it up, the process I'm asking about is the process for producing such a library component (like Arduino) when you already have the schematic and footprint of the Arduino.

     

    -- Graham

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube