Sensor modules
AXS-015 — APDS-9960 gesture/proximity/RGB PMOD module
Catalog #15 in the AruviX sensor line, level L3 (I2C). Gesture, proximity, RGB color, and ambient light in one part with an on-package IR LED.
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 high-frequency decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
10uF 10V X5R | Bulk reservoir for the IR LED drive pulses (up to 100 mA bursts) | GRM21BR61A106KE19LMurata |
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 |
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 |
R3 |
10k | Pull-up for the open-drain INT output | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
R4 |
100R | Series protection on the sensor-driven INT line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
APDS-9960 | Digital proximity, ambient light, RGB, and gesture sensor, I2C | APDS-9960Broadcom Datasheet ↗ |
Avago_APDS-9960 |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 GESTURE_INT GND GST_INT LED_K 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-015-apds9960
Catalog #15 in the AruviX sensor line (../README.md), level L3 (I2C). Gesture, proximity, RGB color, and ambient light in one part with an on-package IR LED.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
The most stateful I2C peripheral in the line: the gesture engine streams directional photodiode samples through a 32-deep FIFO, so the driver lesson is FIFO draining under interrupt, engine state machines (proximity gates gesture mode), and post-processing raw U/D/L/R samples into swipe events.
Design#
- Broadcom APDS-9960 (
Sensor:Avago_APDS-9960footprint), fixed I2C address 0x39. - Single 3V3 rail per the SparkFun/Adafruit reference design: VDD = 3V3, LEDA = 3V3, and LEDK ties to the LDR pin so the internal driver sinks the IR LED current. No separate LED boost supply.
- Decoupling: 100 nF plus a 10 µF 0805 bulk reservoir — gesture mode pulses the IR LED at up to ~100 mA; keep C2 close to U1 at layout.
- INT is open-drain: 10 kΩ pull-up on-module (R3), then 100 Ω series (R4) to PMOD pin 1 as
GESTURE_INT. - 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.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | GESTURE_INT | 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 (open window over the sensor/LED aperture, C2 adjacent to U1), DRC, fab outputs
- [ ]
hdl/: I2C master core, APDS-9960 controller + gesture decode, testbench, ECP5 demo - [ ] BOM export and availability check, design-review checklist