Why and when are development boards needed?
"Can't we just program micro-controller logics on our PCs and test the programs in IDEs?"

Because most projects include custom I/O interfaces that can't be easily simulated using today's IDEs.  The current simulators can handle interrupts and timers very well, but beyond that it's not so straightforward.

Microchip's MPALB X IDE simulator, for example, has a Stimulus module that lets one fire off interrupts and put pulses on various I/O lines or set them high or low.  Keils µVision debugger and simulator provides much more capabilities for peripheral simulation, but of course it still can't "talk" to a real piece of hardware -- it just displays the serial message (I2C, SPI or UART) message going out, and expects you to write a script that will respond to it and send a reply.

You're not going to be able to simulate I/O running in real-time, and see what effect that has on your system. For example, what if you are going to include an SD card interface running over SPI at 40 MHz? Even though you could simulate the I/O messages, there may be noise problems with your real-world design that you would never be aware of because there is nothing to hang a scope probe on.

If you are going to be testing firmware only, and there is no custom I/O (or it is trivial, such as some GPIO pins driving LEDs or responding to button pushes), you can use just your IDE.  Otherwise you need a physical board.

Your system is more than just firmware -- there is usually a lot of custom hardware that has been designed and needs to be checked by the hardware engineers that created it.  The simulator isn't going to help them at all.

The next question is, make or buy?

Development boards are not necessary, but they're a lot cheaper than trying to create your PCB, and they can save you a lot of time.

It used to be, you could build a prototype of just about any circuit using a solderless breadboard, because the ICs came in DIP packages which conventionally straddled the center gap of the boards.  Other discrete components (transistors, diodes, resistors, capacitor) could be inserted in the other holes as needed to complete the circuit.

But now everything is surface mount.  Of the 13,897 microcontrollers in stock at Digi-Key, only 975 are in DIP packages.  And 90% of those are made by Microchip and Atmel.  There are only two ARM processors available in a DIP package, and they are small packages -- 8 pin and 28-pin.

If you want to limit your choice to two manufacturers, go ahead.

Otherwise you have two choices -- buy a development board with the microcontroller on it that you plan to use in a project, or build one yourself.  Development boards cost anywhere from from $4.30 (for the MSP430 LaunchPad TI introduced a few years ago -- you can still get one for $10), up to several hundred dollars or more, the higher ones often equipped with color LCDs.  But most seem to be in the range of $35 to $150.  The EasyPICv7 you refer to is at the top end of this range, but is exceptionally feature rich and has many add-on options.

What do you get with a development board?  Well, certainly a PCB, with your chosen microcontroller on it.  And most importantly, a way to program it from your PC.  This might be built into the board, or be a separate dongle, or may be accomplished via a bootloader like the Arduino boards.  But in any case if you were doing your own PCB you would have to include the same functionality.  Beyond that, the board may include a keyboard, an LCD (monochrome or color), and/or an SD card interface.

There may be some LEDs and switches, reset button, perhaps a I2C or SPI EEPROM and temperature sensor.  Most importantly, access to all the general and special I/O pins in the microcontroller.

The development system will usually come with a compiler and/or assembler to let you start writing code right away.  (Although the compiler may be limited by either code size or optimization levels.)

Here is a development board for the Microchip 32-bit PIC32MX340F512 which costs $99.



It just has a power supply, microcontroller, three buttons and four LEDs, I/O interfaces including USB and Ethernet, and a bootloader mechanism in order to program it.

Note the six connectors around the board -- this is where you can still use that solderless breadboard. These sockets let you connect the I/O pins of the microcontroller to a solderless breadboard for prototyping your I/O circuitry.

Development boards are like oscilloscopes in relation to embedded design -- you don't have to have one, but they make things a lot easier.

Now PCB's aren't terribly expensive -- you can get three boards for $60 or so each for a 4" x 6" board, about the same size as the PIC development board above.  If you want just one, the cost may be $165, almost as much as the total for the three boards. Why?  Because a lot of the cost is in doing the setup, which is the same regardless of the number of boards. This is called NRE - non-recurring engineering costs.

It's the assembly costs that can run up.  Assembly for a small board (55 parts) can cost $130 per board, for three boards.  That doesn't count parts costs. If you want only one board, that's $360, almost as much as the three boards. Once again, NRE.  

You can avoid the cost of assembly by doing it yourself, but for myself, I rather be coding instead of trying to solder 55 SMT parts on a board.

So your prototype board looks like it will cost $165 + $390 = $560 plus parts.   Also it will take probably two weeks (or more) to it get back from China (you pay a lot more for expedited service to get it back any faster).  And this doesn't include the time to create a schematic and layout the board, which might take be a month.

Plus, it might not even work when you get it back, and you have to do it over (called a "spin") incurring the same costs again.

Do your programmers / hardware engineers want to wait that long to get started?

Advantages of IDE: You already have it, no extra cost

Disadvantages of IDE: Can only be used to test firmware which doesn't interact with custom I/O circuitry

Advantages of development board: Much cheaper and faster to get started

Disadvantages of development board: Still need to prototype I/O on breadboard, will eventually need to design real PCB entailing costs discussed above

Advantages of doing your own PC: Get a head-start on doing a real PCB for your project, all I/O circuitry will be on the PCB

Disadvantages of development board: Much more expensive, much slower for first article, may need to redo board to get it working

That $99 development board plus 2-day shipping is starting to look a lot more attractive.

Compromise?  Do both! Since the development boards are so cheap, get a couple and make your firmware programmers happy.  Meanwhile, get started on your PCB.