What Is The QuickDAQ.mikroBUS™?

Let’s face it, writing software is a lot of fun. And writing software that interacts with the real world, like embedded systems do, is even more fun. But even for seasoned experts like us, working with hardware can be extremely difficult, and the complexity and hassle of just getting up and going is often an enormous obstacle. The QuickDAQ.mikroBUS™ project was born out of the desire to make working with custom electronics dramatically simpler, faster, and cheaper.

The QuickDAQ.mikroBUS™ can be thought of as a board that provides your computer with the same low-level peripherals that a microcontroller has, such as GPIO, analog input, PWM, SPI, I2C, UART, etc. It comes with a standard .NET class library and can be used in any normal .NET application, so in that sense it can be thought of as a Data Acquisition (DAQ) board, thus the name “QuickDAQ”. What makes it unique is that it is also specifically designed to operate in the Virtuoso Low-Code Environment.

What Is The Virtuoso Low-Code Environment?

Virtuoso is a state-of-the-art general purpose Low-Code platform, which means it gives you the ability to design applications at a high level of abstraction without writing any code. Virtuoso supports, among others, a C# .NET WPF host platform which allows you to design applications by dragging and dropping nodes, configuring them, and connecting them to each other. This is called “Node-Based Visual Programming”, and Virtuoso translates your high level graphical design to a fully formed Visual Studio project that you can build and run. So if you want to perform a high level task, like getting the current temperature in your city or sending a text message, you don’t need to bother with the underlying C# code. Just drag and drop your node, and you’re done. What’s particularly exciting about Virtuoso is that it’s built to scale: anyone can create nodes based on their C# code and share them with or license them to the community.

After you’ve dragged and dropped your nodes and your schematic design is complete, you can always go in and extend your application directly in C#. You can design your application in both the 3rd generation language (C#) and the 4th generation language (Node-Based Visual Programming) simultaneously, with no limitations whatsoever on what your application can do. Thus, Virtuoso is called a “Cross-Generation Language” workflow. You can also effortlessly host virtual microprocessors in your app, which is where the power of combining the QuickDAQ.mikroBUS™ with Virtuoso really shines.

What Is A Virtual Processor?

One of the things you can drag and drop in Virtuoso is a virtual microprocessor target, which results in a new C/C++ project being added to the application, which will run in parallel but also be able to be interacted with from other Virtuoso components. You can easily add digital and analog I/O, communication peripherals, LCD display buffers, serial communication streams, and more, and Virtuoso handles everything for you. From there, you can develop C/C++ applications that interact with the components on your Virtuoso schematic, which can be thought of as virtual hardware.

Low-Code Hardware-In-The-Loop

Virtuoso nodes for the QuickDAQ.mikroBUS™ allow effortless interaction with the real world using the peripherals that the board provides. Thus, the Click boards™ or custom circuits built on top of the QuickDAQ.mikroBUS™ become real hardware in the simulation loop. The QuickDAQ.mikroBUS™ has three standard mikroBUS™ slots, and all of the peripherals of the mikroBUS™ can be accessed directly from your virtual microcontroller. Fire off a SPI transfer from your target, and if your target’s SPI bus is wired to the SPI bus of one of the mikroBUS™ expansion nodes, then your transfer magically happens at the SPI bus pins.

Alternatively, you can use a pre-written node specific to a Click board™ to directly provide the sensory I/O without having to perform the lower level communications. The Click board™’s node handles the lower level details and just gives you what the Click board™ provides directly. So instead of performing I2C communications to read the proximity sensor, you can just connect to the analog output of that node and use the proximity signal directly. Although everything is extremely high-level and breathtakingly easy to use, the result is highly optimized code added to your application.

See how it all works by watching the short demonstration below.

Bringing It All Together

The QuickDAQ.mikroBUS™, with the Virtuoso low-code environment, provides the absolute fastest and most flexible way to tackle your experiments, hobbies, and design projects, using code that you can always migrate to a real microcontroller. The QuickDAQ.mikroBUS™ provides the ideal base platform for any design. And for backers helping to bring this product to market, we at Embeddetech have partnered with MikroE to provide some very sweet reward options. You can buy the QuickDAQ.mikroBUS™ board by itself, sure, but to fully experience the dizzyingly lightning-quick speeds in setting up your working functionality, you should definitely use this as an opportunity to load up on Click board™ sensors. With the availability of over 750 Click boards™ from MikroE (and growing!), the platform offers enormous versatility.