Load Cell Amplifier Recommendations for Ameba Pro2 Mini - Both NAU7802 and HX711 Failed

Hello Ameba community,

I’m working on a load cell project using Ameba Pro2 Mini (AMB82-mini) and need recommendations for a load cell amplifier that works reliably with this platform.

Current Situation:

I’ve tried two different amplifiers but both failed:

  1. NAU7802 (24-bit ADC, I²C interface):
  • I²C scanner detects device at address 0x7E instead of expected 0x2A

  • Register writes fail (all registers read as 0x0 after write attempts)

  • Adafruit NAU7802 library has compilation issues with Ameba toolchain

  • Direct I²C register access doesn’t work reliably

  1. HX711 with level shifter:
  • Used TXS0108E 8-channel logic level converter (AZDelivery module)

  • Connected: HX711 (5V side) → TXS0108E → Ameba Pro2 Mini (3.3V side)

  • Tried multiple libraries: standard HX711_ADC, custom GPIO implementations

  • Result: No data received, readings are zero or invalid

Questions:

  1. Recommended Amplifier:
  • Which load cell amplifier actually works with Ameba Pro2 Mini?

  • Has anyone successfully used HX711, ADS1232, or other 24-bit ADCs with Ameba?

  • Are there known compatibility issues with load cell amplifiers on this platform?

  1. HX711 Issues:
  • What could be wrong with my HX711 + level shifter setup?

  • Should I power HX711 from 3.3V instead of 5V (HX711 supports 2.6-5.5V)?

  • Are there specific GPIO pins or timing requirements for Ameba?

  • Any working code examples for HX711 on Ameba Pro2 Mini?

  1. Level Shifter:
  • Is TXS0108E the right choice, or should I use a different level shifter?

  • Could the level shifter be causing signal integrity issues?

  • Should I avoid level shifters entirely and use 3.3V-powered HX711?

Technical Details:

  • Load cell: 40kg capacity, 3-10VDC excitation, 1.1mV/V sensitivity

  • Ameba Pro2 Mini: Realtek AMB82, Arduino-compatible framework

  • HX711 setup: 5V power, DT/SCK through TXS0108E level shifter

  • NAU7802 setup: 3.3V power, I²C at 100kHz/400kHz

What I’ve Tried:

  • NAU7802: Direct I²C register access with various delays, different clock speeds, both addresses

  • HX711: Multiple libraries, different GPIO pins, level shifter on both sides, direct connection (damaged module)

  • Both: Verified connections, checked voltages, tried different load cells

I’m stuck and would appreciate any guidance, working code examples, or alternative solutions.

Thank you in advance.

Hi @inxnik

Currently, our SDK doesn’t include official support for load cell amplifiers. However, the two amplifiers you mentioned should still work with the AMB82 Mini. We’ll review this internally and support it in future SDK update.

Hi @inxnik

Thank you for waiting.

Kindly check out the latest prerelease Arduino SDK for HX711 and NAU7802 amplifier support.

Arduino SDK Version

  • Version 4.1.0 - 2026/02/02

Sparkfun HX711 documentation (via GPIO)

Sparkfun NAU7802 documentation (via I2C)

Thank you very much for adding amplifier support. I tested the NAU7802, and everything works perfectly.

Now I am working with the ADS1256 amplifier since I need four channels at once.
It works over SPI, and I set up the code, but only for firmware 4.0.9 as you recommended.

Question: Is there a plan to add support for SDK version 4.1 for stable operation of this amplifier? Thank you!

Hi @inxnik,

The official release of 4.1.0 is not yet released.

Meanwhile, you can use the latest prerelease version, 4.1.0-build20260213.

https://github.com/Ameba-AIoT/ameba-arduino-pro2/raw/dev/Arduino_package/package_realtek_amebapro2_early_index.json

Hi @pammy and Realtek Team,

I’m building a battery-powered smart scale on AMB82-MINI (RTL8735B) and have two blocking issues that force me to stay on SDK 4.0.9. I’d appreciate any guidance.


Issue 1: Dual wake-up sources in Deep Sleep (AON Timer + AON GPIO)

Need: Wake from deep sleep by AON GPIO pin 21 (LDR/comparator, rising edge) AND AON Timer (60s periodic) simultaneously.

Context: I found the multiple-wakeup patch in thread #4805 — thank you for sharing it.

Problem: The patched PowerMode.cpp uses amb_ard_printf(ARD_LOG_ERR, ...) which exists in SDK 4.1.x but does NOT exist in SDK 4.0.9. I had to manually replace these calls with Serial.println() to compile under 4.0.9.

Questions:

  1. Which SDK version officially includes the multi-wakeup patch?
  2. Is there a 4.0.9-compatible build of this patch, or should I wait for a backport?

Issue 2: SPI1 regression in SDK 4.1.x breaks ADS1256 ADC

Setup: ADS1256 24-bit ADC via SPI1, MODE1 (CPOL=0, CPHA=1), 500 kHz.

Observed on SDK 4.0.9-build20250805:

  • SPI1.transfer() does not read MISO — always returns 0x00
  • SPI1.masterWrite() works correctly as a full-duplex replacement
  • All ADS1256 communication is built around masterWrite()

Observed on SDK 4.1.0-build20260202:

  • The same code and wiring that works on 4.0.9 produces invalid / garbage data from ADS1256
  • masterWrite() either changed behavior or was removed/modified

Minimal reproducer:

#include <SPI.h>

static inline uint8_t spiXfer(uint8_t b) {
  return SPI1.masterWrite(b);  // Only API that reads MISO on 4.0.9
}

void setup() {
  Serial.begin(115200);
  SPI1.begin(SPI_MODE_MASTER);
  
  // Send STATUS register read command to ADS1256
  uint8_t status = spiXfer(0x10); // RREG STATUS
  Serial.print("STATUS = 0x"); Serial.println(status, HEX);
  // 4.0.9 → 0x30 (correct)
  // 4.1.0 → 0x00 or random (incorrect)
}

void loop() {}

Questions:

  1. Was SPI1.masterWrite() intentionally changed or deprecated in 4.1.x?
  2. What is the recommended SPI API for full-duplex MISO reads in 4.1.x?
  3. Is there a migration guide for SPI code from 4.0.9 → 4.1.x?

The Catch-22

I need dual wake-up sources (patched in newer SDK) AND working SPI1 (broken in newer SDK). Currently I cannot use the latest SDK because of SPI, and the wake-up patch requires manual adaptation for 4.0.9.

Any ETA on when both features will be stable in a single release?

Thanks!

Hi @inxnik ,

You may test with the 4.1.1-build20260417 pre-release version. Currently, there is no 4.0.9-compatible build of this patch, we will try to look into the SPI issue to make sure it is working in the latest pre-release SDK version.

Could you please provide us the logs recorded for the working version of 4.0.9 and the non-working version of 4.1.0? We would like to verify the root cause for different results.

Please also share with us the purchase source for your ADS1256 so that we could buy it for testing.

Thank you.

Working ADS1256 24-bit ADC driver for AmebaPro2 (AMB82-mini)

We built a clean 4-channel load-cell driver around the TI ADS1256. It scans 4 differential inputs and prints raw signed 24-bit values over Serial. No WiFi, no extra logic — just init and read.

Verified on:

  • SDK 4.0.9-build20250805 :white_check_mark:
  • SDK 4.1.0-build20260213 :white_check_mark:

Wiring (SPI1):

  • MOSI → pin 2 (PF7)
  • MISO → pin 0 (PF5)
  • SCLK → pin 1 (PF6)
  • CS → pin 10 (software)
  • DRDY → pin 9 (needs 10k pull-up to 3.3V)
  • PDWN → pin 7

One heads-up for SPI users: SPI1.transfer() doesn’t seem to read MISO on this board — it always returns 0x00 in our loopback tests. We use SPI1.masterWrite() instead, which works correctly. If you’re struggling with SPI reads on AmebaPro2, that might be why.

Full driver + minimal loopback test attached. Feel free to use or adapt.

ADS1256.zip (9.6 KB)