Sensor modules

AXS-043 — CCS811 eCO2/TVOC gas-sensor PMOD module

Catalog #43 in the AruviX sensor line, level L3 (I2C). Uses the CCS811 instead of the catalog's original ENS160: no stock KiCad assets exist for the ENS160, and the CCS811 teaches the same eCO2/TVOC air-quality lesson (metal-oxide sensing, baseline management, wake/interrupt handshaking) from stock symbols and footprints.

Level L3 ERC clean DRC clean Fab package 13 components
3D render of the AXS-043 PCB
Rendered from the PCB layout. No physical board has been manufactured.

Circuit review & bench-test guide →

Components#

Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.

RefValueWhat it does on this boardPart numberFootprint
C1 100nF 16V X7R U1 VDD high-frequency decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C2 10uF 10V X5R Bulk reservoir for the pulsed MOX heater supply GRM21BR61A106KE19L
Murata
C_0805_2012Metric
J1 PMOD PLUG 2x6 PMOD peripheral plug (Digilent spec 1.2) not selected
generic
PinHeader_2x06_P2.54mm_Horizontal
JP1 SDA PULL-UP Cut to remove the SDA pull-up when chaining modules SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
JP2 SCL PULL-UP Cut to remove the SCL pull-up when chaining modules SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
JP3 ~WAKE SEL ~WAKE source: 1-2 GND always awake (default), 2-3 host-driven ECO2_WAKE_N on PMOD pin 2 SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm
JP4 ADDR 0x5A/0x5B I2C address select: 1-2 ADDR low 0x5A (default), 2-3 ADDR high 0x5B SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm
R1 4.7k I2C SDA pull-up RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R2 4.7k I2C SCL pull-up RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R3 10k Pull-up for the open-drain ~INT output RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R4 100R Series protection on the sensor-driven ~INT line RC0603FR-07100RL
Yageo
Datasheet ↗
R_0603_1608Metric
R5 10k ~RESET pull-up (on-module only; not routed to the PMOD - use I2C SW_RESET) RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
U1 CCS811 Digital eCO2 and TVOC gas sensor, I2C, on-chip MCU with baseline engine CCS811B-JOPD500
ams (ScioSense)
Datasheet ↗
AMS_LGA-10-1EP_2.7x4mm_P0.6mm

Signals#

Net labels used in the schematic, which are also the names the HDL top level should use.

3V3 ADDR CCS_INT_N ECO2_INT_N ECO2_WAKE_N GND RESET_N SCL SCL_PU SDA SDA_PU WAKE_N

Production status#

Schematic ERC0 violations
PCB layoutcomplete
DRC0 violations
Fab packageexported (24 gerbers + drill + CPL + BOM)
Fabricatedno — design stage only

Source: boards/sensor-modules/axs-043-eco2


Catalog #43 in the AruviX sensor line (../README.md), level L3 (I2C). Uses the CCS811 instead of the catalog's original ENS160: no stock KiCad assets exist for the ENS160, and the CCS811 teaches the same eCO2/TVOC air-quality lesson (metal-oxide sensing, baseline management, wake/interrupt handshaking) from stock symbols and footprints.

Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.

What it teaches#

A stateful I2C driver well beyond raw register reads: application-mode boot (APP_START), measurement-mode selection, the data-ready interrupt, and baseline save/restore across power cycles — plus the ~WAKE handshake when the host manages sensor power.

Design#

PMOD pin123456789101112
NetECO2_INT_NECO2_WAKE_NSCLSDAGND3V3NCNCSCLSDAGND3V3

Regenerate#

python3 generate_design.py

reports/erc.rpt is the last kicad-cli ERC run.

Remaining for release#