![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
E-Paper Device (EPD) based MiniNote module, powered by mbed on LPC1114FBD48. Shared in public domain with enclosure in 3D step format, hardware interface compatible with microBUS interface. Anyone can contribute on this project.
mbed vs Arduino
mbed vs Arduino¶
Arduino is a de-facto standard in open source hardware industry. A lot of boards claims they are compatible with Arduino's WIRING API as well as Arduino shield. Since mbed is an open source C++ platform, it makes sense to compare with WIRING C++ API.
WIRING API¶
From Wiring project, WIRING API is very simple. You can check its source code in Arduino installation folder:
\Arduino\Arduino-0022\hardare\arduino\cores\arduino\*.h
After checking its header file, you will find out WIRING API is a basic set of API, which abstracts serial, stream, constants, basic support macros and finally, very simple methods of :
- PinMode
- DigitalRead/Wirte
- AnalogRead/Write
- delay
- interrupts
- shiftIn/shiftOut
- and famous two methods: setup() and loop().
All of other device drivers are offered as libraries, such as wire, spi, stepper and etc. You will find more and more libraries are included in every new Arduino release.
mbed API¶
You can check source code of mbed C++ API from github or simply export any program to local driver. You can find its mbed folder, there are many header files inside.
You can find basic support packages as well as a complete device drivers are included in this folder, even CAN bus, Ethernet, File system, rtc and more timer related methods are included. It doesn't mean you code running on entry level micro like LPC812 will link device driver of CAN bus. The linker will discard CAN bus driver during linking session. But that means mbed orgnized a more powerful and complete API set.
makes mbed looks like Arduino¶
It only makes sense in commercial side to claim its board is Arduino compatible. You can also makes your code looks like Arduino. Simply using setup and loop.
a demo Arduino style project
setup() { // put varibales setup here. } loop() { // put main loop functions here } main() { setup(); while(1) { loop(); } }
more powerful mbed C++ API¶
We all love Arduino, but let us play with mbed. Because it is much powerful and easy to port between different micros, from M0 to M3/M4 and vise verse.
Additionally, I love timer class implementation in mbed API, which allows a lot of timers in user application. Much handier than regualr local delay() in Arduino.