There are times when a design is just so simple, so elegant and so useful, that you wonder how come no-one came up with the idea sooner. The STEMTera is one of those devices that changes everything, and I don’t think there is any going back. While the idea itself might be simple, the path was long and diffcult, and the STEMTera reserves some surprises along the way.
A few months ago, I was asked by an engineering school to come in and to teach some students about IoT. In order to get the job done within a week, I decided to prototype a design using Arduino. My 5 groups of students will have Arduino Unos, a variety of sensors, breadboards, and enough wires to run several times around the campus. To make sure everything goes to plan, I have the same hardware as they do. It makes things easier.
It’s a cold winter morning when I board my train. It’s a high speed train to Paris, but I’ll be
getting of before the end. I have about an hour to prepare my lessons. I didn’t have time to fully devise them the day before, small details like sleep got in the way of my plans. Still, I have time now. The train rocks gently as I try to resist the temptation to sleep, and wire up my PWM chip. One by one, I take wires out of a box, and connect my Arduino to a breadboard, and then wire up a chip. 8 inputs, and 8 outputs, as well as all the support circuitry that went with it. It looked like a mess, and it was. I’ll be projecting a schematic on the wall, I can’t expect anyone to fully understand what I’ve created. With my project fully wired, I place the kit gently into my laptop bag, get off the train and head towards the school.
Thirty students are waiting for me as I arrive. I greet them, explain what we are going to do this morning, and take my work of art out of my bag, and place it on the table. A single wire falls out, onto the ground. My students laugh, and I go white as as I realize what I’m about to do; hunt down the culprit, figure out which of the 40 wires fell out, and try and keep my calm during this time. I can’t tell them that this was planned, and expect them to believe that. No, I’m in trouble. Naturally, the design doesn’t work without that wire. Needless to say, that particular lesson was rather “interesting”. The art of improvisation…
This isn’t the first time this has happened. It’s happened to countless teachers, but also to students. When handing in a project, or simply putting a design away at the end of a lesson, how many students have removed wires simply by handling their boards?
The breadboard is the Arduino’s best friend, and allows users to quickly add components that they wouldn’t have been able to otherwise. Using standard 2.54mm spacing, you can pit DIP chips, and boards that use standard headers, and still have enough space to place wires. In fact, if you are thinking of doing any electronics, a breadboard is practically required. Numerous kits are sold with a breadboard, and unless your focus is solely on the programming language and a particular shield for your needs, you will invariably use the beloved breadboard. They are called breadboards because that is what they were; a wooden board used to cut bread, with nails hammered in to facilitate wiring. A lot has changed since then, they are now in plastic, with 2.54mm spacing for adding components, wires and other devices, but that was decades ago. Since then, they have been designed in multiple colors and even more factors, but a breadboard is a breadboard, there isn’t anything sexy about these devices.
Now let’s take a closer look at the Arduino. The trusty Arduino has taken the world by storm, with applications ranging from education to professional products. It has two rows of headers, which is great news for shields, but not so good for breadboard applications; complex projects can have multiple wires going across the entire board. I have one solution at home, it is a shield that has a breadboard on it, but due to the size of the headers, the breadboard itself is tiny, and can only be used for two or three components, and doesn’t include a power rail on the top or bottom.
Simple idea, complex solution
Many engineering marvels have started with “What if…”. STEMTera is no exception, the designer started with a simple “What if I embedded an Arduino into a breadboard”. As simple as the idea is, technically, they have accomplished quite a feat. JP Liew, the founder, made some interesting points on the project’s Kickstarter page, and explained why he wanted to create this project. On the list of names on that page, you can find Nathan Seidle, founder and owner of SparkFun Electronics, who were kind enough to send me a STEMTera for evaluation.
So you have the idea, what now? Turning an Arduino into a breadboard isn’t easy; you have to redesign the Arduino board, then comes the difficult part of 3D prototyping, and the even more complex task of aligning everything correctly. The board I have has everything perfectly aligned, from the LEDs to the reset button. While the Kickstarter campaign was a huge success, very early models had some slight issues with the plastic, classed as “Bulge/Warps”. Needless to say, this was part of the early production, and has since been fixed.
At first glance, you could possibly mistake the STEMTera for a classic breadboard, but you just need to look closer to see the differences. First of all, it is higher than most models, since there is active electronics inside. The middle section is a classic breadboard design; two 40-row 5-column connectors, together with two power rails. That’s where the similarities end, though. It also has additional holes to maintain shield compatibility, more on that later on. There are also four LEDs built directly into the device; one for power, two for the typical TX/RX duo, and a nice touch, one for the “L” LED, or pin 13 on an Arduino Uno. Finally, a reset button is present, and this is sometimes more useful than you would first think.
On the side of the STEMTera, there is a micro-USB slot, and one power jack. The USB slot feels solid, with enough plastic to keep the lead firmly in place, without risk of damage or tearing the connector. Remember that this product is designed for education, it nee
ds to take a bit of punishment, and from what I’ve seen, it can take quite a lot.
Before reviewing this product, I saw a few photos on Internet. One of the things that worried me was shield compatibility. Try and put a shield onto a standard breadboard, you can’t. I’m not too sure how the spacing was decided for Arduino headers, but it isn’t the most practical layout possible. In order for the STEMTera to be really useful, they had to work around a major problem; shield compatibility. In the center, you have a “standard” breadboard layout, and above and below, you have shield-compatible headers. There are two rows; for each pin, you can have two connections. A nice touch when actually using shields, you can still make a breadboard connection; one row is used by the shield, and the other is available. While a slightly tight fit if you are using hard-tipped wires like I am, it works perfectly if you are using breadboard wires. One of my shields, a 16×2 LCD kit, actually covers both rows, making it impossible to add wires, but this is the only shield that I know of that is over-sized.
Another slight disappointment, the 4 LEDs are also covered when using shields, but there again, when using a shield on an original Arduino most of these LEDs are covered anyway, so that doesn’t change anything. The reset button remains available, as does a large portion of the breadboard if you need to add components. Here, you can see the difference I have between a prototyping shield, and the space left on the STEMTera when it is placed.
Isn’t Lego for kids?
If I have a look through my boxes and drawers, I probably have five or six breadboards. I know what they are like, I mean a breadboard is a breadboard. Still, I don’t actually know what is underneath them. Maybe double-sided tape to stick onto a flat surface, maybe nothing, I’ve never looked. The STEMTera again reserves one final surprise. Underneath is a Lego-compatible surface. it fits perfectly onto my Lego Minecraft kits, and I’ll probably be creating a village around this board (although to be honest, I’ll probably be using it so often that I’ll never be able to keep it on any Lego kit or vehicle since I’ll be using it for so many different projects).
Adding Lego compatibility is an excellent design choice.
Example program (or lack of)
With most reviews, you come across an example program, something that shows off what the board can do. There won’t be one for this product, for a very good reason. The STEMTera is sold as “Arduino Uno R3 100\% Compatible”, and it is. I’ve tested this with numerous shields, and everything has worked perfectly. In fact, it really is an Arduino Uno inside a breadboard, the only difference is that you no longer need to wire a second board.
Blink is the first program that anyone will write or flash to an Arduino, since it allows you to see instantly if everything is working. The L LED is visible on a classic Arduino board, and it is also immediately available on the STEMTera too, right next to the Tx/Rx and Power LEDs. As such, Blink gets you up and running within minutes.
I tried different programs and set-ups, each one ran perfectly. The STEMTera claims to be 100\% Arduino Uno compatible, and it does indeed appear to be the case. A review wouldn’t be a review with at least one example, so I decided to try out the Lego side of the STEMTera. I’m a Minecraft fan, and I have a few Minecraft Lego sets at home, so we’ll work with that. A while ago, I created a modification that makes torches flicker, so let’s do this with the STEMTera.
It turns out that Minecraft Lego torches can fit 3mm LEDs perfectly, and by using PWM, we can make this appear to flicker. So the kit I’m using, the Minecraft dungeon, has a few torches. Three of them can be easily connected to LEDs, but watch out, that does mean drilling holes into your Lego kit. It took me a while to convince myself.
So, the aim is to connect these three LEDs to an Arduino using PWM. Not all pins of the Arduino Uno support PWM; on the Uno board, these pins are represented by a symbol, and on the STEMTera, they are just as visible, if not more so. For simplicity, I’ll use pins 9, 10 and 11. Three wires are connected directly to these pins, and the fourth, the ground, goes to one of the ground pins. The wiring here is even easier than on an Arduino Uno, since the surface is flat. I could also connect two wires per pin if needed, since each input and output has two breadboard connections. Of course, I could use the breadboard capability in the middle, but this project doesn’t require it, not just yet.
Time to code. We need to define the ports to use:
#define TORCH1 9
#define TORCH2 10
#define TORCH3 11
Afterwards, we need to set them up as outputs, and since we’ll be using random numbers, we also need to set up the seed:
Once that is done, the main loop simply sets PWM values for the three pins. This is done by defining a base value, and then adding a random component.
analogWrite(TORCH1, 823 + random(200));
analogWrite(TORCH2, 823 + random(200));
analogWrite(TORCH3, 823 + random(200));
And that’s it! The program will loop over and over, and a small delay adds to the flicker effect. Time to flash. The STEMTera is detected as an Arduino Uno, and the Arduino IDE doesn’t see any difference. Select the COM port, configure the project as an Arduino Uno target, and you are good to go.
The name STEMTera makes it clear, this board is designed to help students of all ages, and teachers. As such, it needs a certain amount of qualities.
Robust – probably the most important factor. Anything used in education is either going to be used extensively, or roughly, maybe even both. The kit feels solid in your hand, and can survive a fall from my desk without a problem, but I decided to test it a little further. Well, I didn’t decide, my kids thought it looked great and proceeded to make a Lego spaceship out of it. It took me 20 minutes to notice, and after multiple complaints, I retrieved the STEMTera and had a closer look. Physically, it was fine, as if I had just received it. It passes this test, and it needs to, if ever it is to be attached to a speeding Lego car.
Easy to use – again, an important factor. The STEMTera is as easy to use as a regular Arduino, more so in fact since it has it’s own breadboard. It functions exactly as you would expect, requires no special software apart from the Arduino IDE, and even adds functionality. The pin-outs are clearly labelled, readable even for someone with acute colour deficiency like myself. The paint looks pretty solid, but might start chipping after a year. If they make a second version, I’d love the text to be 3D, raised or lowered slightly in case the paint is removed.
Compliant – how many students have made their own shield, and how many schools depend on shields for their projects? Maintaining shield compatibility was critical for STEMTera, and this has been done perfectly, even adding functionality to the original Arduino design. If it fits on a Uno or Mega, it will fit on the STEMTera. End of story.
The STEMTera is indeed one of those devices where you wonder how you managed to live without it. I’ve been to schools and I’ve talked to students of all ages, and they are going to love this. I can’t begin to imagine how many times I’ve seen a school design that could benefit from this. Imagine a project that is to be done over the course of a few weeks; the Arduino and breadboard are to be moved to and from shelves to make place for other projects, at some point, wires are going to fall out. While the price tag of 45 USD might frighten people, this is only the start. Once production ramps up, we should see cheaper boards, something very close to the price of an Arduino and a breadboard.