Introduction
This is a fairly small (51 x 51 mm) board, equipped with a low power Intel Quark D2000 microcontroller, and several sensors (accelerator, temperature, humidity, atmospheric pressure), as well as a mikroBUS compatible header and a Grove compatible connectors, that can be used to connect additional sensors, memory, or radio modules. The board can be used to monitor the environment conditions, and store or transmit the data to a remote system for further processing.
Design Overview
Microcontroller
Microcontroller Overview
The board uses the Intel Quark D2000 microcontroller (U1). This microcontroller contains a 32-bit x86 processor core, 25 GPIOs, I2C, SPI interfaces, JTAG, two UART interfaces, PWM module, timers, and so on. It includes 32 KiB of the instruction Flash ROM, 8 KiB of the SRAM, and a few kilobytes of the OTP memory (which is actually a Flash ROM which can be write/erase protected).
Clocks
The microcontroller runs on a 32 MHz clock provided by quartz resonator Y1, it also uses a 32768 Hz quartz resonator Y2 for RTC clock.
Power Supply
The microcontroller includes an on-chip 1.8V buck converter voltage regulator to supply voltage for the CPU core. The 47 uH inductor L1 and the 4.7 uF capacitor C11 are the external components used by the voltage regulator. The ferrite EMI filter FB1 and the capacitor C7 form an LC filter for filtering the analog supply voltage AVDD. The I/O power supply IOVDD rail, as well as all the on-board sensors are connected directly to the CR2032 battery BT1 (nominally 3V). All the power supply rails are bypassed using 1 uF capacitors.
Reset
The board uses a simple RC reset circuit implemented using the resistor R4, the capacitor C1, and reset switch SW1. The Quark D2000 MCU has a hysteresis on RST_N input, which ensures the proper reset signal generation using an RC circuit.
GPIO Pins Allocation
The GPIO pins of the Quark D2000 MCU are allocated on this board as shown in the table below. Note that GPIO pins have multiple functions (modes), and they need to be configured in the software according to the function used by this board. The suggested pin functions are marked with italic bold.
Quark D2000 pin number | Quark D2000 pin name | Function used by the board | Mode 0 | Mode 1 | Mode 2 |
31 | F0_SPI_M_SS0 | mikroBUS - SPI chip select - SS0 | GPIO0 | AI0 | SPI_M_SS0 |
32 | F1_SPI_M_SS1 | Battery monitor (analog input) | GPIO1 | AI1 | SPI_M_SS1 |
33 | F2_SPI_M_SS2 | User switch SW2, 560k pull-up, 1 == switch not pressed | GPIO2 | AI2 | SPI_M_SS2 |
34 | F3_SPI_M_SS3 | mikroBUS - analog input A0 | GPIO3 | AI3 | SPI_M_SS3 |
35 | F4_RTC_CLK_OUT | Accelerometer interrupt - INT1 | GPIO4 | AI4 | RTC_CLK_OUT |
36 | F5_SYS_CLK_OUT | mikroBUS - interrupt input - INT2 | GPIO5 | AI5 | SYS_CLK_OUT |
37 | F6_I2C_SCL | I2C SCL - on-board sensors, mikroBus, Grove header P7 | GPIO6 | AI6 | I2C_SCL |
38 | F7_I2C_SDA | I2C SDA - on-board sensors, mikroBus, Grove header P7 | GPIO7 | AI7 | I2C_SDA |
39 | F8_SPI_S_SCLK | Grove header P5 - D7 | GPIO8 | AI8 | SPI_S_SCLK |
11 | F9_SPI_S_SDIN | mikroBUS - reset RST, Grove header P5 - D8 | GPIO9 | AI9 | SPI_S_SDIN |
2 | F10_SPI_S_SDOUT | Grove header P6 - D3 | GPIO10 | AI10 | SPI_S_SDOUT |
3 | F11_SPI_S_SCS | Grove header P6 - D2 | GPIO11 | AI11 | SPI_S_SCS |
4 | F12_UART_A_TXD | FTDI compatible UART header P2 - TXD, mikroBus - TXD | GPIO12 | AI12 | UART_A_TXD |
5 | F13_UART_A_RXD | FTDI compatible UART header P2 - RXD, mikroBus - RXD | GPIO13 | AI13 | UART_A_RXD |
6 | F14_UART_A_RTS_DE | FTDI compatible UART header P2 - RTS | GPIO14 | AI14 | UART_A_RTS/UART_A_DE |
7 | F15_UART_A_CTS_RE | FTDI compatible UART header P2 - CTS | GPIO15 | AI15 | UART_A_CTS/UART_A_RE |
8 | F16_SPI_M_SCLK | mikroBUS - SPI SCLK | GPIO16 | AI16 | SPI_M_SCLK |
9 | F17_SPI_M_TXD | mikroBUS - SPI MOSI | GPIO17 | AI17 | SPI_M_TXD |
10 | F18_SPI_M_RXD | mikroBUS - SPI MISO | GPIO18 | AI18 | SPI_M_RXD |
18 | F19_PWM0_TDO | JTAG header P1 - TDO | TDO | GPIO19 | PWM0 |
13 | F20_UART_B_TXD_TRST_N | JTAG header P1 - TRST | TRST | GPIO20 | UART_B_TXD |
14 | F21_UART_B_RXD_TCK | JTAG header P1 - TCK | TCK | GPIO21 | UART_B_RXD |
15 | F22_UART_B_RTS_DE_TMS | JTAG header P1 - TMS | TMS | GPIO22 | UART_B_RTS/UART_B_DE |
16 | F23_UART_B_CTS_RE_TDI | JTAG header P1 - TDI | TDI | GPIO23 | UART_B_CTS/UART_B_RE |
21 | F24_PWM1 | mikroBUS - PWM output, on-board LED D1 | GPIO24 | - | PWM1 |
UART Interface
The UART interface A of the Quark D2000 is exposed on an FTDI compatible header P2. Normally this is used to connect the FTDI USB to serial cable to provide a debug output. The UART interface A TXD and RXD signals are also available on the mikroBUS header, and that can be used to connect sensors that use UART interface.
JTAG interface
The board uses a standard ARM 10-pin JTAG connector P1. The board has been tested with Tin Can Tools Flyswatter2 JTAG adapter and Olimex ARM JTAG 20 pin to 10 pin adapter.
On-board Sensors
Accelerometer and Magnetometer
The board uses Bosch Sensortec BMC150 3-axis accelerometer and magnetometer (U2). This sensor is configured in I2C mode, and uses I2C addresses 0x11 for accelerometer, and 0x13 for magnetometer. The interrupt output INT1 of the accelerometer is connected to GPIO4 of Quark D2000. The interrupt outputs INT2 (accelerometer) and INT3 (magnetometer), as well as DRDY output are available on header P8.
Atmospheric Pressure, Humidity and Temperature Sensor
The board uses Bosch Sensortec BME280 environmental sensor (U3). This sensor provides atmospheric pressure, relative humidity, and temperature measurements. The sensor is configured in I2C mode, and uses I2C address 0x76.
Ambient Light Sensor
The board uses Vishay VEML7700 ambient light sensor (U4). The sensor I2C addess is 0x10.
Bill of Materials
Component type | Reference | Description | Quantity | Possible sources and notes |
PCB | | D2000 Environmental Sensors PCB, V2.1 | 1 | Order from OSH Park or your favorite PCB manufacturers using Gerber files provided below. |
Battery | BT1 | CR2032 lithium battery | 1 | Mouser 658-CR2032. Note: Due to shipping restrictions battery is not included in Mouser's project BOM |
Battery Holder | BT1 | CR2032/CR2025 battery holder, THM | 1 | Mouser 712-BAT-HLD-001-THM |
Capacitor | C1 - C3 | 0.1 uF multilayer ceramic capacitor, 0603 SMT | 3 | Mouser 77-VJ0603Y104JXJPBC |
Capacitor | C4 - C10 | 1 uF multilayer ceramic capacitor, 0603 SMT | 7 | Mouser 810-C1608X7R1E105K |
Capacitor | C11 | 4.7 uF multilayer ceramic capacitor, 0603 SMT | 1 | Mouser 81-GRM188R61A475KE5D |
LED | D1 | Green LED, 0603 SMT | 1 | Mouser 78-VLMG1300-GS08 |
Ferrite Bead | FB1 | Ferrite EMI filter, 120 ohm, 0603 SMT | 1 | Mouser 81-BLM18PG121SN1D |
Inductor | L1 | 47 uH, 1008 SMT | 1 | Mouser 810-NLV25T-470J-EF |
Connector | P1 | 2x5 pin header, 1.27 mm pitch, THM | 1 | Mouser 649-221111-00010T4LF |
Connector | P2 | 1x6 pin header, 2.54 mm pitch, THM | 1 | Mouser 855-M20-9990645 |
Connector | P3, P4 | 1x8 socket, 2.54 mm pitch, THM | 2 | Mouser 517-929850-01-08-RB |
Connector | P5 - P7 | 4 pin connector, 2 mm pitch, THM | 3 | Mouser 538-35362-0450 |
Resistor | R1 | 220 ohm resistor, 0603 SMT | 1 | Mouser 71-CRCW0603220RFKEB |
Resistor | R2, R3 | 5.6 kohm resistor, 0603 SMT | 2 | Mouser 71-CRCW0603-5.6K-E3 |
Resistor | R4 - R9 | 560 kohm resistor, 0603 SMT | 6 | Mouser 71-CRCW0603-560K-E3 |
Resistor | R10 | 10 Mohm resistor, 0603 SMT | 1 | Mouser 71-CRCW060310M0FKEB |
Resistor | R11, R12 | Do not populate | 2 | Note: These resistors can be used to set up voltage divider for analog reference voltage. |
Tactile Switch | SW1, SW2 | Tactile Switch, C&K Components PTS820 series | 2 | Mouser 611-PTS820J25MSMTR |
Integrated Circuit | U1 | Intel Quark D2000 MCU | 1 | Mouser 607-FND2000SR2KF |
Integrated Circuit | U2 | Bosch BMC150 accelerometer and magnetometer | 1 | Mouser 262-BMC150 |
Integrated Circuit | U3 | Bosch BME280 atmospheric pressure and humidity sensor | 1 | Mouser 262-BME280 |
Integrated Circuit | U4 | Vishay VEML7700 ambient light sensor | 1 | Mouser 78-VEML7700-TR |
Crystal | Y1 | 32 MHz crystal oscillator | 1 | Mouser 581-CX3225GB32PHPQCC |
Crystal | Y2 | 32768 Hz crystal oscillator | 1 | Mouser 581-ST2012SB32H5HPWA |