The density of the microcontroller universe continues to increase. New entries appear regularly. Some seem to disappear quickly while others continue with a loyal, albeit sparse, following. A few have a significant and enduring impact. It has always been difficult for me to predict which category a product will find itself in. There are many choices.
Early this year, I heard about a new Quark development board from Intel, so I had been keeping my eye out for when it would be available through the usual outlets. It is now available from a number of sources and, at a lower-than-I-expected price. Hungry for knowledge and experience, I was quick to place my order. A few days later it arrived. This article presents a first look at the board with some personal impressions and some details about its potential capabilities.
The D2000 Quark Board (Fab D)
The board boasts an impressive list of features including:
- Intel™ Quark® microcontroller D2000 SoC 32MHz (with low-power mode)
- 32KB flash memory (internal)
- 8KB OTP flash (internal)
- 4KB OTP Data flash (internal)
- 8KB SRAM (internal)
- I2C master
- SPI master
- SPI slave
- UART – supports 9-bit addressing mode
- ADC/Comparator inputs
- 2x PWM signals
- 25 GPIOs
- Real-time clock
- Watchdog timer
For a small board at a relatively small price, the D2000 appears to have a great deal of capability and potential.
Documentation and Resources
Capability and power in the absence of documented specifications are, at best, tedious and, at worst, an exercise in futility. In the case of the D2000 there is already a commendable amount of available online documentation, including; schematics, user guide, hardware manual, software interface BSP and more. If you are interested in working with this board, you will want to download and read all of the documentation. Since this is a new board, the accuracy, quality and basic usability of the documentation have to pass the test of time. Certainly, there will be corrections needed and no doubt revisions will come out. Nevertheless, at present, there appears to be a significant amount of documentation and support available to start building with the board. Moreover, there is an online forum to request specific help and gain from the experiences of others.
A Quick Look on the Outside
Upon opening the attractive cardboard mini-carton, the contents reveal only the board and a USB cable, and the usual safety notice. As previously stated, however, much more is available online. It is a fairly small board, but somewhat larger than the familiar Arduino UNO. Several components on the board lurk conspicuously – the QUARK SoC, an FTDI FT232H (Hi-Speed USB UART) and a Bosch BMC150 (3 axis magnetic field sensor and 12-bit, 3 axis accelerometer). There is also a coin cell battery holder (high capacity CR2450) and Arduino UNO style SIL sockets.
The D2000 and Arduino UNO side by side.
A Quick Look on the Inside
The D2000 is basically a 3.3v board (operating range is 2.0–3.3v). With on-board regulators, it can be powered through a USB connector and, alternatively, there are also screw terminals for an external supply. All I/O is 3.3v. There is a good deal of I/O functionality and, as you might expect, it comes at the cost of multiplexing. That is, 25 I/O pins can be configured as GPIO or other functions (e.g., I2C/UART/SPI/JTAG). In this regard, there are four user mode configurations. In addition to the user modes, there is a pin test mode. The GPIO have programmable drive strength (12 mA and 16 mA modes) and integrated pull-ups. The additions of an RTC and watchdog timer are appealing. There are up to 19 analog inputs as ADCs or comparators. ADC inputs are programmable (6/8/10/12-bit) resolution. Analog comparators are fast speed (6) or slow speed, low-power (13) with wake-capabilities. Clearly, this board was designed with flexibility in mind.
If you have used Intel Galileo, or Galileo Generation 2, or Edison boards, you may be used to using an Arduino IDE or an embedded Linux OS for program development. The D2000 looks like a notably different approach from those environments. Program development with the D2000 is with the Intel System Studio 2016 for Microcontrollers. The free download suite contains what you would expect in an integrated tool chain and much more. It is advertised as including:
- GCC Version 5.2.1 (Linker/Assembler/C Run-time Libraries)
- Intel-enhanced GDB 7.9 (GNU Debugger)
- Intel Integrated Performance Primitives for Microcontrollers 1.0
- Floating Point Emulation library
- Sample Applications Board Support Package (BSP)
- OpenOCD 0.8.0 (on-chip debugger)
- TinyCrypt 0.1.0 (cryptography primitives)
- Intel Quark Microcontroller Software Interface 1.0
- Eclipse Luna 4.4 including Intel System Studio for Microcontrollers integration
- Python 2.7.10
- WinUSB driver for Intel Quark Microcontrollers
Host support includes both Windows (64bit: Versions 7, 8.1, 10) and Linux (64bit: Versions Ubuntu 14.04 LTS, Fedora 21).
In my view, the most straightforward way to program the board is through the C/C++ compiler. There is a host of modules and function prototypes available from Intel that gets you to the board level functions. There are also a collection of examples for reference and to get you started. The Eclipse system ties together many aspects of code development. There is even an online forum for the Intel System Studio. Essentially, this appears to be a very rich development environment, but it is not exactly a beginner’s development environment.
To make full use of the development environment, you can receive serial output from the board through pins (TX/RX/GND) on the SIL sockets. For reception using a PC, for example, a separate 3.3v serial to USB interface cable is needed. A terminal program is included within Eclipse/Studio. For other applications, a generic terminal program can be used.
The D2000 looks like a very powerful microcontroller board with an extensive collection of features that may very well have a significant impact in a field with many choices. It looks to be particularly flexible and the relatively low price tag makes it even more impressive. On the other hand, the board does not have the ease-of-use that is attractive to a beginner in the way that the Arduino IDE has been. Next, in part 2, I will explore the software suite and take a brief look at the general development environment by powering up and getting to “Hello World” and a few other examples.
Next Article in Series: The Quark D2000 Development Board: Moving Beyond “Hello World”