Did you know? DZone has great portals for Python, Cloud, NoSQL, and HTML5!

Ingmar has posted 4 posts at DZone. View Full User Profile

Proposal: C/C++ with AVR Microcontroller Plugin AVRDUDE

11.04.2011
Email
Views: 3314
  • submit to reddit

For several years now I've noticed a lack of support in NetBeans IDE for the embedded systems world. I want to address this problem.

In Eclipse and Microsoft Visual Studio, there are plugins/alternative versions to allow developers to program C/C++ code for embedded devices. So far NetBeans IDE only supports the development of microchip microcontrollers (MCU) via the MPLAB X IDE, which is an extended version of NetBeans IDE.

However, most enthusiasts use Atmel MCU's and Arduino platforms (based on Atmel). Although there are workarounds available to use NetBeans IDE as an Atmel MCU IDE, it is still not an optimal solution.

See:
Developing for AVR with NetBeans
AVRFreaks AVR with NetBeans

Proposal

I propose to create a new plugin for NetBeans IDE that allows an embedded engineer to compile and upload their code to an MCU by utilizing AVRDUDE.

To create this functionality, we have to extend the existing C/C++ plugin with new features. After compiling a hex file, with the avr-gcc toolchain, the program AVRDUDE needs to be executed. The actual uploading of the compiled program is then handled by AVRDUDE, which is open source (see AVRDUDE).

To make the whole picture complete, the plugin also needs an AVR simulator to debug en test the written code. For this we could use http://www.nongnu.org/simulavr/. And, because embedded devices often use UART (RS232) to communicate with a computer, an RS232 implementation is also needed (see RXTX lib).

Summary

The proposed features are as follows:

  • Uploading compiled program by calling AVRDUDE after compilation
  • Configuring AVRDUDE for the selected MCU target (Settings)
  • Code completion for Atmel AVR
  • Integration of Arduino development plugin (Arduino Development using Netbeans)
  • Integration of Arduino libraries / processing
  • An AVR simulator to debug en test code
  • A RS232 monitoring tool/window

I am committed to make this work! However, before I begin, I would like to hear your thoughts and ideas. Or maybe there are other NetBeans Platform developers willing to contribute to the development of this plugin?

Development of this plugin has started!! See http://java.net/projects/nbplugin-avr

Published at DZone with permission of its author, Ingmar Hendriks.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Javier Ortiz replied on Sun, 2011/11/06 - 6:03pm

I agree 100% Sadly my knowledge on C++ is limited. But this is a huge gap that would be great to close!

Kurt Risser replied on Mon, 2011/11/07 - 11:38am

Ingmar,

   A NetBeans plugin for Arduino programming would be sweet.  I've used NetBeans to write Arduino programs, and it is not so easy.  A plugin would be terriffic.

 Kurt Risser

Sławomir Mikuła replied on Mon, 2011/11/07 - 4:02pm

yes, it will be positive for embedded development. Few remarks: - using not only AVRDUDE but also other programmer frontends eg. stk500 (avrisp mkII) - compatibility for linux and windows (winavr toolchain) - simulation would be a great benefit, but it is a huge task - rs232 monitoring tool would be great (assume working like portmon) or event standard terminal - other toolchains (especially arm) would be also great

Ingmar Hendriks replied on Tue, 2011/11/08 - 3:02am in response to: slawek.mikula

The great thing about AVRDUDE is that its compatible with Linux, mac and windows. It also allows users to connect to a STK500 and an AVRISP mkII and other popular programmers. Using AVRDUDE will be a great stepping stone to supporting allot of programmers. In the future i can imagine native support from within the plugin for programmers without AVRDUDE but that will take some time. I will have a look at Portmon to see if i can get some ideas about the implementation. Thanks for the tip!

Terrence Barr replied on Sat, 2011/12/03 - 2:39pm

Ingmar,

Excellent idea.  I've blogged about. Let's see how we can get this going!

Best,

-- Terrence

Ingmar Hendriks replied on Fri, 2011/12/16 - 4:04pm

The first (and probably most easiest part) is done! The RS232 output window plugin for communication over the Serial port with external devices is in Beta release. I decided to make the RS232 output window a separate plugin so that people can extend it in there Netbeans platform applications by using the API Receive RS232 messages Output in ASCII, OCT, HEX and BINARY data Log RS232 Session to a file Transmit RS232 messages with either ASCII or HEX values for the input. See http://java.net/projects/nbplugin-avr

Carla Brian replied on Fri, 2012/05/04 - 9:18am

To make the whole picture complete, the plugin also needs an AVR simulator to debug en test the written code. I had figure this out a while ago. - Paul E. Perito

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.