Arguably the biggest advantage of the Arduino platform is its ease of use, especially when compared to what microcontroller development looked like before the introduction of the open source board and its associated software development environment. All you need to do is download the IDE for your platform, plug in your Arduino, and you can have code running on the hardware with just a few clicks.
But can it get even easier? [Gabriel Valky] certainly thinks so, which is why he’s developed the cloud-based Gabuino platform. As of right now it only supports the DS213 pocket oscilloscope and LA104 logic analyzer, but he says the code is lightweight enough that it should work with any STM32 board that has the appropriate bootloader. Using Gabuino requires no software to be installed on the computer, just plug in the board, and you’re already half way there.
The trick is that the code editor and compiler have been moved into the cloud, and are accessed through the host computer’s web browser. The web interface also integrates an impressive “Console”, which [Gabriel] likens to the Serial Monitor and Plotter functions of the Arduino IDE, but is actually far more capable. The Gabuino Console is not only bi-directional, but through the use of libraries such as Three.js and WebGL, it’s able to render video output from code running on the microcontroller.
[Gabriel] takes us through some of the capabilities of Gabuino in the video below, and we have to say, it looks pretty impressive. We especially liked the built-in debugging capabilities that let you set breakpoints and examine variables. This plug-and-play approach certainly holds promise for students or beginners, though we think the hardware compatibility will need some work before the project really takes off.
Incidentally, this isn’t the first time [Gabriel] has written some code for the LA104. Last year we covered his very impressive custom firmware for the ~$100 USD gadget, which should sweeten the deal considerably if you end up getting one to experiment with Gabuino on.
It’s impressive and also at the same time disappointing.
It needs some “standard” hardware before it will be much wanted. Paying $150 – $300 for a development board in the form of a scope or analyzer is not a good starting point. Sure they’re good units but your not going to spend that money without trying something cheap first.
The name is horrible. It hasn’t got anything to do with *uino. If anything it may be a legal liability – if this project starts hitting the bottom line of Arduino then look out for the head hunting lawyers.
And as side note. We had PIC before anything *duino. We had mostly been using the PIC16C57 and PIC16C84 which were one time programmable. Most IDE’s were ASM based. You needed a hardware programmer, often one you made yourself that run on a PC parallel port.
There was also something called the BASIC Stamp that was easy to use but BASIC really was only a beginners language. I think it had a bootloader, not sure, never used it.
Things became a lot easier when they had re-programmable flash chips like PIC16F84 but still it had a dedicated programmer instead of a bootloader. The PIC’s didn’t have a lot of resources like the ATmegs’a, no hardware protocols, timers, analogue etc.
There was one PIC IDE / Emulator that showed everything that was happening in a chip from the code. It would still be a very useful educational tool for learning simple PISC like ASM and Harvard Architecture.
PISC – Peculiar Instruction Set Computing
I meant –
RISC – Reduced Instruction Set Computing
It is true that the “Basic stamp” was interpreted and slow, compared to compiled languages.
OTOH, many of the basic compilers available for PIC’s produced code that was half the size of microchip’s own C compiler, and much faster. They were far more efficient in terms of both ram and rom, and were used in many medical devices back in the day. It’s funny how people often get stuck in a 70’s mindset rut and cannot get away from the original acronym of basic, even though the tools did.
I don‘t get stuff like this or micropython. As an embedded developer you need to know registers, precise timing and working with limited memory – but you are too stupid to install a toolchain and execute a make file?
Says who? There are literally millions of Arduino users who are happily compiling firmware for their 8-bit chips every day and have no idea what a register is. Clearly this is not for professional MCU development, but hobby and educational use.
Ok, I may have done this for safety critical and mass market products too long to look at it with a hobbyist mindset.
Which Arduino or similar device and tool chain do you recommend for safety critical use?
The Autosar architecture guidelines (https://www.autosar.org/standards/classic-platform/) are a good starting point.
Thank you, interesting to know. As an individual it is a little out of my affordability league.
I can’t understand this mindset of “if it’s not the way I do it, it can’t possibly have any value to anyone else.”
I’ve thrown micropython projects together that have done the job perfectly and took a fraction of the time to write. Sure, I am perfectly capable of writing them in bare metal C, but it’s nice when I don’t *need* to. I also like having a car so that I don’t have to walk everywhere.
I’m an embedded software developer by trade. I can install a toolchain (or compile it from scratch). I deep dive into datasheets and registers. I deal with timing issues quite often. Missing a timing window isn’t just often an issue, it’s often a safety issue. So going to the registers and timing is important then.
And, I also use Micropython and Arduino. It’s a different tool for a different goal. Recent example, want to control a bunch of Neopixel strips trough Wifi. Micropython and a ESP8266 made that possible in 10 lines of code. It was quick to setup, and didn’t require me to take any deep dive into toolchains and compilers and board specific socket libraries.
Same for Arduino, it’s useful for a quick simple thing. Working on a DIY embroidery machine from a sewing machine. Controlling the sewing machine motor is proving to require some experimentation, Arduino quickly allows me to experiment with this, and still get millisecond accurate timing, way more then I would ever need.
Depending on the project, different tools fit better or worse. But, if you only have a hammer…
This!
I was a professor at a local tech college, teaching embedded systems. And it was literally this – we had several courses in order, and on the first step it was – Arduino. Yes, it had a lot of things hidden, but gave an opportunity to talk about the protocols and basic problems in embedded programming. Then the continuing course would delve more into specifics, different timers and interrupts, understanding memory maps, going into assembly etc.
Arduino is a prototype tool. Maybe it can be used in final product, but most of the time, it’s a prototype tool.
Sometime you don’t need to know how each part of a jackhammer works, just understand how to use it…
Micro/circuit python is stupidly useful for board checkout/setup firmware. It also allows you to have essentially arbitrary code size, which can also be useful. For instance, you can have a really complicated self-test mode which cycles through a lot of different processes/steps.
With a proper UF2 bootloader it’s super simple to flip between the two.
Note that mbed.org has a whole online compiler setup for a lot of different ARM boards. Doesn’t have the debugging facilities, but does have zero-install, easy to get going. As well as cheap boards to work from.
I was going to point out that mbed was widely criticized in its early days for being “web-based compile only.” It’ll be interesting to see if the tides have turned at all.
“uino” isn’t clever. It’s the most overused and stale thing in DIY electronics. Please think of a better name next time.