CodeBlocks Arduino IDE is a complete out-of-box C++ IDE for Arduino development. It will be liked by software engineers demanding a more powerful IDE and those who need to heavily modify or develop Arduino libraries. I have been maintaining the project basically to provide myself a productive and flexible Arduino development environment. Right now I only release for Windows builds, while someone else has forked my code (but seems not updating often) and provdes some instructions how to use the IDE on Linux.

Improved Arduino Builder integration with CodeBlocks (no need to close the window after uploading) Updated several Arduino libraries (OBD, MPU6050, MultiLCD) Compile with -O2 instead of -Os when target MCU has 64KB or larger program memory

Using Arduino Uploader GUI version for uploading Changed default sketch file extension from .cpp to .ino

Something about the simulator

As you may have noticed (in the screenshot above, there are two simulator targets in every Arduino project created with the project wizard. These are for building and running an Arduino sketch on PC. The idea is to re-write the underlying Arduino core files (and some AVR C routines) to simulate the behavior of a AVR chip (SFR, interrupts) and Arduino (digital/analog pins, serial UART). As an Arduino sketch is built with AVR-GCC, the code can be compiled with x86-GCC with no modification and so are the most libraries. As is running on PC as a native program, the program logic can be debugged more easily within the IDE (by GDB, with break point, single step, variable watch etc.). For the hardware simulation, right now I have only implemented serial UART simulation with hardware serial port on PC. This is useful for debugging code dealing with any serial devices by connecting the device directly to PC via a USB-TTL adapter. I have managed to run a sketch based on TinyGPS with a USB GPS receiver.For example, to use PC serial port COM5 to simulate Arduino's Serial1, you can do like this in the sketch:

Serial1.begin(115200, 5);This will open PC serial port COM5 and subsequential calls to Serial1 will act on the PC serial port.

I will keep working on this API-level simulator and the next hardware to be simulated will be LCD and SD device. Progress will always be published together with the release of IDE distribution as the simlator is useless without the IDE. It's source code is located in ardusim sub-directory of the package.

Updated again.The latest release now supports uploading to Arduino by clicking IDE's run button (or press F9 to build and run). This is like running a compiled binary on PC.The simulation target (which simulate Arduino API) is also being developed as a portion of the IDE now.

I've made some progress in the API-level Arduino simulator, which is also included in the new release. Serial UART can be simulated now with hardware serial port on PC. This will be very useful to debug serial communication.

Thanks for your compliment. An update is just released.The IDE maybe a little bit tricky for non-progreammers but once you grab it, it's definitely more efficient. I will write some tutorials in future.

This version does everything I need. It allows me to specify a 12 MHz clock rate for my project which is a 3.3v ATmega328p which does not support 16 MHz clock. My project can now proceed. I just put a scope on my 10 millisecond interrupt and it happens every 10 ms, which proves the code now is using a 12 MHz clock. Thank you Stanley. Nice job and thank you for the great tool you have generously provided.

I bet you have not changed build target from "Simulator" to an actual arduino board type. You also need to enable compile and link option for Wire library (right click the Wire.cpp in libraries sub-folder in project view).

CodeBlocks Arduino IDE is a complete out-of-box C++ IDE for Arduino development most suitable for software engineers demanding a more powerful IDE and those who need to heavily modify or develop Arduino libraries. I have been maintaining the project basically to provide myself a productive and flexible Arduino development environment. Now I mainly release for Windows only, while someone else has forked my code on github and maintain the linux port.