RoadTest: GraspIO Cloudio + Raspberry Pi 3
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: In many ways the GraspiO board is in a class of its own, bringing an interesting combination of digital i/o with on-board sensors for light intensity, temperature, infrared, and mechanical switching, as well as output devices including buzzer/annunciator, RGB LED, OLED display, and PWM servo motor drive. The board sits atop a raspberry PI which hosts the board (using a custom SD card image) with wi-fi connectivity and audio / speech through its audio socket. The user interacts with all this through an intuitive visual block programming app called GraspIo Studio Mobile available on IoS and Android. This adds voice recognition capabilities as well as the ability to interact with other smart apps using IFTT. This makes it remarkably easy to demonstrate joined-up interactions and really useful in educational use-cases where knowledge of programming or electronics does not need to be a prerequisite. While there is a wide variety of specific-use hats and shields available for the Raspberry PI, they all rely to lesser or greater extent on some level of linux operating system and high-level programming knowledge to make them work, and none really offer an immediate iot playpen for educational purposes or for basic proof of concept prototyping for the more advanced.
What were the biggest problems encountered?: None really, some specifics described in the detailed review
Thanks to Element 14 for the opportunity to road test the GraspiO board with the GraspiO Studio app on the cloudio Cloud platform.
It’s fun crunching electronics and computing together to make awesome applications and integrations and it’s good to see our younger generation (and techno newbies) gain better understanding of how things can be made to work. It’s often said that it’s the younger generation who better understand tech because they’re always using it - but is it possible that many may take for granted the ‘magic’ that they use everyday? The basic element of computing is the ones and zeros translated from electronics logic levels high and low, nothing more nothing less. But how does that make my sensor notice that the light level has reduced and turn on a light? How can I make a servo motor move 65 degrees or a solenoid unlock a latch? How do I put together a process to sound an alarm if gas is detected?
So an educational product that allows novices to play with these concepts without much knowledge of programming, or much in the way of electronic engineering skills, is intriguing. And it’s not just novices that this may be of interest to, there’s often circumstances where professionals and hobbyists just want to quickly prove a concept without getting out the breadboard, soldering iron, and C compiler.
In performing the road-test I have naturally had to set realistic expectations but always with a mind to the extensibility of the product and its future potential. To put another way, I would naturally expect to find digital and analogue input / output allowing basic interaction with sensors, buzzers, displays etc but shouldn’t expect (for now at least) access to hardware buses such as SPI, I2C, 1W, serial/UART etc.
So let’s take a look at the boards core capabilities (what’s in the box) and how easily these may be integrated using the block programming app, what are simplest additional sensors that can be used with the board, and how the board can integrate with the outside world.
I received a package with attractive, well presented branding and clear instructions. The packaging makes it obvious the board is for a Raspberry Pi with an app supported on both Android & IoS, and app integration via IFTT.
Buyers should note that the Raspberry Pi and SD card is not included in the product but also that they DO NOT NEED a keyboard, video, or mouse only the use of their existing smart device (phone or tablet)
The double-sided pcb is a pleasant colour and seems well made and robust. This will withstand a fair bit of misuse. On the underside we have the female header and a stand-off to seat the board cleanly on the host Pi.
The sensors and devices are all placed in sensible positions to aid experimentation for the kind of use-cases we would reasonably expect to see the board used for (more later when we take a look at the programming side of things).
The GraspiO board makes use of an Atmega32U4 Controller, a meaty processor which can be found at the heart of many of the current Arduino microcontroller development boards.
On Board Sensors (Input):
A cursory eyeball of the board and it’s evident that there are a useful selection of on-board sensors to get you quickly up and running with input.
1 off Temperature Sensor.
1 off Light Sensor
1 off Digital momentary Switch
1 off IR Proximity Sensor (Transmit & Receive)
On Board Indicators (Output):
Next up we want to see what options we have to feedback status and information to the user and the board does not disappoint with the following devices:
1 off 0.96" OLED Display (white) - For displaying real-time sensor values, custom text with stylized font, and playful emojis.
1 off Buzzer / Annunciator - For adding audio alerts and alarms to programme steps.
1 off RGB LED (5V) - To add visual indicators in light and colour to programme steps, out-puting 16-bit RGB colors.
The board would be pretty useful with just the sensors and indicators above, but what makes it more functional is its additional 7 input output ports which allow for the interfacing of analogue sensors, digital output, and PWM Motor drive.
3 off ADC Ports (5V) - Known as Ports S1, S2, S3 - For connecting generic sensors and standard sensors like humidity, door, motion, etc.
3 off Digital Output (5V) - Known as Ports X1, X2, X3 - Ideal for breakout to breadboard circuits, connecting relays for home automation related projects etc.
1 off Mini Servo Motor Port(5V) - Known as Port A1 - For interfacing an external servo motor to perform mechanical actions such as pan/ tilt, smart lock applications, etc.
In addition the documentation tells is it is possible to connect any of the following:
Mini 5V servo motor to port A1
External sensors to ports S1 to S3
5V devices such as LEDs, Relays, DC motors to Digital Output ports X1 to X3
Raspberry Pi camera or USB camera connected to Raspberry Pi
External speaker connected to Raspberry Pi's audio jack
In addition to the GraspIO Board, you will need:
A Raspberry Pi with wifi and Power Supply (Supported Models: Raspberry Pi 1/2/3/0/0W )
A wifi access point to connect to
Access to a PC or mac with a micro SD card reader (to flash the SD card)
Micro SD Card (you will need a class 10 of 8Gb or higher)
Android or Apple phone or tablet
Optional items to plug-in and test with (I selected a potentiometer, a servo motor, a rudimentary resistive rain sensor, a gas sensor, a 4 key membrane keypad, a relay board)
Strangely on this occasion I decided to RTM rather than dive in headfirst and dig myself out of my own mistakes later, a piece of advice I give others but often disregard myself. There was no need to worry, the instructions provided were very clear taking me through step by step. I made myself a summary….
Flash the GraspIO image to an SD card for use in the Pi
Download the free Etcher software onto a laptop or desktop PC (windows or mac).
Download the image from link provided
Load the image into Etcher and write to a blank SD card (Note: SD card not included)
Assemble / Mount the board on the Raspberry PI
Download GraspIO Studio app on to mobile device from Play Store or App Store
Create an account on GraspIO Studio
Connect Cloudio to the network and your account
Possibly wait for some automatic updates
Ready to go with Visual Block Programming !
Load examples to try out the features
Try some of my own sensors
All in all this turned out to be a simple and (mainly) satisfying process.
This process went swimmingly. The SD card was prepared by formatting it (I used Windows Quick Format), the source image was downloaded to a folder directly from the link provided, and I decided against natural inclination to follow instructions and download the Etcher utility rather than use my usual Win32DiskImager.
I opened the downloaded image into Etcher and I’ve got to say this was the simplest imaging process I’ve ever seen. No imponderable config settings, just select the drive that the card was in and go! Percentage progress is displayed and flashing completes after a while when a success message is displayed. Exit the Etcher application and eject the SD card. All done.
Next step is to ‘let the board see the Pi’ as they say up North.
For the purposes of this road test the board is mounted to an RPI 3B. It is also test mounted on a RPI Zero (with USB Wifi Dongle)
The board registers cleanly atop the RPI GPIO header. On the RPI3 it is not possible to incorrectly mount it on the wrong pins, though this is not true for the smaller form RPI Zero (W) where there is nothing stopping you pushing in the wrong end of the header or the wrong way round - however it just doesn’t look right if you do that and I’m sure most people would think twice before switching on.
Regardless of these comments the manual provides crystal clear instructions on how to mount your board. Follow them and you won’t go wrong.
Finally we plug-in the power supply into the Pi’s micro USB slot and turn on the power. The RGB LED blinks (very brightly!), then a progress logo is displayed on the OLED and finally a re-assuring welcome message is displayed telling us setup has been successful. When I did this, it did seem to take 3-5 minutes to complete and I put this down to firmware updates being performed.
I started by installing the GraspiO Studio app on my IPhone 6 and IPAD Air 2. This was simplicity itself, just do what you normally do to install an app. All installed in a few minutes. Later I went on to install the app on an Android TV box, again there were no issues.
Next I created an account on the app using my email ID, password, and an account registration pin got sent to my email to confirm my identity. The pin was received within seconds and typed into the app. I’m then get asked to grant permissions for audio and storage on the phone.
GraspiO board and Pi must be associated to the wifi network and the account we set up in the app. Pi and mobile device must be able to connect to the same local network.
There are a couple of different ways to do this but I would highly recommend following the excellent instructions and video for ‘USB Twinkle’ which is a one-time process that uses a USB cable to transfer the Wifi credentials between the mobile device and Cloudio so that Cloudio can connect to your network.
For me, I connected my iPhone to Cloudio/Pi using a usb cable (I just choose one of the 4 free USB ports at random), made a long-press on the Cloudio GIO switch and got a nice network logo on the OLED followed by an ‘Apple device found message’.
The app screen then lists available networks and all you have to do is select your house wifi and enter its password. Cloudio says ‘connecting to the network’,
we disconnect the cable and name our new board on the app.
Eh Voila, the board is now connected and registered to my account. When powered down and up your Cloudio Pi is ready to go and you’re ready to send it a program to execute.
While the above may sound a little involved, it does follow the standard processes we seem to do day in day out on our devices, so wouldn’t seem alien to most users.
VISUAL PROGRAMMING IN GRASPIO STUDIO APP
This is where the fun starts for real. The instructions have a section called Creating your first project, which is a great place to start reading up what can be done with the block programming language.
I recommend navigating to the Projects / Examples section of the app and finding the Hi5 example. Clicking into this takes you to the programming screen and you can see how the instructions are formed.
The example is a simple loop block with an IF THIS THEN DO SOMETHING / ELSE DO SOMETHING ELSE block that reads the IR sensor and (1) displays an image (or emoji as they call it) on the OLED and (2) sounds the buzzer when the sensor reading < 50 i.e. when you move your hand towards it. When you move your hand away a different Emoji is displayed.
In this project we are introduced to:
Control blocks (Conditional and code blocks such as Loop and If)
Input blocks & real-time Read functionality (IR sensor)
Output blocks (Buzzer)
Notifier blocks (OLED)
It is so easy to play around with this first example and change values such as number of times the loop cycles, the trigger value for the sensor, and what is displayed on the OLED.
There are many other really interesting examples and my test results are as follows:
Key to Ease of Use Scores:
1 - very easy
2 - relatively easy
3 - some complexity and care needed
4 - relatively hard
5 - requires technical know-how or careful manual reading
Tested in this Road Test?
Proximity Alarm sounds buzzer, displays value on OLED
Takes Speech input to trigger actions on the board. In this case gets current temp and light intensity and displays on OLED. Pi speaks notifications.
Notifies on change in temperature. LED is green on stable temperature and turns red with OLED warning message when a threshold temperature is breached.
Monitors Temp and Light sensor for 1 day. Data is collected and displayed in the Dashboard section of the app, and real-time values displayed on Cloudio’s OLED. An easy way to view historical data on app and real-time data on board.
Uses Cloudio to trigger IFTT.
Three triggers are set up on Cloudio, and either one of them can be used while creating an applet on IFTTT.
Demonstrates the use of a Raspberry Pi camera or external USB webcam.
This example simulates a photo booth by displaying a message on the OLED and sets RGB LED to bright green.
The camera captures an image and emails it to the registered email ID.
Continuously displays a shuffled series of images on the OLED screen with a delay between each one of them.
Continuously displays a series of selected colors on Cloudio’s RGB LED.
Physical object presence detection.
An object is placed in front of the IR sensor. When it is moved away and email is sent and the buzzer sounded
In this example, two voice commands are demonstrated
Press the listen button on the app and say the command.
On ‘Good Morning’ Cloudio displays message on OLED and Speaks response on the PI’s speaker.
On ‘Disco Mode’ Cloudio displays a series of different colors on its RGB LED while beeping the buzzer.
SOME ADDITIONAL EXPERIMENTS & EXAMPLES
1 Mounting & Setup
A short video showing mounting the board.
2 Post Booting & Upload a Block Programme / Text to Speech
3 Digital Output to 3 External LEDs
A short video showing how very easy it is to test the digital out from the board by flashing some additional LEDS. Buy some from Farnell :-) and plug them straight into the X1, X2, & X3 female headers. The long pin (Anode) of each LED at the top.
4 Analogue Input from a variable resistor / Potentiometer
A short video showing how to add a potentiometer to the S1 ADC port. This could be used in classroom scenario as an educational example to explain how a variable resistor works. We measure the reading across it in real time and also demonstrate conditional statement with a text to speech output to our speakers.
5 Servo Motor Control
A very rough and ready demo showing how easy it is to utilise the onboard servo motor drive board with a micro servo motor.
The package comes pre-loaded with 50,000 free cloud calls. Once these have expired you have an on-going allowance of 100 free calls per day and a subscription is required for any excess. The scheme and cost of calls does seem a little complex, but then something that is perhaps normal in the cloud world. Some actions do cost a greater number of calls than others so usage should be carefully considered when designing your apps.
Good points :
Negative points :
Things to Consider:
Your Pi is booted with a custom GraspiO image (not Raspbian) and you can only use the functions of the board and its smartphone app. The KVM is disabled so there’s no terminal either via hardware or remote methods. The PI does however provide audio output and wifi to GraspiO board. Some may say ‘well what’s the point of buying a Pi if its functions are disabled?’, but it should be remembered that the raspberry Pi can readily be ‘put back’ to a Linux Pi (and vice versa) by simply changing SD cards and rebooting and this product does make for a reliable educational platform with simplified block programming. Less to go wrong. On balance, for the intended use of this board, this is a major plus.
At present it does not seem possible to combine the ‘advanced programming blocks’ and this can limit application complexity. Initially I had plans to make two demonstrations for this show and tell.
Firstly a Pseudo Temperature Gauge using a servo motor to ‘point to’ temperature based on its value and secondly the integration of a wind-speed anemometer (using the count clicks method), however I found the use of variables in the block programming a little limiting and have not yet worked out how to do this for either. I’ll keep trying..
The USB webcam capture feature is awesome and will send captured image or video to your email - all setup in 5 steps or less - however the cloud service restricts to one email every 15 minutes which could limit many attractive use cases for cameras.
Overall this is a great entry-level piece of tech, and affordable too. Most people already have some form of smart device running android or IoS, some may or may not have a raspberry PI to hand. However this works equally well across the entire range of the foundations platforms (as well as the recently released RPI 3B) and it is possible to pickup a Raspberry Pi Zero W for $20 and it will work just fine on that, keeping your overall investment in check.
Any parent of kids from primary school upwards, who wants them to be tech-savy should buy this for them as an educational tool. In some ways this is the lego of the IoT space and will no doubt spark creativity in their enquiring minds.
Despite some evident limitations in programming features and cloud usage it also has potential to be a great prototyping toy for the IoT enthusiasts. I’ve already used the board to quickly hook up some sensors that I’ve never had the time or inclination to test manually before.
I would definitely recommend starting with this board before deciding where your special interests lie and investing in other add on boards, hats and shields, especially if you are yet to hone your electronics and programming skills.
Great road test. Loved the visuals!
Thanks for such a detailed and comprehensive review.
We're thrilled to hear that you enjoyed using Cloudio and that you had a pleasant experience with it.
Really appreciate your feedback and will be sure to communicate this with the rest of the team.
Thanks once again.
Excellent, detailed road test.
Very good road test review.
A well written and useful report, thanks.