Sensor modules
AXS-008 — BMP280 barometric-pressure PMOD module
Catalog #8 in the AruviX sensor line, level L3 (I2C). Uses the BMP280 instead of the catalog's original BMP390: the BMP280 is the stock-supported Bosch sibling in the same driver family, so the lesson (burst register reads, calibration-coefficient compensation math) carries over unchanged.
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.
| Ref | Value | What it does on this board | Part number | Footprint |
|---|---|---|---|---|
C1 |
100nF 16V X7R | U1 VDD decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
100nF 16V X7R | U1 VDDIO decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
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 |
ADDR 0x76/0x77 | I2C address select: 1-2 SDO low 0x76 (default), 2-3 SDO high 0x77 | — | SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm |
R1 |
4.7k | I2C SDA pull-up | RC0603FR-074K7LYageo Datasheet ↗ |
R_0603_1608Metric |
R2 |
4.7k | I2C SCL pull-up | RC0603FR-074K7LYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
BMP280 | Absolute barometric pressure and temperature sensor, 300-1100 hPa, I2C/SPI | BMP280Bosch Sensortec Datasheet ↗ |
Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumbering |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 ADDR GND SCL SCL_PU SDA SDA_PU
Production status#
| Schematic ERC | 0 violations |
|---|---|
| PCB layout | complete |
| DRC | 0 violations |
| Fab package | exported (24 gerbers + drill + CPL + BOM) |
| Fabricated | no — design stage only |
Source: boards/sensor-modules/axs-008-bmp280
Catalog #8 in the AruviX sensor line (../README.md), level L3 (I2C). Uses the BMP280 instead of the catalog's original BMP390: the BMP280 is the stock-supported Bosch sibling in the same driver family, so the lesson (burst register reads, calibration-coefficient compensation math) carries over unchanged.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
I2C burst reads of multi-byte registers, reading the factory calibration block once at init, and the BMP280's fixed-point compensation formulas — a substantial arithmetic exercise (32/64-bit intermediates) on top of the I2C master FSM.
Design#
- Bosch BMP280, LGA-8. VDD and VDDIO both on 3V3, 100 nF each.
- CSB tied to 3V3: the part is latched into I2C mode from power-on (a floating CSB can drop it into SPI mode on a bus glitch).
- SDO is the I2C address pin: JP3 1-2 (default) = GND = 0x76, 2-3 = 3V3 = 0x77. Never float SDO in I2C mode.
- 4.7 kΩ bus pull-ups through JP1 (SDA) / JP2 (SCL), fitted by default; cut when another module on the chain provides the pull-ups.
- No interrupt output on the BMP280 — PMOD pins 1/2/7/8 are NC.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | NC | NC | SCL | SDA | GND | 3V3 | NC | NC | SCL | SDA | GND | 3V3 |
Regenerate#
python3 generate_design.py
reports/erc.rpt is the last kicad-cli ERC run.
Remaining for release#
- [ ] PCB layout, DRC, fab outputs
- [ ]
hdl/: I2C master core, BMP280 controller + compensation math, testbench, ECP5 demo - [ ] BOM export and availability check, design-review checklist