Sparkfun’s Digital Sandbox


Wherein I unbox and explore a great companion to http://codebender.cc

Boxed content of Sparkfun’s Digital Sandbox

This afternoon I received Sparkfun’s Digital Sandbox. One of the main reasons why I’ve been setting up Beaglebone Black’s for development of late is the straight-forward, no-nonsense onboarding experience for using a USB connection. Albeit some months ago now, I previously went through most — if not all — of the examples and demonstrations in the Sparkfun Inventor’s Kit (SIK). Afterwards, I missed my connection from the kit into using peripheral devices with my development boards. As I’m trying to have the opposite experience programming Maker projects that I have had programming for the web (where I’ve rarely finished anything that I’ve started), I have been keen to begin to make some crystallized installations of things that actually do stuff. Hopefully I can be more effective at affecting some things in meatspace than I was with poking and prodding at web data!

There’s a small amount of light assembly involved in getting started with the Digital Sandbox, primarily just turning screws through the board and the the provided plastic leg-risers, with the clear acrylic plate sandwiched between them — likely included to provide rigidity to protect the board. Since a tiny screwdriver isn’t included, a screw with a head that lends itself to hand-tightening would be a welcome improvement, especially if it were being used by a group. Regardless, a single, small Philips-head driver is all that’s needed. I’m not really sure why the board needs to be a raised up in the first place, but I’m sure that will bear out in time.

Assembled Sandbox


I was pleased to find out they chose to use mini-USB, which is the same connection that I’ve been using with the BBB, and a number of other devices. I’ve been fighting cabling issues in the UAV projects that I’ve been working on of late, and it really saps my motivation to work on a project when I get hung up by a blocker in the form of an inexpensive part like a cable or memory card.


When I tried loading the Arduino application (iMac), it complained about missing a Java Run-Time Environment. While I used this application recently, I also recall updating it to include recently released coverage for Yun. I believe I migrated to this to better explore OpenWRT by way of a Dragino ms14-p that I’ve recently added to my system.

After opening iTerm to verify that I do in fact have Java, as I’d thought, I decided to check out the codebender browser-based Arduino IDE that’s referenced in the well-produced Digital Sandbox Arduino Companion from the learning section of Sparkfun’s website.

codebender intends to make it possible to develop for Arduino devices on any computer through either a Chrome or Firefox web browser. I’ve enjoyed using the BoneScript and Cloud9 IDE tooling to development on the Beaglebone, and this was a similarly enjoyable experience.

I was able to get going with codebender in minutes, and I’ll confess somewhat candidly that it took me a lot longer the first time that I tried to upload sketches to the Arduino using the Arduino IDE. I seem to recall pain points in regard to identifying which communication port my Arduino was on from within the Arduino IDE, but there could be some hindsight bias involved there, also.

Hello World!

The obligatory blinking LED, the Maker “Hello World!”

Once you’ve created an account with codebender, you’ll notice your username in the upper-right-hand corner after you’ve logged in. You can use a Github account to log in without having to make an account, if you prefer. If you don’t what Github is, you should probably be using it.

https://twitter.com/grantmichaels/status/495790287571398656

If you look closely at the screen capture of the codebender application page above, you can see that the Arduino device you want to select is the Arduino Pro or Pro Mini (33V, 8 MHx) w/ ATmega328.

You’ll need to select that, as it defaults to an Arduino Uno. Furthermore, you’ll likely have to select the correct communication port below, at least I did. Change it from “bluetooth-incoming” to “usbserial,” since we’re tethered by the mini-USB cord.

You’ll want to click the little keyboard symbol in the lower right of the screen, to bring up the modal dialogue with the shortcuts. They are handy and rather familiar (on a Mac, anyways). There’s support for basic code reformatting like I’ve been using in Go(lang) lately, but I found myself mostly just rattling off a quick ⌘+s,r,u to save, verify, and upload the sketch to the Digital Sandbox to be run. Here’s a 10 second “Hello World!”

https://www.youtube.com/watch?v=ZqXeKXdkK88

If you look at the previous screenshot under the Hello World! header, you’ll see a button that says Open Serial Monitor, which is used on some of the later demonstrations in the companion guides, for communicating with and receiving data from the Arduino as shown below.

It’s worth noting that you have to press the Disconnect button to close the connection to the Arduino, or else you will not be able to send a sketch from another tab to the Arduino to try other code.


A Whirlwind Tour

I ran through the first dozen or so examples in quick succession, and peeked at the source code for the remaining examples, you can watch some of the board’s output on this Youtube video that I uploaded earlier.

https://www.youtube.com/watch?v=wgR8z2jNAxg&list=UUYuzMSiQjQKOuvMuxUnzFTQ

I’m playing a WAV of “Singalong” from the Mixmag Presents Krafty Kuts — Instant Party album that I purchased from Beatport last week. Youtube fingerprinted the track, and I’ve acknowledged the ID’ing, and it would appear that @ninjatune approved it’s use because it has background audio as of Sunday, 8/3/14.

At Day’s End


I think Sparkfun has created a really great platform to teach beginner Maker’s codebender.

I’ve been stalled at the intermediate-level for a long time now, which makes me either/both an expert beginner and somewhat foolish. I found getting around the Sandbox by way of codebender to be uneventful once I installed the codebender drivers, which you’ll receive once you’ve jumped through a hoop or two: https://codebender.cc/static/walkthrough/page/1

On codebender …


There’s quite an extensive list of libraries already supported.

On the Digital Sandbox Ecosystem…


I visited Sparkfun’s website earlier and ordered the Digital Sandbox Add-On Kit pictured below, as well as some other items that I needed, and I very much look forward to working through the last examples of their companion guide later in the week.

Sparkfun Digital Sandbox Add-On Kit

On Ardublocks …


While they don’t appeal greatly to me, personally, I would be remiss not to mention that there’s an even more beginner-oriented way to access the Digital Sandbox — using Ardublocks and the companion guide that’s tailored for doing so over at Sparkfun’s website:

Digital Sandbox Experiment Guide


It’s basically a system of graphical programming blocks for development.

Disclaimer


When I first saw this item mentioned in a Sparkfun email correspondence on Friday, I ping’d my sister and brother-in-law, who work at Sparkfun, to see if I could get one sent for Danielle and I to play with today. Since I didn’t pay through the website, and it’s now here in my hands, it seems proper to mention that this was provided to me.

Also, I’ve reached out to @ninjatune on Twitter to see what their policy is in this regard. I’m accustomed to being able to use Beatport tracks for my own promotional use when I’ve mixed them in DJ sets, but I’m relatively unfamiliar with copyright rules, and I’ll happily adjust the video however necessary if I find out otherwise. For the time being, it isn’t playing the wonderful audio track, but hopefully it will once it’s approved for use. Apparently @ninjatune can gain some control over what ads are displayed while their track is being played in the background, and I’ve added attribution to the Youtube Description to be as clear as possible.

Sunday Update

https://twitter.com/ninjatune/status/495852974502334464

Email me when grantmichaels publishes or recommends stories