Sparkfun HX711 Too Slow - Alternatives?

I compared two of these boards, one of which takes c. 3 ms to produce a reading and another which takes c. 80ms. I tried alternating the Arduino pins for receiving the readings and also alternating the sensors connected to the boards but the difference persisted, suggesting that the difference is due to the boards. The boards were purchased as a pair and look identical.

After disassembling and reassembling the circuit to check for a connection problem, now both sensors take about 80ms. I tried various pullups to recreate the original time differential without success.

The RATE contacts are as supplied, namely open.

Any ideas how to get a single read time below 10ms? Is there an alternative, quicker amplifier? I am using a Zero.cc.

Thanks.

By the data sheet, you can select either 10ms or 80ms output rate. Which one are you selecting?

Paul

The RATE contacts are as supplied, namely open, this gives 80 samples per second. I tried reducing the gain to 64 but it made no difference. I bought a third HX711 and they all give the same read time of around 80ms.

My suspicion is that a bad connection in the original set-up was providing resistance which caused one of the HX711s to settle quicker but I have not been able to reproduce it.

RBB01:
The RATE contacts are as supplied, namely open, this gives 80 samples per second. I tried reducing the gain to 64 but it made no difference. I bought a third HX711 and they all give the same read time of around 80ms.

My suspicion is that a bad connection in the original set-up was providing resistance which caused one of the HX711s to settle quicker but I have not been able to reproduce it.

Did you try setting the RATE pin to 1 or 5 volts and see if you got the rated 10ms?

Paul

Paul_KD7HB:
Did you try setting the RATE pin to 1 or 5 volts and see if you got the rated 10ms?

Paul

AFAIK from the data sheet RATE=DVDD=3.3V on a Zero, gives a settling time of 50ms whereas the only alternative given, RATE=0, gives a settling time of 400ms, which is why I have not tried it.

I am not sure that we are discussing the same thing here. SPS is samples Per Second that HX711 measures from the sensor, higher rate gives more noise but settles quicker. The ms time I quote from my measurements is a call to millis() immediately before, and after, a call to the HX711 library. It is coincidental that I measure a delay of 80ms which numerically the same as the quoted SPS of 80.

It would probably be better to choose a quicker amplifier but I have not located one on a demo board.

RBB01:
AFAIK from the data sheet RATE=DVDD=3.3V on a Zero, gives a settling time of 50ms whereas the only alternative given, RATE=0, gives a settling time of 400ms, which is why I have not tried it.

I am not sure that we are discussing the same thing here. SPS is samples Per Second that HX711 measures from the sensor, higher rate gives more noise but settles quicker. The ms time I quote from my measurements is a call to millis() immediately before, and after, a call to the HX711 library. It is coincidental that I measure a delay of 80ms which numerically the same as the quoted SPS of 80.

It would probably be better to choose a quicker amplifier but I have not located one on a demo board.

Now I understand the "rate" is noted in the footnote to be the settling time from power up. Looks like your option is to supply an external oscillator to speed things up.

Paul

Paul_KD7HB:
Now I understand the "rate" is noted in the footnote to be the settling time from power up. Looks like your option is to supply an external oscillator to speed things up.

Paul

As the settling time is 50ms at 80 SPS, the read time of 3ms I was getting is inexplicable, but I have the output data. The actual pattern was that both boards would initially have a read time of about 80ms, but within around 20 reads one board settled down to 3ms and the other stayed at 80ms. Neither swapping the attached sensors, nor the Zero pins employed changed this pattern.

RBB01:
The RATE contacts are as supplied, namely open, this gives 80 samples per second.

Are you sure the RATE jumper is "open"? That's NOT the default for the Sparkfun HX711. Check out the schematic...it says the jumper default is closed (connected to ground), so the default is 10 sps, or about 100 ms per sample.

I've used a number of HX711s and have always gotten about 80 sps (12.5 ms per sample) with the rate PIN held HIGH (as expected, per the HX711 datasheet).

DaveEvans:
Are you sure the RATE jumper is "open"? That's NOT the default for the Sparkfun HX711. Check out the schematic...it says the jumper default is closed (connected to ground), so the default is 10 sps, or about 100 ms per sample.

I've used a number of HX711s and have always gotten about 80 sps (12.5 ms per sample) with the rate PIN held HIGH (as expected, per the HX711 datasheet).

Thanks.

As supplied, the RATE solder pads on the underside of the board are not connected. By implication you state that connecting the pads will select 80 SPS. As this increases the settle time (from the data sheet "Settling time refers to the time from power up, reset, input channel change and gain change to valid stable output data.") by a factor of eight I will be pleasantly surprised to get around 12ms for a single read. I will try it tomorrow.

Ideally I would like to locate a faster amplifier, requiring 5ms or less.

RBB01:
By implication you state that connecting the pads will select 80 SPS.

I implied the opposite.

Is there a trace btwn the "solder pads"? Use your dmm and tell us the voltage on the rate pin.

DaveEvans:
I implied the opposite.

Is there a trace btwn the "solder pads"? Use your dmm and tell us the voltage on the rate pin.

Thank you for that question.

Both RATE pads appear to have a voltage of zero WRT GND. I do not see any trace between the two solder pads.

Running two board-sensor pairs in parallel, both take 88ms to read successfully. Soldering the pads together on one board has no effect - same read time on each board.

Voltage on HX711 RATE pin (15) is zero for both boards. Immediately preceding measurements on HX711 DVDD pin (16) was about 3.3V, sugesting that the GND probe was attached correctly.

Chipside: VCC -> 0K (resistor?) -> RATE pin(15) & -> trace to hole in board.

Underside: hole in board trace -> proximate solder pad.

It appears that the 0K resistor is not actually transmitting VCC to pin(15) on either board. Presumably it should be replaced with a piece of wire?

Apparently the board as supplied has an existing trace between the two solder pads immediately above TRACE and this trace needs to be cut to enable 80 SPS.

RBB01:
Apparently the board as supplied has an existing trace between the two solder pads and this trace needs to be cut to enable 80 SPS.

Bingo! The trace could be cut any number of places (see pics below), but if you cut it between the two pads, then you can easily convert it back to 10 sps in the future.

RBB01:
It appears that the 0K resistor is not actually transmitting VCC to pin(15) on either board.

Well, if you look at the schematic (have you yet?), you would see that the RATE pin is directly connected to ground, so the "0K" resistor is ineffective unless the connection between the RATE pin and ground is cut.

RBB01:
It appears that the 0K resistor is not actually transmitting VCC to pin(15) on either board. Presumably it should be replaced with a piece of wire?

That would be a bad idea for at least two reasons.

My presumption was that the pads were to be soldered together to make the connection and for the solder to be removed to break the connection, as is apparently the case with some Arduino boards.

From the schematic, the "0K resistor" R5 is actually 01c, confirmed with a better pair of spectacles.

DaveEvans:
Bingo! The trace could be cut any number of places (see pics below), but if you cut it between the two pads, then you can easily convert it back to 10 sps in the future.

Well, if you look at the schematic (have you yet?), you would see that the RATE pin is directly connected to ground, so the "0K" resistor is ineffective unless the connection between the RATE pin and ground is cut.

That would be a bad idea for at least two reasons.

Apologies for a noob question - how can I snip the trace between the pads? How do I do it properly? Also, you inscribed GND beside the second RATE pad (the right one). Did you mean that it is grounded or it SHOULD be grounded?

Thank you very much!

Xacto knife, razor blade, etc.

Look at the schematic and see if you can answer your ground question yourself.

DaveEvans:
Xacto knife, razor blade, etc.

Look at the schematic and see if you can answer your ground question yourself.

Thanks for the tip!
As for the GND I, I get your point and I agree. In my field of work we try to push beginners towards learning too in the respective forums.

The best I can do is make an assumption. Pls let me know if it's correct.

As per:

the pad is already grounded. By breaking the circuit we open the jumper, the RATE pad (left) becomes HIGH and the data rate is set to 80 sps. apologies if some terminology is wrong

Side question (I will research myself but at least need a direction). When the sps cound is increased, does the library code need to be adjusted or it depends on the library? What aspects of the library might be affected?

Thanks!

maxturcan:
The best I can do is make an assumption. Pls let me know if it's correct.

As per:

https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/SparkFun_HX711_Load_Cell_v10.pdf

the pad is already grounded. By breaking the circuit we open the jumper, the RATE pad (left) becomes HIGH and the data rate is set to 80 sps.

Not sure "assumption" is the correct word. "Deduction" may be better? But, if you don't trust your reasoning, you can confirm it by looking at the board (either the real thing or a high-res photo). The only tools required are your eyeballs. And you might learn something by googling "copper pour" or "ground plane". And if that's not enough, pull out your DMM.

maxturcan:
Side question (I will research myself but at least need a direction).

For most questions, the datasheet is a good place to start. And if that doesn't satisfy, look at the examples. It never hurts to look at the library code, either; fortunately, the HX711 library code is not very complex. Then try it and see if it works.

DaveEvans:
Not sure "assumption" is the correct word. "Deduction" may be better? But, if you don't trust your reasoning, you can confirm it by looking at the board (either the real thing or a high-res photo). The only tools required are your eyeballs. And you might learn something by googling "copper pour" or "ground plane". And if that's not enough, pull out your DMM.

For most questions, the datasheet is a good place to start. And if that doesn't satisfy, look at the examples. It never hurts to look at the library code, either; fortunately, the HX711 library code is not very complex. Then try it and see if it works.

I think you are forgetting that this is not a professional forum. Different levels of experience are welcomed here (I hope). Some beginner members are already established professionals in other domains who just started scratching the surface of hardware programming.

I didn't ask for a solution, I asked for a direction. If all you can suggest is "use your eyeballs", then don't even bother replying. I am yet to learn how to read and understand datasheets and the HX711 library may not be very complex for you, but it is for me.

I could understand if someone posted on the medical forum "Urgent: need directions amputating my toe", but Arduino - come on, it is meant for everyone. Or maybe no one should touch it without a proper degree?

Anyways, enjoy your weekend God Member.

Sorry you took it that way. You sounded like the kind of person who would enjoy digging into things (with just a bit of help or "direction") vs being handed answers on a platter. Guess I got that wrong, or my tone came across as condescending. Certainly didn't intend the latter. My apologies.