I joined the Element14 engineering community over a year ago after I learned about it at the 2010 Embedded Systems Conference. It is basically a social network for electrical engineers that is tied to the component distributor Farnell, who owns the US-based distributor Newark. Element14 conducts what they call Road Tests where a certain evaluation kit or product is offered up for review. The idea is to get end-user reviews on the Road Test products in order to benefit the Element14 community (and ultimately help drive sales of that device/product). If selected as a Road Tester (you need to enroll and they decide which members will participate in the Road Test), you receive the item being tested in exchange for a public review of the product on the Element14 website. A while back a co-worker alerted me to a Road Test in which I may be interested – Arduino Mega 2560. I enrolled and was one of the lucky few who were selected. Below is my review of this product as posted on the Element14 Road Test site.
I wanted to begin by thanking Element14 and the sponsors for selecting me to participate in the Arduino Mega 2560 Road Test. I am really excited to have been chosen to Road Test the Arduino platform, which has dramatically changed the landscape of microcontroller electronics. The user base has really exploded recently and it seems like I’ve been hearing about it more and more lately, even from major publications (Make Magazine, Wired, New York Times). Most Element14 members/readers are probably already familiar with the Arduino IDE and boards, but if not I will try to sum it up in as few words as possible: Standardized open-source hardware microcontroller platform based on Atmel ATmega 8-bit devices and a cross-platform open-source software integrated design environment. In other words, Arduino provides artists, engineers, hobbyists, makers, etc. with an inexpensive community-driven programmable electronics platform with which they can rapidly prototype or realize their designs or use as a basis for learning hardware and software engineering.
I have been an Arduino user for about 3 years now, but this is my first opportunity to test out the Mega version of the platform. In the past I have used the Diecimila, Duemilanove, Pro Mini, and the Uno, as well as creating my own Arduino-compatible PCBs. The integrated design environment (IDE) software has evolved through several revisions since then and it now provides many great built-in libraries and functions. I already had the latest version of the IDE installed prior to receiving the Mega for review, so I was up and running immediately. To keep this Road Test review concise, I will focus only on the Arduino Mega 2560 board and not on features/usage of the Arduino IDE.
The Mega 2560 comes in their new (as of the release of the Uno, previously just a static bag) simple packaging: nicely printed card-stock box folded around the board inside an ant-static bag. Upon opening the box you find an insert that thanks the user for supporting Arduino (see picture below). It provides information about how/where the Arduino is built and a warranty statement. Also included is a small sheet of stickers if you want to advertise your project as having “Arduino Inside.” Since there are no jumpers to set or any switches on the board, the next step is to just plug it in.
The Mega 2560 is significantly larger than its little brother the Uno (4″ x 2.1″ versus 2.7″ x 2.1″, ~50% larger), but in this case Mega is a relative term. It is still smaller than an iPhone 4 (4.5″ x 2.31″), but it would only be appropriate for projects where you have a lot of room or where you need a lot of I/O. The Mega has 54 digital I/O pins (14 which support PWM using the Atmel hardware timers), compared to 14 (6 PWM) on the Uno. You get more of just about everything, actually – here’s a little table for comparison:
Besides that, all the other specs are the same (voltage, current, USB interface, etc.). The pin numbers and corresponding pin functions from the Uno are mostly the same/in the same place on the Mega 2560, however some things have been moved around (notably I2C). This spreadsheet does an awesome job of summarizing all the pins and functions between the Uno and the Mega 2560.
There are a lot of pins! The Mega 2560 may only be 50% larger in size than the Uno but it has almost 4 times the I/O, thanks mainly to the large double row at the back. It’s like an stretch limousine version of an Uno. I like how the pins are grouped by special function – PWM, Communication, Digital, Analog, Power – and that the Arduino Team did their best to keep things in the same place so that shields made for the smaller boards would still work on the Mega. Speaking of shields, someone needs to make a mini shield to access the back portion of the PCB that extends beyond where normal shields stop. I could see it matching up with the outline that most shields have (to access the ISP pins) like jigsaw puzzle pieces.
With its vast array of I/O and additional memory space, the Mega could be very useful for some projects, such as robotics, LED arrays, or sensor interfaces. However, for those just starting out with microcontrollers or Arduino, it’s probably overkill. The retail price difference, $50-$65 for the Mega versus $30 for the Uno, would also sway people towards the Uno and limit the usage of the Mega to projects that really need the added features. Below I have listed some additional thoughts about the Mega:
- Big – lots of I/O for projects that need it
- Memory – if your code simply won’t fit in the Uno, you’ve got much more room here
- Same/Similar shape/layout – many shields made for the smaller boards will still work
- Nicely organized – I/O grouped by function
- Big – not for your space-constrained project
- Price – about double the price of the Uno
- Shield Compatibility – limited support for large I/O expansion header
Like its little brother, the Arduino Mega 2560 serves as a great development platform for 8-bit microcontroller projects. The additional I/O and serial ports and plentiful code space in the Mega provide significant advantages over the Uno or other previous-generation Arduino boards. What is great about the Mega, and the Arduino family as a whole, is the ability to transport your code from one hardware solution to another and even beyond to your own custom PCBs. Once you run out of resources on one of the smaller boards, and with only minimal code changes and a simple board selection in the Arduino IDE, you can be up and running on the Mega with ease. I would strongly recommend the Arduino Mega 2560 if you project has outgrown the Uno and you can afford the extra price and board size.
Thanks again to Element-14 for giving me the opportunity to test drive the Arduino Mega 2560!