Most of the time when a hardware engineer, hobbyists or
technical instructor/tutor come up with an idea it takes him/her ages to realize it and build a proof of concept, in this article we are going to list as many of hardware platforms, CAD and software development tools required to
accelerate prototyping and realize your idea in a shorter period of time.
Basically, almost all hardware designs and products include
one microcontroller unit (MCU) or more depending on complexity of the design, and
usually MCU circuit might get complicated especially if you don’t have a full,
clear image of the project, so a development kit would be the best solution, it
takes away the burden of building MCU hardware and provide you with generic
features to use for testing and prototyping like GPIO headers and easy wiring, LEDs,
connectors (USB, DB-9…etc), so, here is a list of most popular low-cost MCU
platforms:
- Arduino platforms: a series of MCU platforms based
on Atmel 8-bit and 32-bit microcontrollers, the cheapest one is Arduino Uno
for 25$, development environment required: Arduino IDE (free). Website: http://arduino.cc/
- Texas
Intsruments LaunchPad (LP) series: another low cost MCU kits based on Texas
Instruments 16-bit and 32-bit microcontrollers, LP kits prices range from 10$ to
30$, development environment required: Energia (free) or Code Composer Studio
(lite version is available for free).
TI LP series
website: http://www.ti.com/ww/en/launchpad/launchpad.html?DCMP=mcu-launchpad&HQS=launchpad
Energia IDE: http://energia.nu/
- STM32VL Discovery kit: a low cost MCU kit based on
STMicroelectronics ARM Cortex-M0 32-bit microcontroller, kit’s price: 15$, development
environment required: IAR embedded workbench. Website: http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/PF250863?sc=stm32-discovery#
- Cypress
PSoC 4 CY8CKIT-049 4xxx: a very low cost MCU kit (for 4$ only) based on
Cypress PSoC4 microcontroller platform, development environment required: PsoC
Creator (available for free on Cypress semiconductor website).
Website: http://www.cypress.com/?rID=92146
If you are looking for a low cost connectivity platform for
home automation, data acquisition, controls, IoT (Internet of Things), remote
access/sensing and computer interfacing applications then these are my
recommendations:
MCU kits with Wi-fi connectivity:
- Texas
Instruments CC3200 Launchpad (30$)
- Texas
Instruments CC3100 (20$) and CC3000 (35$) boosterpacks (i.e. expansion boards)
for Texas Instruments Launchpad Kit.
- Arduino
wi-fi shield.
MCU kits
with wired Ethernet connectivity:
- Arduino
Ethernet, price: 51$.
- Texas
Instruments Tiva C connected Launchpad, price: 20$.
- PIC32
Ethernet Starter Kit, price: 75$
MCU kits
with USB connectivity:
- Texas
Instruments MSP430F5529 Launchpad, low cost and very powerful platform for 13$
only.
- Texas
Instruments Tiva C (for 13$) and Tiva C Connected Launchpad (20$) kits.
- PIC32 USB Starter
Kit II, price: 55$.
But if you
have your mind set to add USB connectivity to your design directly then you can
use chipsets with standalone USB peripheral controller like:
- FTDI
USB chipsets and modules (USB to UART/RS232, RS485, I2C, JTAG, SPI).
- Maxim
Integrated MAX3420E USB peripheral controller with SPI.
Or use an
MCU with built-in USB module like Microchip PIC18F4550 and PIC18F4553
microcontrollers, but they don’t come pre-programmed with USB stack, you will
have to compile the USB stack and program MCU yourself.
For motor
control and lighting related applications you will need an MCU with plenty
PWM pins and capable of handling real-time control, like Texas Instruments
C2000 LaunchPad for 17$, but usually
low cost kits don’t come with power drivers on-board, you will have to build
additional circuit for this purpose or buy an expansion board for the kit that
provides power drivers.
Note: power
drivers are H-bridge circuits, power switches, power transistors.
If you are
willing to build your own power driver circuit and control it from an MCU kit
then these are my recommendations for chipsets (easy to use, their circuitry aren't
complicated):
- L298: Full
bridge IC (maximum current: 2A).
- L293B: quad push-pull driver for motor and actuators control (maximum current: 0.5A per channel).
- ULN2803:
darlington pair array (8 pairs, each 500mA).
- ULN2069:
darlington pair array (4 pairs, each 1.5A).
- L297:
Stepper motor controller.
If you want
to go more advanced to develop mobile applications and embedded operating
systems for entertainment, display (with displays, touch screens or projectors via HDMI), gaming, standalone web-services and
connectivity applications using any of the popular embedded operating systems (Android,
embedded Linux, Windows mobile/CE, QNX OS) but you don’t want to spend a lot then
I would recommend you these kits:
- BeagleBone
Black (55$).
- Raspberry
Pi (35$).
Second
phase, if you are good at hardware and not afraid to build your own boards or
willing to learn, these tools are quite useful for schematic capture and PCB
layout (i.e. drawing schematics and printed circuit board layout/wiring):
- DipTrace:
schematic capture and PCB layout tool, demo version is available for free.
- PCB Artist:
PCB layout tool, free.
- Eagle
PCB: schematic capture and PCB layout tool, free.
Website: http://www.cadsoftusa.com/
Now your
design is ready and you want to build it, you have two options, to build your
PCB yourself YouTube is full of videos and tutorials on how to do it OR you can send
your design to a professional PCB fabrication/manufacturing services like:
- Seeed
Studio: http://www.seeedstudio.com/service/index.php?r=pcb
- AP
Circuits: http://www.apcircuits.com/
Important note: depending on local preferences and
availability choose your PCB fabrication/manufacturing, these aren't the best
or the cheapest but the most convenient to me, might be different for you or
where you are.
Hardware and software go hand-in-hand in most of modern designs,
you can’t develop an MCU based design with writing a firmware for it, and these
are my recommendations for software development tools you might need to speed
up prototyping for your project:
C/C++
compiler and IDE (all free):
- Visual
Studio (VC++) express edition: http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
- Bloodshed
Dev-C++: http://www.bloodshed.net/devcpp.html
- NetBeans
C++: https://netbeans.org/features/cpp/
Other
useful software libraries:
- DISLIN:
C/C++/Fortran library for 2D/3D plotting and GUI design (free for academic and
non-commercial use): https://www.mps.mpg.de/dislin/
-
Basic4Android: for Android mobile apps development, free trial for 30 days is available: http://www.basic4ppc.com/
- Processing: A programming language and IDE used for rapid prototyping, supports development for both PC and Android OS (free): https://processing.org/
- MoSync: C/C++ Software Development Kit (SDK) and IDE for Android development, useful for rapid prototyping Android apps (free): http://www.mosync.com/
- Processing: A programming language and IDE used for rapid prototyping, supports development for both PC and Android OS (free): https://processing.org/
- MoSync: C/C++ Software Development Kit (SDK) and IDE for Android development, useful for rapid prototyping Android apps (free): http://www.mosync.com/
- VISA IVI:
C/C++ library for communication with external devices over USB, TCP/IP, serial
and PXI/VXI (free): http://www.keysight.com/en/pd-1985909/io-libraries-suite-162?nid=-33330.977662.00&cc=CA&lc=eng&cmpid=zzfindiosuite
OR from: http://ivifoundation.org/shared_components/Default.aspx
OR from: http://ivifoundation.org/shared_components/Default.aspx
- SDL: C++
library for gaming and graphics (free): http://www.libsdl.org/
- GNU
Scientific Library: C/C++ numerical library (free): http://www.gnu.org/software/gsl/
- HIDAPI:
C/C++ library for communication with USB-HID devices (free): http://www.signal11.us/oss/hidapi/
--
Karim El-Rayes
Vancouver, Canada
September 24, 2014
--
Karim El-Rayes
Vancouver, Canada
September 24, 2014