Using port B (channel 2) on NAU7802

I’m working on some battery operated scales and I’d like to use both ports on the NAU7802. In order to keep current drain down, I’m using the ESP8266 low power mode to sleep which means it behaves like a cold boot on every wakeup.

I have 2 scales connected and readings are consistent and stable when powered up for a long time (many seconds). However when I try to wakeup from deepsleep, do my readings and go back down, the readings are not stable. On wakeup I reset the NAU7802, then select the channel, re-calibrate AFE, wait 500ms and take a reading. The 500ms wait has helped stabilize the readings on channel 1, but not on channel 2. I’m hoping to reduce delays to save battery power.

Do I need to modify the NAU7802 board to use channel-2? should R9, R10 & C8 be duplicated for channel-2?

Hi cj8scrambler,

Have you severed the CAP jumper to disable the 330pF capacitor between the B and B+ pins? If not, give that a try and see if that helps the issue.

@cj8scrambler: did you ever succeed to use channel 2 with stable readings? I would also like to do the same and have some struggles. A working example sketch using both channels would be very welcome!

I think I found the problem with my use case (use both channel 1 and 2). The important line seems to be this one:

myScale.clearBit(NAU7802_PGA_PWR_PGA_CAP_EN, NAU7802_PGA_PWR);

I tried to attach the test sketch but it does not work. The important section is this one:

  Serial.println("Powering Down and waiting 10 seconds...");
  myScale.powerDown();
  delay(10000);
  Serial.println("Powering Up...");
  myScale.powerUp(); //Power up scale. This scale takes ~600ms to boot and take reading.
  delay(200);
  
  Serial.print("Channel A: ");
  myScale.setChannel(NAU7802_CHANNEL_1);
  myScale.clearBit(NAU7802_PGA_PWR_PGA_CAP_EN, NAU7802_PGA_PWR);
  myScale.calibrateAFE();
  delay(500);
  for (int i = 0; i < SAMPLES; i++) {
    ReadScale();
  }
  Serial.println();

  Serial.print("Channel B: ");
  myScale.setChannel(NAU7802_CHANNEL_2);
  myScale.clearBit(NAU7802_PGA_PWR_PGA_CAP_EN, NAU7802_PGA_PWR);
  myScale.calibrateAFE();
  delay(500);
  for (int i = 0; i < SAMPLES; i++) {
    ReadScale();
  }
  Serial.println();