IIO_ADPD1080 no-OS Example Project
See projects/iio_adpd1080 (doxygen) for the Doxygen documentation.
Supported Evaluation Boards
EVAL-ADICUP3029 (carrier board)
Overview
The EVAL-CN0569-PMDZ is a 4-layer printed circuit board (PCB) designed in a PMOD form factor that enables evaluation of the CN0569 Infrared Light Angle Sensor Module for Gesture Recognition. The board integrates the ADPD1080 photometric front end operating in tandem with two ADPD2140 infrared light angle sensors to create a complete gesture sensing solution. Using the I2C Pmod hardware interface with a compact PCB footprint of 2.7 in x 0.8 in, the evaluation board connects to a controller such as the EVAL-ADICUP3029 to run firmware that initializes the hardware and launches an IIO server. A companion application running on a host computer communicates over a USB serial connection to sample the photodiode signals and execute gesture sensing algorithms.
Applications
Wearable health and fitness monitors
Clinical measurements
Industrial monitoring
Gesture recognition
Proximity sensing
Hardware Specifications
Power Supply Requirements
The EVAL-CN0569-PMDZ is powered entirely through the Pmod VCC pin of its I2C Pmod connector (P1), which is supplied by the connected controller board (e.g., EVAL-ADICUP3029). The board accepts a VCC input consistent with standard Pmod voltage levels (typically 3.3 V). An on-board low-dropout (LDO) voltage regulator steps down the Pmod VCC to generate a regulated 1.8 V supply, which powers the ADPD1080 AVDD and DVDD rails. The infrared LED supply (VLED) is shorted to Pmod VCC by default. No additional external power supply is required.
Board Connectors
I2C Pmod Connector (P1)
A 1 x 6, 0.1 in (2.54 mm) right-angle male header following the standard I2C Pmod specification.
Pin |
Name |
Function |
1 |
INT |
ADPD1080 GPIO0 (interrupt / general-purpose) |
2 |
RESET |
No connection |
3 |
SCL |
I2C clock |
4 |
SDA |
I2C data |
5 |
GND |
Ground |
6 |
VCC |
Pmod VCC input power |
No-OS Build Setup
Please see: No-OS Build Guide
No-OS Supported Examples
This project is organized around the no-OS variant based build flow.
Selecting a variant at build time (--variant <name>) chooses which
application is compiled. The platform main() is a thin dispatcher that
calls example_main(), provided by the selected example. The
initialization data used in the examples is defined in
src/common,
and the platform-specific macros in
src/platform.
IIO Example
The IIO example launches an IIOD server on the EVAL-ADICUP3029, allowing a host computer to connect via a serial USB context and interact with the ADPD1080 device through any IIO-compatible client. Using IIO Oscilloscope, users can access and adjust device settings such as sampling frequency, channel offsets, and data scale factors for each photodiode input.
If you are not familiar with ADI IIO Application, please take a look at: IIO No-OS
If you are not familiar with ADI IIO-Oscilloscope Client, please take a look at: IIO Oscilloscope
This example is built by selecting the iio variant (see the Build
Command below).
IIO Example over Wi-Fi
Same IIO example as above, but the IIOD transport runs over an ESP8266 Wi-Fi module (UART AT commands) instead of the serial backend. The board connects to the configured access point and the IIO client connects to the reported IP address.
Set the network credentials in the iio_wifi defconfig
iio_wifi.conf
via CONFIG_WIFI_SSID and CONFIG_WIFI_PWD before building, for example:
CONFIG_WIFI_SSID="MyNetwork"
CONFIG_WIFI_PWD="MyPassword"
This example is built by selecting the iio_wifi variant (see the Build
Command below). It is available on the ADuCM/eval-adicup3029 target only.
No-OS Supported Platforms
ADuCM
Used Hardware
Micro-USB to USB cable
Breadboard wire (for INT/GPIO0 connection)
Connections
Step 1 - Pmod Connector (P9):
Connect the EVAL-CN0569-PMDZ to the EVAL-ADICUP3029 via the P9 PMOD connector. Use pins 3 to 6 of the CN0569 PMOD connector (P1) to connect to the top row of the P9 PMOD connector on the ADICUP3029 board.
CN0569 P1 Pin |
CN0569 Signal |
ADICUP3029 P9 Pin |
ADICUP3029 Signal |
Pin 3 |
SCL (I2C Clock) |
Top Row, Pin 1 |
SCL |
Pin 4 |
SDA (I2C Data) |
Top Row, Pin 2 |
SDA |
Pin 5 |
GND |
Top Row, Pin 5 |
GND |
Pin 6 |
VCC |
Top Row, Pin 6 |
VCC (3.3 V) |
Step 2 - INT/GPIO0 Wire Connection:
Use a breadboard wire to connect pin 1 of the CN0569 PMOD connector (P1, INT / ADPD1080 GPIO0) to pin 5 of the ADICUP3029 P7 header. This connects the ADPD1080 GPIO0 signal to an interrupt-capable GPIO on the ADuCM3029 microcontroller, which is required for clock calibration.
CN0569 Connector |
CN0569 Pin / Signal |
ADICUP3029 Connector |
ADICUP3029 Pin / Signal |
P1 (Pmod) |
Pin 1 / INT (GPIO0) |
P7 Header |
Pin 5 / IRQ |
Step 3 - USB Connection:
Connect a micro-USB cable from the P10 connector of the EVAL-ADICUP3029 to a USB port on the host computer. This provides power to the board and establishes the serial communication link used by the IIO server.
Build Command
Available variants: iio, iio_wifi.
Available boards: eval-adicup3029.
Replace --variant / --board accordingly.
# point at the CrossCore Embedded Studio install (only if not auto-detected)
export CCES_HOME=/opt/analog/cces/3.0.3
cd no-OS
# build the iio example on the EVAL-ADICUP3029
python tools/scripts/no_os_build.py build \
--project iio_adpd1080 --variant iio --board eval-adicup3029
# build the iio example over Wi-Fi (ESP8266)
python tools/scripts/no_os_build.py build \
--project iio_adpd1080 --variant iio_wifi --board eval-adicup3029
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project iio_adpd1080 --variant iio --board eval-adicup3029 \
--probe openocd --flash