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.
We are angry, frustrated, and in pain because of the violence and murder of Black people by the police because of racism. We are in the fight AGAINST RACISM. George Floyd was murdered, his life stolen. The Adafruit teams have specific actions we’ve done, are doing, and will do together as a company and culture. We are asking the Adafruit community to get involved and share what you are doing. The Adafruit teams will not settle for a hash tag, a Tweet, or an icon change. We will work on real change, and that requires real action and real work together. That is what we will do each day, each month, each year – we will hold ourselves accountable and publish our collective efforts, partnerships, activism, donations, openly and publicly. Our blog and social media platforms will be utilized in actionable ways. Join us and the anti-racist efforts working to end police brutality, reform the criminal justice system, and dismantle the many other forms of systemic racism at work in this country, read more @ adafruit.com/blacklivesmatter
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.
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: