Tools - PatternAgents/Electronics_One_Workshop GitHub Wiki
Development Tools
In electronics, we use a variety of development tools for different purposes. Some tools convert Schematic representations to Layout representations; others are used to create three-dimensional (3D) representations for mechanical models, used for making 3D printed cases and enclosures. For microprocessor firmware development there are many different tools to chose from. We'll briefly talk about some of the more common tools that you might encounter working on electronics and embedded microprocessor systems.
Hardware Development Tools
Schematics and Layouts
The three(3) most popular Schematic Tools you might encounter in the maker space are:
-
EagleCad is a popular commercial schematic capture and layout tool that runs on a number of different platforms, including Linux, Windows, and MAC/OS. EagleCad offers a free version that supports limited number of components and printed circuit board sizes, which makes it very popular with the Open Source Hardware Community, even though EagleCad itself is a closed source program. Tools exist within EagleCad to create a bill of materials, artwork, Gerber files, and 3D views of the PCB and its components.
Most of the schematic diagrams you will see from Sparkfun, Adafruit, and others were created using the [EagleCad] (https://en.wikipedia.org/wiki/EAGLE_(program)) package. If you are interested in learning it, check your local Hacker/Maker Space, they usually have an introductory class every few months. -
KiCad is an open-source Schematic Capture and PCB Layout system. It facilitates the design of schematics for electronic circuits and their conversion to PCB designs. KiCad was originally developed by Jean-Pierre Charras, and features an integrated environment for schematic capture and PCB layout design. Tools exist within the package to create a bill of materials, artwork, Gerber files, and 3D views of the PCB and its components.
-
Altium is a popular commercial schematic capture and layout tool that runs on the Windows Operating System. It has a number of higher level, professional grade capabilities, including a better PCB router, mechanical modeling, and simulation support and is correspondingly more expensive to purchase.
Software Development Tools
Arduino
-
"Arduino" has been used to refer to the company named, Arduino.cc, as well as the Arduino Hardware (Uno, Leo, Pro, Mini, etc.) as well as the Arduino Software; which can be very confusing to everyone in a discussion. So, if you want to speak with a bit more precision, please consider using terms like Arduino Company for the company, Arduino Software or Arduino IDE to refer to the software tools, and call the specific Hardware you are using, such as the Arduino Uno, or Arduino Pro, or Edison, etc. by name. This is especially important if you are asking for help in an online forum or other dicussion group, so everyone understands exactly what you are asking about.
-
The Arduino Company has already developed an excellent introduction to all things "Arduino".
-
The Arduino Software can now support many different Hardware boards and different micro-processor instruction set architectures, beyond the original Atmel AVR microprocessor that it was developed for. In the Arduino Software system, these are referred to as different Cores. You can add and remove different Arduino Cores from the Arduino Software using the Arduino Boards Manager.
mBed
- The name mbed was originally used for both a hardware platform and a development system for internet-connected devices based on 32-bit ARM Cortex-M micro-controllers. The commercial project is collaboratively developed by ARM and its technology partners, and only supports ARM brand microprocessors. Like the Arduino Software is now supports a number of different hardware boards, known as platforms, all of which use ARM brand microprocessors.
Eclipse
-
Eclipse is an integrated development environment (IDE), mostly written in, and developed for the JAVA Language. Using a Plug-In technology, the Eclipse IDE can add support for other languages, programming tools, visualization tools, and more. It is a highly extensible software development environment.
-
Eclipse has a good getting started guide.
-
GnuArmEclipse plug-ins allow you to create, build, debug and in general to manage ARM and AArch64(PowerPC) projectswith the Eclipse framework. The plug-ins run on Windows, GNU/Linux and Mac OS X. It is being actively developed and used in a number of commercial projects.
Combinations (Hardware and Software IDE)
One of the reasons that I mention the other Software Integrated Development Environments, like Eclipse, is that you might often see someone using them with Arduino Hardware, instead of using the Arduino Software to program them.
Next ->
Further (Links)
- Mikroe - Intro to Microcontrollers
- Texas - Intro to ARM Cortex
- Farnell- Intro to ARM Cortex
- Udemy - Intro to ARM Cortex M-3
- Schematic Symbols
- TWSU - Intro to Arduino
- Sparkfun - Intro to Arduino
- JavaScript on Things (JSoT) Glossary
- Sparkfun Starter Tutorials
- Adafruit Learning System
- All About Circuits
- Basic Concepts - MIT
- Basic Concepts - NYU