Over the past few years, the Arduino software has come a long way, in both features and robustness. There are a lot of little things, however, that we never really thought about or that we’d like to change. Arduino 1.0 is our chance to clean up these details and establish a stable platform for the future.
There’s a detailed list of the changes planned or considered for Arduino 1.0 on our development site (hosted by Google Code). The main items include:
New file extension to replace the .pde borrowed from Processing (issue #13).
Redesigned toolbar icons (issue #291).
Ability to upload sketches using an in-system programmer (ISP) from the IDE (issue #260).
Simplifying the process of selecting your board and serial port (issues #223 and #257).
Command-line compilation and uploading of sketches (issue #124).
Language (most of these are possibilities and still open for discussion):
Creating events that can be called automatically, e.g. the serialEvent() as in Processing (issue #263).
Adding specific functions for enabling / disabling the internal pullup resistors (issue #246).
Modifying the behavior of print() on bytes (issue #284).
Functions for accessing more of the low-level functionality of the hardware timers and other peripherals (issues #169 and #248).
Optimizing the digitalWrite() function (issue #140).
Of course, we’ll continue to make improvements and additions to the software after Arduino 1.0, but that by making the incompatible changes together, we’ll make the transition clearer and easier. Once you’ve adopted your code to Arduino 1.0, it should continue to work going forward.
If you have questions, comments or suggestions, feel free to respond here or to post on the individual items. Contributions are welcome; please sign up for the developers mailing list if you’re interested in working on the Arduino software.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
We at Make, Hack, Void (a hackerspace in Canberra) have been working on our own library, which addresses many of the performance & functional issues we have identified with the Arduino runtime.
It is aimed at more experienced programmers than the Arduino runtime (you should be familiar with pointers), and provides less handholding in favour of greater efficiency. We are more a thin veneer around avr-libc, providing hardware abstractions as appropriate, including interrupt driven serial I/O (so your program won’t block while waiting for serial data) with PROGMEM and line parsing capabilities.
We aim to provide compatibility with all AVR Mega & Tiny microcontrollers – adding support is a simple case of cloning an existing header and modifying as needed to mirror the hardware capabilities. We intially have support for the Atmega 168/328/1280 and Attiny 2313 microcontrollers, with more support planned as we acquire more hardware (Attiny 85 on the way!).
We are moving towards complete Arduino runtime functionality, (currently we are missing tone() and pulseIn() replacements), but we do not provide the same API as our design goals are different. We plan at some point to have a porting guide up, and possibly a Perl script to massage an Arduino sketch into naked C with Arduino API calls replaced with equivalents to MHVlib.
Our library is BSD licensed, so you are free to use it in commercial products as long as attribution is given.
We welcome constructive criticism & feedback, so please check it out: