The Internet of Things (IoT) is likely to end up as ingrained in our lives as the information Internet. The umbrella term can be simplified to ‘internet-connected controllable hardware’ and includes everything from an app-controlled garage door to Google Home and Amazon Alexa controlling smart WiFi lights.
For those unfamiliar with networking, communication protocols, coding, and so on, IoT devices can seem out of reach. What is simple, obvious, and intuitive for one person is mystifying for the next. Quantum Integrate recently sent us their complete range of products, which are a combination of specifically designed hardware, and a software package to back it up. They say it is supposed to make beginning in IoT easy.
We’re always suspicious when a product claims to be a ‘beginner’s’ kit. Often they are designed by people who know a lot about the topic, to the point where they have forgotten (or never understood) what someone new to the topic does and doesn’t know, or what they find easy and hard. How many of us remember our beginner’s electronic kits that seemed to explain things so well then suddenly dedicate one sentence to something that made no sense to us and should have had a whole paragraph or more?
To find out if the Quantum Integrate IoT products are truly beginner’s products, I was assigned the task of reviewing them. It’s no secret to DIYODE readers that I have a primarily analog skillset and background. I work with discrete components, sometimes digital ICs, but cannot get my head around Raspberry Pi, and my Arduino skills don’t go terribly far past ‘Blink’ in the grand scheme of things. It’s worth noting that it is considered that the part of the brain that learns this stuff is the same part that learns languages (there really is a lot of commonality), and I failed to effectively learn German, French, Japanese, and Spanish, too.
I don’t follow the operation of network communications very well, and I’m calling for help pretty quickly when one piece of software will not talk to another or an operating system. If the hardware breaks, however, I’m very much into the problem solving required. With that in mind, if I can follow along, use Quantum’s software, and get a working IoT project that goes beyond just ‘make these connections and upload the supplied code’ and enters the scratch-built project level, then the system truly is for beginners. Before we look at that, however, let’s examine the website and kit contents.
The Quantum Integrate website has far more information that we could hope to fit in a review. It starts by explaining the Quantum Platform, which is the general name for the proprietary hardware and software that makes everything work. It is a clean and crisp website, and immediately breaks down the components of the system with brief introductions. More details are easy to find, but you don’t have to read through pages of text on one item, just to get to the next. There are some short and informative explainer videos, which may make it look a bit easier than it is but that is a necessary evil of making such videos. They’re an overview, not a full set of instructions. Those, however, are elsewhere on the website.
Excitingly, it becomes clear quite quickly that there is even a drag and drop option for coding. This appears to be the IoT equivalent of Scratch! It does look more like a flow chart and has more complexity than Scratch, but for a novice, it is still far less daunting.
There are only a few menu options at the top of the page, and they are clearly labelled. That makes finding your way without losing your mind or confidence much easier. The ‘Support’ menu will be of the greatest use once you already have hardware. It has sub menus for a Knowledge Base full of short overviews and FAQs; A user guide, the actual manual as such (but this is still in development, sadly); Tutorials, which go into a bit more depth than things in the Knowledge base; Projects, which displays fully buildable projects with instructions, videos, parts lists, and more; a separate ‘Documentation’ menu, which includes the PDF user guide, references, and other handy quick-reads; and finally, a service portal if you need further help. There are also links to the various Quantum Community platforms like Reddit and Instagram.
The only thing that wasn’t especially obvious was the software download link, and what kind of software was required - was it a full download, or a web interface like the Arduino Beta IDE is currently, or even a fully browser-based system like WebSockets? We found the answer on the product page for the Q-Server Central Core: It’s a browser-based web interface, no download needed. We are also told here that the software can create apps as well, and that the whole platform is secure and encrypted in a way that will keep you safe but not lock out a beginner. On the subject of the Q-Server hardware though, it’s time to look at that.
THE Q-SERVER CENTRAL CORE
At the centre of the operation is the Q-Server Central Core. This, it turns out, is more than just a router. This unit has brains, it performs control tasks and stores information. Quantum even states that in the event of an internet or power outage, the Q-Server will still operate. This assumes battery power, of course, or a power failure affecting the internet infrastructure and now the property where the Q-Server is, which many of us have experienced. Battery power is possible, although the unit is supplied with a 5V 3A mains plugpack.
In terms of external features, the cool-looking hexagonal server only has a power socket, two status LEDs, and a paperclip-operated reset button. There are no controls or connections beyond that: Everything happens wirelessly. The Q-Server is used to connect to client hubs, which we will explain next. Currently, it can connect to five at once, but Quantum is working on expanding this.
THE Q-CLIENT HUBS
The Q-Client hubs are the other half of the heart of the system. They are a smallish custom-designed interface which take care of all of the communications stuff and provide well-labelled screw-terminal connections for power, communications (Data and Clock to the hardware connected to them) and six GPIO ports. The clients can even run on a 3V lithium coin cell, for which they have a holder on the underside of the board. They have a USB Micro-B socket for plugging in if need be. While we would have liked to see USB-C, this port won’t be used often enough to matter. This unit is the versatile go-between, to which you connect all of your hardware to talk to the server and the rest of the system. The base case is undone by a single screw, and is sometimes used in projects minus its case, which even has little legs with rubber feet!
There are four DIY kits currently available, with Quantum looking to expand the range as the business grows. They can be bought individually or as a bundle. We received all four, and they’re worth a look on their own, albeit briefly. At DIYODE, we love a good solder kit, and I in particular get very excited about a good one. The Quantum DIY kits are not what I would describe as ‘premium’, but they are good quality and well designed. They have a well-made PCB, reasonable labelling, and are generally well made and laid out. They aren’t quite up to the standard we’ve come to expect from the more modern Jaycar and Altronics kits, with premium PCBs and generally high component quality, but the Quantum kits are certainly up to the task asked of them and the quality is still good. The solder masking and through-plate vias were effective and clean, and all the components fit where they should.
Each kit has its own project page on the website. Here you can find a bill of materials, instructions, example code if relevant, step-by-step photos, and links to documents such as a PDF bill of materials in printable A4 (which the web version certainly is not!) and an image gallery. Pretty awesome level of support, really.
The power supply kit is well thought-out. It has a 2.1mm DC socket for an input but is supplied with a 2.1mm DC to 9V Battery snap adaptor. It accepts between 7 and 12V and uses the venerable and almost indestructible LM317 as its basis. An onboard slide switch on one side is an on-off switch, while the same on the other side is a voltage selector switch: output can be 5V or 3.3V. There are two headers underneath for connection to a breadboard while on top, a screw terminal set handles general power out.
This is the basis for an IoT robot project. It uses two of the tried and tested L293D ICs and a TLC5940, which is actually an LED Driver! This is an example of innovative engineering, because the LED driver is actually a constant-current 16 channel PWM Driver with EEPROM on board for storing correction data. There are both headers and screw terminals for inputs and outputs. This one uses some of the I/O pins as well as the data and clock pins.<
SIMON GAME KIT
This game is a stand-alone project that uses the processing power of the Q-Server to run a game that is a hybrid of ‘Simon Says’ and Memory. We show this one connected to the Q-Client, as we had started exploring it.
The basic premise is that the coloured lights light in a certain sequence, which may involve several flashes of the same LED, and then you have to hit the switches in the same order. Another mode seems to be more like Simon Says, where the white light blinks, then a coloured light blinks, and you hit that coloured button.
At some point, one of the coloured LEDs blinks without the white LED having lit first. If you hit the coloured button, you lose. We haven’t finished figuring this out at the time of writing, though. We also aren’t showing it lit up because it turns out it’s rather hard to hold a camera steady and play the game and snap just when the lights are lit, all at the same time!
We’ll get an extra person to help in part 2 when we do some real builds.
The Joystick kit can be used stand-alone or with the motor controller kit. Each requires one builder base. Unlike the previous kits, this kit is designed to have a builder base screwed to it. Quantum provides a download link to a 3D-printable enclosure for it, so the whole assembly is hand-holdable far more than the plain PCB would be. The Joystick PCB includes mounting hardware to attach the builder base Q-Client, minus its case, to the base, and has a ribbon cable to be attached to the screw terminal connections on the client.
We were also supplied with the Quantum component kit. This is similar to that which comes with many Arduino or Raspberry Pi beginner’s kits.
It comes with a breadboard, jumpers (quite a lot of those), a stack of resistors, LEDs, switches, potentiometers, a joystick, rotary encoder, ultrasonic sensor, PIR, stepper motor and driver, two DC motors, addressable LED strip (8 LEDs), seven-segment display, temperature and humidity sensor, servo, relay, two-line LCD display, keypad, and a screwdriver and resistor colour code card to help you along.
The whole lot is in an organised parts tray. The component kit is supplied as is, but the website contains a stack of tutorials and instructions that use the various parts. You can make an IoT weather station, for example. Some are full instructions, some are get-you-started tutorials that leave you with some thinking to do. A pretty good spread, really.
From what I have engaged with so far, I have encountered few headaches. It took me a while to realise that the software and app builder are accessed through the Q-Server, once you have a Quantum Cloud account set up. That’s why there are no direct links as such. The tutorials, however, are most helpful.
I was able to set up and use the Simon Game in less than ten minutes. That is a big achievement for me and says that the Quantum Platform is indeed for beginners.
That said, I am comfortable calling the Quantum IoT platform suitable for beginners. While some electronics knowledge is required, it’s at the component identification and connection level. Even then, the online bills of materials have pictures! The platform itself seems to live up to its promises of being easy. The reason we went with a two-part arrangement is that it has so much potential, we’ve decided to build some projects with it.
When we do, we’ll have a whole lot more to say about the Quantum IoT. For now, we’re excited about and happy with the products we have in our hands, and if you’re thinking about IoT, Quantum is a great place to start. Be sure to check their website, because there is so much more there than we could ever fit here.
Having said that, it is worth sharing our initial experience of setting up and trying out the Q-Server and Q-Client, ahead of our main build.
OUR EXPERIENCE: INITIAL EXPLORATIONS
Initial setup of the Q-Server can be a little slow, as with many devices, but it was by no means complicated. There is a paper quick-start guide that comes with the unit, and a YouTube video tutorial as well. The video does tell you to ‘follow the instructions that come with the unit’, but explains things anyway, in more detail than the paper. I went with the paper version before watching the video anyway, mainly out of personal preference, then watched the video. As soon as the Q-Server was connected to the internet, it wanted to update. That is quite normal now for many devices, from phones to 3D printers, and is a strong sign of continued development and current support.
With the server connected and accounts created according to the simple and unambiguous instructions (a nice change from what many of us are used to), it was time to connect some peripherals. I decided to go with the tutorial system and follow its sequence, rather than flying blind. This is, after all, a beginner’s kit and as far as networks and IoT, I am a beginner! The first tutorial is the Q-Server setup but the second, ‘Tutorial 1.1 - Hello World’, is the first real-world connection between server and client. It uses two Q-Client Builder Bases and a pushbutton and LED from the component kit. There is nothing stopping you from using your own supplies if you don’t have the kit. I used workshop stock because it was on the bench and the component kit looks so good when it’s all neat, tidy, and complete!
The first step is pairing the Q-Clients after they have been plugged into power. That process is very easy indeed and could be figured out by most people without the video. There is a ‘Clients’ tab in the left menu, and it has headings ‘Paired’ and ‘Unpaired’. Clicking on the ‘Unpaired’ tab shows a table with unpaired devices and columns for ‘Location’, ‘Signal’, and ‘Actions’. Under ‘Actions’, one of the menu options is ‘pair’. Now all devices appear under the ‘Paired’ tab, where the ‘Actions’ menu is again used to identify the clients. Clicking this menu option causes the onboard LED of the relevant Q-Client to flash red and green alternately, but only for one second. That’s not useful if you have them spread out already or want to verify them when installed in situ for a project. Another ‘Actions’ menu option is ‘Edit’, which enables you to change the name and location of each base. The name can be anything, so I used ‘LED’ and ‘Button’, seeing as the tutorial was to use a button on one client to turn on an LED on another. Continuing with the video, it turns out that the Quantum team used the same names. However, ‘Location’ is only a dropdown list with a few options, none of which was ‘workbench’ or ‘computer bench’ where I had my clients set up. It would be nice to be able to rename the location, but at this early stage, I am not willing to discount the possibility that I will find a reason later for things being this way. I noticed around now that the videos are slightly out of date, with the firmware having already been upgraded and some of the user interface having changed. The changes are minor, however, and the videos are still very valid.
The circuit set-up will be familiar to most makers. It’s an LED with limiting resistor on one client, connected between a GPIO pin and ground. On the other client, a pushbutton is connected with a 10kΩ resistor to ground on the GPIO side of the switch, and 5V on the other side. The screw terminals on the Q-Clients make the jumper connections to the breadboards a little slower than the headers on, say, an Arduino Uno, but infinitely more reliable and secure.
It was now time to create firmware. This is done from an easy to find (and self-explanatory) ‘Firmware’ tab in the left menu. Even though the ‘Create New’ tab is easy to see and work out, the interface still told me that ‘You have not added any firmware. Click the ‘Create New’ button above to start.’ Very beginner friendly! The process for creating the firmware is so straightforward that I was able to keep pace with the video voice over, not having to pause at all. I slowed down a bit building the app, which is the drag-and-drop code that makes the system work, but still only had to pause when looking for the ‘save app’ button. It turned out I had it covered with the notification panel. A couple of things are not noted in the video. The objects, though labelled as ‘LED’ and' Button' in the code blocks, are named ‘untitled’. The labels are hardware type labels. Clicking on each item reveals a properties bar at the right, where the name can be entered. There is a ‘Save Properties’ button at the bottom.
Mapping the hardware to the code was also straightforward. Having saved the app and returned to the ‘Apps’ menu, the play button brings up the mapping window. This is super easy because the firmware was told what was connected to it in the previous steps. When clicking the item, only the compatible items appear in the menu, i.e., ‘Button’ firmware appears for the button hardware, and ‘LED’ for the LED hardware. With the mapping done, all that was left was to press ‘Save and Run’, and test the hardware!
When the button on the relevant client was pressed, nothing happened at the other end. I repeated the process, checked the status lights, powered the LED via 5V from the bench power supply, and finally ran over the circuit with a multimeter. This last step proved informative. The button Q-Client was getting its 5V signal from the button. The GPIO on the LED Q-Client was going high. However, it is a 3.3V IO! It can cope with 5V in it seems, but output was measured at 3.2V. The LED I had used was one lying on the workbench, a rather unusual 5mm package that is 20mm long. As it turns out, the LED also has a high threshold at which it lights. The 3.2V combined with the 150Ω resistor was simply not enough to light the LED. Having replaced the 150Ω resistor with a 47Ω resistor, everything was fine!
Despite my own total lack of prior experience with IoT, or indeed with networks since a little bit of LAN gaming in the early 2000s and the connecting and fault-finding that went with that, I was able to have a working build in under fifteen minutes. I cannot think of a better endorsement for a beginner’s product than that!
We will be working on a part two to this review, but more of an independent sequel than a second half. This system is just screaming to have something bigger and more capable built with it, and the app and firmware builders further explored.
NEXT MONTH: Part 2 - using them!