Alternative Arduino Interfaces

Overviewing the Options

Arduino is awesome! It’s our go-to electronics education platform, and it’s our top choice for rapid prototyping, but it isn’t for everyone. Maybe it’s the cryptic language, or the Java-based IDE, or maybe it’s just the teal window border – regardless of your reasoning, if you’re trying to escape the Arduino IDE, here are a few alternatives we’d like to share.

The Arduino alternatives covered in this tutorial range from simple, introductory graphical programming to web-based Arduino interfaces for your web browser. Here’s a quick overview of each interface covered, we’ll go into further detail later on:

Codebender – “Cloud”-enabled, Browser-Based Arduino Programming

Codebender is an online development environment for Arduino. With Codebender, all of your code writing, testing, storing, sharing, even uploading occurs in the “cloud”, through your web browser.

With the help of a browser plugin (available for Chrome or Firefox), Codebender can even flash code straight to an Arduino connected to your computer. And, of course, the Serial Monitor is built-in as well for simple debugging.

Codebender is especially powerful if you want to socially code. It’s easy to share your code with others, or piggyback of Arduino sketches already written. There’s a great community springing up around it.

ArduBlock – A Visual Programming Arduino Extension

ArduBlock is a graphical programming add-on to the default Arduino IDE. Instead of memorizing cryptic functions, forgetting semicolons, and debugging code, ArduBlock allows you to build your Arduino program by dragging and dropping interlocking blocks.

ArduBlock is a perfect interface if you’re just getting into programming, electronics, or Arduino. Check out the ArduBlock section of this tutorial for an introduction and quick getting started guide.

Minibloq – Visual Programming Standalone Software

In the same vein as ArduBlock, Minibloq is a graphical programming environment where groups of blocks are stacked on top of each other to create your program. Unlike ArduBlock, however, Minibloq is a stand-alone program – no Arduino install required.

One of Minibloq’s most powerful features is its real-time code generation – as you drag blocks into your program, the equivalent code is generated concurrently. This makes Minibloq an excellent tool for beginners to intermediate programmers.

…and Beyond

Those are the alternatives we’ll be discussing in this tutorial, but there are many others worth checking out, including:

Scratch for Arduino – More visual programming! Scratch for Arduino (S4A) is a riff on the popular Scratch programming environment. If you’re an experienced Scratch user, this is most definitely worth checking out!

Modkit – After a successful Kickstarter campaign, Modkit is well on it’s way to producing another great visual alternative to Arduino. Check out their website and get a feel for their browser-based visual environment.

Arduino IDE for Atmel Studio – Atmel Studio is an incredibly powerful tool for programming and debugging AVR chips like those on the Arduino. If you’re looking for a more advanced approach to Arduino, or Atmel chips in general, check out this extension to Atmel Studio.

This extension can be an extremely powerful tool – complete with breakpoint implementation and a host of features you may be used to from more advanced IDE’s.

CodeBender

Codebender takes the Arduino IDE to the “cloud”. Using Codebender, you can write, compile, and run your code all through a web browser.

Codebender has all of the features you’d find in normal, “offline” Arduino, and even some that are unique to the web-based IDE. It’s an awesome tool if you’re into sharing your code, contributing to others, or just discovering what other Arduino users are up to.

Setting up Codebender is super quick-and-easy: visit the website, create an account, install the plugin, and start coding/uploading! There’s no waiting for 100MB+ downloads, or installing any software, just pure cloud-based, hardware-programming fun.

Social Coding

Since Codebender is cloud-based, it lends well to “social coding”. They’ve got an amazing system geared around DIT (do it together), making it easy to share code and piggyback off of others.

Every sketch you write can easily be embedded into another webpage, so your friends and readers can easily peek through your code. With the right browsers (Chrome or Firefox) and plugins installed, they can even upload it to their Arduino directly from your web page. Try it out!

Useful Features

At this point, Codebender can match the Arduino IDE feature-for-feature – you can upload code, interact with the serial monitor, and even upload via an AVR programmer. Plus, there are all sorts of features unique to the web-based IDE.

You can easily upload your own library; that is, if you can’t find the one you need among the hundreds of libraries that they already host.

If you’re stuck debugging your code, they’ve beefed up the error output window to make missing semicolons or typos all the more apparent.

Codebender just keeps getting more-and-more awesome. They’ve got a great team continuously adding new features. Plus it’s open-source, so you can contribute or make your own fork.

Whether you’re an experienced user, or an Arduino newbie, we really encourage you to check Codebender out. Head over to their home page, create an account, install the plugin, connect your Arduino, and start code bending!

ArduBlock

ArduBlock is a programming environment designed to make “physical computing with Arduino as easy as drag-and-drop.” Instead of writing code, worrying about syntax, and (mis)placing semicolons, ArduBlock allows you to visually program with an snapped-together list of code blocks.

ArduBlock builds on the simplicity of Arduino, and creates a perfect beginner gateway to physical computing. Instead of tearing your hair out debugging, you can spend your time creating!

Installing ArduBlock

ArduBlock is something of an “add-on” to Arduino, so it requires that you have the Arduino IDE installed. The benefit of that, though, is – because Arduino is multi-platform – ArduBlock works on Windows, Mac, or Linux. Plus, having Arduino already present makes the transition from visual programming to text programming easier, when the inevitability approaches.

Installing ArduBlock can be a little tricky – there’s no installer, just a Java file that needs to be stored in a very specific location. Follow the steps below to install it:

Download and Install Arduino (if you haven’t already) – Ardublock is an extension of the default Arduino IDE, so you’ll need to have Arduino installed on your computer to run it. Check out our Installing Arduino IDE tutorial for help with that.

Identify your Arduino Sketchbook location – This is a folder on your computer where your sketches and libraries are saved by default. To find your sketchbook location, run Arduino, and open Preferences by going to File > Preferences. The contents of the top text box defines your sketchbook location. Memorize that location and close Arduino.

Create [sketchbook]/tools/ArduBlockTool/tool/ – The Ardublock file you downloaded earlier needs to live in a very specific location within your Arduino sketchbook. Navigate to your sketchbook, then create a nest of three directories: tools > ArduBlockTool > tool (watch out, each folder is case sensitive).

Paste “ardublock-xxxxxxxx.jar” Into /tool/ – Paste the Ardublock file you downloaded – a JAR (Java ARchive) file – into the last folder in the nest you created.

Start Arduino – Or restart it if it was open.

Select the Board and Serial Port – Just as you would if you were using Arduino, make your board and serial port selections from the “Tools” menu.

Open ArduBlock – Run ArduBlock by clicking Tools > ArduBlock. If you don’t see an entry for ArduBlock here, double-check to make sure your directories are all correctly typed and cased.

ArduBlock works hand-in-hand with the Arduino IDE – it relies on the IDE being open in the background, so don’t close the Arduino window!

Using ArduBlock

The ArduBlock window is split into two halves. On the left there are “bins”, which store every possible block you can add to your sketch. The blank, gray slate to the right of that is where you “draw” your sketch. To add a block to your sketch, simply drag it from the bin into the blank, gray area.

To begin, every ArduBlock sketch requires a Program block, which you can find in the “Control” bin. The Program block defines the setup and loop functions that every Arduino program requires.

From there, you can drag more Blocks over, snapping them into either the loop or setup sections. Here, try making a blink program. The set digital pin blocks, which effect a digital output (analogous to Arduino’s digitalWrite function), are found under the “Pins” bin. The delay milliseconds block, found under “Control”, is analogous to a delay Arduino function.

Then click Upload to Arduino to send your drawing off to your Arduino board. You can ALT+TAB back over to the Arduino window to check your code upload status.

After you’ve successfully uploaded your first sketch, continue to play around and explore the contents of the other bins!

ArduBlock Tips & Tricks

You can clone blocks, or groups of blocks, by right clicking and selecting “Clone”. Everything from the block you right-clicked to the bottom of that “group” will be copied and pasted into the top-left corner of the window. This is a huge timesaver for bigger drawings.

You can temporarily remove code from your sketch by dragging it out of the entirety of the “Program” block. Anything not connected to the main Program block will be ignored when your code is compiled. This is a great debugging tool – you can remove a block of code from program execution, while not actually deleting it, much like commenting out code.

Finally, if you peek back over at the Arduino window, after you’ve uploaded an ArduBlock drawing, you may notice something different. To create your code, the ArduBlock program simply parses your blocks and spits the equivalent Arduino code over into the Arduino window.

This becomes a great learning tool if you’re interested in transitioning from graphical programming to text.

ArduBlock Resources

Minibloq

Minibloq is a visually-driven programming environment for Arduino and other physical computing devices. Instead of tearing your hair out over syntax, variable types, compilation errors, and the other annoyances of code, Minibloq allows you to construct your program using a series of graphic blocks.

Beyond the gentle, visual introduction to programming, one of Minibloq’s coolest features is its real-time code generator. As you add blocks to the Minibloq drawing, an equivalent line of code will be generated in the next window over. This is an excellent tool if you’re looking to make the leap from graphic programming languages to text.

Minibloq has a major focus on robotics. It includes support for popular robotics platforms, like Multiplo and our RedBot Kit.

Getting Started with Minibloq

Head over to the Minibloq download page to grab the latest version. Be aware that, for now at least, Minibloq is (mostly) only Windows compatible.

By default the interface is split into three columns – hardware view, Minibloq editor, and code editor. On the main toolbar up top, you can choose which columns you want to display or hide.

The middle, Minibloq editor window is where you’ll spend most of your program-building time. This view works hand-in-hand with the detatched “Actions” window, where you click buttons to add blocks to your program.

Finally, there’s the “Generated code” view on the right, which is the most powerful learning feature of Minibloq. It’s a huge aide in easing the transition from visual programming to “coding” programing.

Creating a Minibloq drawing takes some time to get used to. Try creating a blink program to get a feel for it:

Then check out some of the included examples by going to File > Examples. Among the many example sketches are a collection of SparkFun Inventor’s Kit and RedBot Kit specific programs. Check ‘em out!

SparkFun is an online retail store that sells the bits and pieces to
make your electronics projects possible. Whether it's a robot that can
cook your breakfast or a GPS cat tracking device, our products and
resources are designed to make the world of electronics more accessible.

In addition to products, SparkFun also offers
classes and online tutorials to help educate
individuals in the wonderful world of embedded electronics.