An async CircuitPython driver class for the NAU7802 24-bit ADC. This is a fork of the original NAU7802 driver that converts certain operations into async methods. This allows the driver to play nice with other async code especially if you're doing potentially long running operations such as reading and averaging dozens of samples. The original driver blocks all code execution while waiting for data to become available while this one will yield (a zero async sleep) to allow other code to run.
Since checking the availability of and reading data from the load cell is already non-blocking this is mostly useful for enabling non-blocking initialization, but also serves as a good example of how to read data in an async friendly way.
This driver depends on:
Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading the Adafruit library and driver bundle or individual libraries can be installed using circup.
Make sure that you have circup installed in your Python environment.
Install it with the following command if necessary:
pip3 install circupWith circup installed and your CircuitPython device connected use the
following command to install:
circup install cedargrove_nau7802_asyncOr the following command to update an existing version:
circup updateimport asyncio
import board
from cedargrove_nau7802_async import NAU7802
# Instantiate NAU7802 ADC
nau7802 = await NAU7802.create_async(board.I2C(), address=0x2A, active_channels=2)nau7802_simpletest.py and other examples can be found in the examples folder.
NAU7802 CircuitPython Driver API Class Description
Clue Coffee Scale (Adafruit Learning Guide)
CedarGrove NAU7802 FeatherWing OSH Park Project (16-SOIC version)
CedarGrove NAU7802 FeatherWing OSH Park Project (16-DIP version)
Needing a calibration weight? The U.S. Mint coin specifications might have some information that could help -- if you have some spare change.
Contributions are welcome! Please read our Code of Conduct before contributing to help this project be welcoming to everyone.

