Introduction: Designing an Expansion PCB (Intel® IoT)
This Instructable has been written as a starting point for those who are keen to use the Intel® Edison to its fullest potential, by incorporating it into an fully developed embedded project. To do this, you will likely need to make – as Intel® calls it in the Edison's Hardware Guide * – a custom "user-designed expansion PCB".
[ * See the Introduction of the Hardware Guide (PDF) for reference. ]
Wut… on Earth is a "User-designed Expansion PCB"?
An excellent question! To understand what an expansion PCB for the Edison is, we really need to first consider what the Intel® Edison module itself actually is, and what it is best suited for.
Psst, do you already know:
- what expansion boards for the Intel Edison are (Arduino, Breakout, etc.);
- what the Edison module is / and when you should use it over alternative available platforms; and do you know
- when you should take the time and effort to develop a complete expansion board instead of using the existing Arduino Expansion Board or Breakout Board with a custom shield?
If so, you may want to skip past the Background Information below, and jump ahead to the Getting Started section at Step 2.
The Intel® Edison is a tiny Computer on a Module (COM) that was originally intended to be used as a development platform for wearable technology. Even for its tiny size though, it is still possibly too big for many wearable applications – and Intel® has now developed a new platform called the Curie. However, the Edison still has many exciting applications and is ripe for creating innovation within the maker community.
What Edison is Not
It's important to understand what the Intel® Edison is not, as well as what it is. The Edison is an interesting piece of maker hardware, in that it exists in a fairly new niche. It is easy to try and compare the Edison to a Raspberry Pi® or an Arduino®, especially given the currently default option of connecting the Edison to an Arduino® compatible expansion board. Even though the Edison is compatible with the Arduino IDE, the Edison is not an Arduino. Its compatibility with the Arduino platform is just an extremely clever marketing tactic to help Intel® regain market share; a tactic that just happens to be extremely beneficial to their target market as well, which I will explain in the next section. High-five Intel®!
The Edison is also definitely not a Raspberry Pi. Where as the Pi is a Single Board Computer, complete with graphics output, keyboard and mouse support, and able to replace a traditional PC in many ways – the Edison is a module that is intended to be embedded in another product or board; and importantly, without a traditional display directly connected to it. It is more closely related to the Raspberry Pi Compute Module, another tool intended to be integrated into other products.
In contrast to the RPi CM, the Edison lacks proper graphics support, but is faster at some computational tasks, includes WiFi and Bluetooth as standard, and is *extremely* power and space efficient. This makes it incredibly useful for Internet of Things (IoT), or Machine to Machine (M2M) type developments. Indeed, this is where the Edison really shines! This Instructable is designed to help you plan and develop a PCB for your very own embedded systems project using the Edison.
This guide is NOT going to explain the technical know how of how to design a PCB, or even a basic circuit specifically, as their are many excellent Instructables that already exist and serve that purpose better than I could. Instead, it will walk you through a general process to take when designing a PCB, and will relate the information to building an expansion board for the Edison module. The guide will also note some of the important considerations that need to be remembered in relation to designing for the Edison module.
Overview of Makability
|Difficulty:||............||You need to be able to understand complex circuits.|
|Tools:||............||You'll just need a computer really.|
|Cost:||............||BONUS: The needed software can be had for free!|
Warning:The author of this Instructable is NOT a professional. Using the information from this tutorial is done at the readers own risk. The author accepts no liability from any injuries of the reader, or damage to the readers equipment based on these instructions!
Step 1: Background Information
Personally, I have come to the conclusion that the Intel® Edison is a perfect tool for two of three main stages in a makers journey from student to pro-maker, or even the journey to becoming a hardware focused entrepreneur (Kickstarter projects anyone?):
An Arduino compatible developers kit for students, using the Arduino Breakout Board; ??? (I will explain below); and A general purpose compute platform for entrepreneurs and pro-makers.
The Edison and Arduino Breakout Board is absolutely perfect to give to students and beginner hobbyists to develop their own cool experiments and widgets, by using a very flexible and powerful platform. Intel® was very intel..ligent (I promise, I won't make that pun again.. haha) from a marketing perspective in partnering with Arduino…
As a Student in the Early Stages:
In essence, you start with a supercharged Arduino that you can use to code your heart out, without worrying about a lack of computing power or storage memory (very useful as a beginning student). Then, once you have learned how to use the Arduino IDE and want something a little more challenging, you move on to using Yocto Linux and your choice of a "mainstream" general purpose programming language, such as C, Python or Node.js. Now, you have developed skills that are going to stay useful for the rest of your life; you have learned the basics of programming (i.e., the actual logic skills) and simple hardware integration skills with the Arduino IDE, and then you have been able to transfer those skills to general purpose, cross-platform languages. This ability to transfer a programmers knowledge of concepts from the Arduino C/C++ like programming language to other languages is a much needed skill for budding programmers and designers.
From Student to Maker... Not so Fast:
From there though, the intended use of the Edison on the "user journey map" from student to pro-maker starts to become a little unclear. Many students start to want to develop more complete projects once they have mastered these basic concepts – i.e., the types of things you can take home with you and show family members, and are projects worthy of their feigned interest. Whilst a blinking LED is cool to us maker geeks, most muggles aren't going to be excited by it. Muggles (parents, distant relatives, friends, passer-by's on the street, etc.) *are* often interested and impressed by working prototypes though, that show what the maker is capable of. And unfortunately, this seems to be Edison's weakest point at the moment.
Mostly, it seems that the Edison is not particularly suited for permanently embedding in "hobby" projects or prototypes without developing a custom expansion PCB. Why? Because of the cost.
The Breakout board attempts to fill this gap, but in truth, it sort of flops for some use cases.
From Maker to Pro (Developing Final Designs)
If you can get past the stage (still developing...)
So, "What Will You Make" with "Intel® Edison Inside™"?
I am making an educational robotics platform for students. My first version will incorporate an Intel® Edison into the design, and will be unoriginally called an Edibot.
So now that we know what we are building a PCB for, let's Get Started! (of course, you can use the concepts in the tutorial and apply them to your own design or product)
Step 2: Getting Started... Sort Of
First things first, you need to Read The Flipping* Manual, go through a few other preliminary stages and then gather your things. This should be simple enough…
(*or insert an expletive if you prefer such things)
Okay, before you even open up your PCB routing software, you will need to do the following things:
Read The Flipping Manual Complete the Basic Development of Your Project Including: Developing a Working Prototype for Your Embedded Project; Developing a Concept for the Final Product (port location, etc.); and Plan the Dimensions of the Final Enclosure for Your Design Learn How to Use Your Chosen PCB Routing Software Gather Your Things (Materials)
Items 2 and 3 are completely out of scope for this instructable as it is already a long and detailed write up. I have included some notes on the items below to help you get started though. If there is enough genuine interest in me writing some instructables for those three items and linking them to this write up, I would be more than happy to do so. Just let me know in the comments.
Alright, let's get started!
Read The Flipping Manual
Go and download the "Intel® Edison Compute Module – Hardware Guide" document from Intel's® website and read it.
Seriously, it is long and technical and boring and just goes on and on… but you are going to mess something up in your PCB design if you don't read it, and magic smoke may be released. Ideally, you will do this as soon as you decide that you are going to make the journey from student to pro-maker, as there are differences in the components that work with the breakout boards, and the components that you can use directly with the Edison module.
Most of the document is not that complicated in terms of understanding what it means and how it relates to the PCB design. Intel has done a great job at producing a fairly maker friendly technical document that is normally written for OEM/engineering types. You will just need to ignore the fact that it looks long and has lots of scary looking diagrams for the uninitiated.
Break it down section by section, and just take your time to ensure you understand each component of the document. You don't necessarily need to understand the technical reasons for why you need to make something on your PCB a certain way, just what you need to do and what you need to keep in mind with your design. Eventually, it will make sense as a whole. When you get stuck on something, you then post online to one of the many communities available, state that you are learning and are interested in figuring out how to make embedded projects, and then ask your question. Chances are someone will be able to help.
For questions related to the Intel Edison and associated projects, I would recommend asking questions on either StackOverflow (insert sub site), the Intel Community Forum or this website, Instructables ________________. You may also ask any questions you have in the comments below of course, but please recognise that I am in no way a professional electrical engineer, so there are going to be questions that I do not understand the answers to. This instructable is basically my translation of the hardware guide document as I understand it, mixed with a few design processes I have encountered over the past few years that are related to designing for the Edison module specifically (and I also welcome any comments correcting obvious and death inducing mistakes!). Basically, I will be taking a "get it done" approach over a deep understanding of the technical aspects of electrical circuits.
Learn How to Use PCB Routing Software (aka Electronic Design Automation Software)
There are many EDA software solutions options to choose from:
Allegro PCB Designer is used by professionals, such as Intel. That's right, the Edison is designed using this particular software package. However, it is expensive – probably out of your budget. The other expensive EDA software package that I am interested in personally is by Altium. They are Australian company, and I am keen to learn more about software from my home company.
Truth be told though, I do not know enough to comment on either of these offerings beyond their price. They look interesting, and I believe Altium offer some lower priced options for students and hobbyists that I am very interested in exploring. I will update this section if I ever get the chance to play with professional options. Beyond the professional options, you then have the more hobbyist level options to choose from:
EAGLE by CadSoft is the absolute defacto standard, and I personally don't like it. Like most EDA software packages, it is ugly. Call me superficial, but I believe software should both look good and be intuitive to use. EAGLE does neither. That said, every major PCB manufacturer that supports hobby level production will support files that have been generated by EAGLE in some way or another. It is a very safe option to work with and is avaialble on Mac, Linux and Windoze. KiCAD Fritzing 123D Circuits by Autodesk
There is obviously more options. The easiest place to see the different features of the various options is to visit this EDA Software Comparison article from Wikipedia.
Prototype (breadboard circuit, etc.)
Computer with your choice of EDA installed
Okay, so it's been a long process and we haven’t even started designing the actual PCB itself yet. I never said it was going to be easy after all, but it is a very fulfilling project to complete. It is an especially good feeling to design a PCB for the more complex projects that the Edison module is suited to.
Step 3: Design Process
Step 4: Concept Drawings & Block Diagrams
Step 5: Schematic & B.O.M.
Step 6: Setting Up the EDA Software
Step 7: Setting Up the Work Area
Step 8: Component Placement Order
Step 9: Interconnect Placement
Step 10: Power Circuitry
Step 11: Any Sensitive, Large or Critical Components?
Step 12: Placing the Rest of Your Components
Step 13: Complete Trace Routing
Step 14: Final Inspection
If you have a properly completed schematic in your EDA, your EDA will likely be able to tell you if you have forgotten any of your routing by automatically comparing the rats nest view to what has been routed on the board. It may also be able to help identify some errors, if any exist. Note I said some; software cannot identify all possible issues with your design (yet! haha).
Perform a Design Rules Check
This automated inspection is performed by running the Design Rules Check (DRC) option in your EDA software package, which will ensure that the rules we programmed into the EDA in Step 6 are actually being met. You will need to search your software's instruction guide on how to perform a DRC. If you are running Fritzing, simply go to the PCB view and then from the menu, select:
Routing > Design Rules Check (DRC)
The other important tool that many people underestimate is simply getting someone else to look over the design with a fresh pair of eyes. When you have been looking at your design for many countless hours, it is easy to miss things. Give the design to someone else, preferably someone with more experience designing boards, and ask them to check it for you.
Perform a Manual Inspection
As I said earlier, the software won't pick up all of the errors. You will need to manually go over it the old fashioned way as well. Some of the things to visually check for include:
- • [placeholder]
Once you are happy that the board is electrically complete and sound, and that the requirements of your manufacturer have been met, you can move on to the finishing touches in the next step.
Step 15: Silkscreen & Solder Mask
Step 16: Other Considerations
Step 17: Generate Your Documentation
Time to fabricate the design, but first you will need to export the design into a format that your PCB manufacturer can use. You can try some of the home based DIY methods, but I have strong reservations about the viability of Edison expansion boards fabricated using those techniques, due to the extremely small traces on the required Hirose connector. Unfortunately, even if every other component used in your PCB design is through hole, or an easier to solder fine pitch SMD component, that connector is going to make things hard. It's just the price of using such a compact design.
Alternative Home Brew Options
If you really want to make your own PCB at home, especially if you are in the early prototyping stage, rather than developing final prototypes - I strongly suggest making a custom shield for the Arduino Expansion Board instead. You can see how this is done by looking at what by Matejic has done in his awesome Growbox instructable.
As I mentioned in the Getting Started section, this is a fantastic way to start the PCB design process early on, and the Edison and Arduino Expansion Board can still be left inside the prototype with your prototyped shield if the cost doesn't bother you. The added benefit of this method is that once you know your design works, you can remove the Edison and Arduino Expansion Board for reuse in other projects without much sunk cost (just the actual cost of fabricating the shield and the time to develop it), once you're done testing. Remember from reading the technical documents from Intel's website, the Hirose receptacle on the Edison is only rated for a limited number of connections and disconnections - so it's probably best to keep it plugged in once you have seated the Edison module in an expansion board. Arduino headers on the other hand, don't have the same issue.
Exporting Your PCB Design
Regardless of how you decide to fabricate your board, you are going to need to generate files for the process. Most manufacturers take Gerber files, and some take EAGLE files. However, there may be some compatibility issues with some manufactures and different versions of software. Again, if you contact your manufacturer early on in the process, most are happy to help you work out what you need to do.
Typically, you will need to generate the following files for your manufacturer:
Once again, your EDA software's guide will be able to show you how to do this. When you have finished generating your documentation, you will need to send your design to your chosen manufacturer, and then assemble the board once it arrives!
Step 18: Manufacture & Assembly
Step 19: Downloads, Resources & Acknowledgements
Here is a list of the resources used to create this instructable. As the instructable is licenced under a creative commons, BY-SA-NC license, you are free to use the documents I have personally created for personal use, as long as you share any modifications under the same license, and attribute this instructable.
Frizzing Library Downloads
- Battery Power Circuit for Edison Expansion Boards (PDF | Fritzing) [placeholder]
- DC Power Circuit for Edison Expansion Boards (PDF | Fritzing) [placeholder]
Schematics for Edibot
- Complete Electronic Schematic (PDF) [placeholder]
- Top Expansion Bay, including Hirose Connector (Gerber | Fritzing) [placeholder]
- Left Expansion Bay (Gerber | Fritzing) [placeholder]
- Right Expansion Bay (Gerber | Fritzing) [placeholder]
- Power Button Circuitry (Gerber | Fritzing) [placeholder]
- Complete Panellised Board (Gerber) [placeholder]
The following references have been used to create this intractable. I highly recommend going through them, as they include many general PCB design tips that haven't necessarily been included in this intractable.
Intel® Edison Technical Documents
Most of the Intel® Edison related documents can be found here. I have directly linked to a few of the important documents below. If someone prods me (direct message), I would be happy to update these as they become out of date.
@todo - organise these
First of all, thank you to Audrey and Penelope for organising the Intel IoT Giveaway. The opportunity has been amazing, as I don't often get to buy new toys (although, I have been fairly inspired to push my girlfriend to increase the budget for toys now!)
Secondly, I have included the references below that I used to create this Instructable. I would like to thank their authors for making their work available so freely online. I highly recommend going through them, as they include many general PCB design tips that haven't necessarily been included in this Instractable.
GitHub & Contribute?
And of course, if you are keen to follow the development of the Edibot, or perhaps you are even interested in contributing to the eventual required code, then you may like to visit the GitHub repository [coming soon].
Step 20: Conclusion
If you have followed this far and now have your own working expansion PCB for an Edison project, congratulations! Please allow me to applaud you as loudly as I can! No matter how big or small your project is, you have done a tremendous job and should be very proud of what you have achieved.
If you have followed along, and it didn’t work – don't be disheartened. Feel free to yell at me (a little) if I led you astray and the magic smoke popped out for a nice stroll around your bench top. I am very sorry if I caused that to happen, but keep at it. We can both learn from it together. If you missed something, and you're the reason for the rude smoke, don't worry – it happens to the best of us! Make another one and learn from it.
If you haven't built anything yet, well then thank you for reading – but what are you waiting for!? Everyone has great ideas; but it's what you do with those ideas that counts. So "What Will You Make?"
Where to From Here?
Now that you have a working PCB, you will need to finish your project. This will probably involve building the enclosure if you haven't already, assembling the components together, and then testing. If it works, you may need to write some formal documentation (though, it can help to write this as you go), develop some packaging and from there… who knows? Maybe you have the next multi-million dollar Kickstarter project on your work bench.
You might find that whilst the PCB works mostly, some things are not quite right, or perhaps the physical layout needs to change, once you assemble it and find that it's not as user friendly as you hoped. That's pretty common, and we call these modifications 'revisions'. Just keep revising until you are happy with it, and the people you show it to give the feedback you need to consider it a success (if that is a measure of success for you – otherwise, revise until your measure of success is achieved).
Finally, if you are intending to crowd source your projects commercialisation, you may need to get a professional electrical engineer to design the final board if you don't have one on your team already. At the very least, you will need to get an electrical engineer to look over your design and you may need to test it to make sure it passes relevant certification standards in the countries you intend to sell your product (i.e., CE/FCC, but this out of scope again). That said, you may be able to use some of the crowd sourced funds for this purpose, if your campaign is successful. If you have the determination to design a PCB yourself, I highly recommend doing so and then giving your finalised working prototype to a professional with your documentation so that an engineer can revise it if needed. The amount that you will learn about your product, and the skills you develop will be well worth the effort.
Future Plans for the Author
I have sent of my PCB to OSH Park and will be testing it once it arrives back here at my home. I will be sure to update this instructable and let you know how that goes. From there I will be doing exactly as I said above; finish building Edibot's enclosure, assembling the parts and revising as needed until it works as expected. Then I will test it with parents, teachers and students to ensure it fills the needs I believe it will.
Hopefully, I will have my first complete prototype finished over the next week in time to enter it into the Laser Cutter Contest. In the mean time, I have this instructable entered into the Intel IoT contest. If you are able to follow me and vote for my laser cutter entry when it goes live, I would be grateful. Or if you are able to vote for this entry, that would be swell as well (the components from Sparkfun will be awesome for future projects, and the camera will allow me to start filming myself, maybe for a maker video podcast?).
• • •
In closing, designing a PCB Expansion Board for embedding into your Edison based project can seem like a daunting project. But hopefully, this instructable has shown you how to break it down into easier to manage chunks that you can work through step by step. Using the information here, it should be possible for even a determined novice (like me!) to get results that exceed their expectations with a little practice, guidance and further research.
There is obviously a lot more to general PCB design than what has been described here, but hopefully this can help you get started with designing a PCB for an Intel® Edison based project.