Circuit design based on arduino platform

Hello All,

I am in the beginning phases of designing some midi specific hardware using the arduino as my design prototype. Am I correct in understanding that arduino uses C++ as it's programming language, or a variation of it? Basically I feel the most logical approach for pcb fabrication and programming would be to successfully prototype my circuit using the mega2650, and then design my circuit with the arduino "in it". This way I could simply program each fabricated circuit board with my existing arduino code.... Does this seem like a logical step forward?

Yes, all the schematics are available, and you can use it.

The Arduino uses the Gnu C Compiler (gcc) which generates code for the Atmel microcontrollers. http://www.nongnu.org/avr-libc/

You can use C++, but also 'C', and even some inline assembly. The 'C++' and 'C' are not a variation, they are the full thing. There is also a floating point libary, but only for 32-bit 'float'. The 64-bit 'double' is accepted, but it is translated into 'float'.

Arduino connects programming to the outside world. So the libraries to use the pins and hardware are specific for the Arduino. There is a lot code created by users, mostly to interface with other hardware.

http://arduino.cc/en/Reference/HomePage http://arduino.cc/en/Reference/Libraries

Great! Thanks for the useful information. Just so I'm clear however, once I have successfully designed a prototype and a circuit board based on that prototype, would I want to use the GCC to program the atmega2650 or could I program it using the software I use to program the arduino? If not, why is this?

Yes, both. When you have the ATmega2650 with an external 16MHz crystal, it is Arduino compatible and you can use it as if it is the default Arduino Mega 2650 board. http://arduino.cc/en/Main/arduinoBoardMega2560 http://arduino.cc/en/Hacking/PinMapping2560

You will install a bootloader by connecting a programmer to the ICSP pins.
Do that from within the IDE, it will setup the fuses so the “board” looks/acts like a Mega.
You can continue to load sketches that way (via File:Upload Using Programmer), or if the bootloader is installed you can load sketches via the serial port.
Here’s a board I am making to have a bare-bones “Mega” I can drop into a project. Unconnected pins are almost all connected to the ground planes.

Well, that .jpg schematic didn't come thru that clear, but you can see the few components needed for a bare-bones board. Resistor, some 0.1uF caps, and crystal and 22pF caps.

Perfect! Thank you gentlemen... Now I just need to learn how to program :roll_eyes: