Anyone using a HX712 ADC?


#1

Hi all,

The first version of my project is using the HX711 24 bits A/D converter. I wanted to have better performances in resolution and temperature drift, so i build a newer version with the HX712.

Unfortunately, i can’t get any result with it…
Readings, if any are unstable, and there is no variation while putting some weight on the cell…

I only can get some variation in heavily unbalancing the differential input (with a low value resistor). It’s like if the amplifier has almost no gain !

I have a very stable 5V for the analog part and the digital part is working with 3.3V coming out of Arduino pro mini.

I tested 2 of them on 2 different pin set. nothing works so far.
I tried 2 different libraries and everything is normal (power_up, down, etc…), except the poor readings.

Has anyone used or tested this chip ? Did i buy crap of fake ?

Any suggestion ?

Thanks, Patrick.


HX712 24-Bit ADC
#2

I don’t think that strong temperature correlation is caused by the ADC / load cell IC. Have a look at the thread HX712 24-Bit ADC @weef found out that temperature dependencies are more - in sense of bad - with the HX712.

Can you say some more about your setting? What load cell do you use? What temperature related differences do you have? What library and sketch do you use? I would expect that massively temperature related differences are caused by (a bad) load cell.


#3

Hi Clemens,
Maybe it was not a good idea to start this newer version with the HX712 at all… (

Anyway, now i’m there and i would at least like to find out what’s wrong in my design.

I can’t talk about temperature drift for now, as nothing is working…

As load cell, so far i used a L6E by ZEMIC rated for 150 kg. Recently, i bougth several 100kg cells from China, but couldn’t get any datasheet for them. They look very similar to the L6E.
But the moment, the problem is somewhere else.

In my newer project, i use the HX711 library from Bogde which should work up the gain 128 and 10Hz rate. I also tested the only other one for HX712 i’ve found. I tested their examples, and none is working.

I can’t see what could be wrong in my design and i double (well triple) checked the wiring. I used the switched output of the HX712 to switch an external voltage regulator to save some current. The cells are supplied with the switched 5V, so is the analog part, and the digital part is supplied by the Arduino at 3.3V. The complete setup is powered by a 12V battery and consumes 300uA with everything connected.
I don’t think the problem could come from here. I will test this with a single supply, just to exclude this possibility.

I noticed that the BAT single ended input of the HX712 is curiously supplying some voltage and disturbing the 5V rail on which it was connected as recommended in the datasheet. So, i left it unconnected which doesn’t seem to harm. The documentation is rather unclear and the english and chinese version don’t say the same…

As already mentionend, it is like if the HX712 has no gain at all… I had to heavily unbalance the input to get some data variation coming out.

Thanks for any suggestion.


#4

I had a look at this datasheet @Juergen uploaded in the other HX712 thread:
94396103-Hx712-English-Datasheet.pdf (291.2 KB)

Just for the sake of completeness. The HX712 has now two GND for the analog and digital part. Did you connect both to ground? And for the two power sources. Did you connect both GNDs together?

Yes, I see on p. 1 that BAT is not connected, but on p. 7 is a hint

When BAT is not used, it should be connected to the higher of AVDD or DVDD

interesting is also the comment on the lib you linked:

Note: This library is tested with a HX712 in the reference configuration. The two chips I used (marked HX712 5510192) could not be set to a gain of 256, only the rate could be changed.

I searched on ebay for a HX712 breakout but did not find one. Did you use the pure chip or could you get a breakout board?


#5

Yes, i have both ground connected together, analog and digital as well as power.

For me, the BAT “input” has a problem. Some voltage, close to Vcc, is coming out of it. That is quite disturbing for the rest of the setup.

Yes, i saw this comment about the impossibility to change the gain to 256. But lately… I have the same batch of ICs ! The first 55 should be the manufacturing year. The newer one have 77.

Now 2 solutions :

  1. i buy newer chips, just to be sure that i didn’t get a fake batch
  2. i swap all my design back to HX711…

I think i will got the safer way and redesign everything with the HX711. At least, i’m sure it works !

I want to do the same. Use an external 5V regulator and switch it with the base output of the HX711, leaving the internal regulator unused.
Are you using the HX711 and if yes, this way ?

I don"t know what the BASE pin is producing and if it can be used directly as ENABLE signal for a regulator.

Thanks


#6

Oops !
I forgot to answer you about the HX712 board. I did my own board with four of them.

I’ve made a Web page on which i collect the datas from my prototype (with HX711).

From the menu, as visitor, you can see one hive (ruche) and one apiary (rucher) and some technical with a KICAD view of the board (good to be thrown away) :-(
Sorry, but in french…

From this page, as admin, i can configure all the sytem. My project is to have at least one system on each of my apiaries and build some for friends.

If you want to see the backside, please drop me a private mail.

Patrick.


#7

Hurrah ! !I found the problem…

I made some tests in wiring a small test pcb with a HX712 in his simplest version. It worked at first try !

In contrary of what the internal diagram of the HX712 can suggest, the AVDD input has to be at same voltage as REFP.
The internal switch does only cut the cell supply, not the AVDD… It was my misunderstooding and/or a bad datasheet…
So i did cut a trace on my pcb and routed the 5V to AVDD, and voilà !

Not a big deal, and i can continue !

So far, the 256 gain doesn’t seem to work. I modified the HX711 library but it gives me erratic readings when i try to select 256 gain. I will try to find out what’s wrong, but being not the first to mention this … :-(

Patrick


#8

Nice graphical realization! What framework do you use for the graphs? I did some research times ago and build my first visualization with dygraphs, a JS framework. Now we have a powerfull backend with Kotori, Grafana and Influx DB, see Grafana . This platform is open for everyone. So in cas you will play around with it you are welcome!

As mentioned in the other thread about the HX712 (sorry, German) I see not too much advantages for the HX712 over the HX711, perpaps you need the higher gain in case you have only 1mV/V excitation.

We have used the common HX711 breakouts, you can see some connection details at

We have used the internal regulator. You can easily switch to sleep mode by software, it is in the bodge lib

scale.power_down();			        // put the ADC in sleep mode
delay(5000);
scale.power_up();

For me it is the simplest way and outcome is - till now - ok.

You are using 4 load cells. I am preparing a prototype with 4 cells some other here at hiveeyes also. @Juergen will try a similar setting as you. Read each load cell separately. I think he has planed to use the 4-channel ADS1234. I have made good experiences with the “little brother” ADS1231. But there is no breakout for this chip available. I have learned in the meantime soldering this tiny bugs but our concept is a as much as possible DIY concept for beekeeper with less hardware skills. So I will try to tie the 4 cells together in parallel and use only one HS711.


#9

Great to hear that!!


#10

I use Highcharts for the graphs, it’s awesome and free for private use. You can do almost everything with, the limit is imagination.
I played around and added night/day shadow, min/max , etc…

You’re certainly right, the HX712 doesn’t bring anything if the 256gain factor can’t be used. It has some advantage though, but knowing what i know now, i would probably not use it again.

Anyway, it works now and the datas coming out are stable.

I did put 4 converters, so anyone can use it how he wants. 1 cell/hive or any other combination.


#11

Hm… REFP is at least not allowed to be higher than AVDD, lower and equal is valid. If you would feed your gauges via the internal high-side FET switch, the voltage drop is RDSon * Igaugedrain , e.g. the FET in the HX712 has nom. RDSon=3 Ohm, your gauge wants 20mA, then @AVDD=5V REFP will be 60mV lower (if you short R3, R4 in typ. schema in datasheet page 1) - so REFP in most usages will be lower than AVDD, but is allowed to be equal to AVDD, if we belive in the data sheet on this…

They claim:

When internal MOS power switch is used for the external load-cell, both HX712 and the load-cell will be powered down.

I suppose that the digital part of the HX712 then still is powered, othwerwise normal function could not be reestablished by PD_SCK - the data sheet here is as inaccurate as most Chinese IC documentation.

This is most likely the result of back-feeding - the sink BAT (the second, single-ended ADC input) became a source via the internal protection diodes because of your void case REFP > AVDD.


#12

Hi Weef,

Thanks for the comments…

I learned it the hard way ! I started using the chinese datasheet as Aviac didn’t give an english version on their site, only a short presentation. I requested it, but never got an answer. I also told them that the HX711 datasheet had an error…
I found the HX712 english version of the datasheet later on, but it still is not on their Web page !
I used Google translate and the chinese version does not say the same about the BAT input. It claims that it has to be connected to DVDD if not used, what i did.
And yes, DVDD is always supplied.

This is most likely the result of back-feeding - the sink BAT (the second, single-ended ADC input) became a source via the internal protection diodes because of your void case REFP > AVDD.

That makes sense… But as already mentionend, the chinese datasheet is telling the contrary… As i do switch the external AVDD source (to save the power regulator quiescent current) and firstly connected BAT to AVDD, it was causing problems… For now, i left it unconnected and it does not harm

Now, i’m facing another problem i discovered yesterday evening.
I wired 2 HX712 on my board, and my software is measuring one cell after the other. When i measure the first time, it is OK. The second time, the datas are completely weird. I tracked it and found out that it happens only when i measure the second HX712 …
It is like if when the power on AVDD disappears, it create problems when repowered ON and no measure is done…
I have to confirm this.

Adding the fact that i can’t use the 256 gain, it was probably not a good idea to use these chips !

The safest way to use these chips is to use the internal switch, leave the AVDD stable and the BAT on this pin. Everything i wanted to avoid, for power saving and noise reinjection on the AVDD line !

I will drop a mail to Aviac and ask for some details and if the batch of ICs i have have problems or not…
Not sure if they will answer.

Thanks for the help.


#13

I finaly found out that if the AVDD doesn’t appear long enough before the chip is waked up, it produces garbage.

So, i modified my board with some track cuts and wires. I now have the 5V low noise regulator working permanently and this 5V is applied to the AVDD pins of all HX712. The OUT pin is now connected the REFP and the cell.
The BAT input is left unconnected as there is no interest for me, being powered on a 12V battery.

Evrything works fine now and as expected, except the 256 gain setting that does not work.


#14

They twice in the manual want us it to

(connect to higher of AVDD or DVDD when not used)

But, anyway,

When detecting battery input, AVDD is used as the ADC’s data conversion reference voltage.

…and not REFP; their internal switched voltage divider on BAT ‘sees’ AVDD as ref. That’s also why they could allow BAT being connected to the "Regulator"s input and having AVDD and DVDD behind (in their reference PCB design)… funny data sheet.

As BAT does not refer to REFP but AVDD, it makes is useless for precise measurement of the weight scale element voltage source (if (BAT conn’d w/ REFP) AND (REFP different to AVDD)). So, then … connect it “to higher of AVDD or DVDD when not used” ;)

That is good to hear!

let’s see what this finally will be…

You seem to really need this high PGA gain @24bit - then consider implementing these simple RC networks (or ferrites instead R w/ adequate DC res, if your GSM modem+antenna are close) as shown in this app note from TI (coloring by me, local pdf linked here) - it helps signal, reference and sensor supply conditioning even at lower gains! ;)

(my pdf renderer obviously shows “Ohm” as “W”)


#15

Hi Weef,
Thanks for all these technical infromations.

Yes, the datasheet is really unclear concerning this BAT input. I find it useless, with a gain factor 1 and such an input voltage divider, it only can be used to detect the presence of a voltage.

Just for fun, i will try to connect it to the 5V line and see if there is a difference.

I personally don’t need a gain of 256, having standard 2mV/V cells. But i thought i could use these chips and someone can connect lower ouput voltage cells. But it seems that, at least the batch i have, they can’t be switched to 256 !

My board has the filtering on inputs and supply you suggest. I have the resistors and caps at AN1 and AN2 and implemented the 100 Ohms on the REFP and EFN lines. I don’t have 1uF caps though… only 0.1uF
I had to remove the 100 Ohms, due to the hacks i had to make on my pcb… I didn’t try to see if the voltage drop through these 100 Ohm would affect the measures. Any idea ?
For the moment tracking my other problems, i shorted the 1kOhms in the input. I will remove the shorts and try with the 1kOhms.

I wanted to have as much voltage i could on the cells, and that’s why i added the 5V regulator. It makes some difference over a HX711 with internal regulator and their 2,45V output…

BTW, the LT1761 i use has quite low quiescent current, so leaving it working all time to avoid timing problems doesn’t make a big difference. Actually with the Pro mini, the DS3231, the DS18B20 sensors and the BME280, i have about 320uA when in sleep.
I suppose that i could reduce it in changing the RTC DS3231 for another one, as the datasheet says it has 110 uA standby current. But that’s another story…
The GSM itself consumes a lot more during the short period it transmits.

Thanks for you help,
Patrick.


#16

In contrary to what i thought, i got an answer from Avia to my questions about the HX712.
But this answer is quite disappointing !
The HX712 DOES NOT have a gain of 256 possibility !! So, there is no reason to use it over the HX711.

Sorry to hear that…

Here the answer from Avia :

Hi,
This batch is coming from our factory. HX712 can’ t be used at a gain of 256.

Thank you.

Best regards,
Mandy
海芯科技(厦门)有限公司
AVIA SEMICONDUCTOR (XIAMEN) CO. , LTD.
ADD: 301E NO. 34 Guanri RD, Xiamen Software Park Ⅱ, Xiamen, China
Tel: 0592-2529530
Fax: 0592-5996329


#17

Thanks, Patrick, for this information! May you ask Avia about an official datasheet.

We found a datasheet, I don’t know the source, see:
https://community.hiveeyes.org/uploads/default/original/1X/35591ec403137b7dc1c70d451b339942f0def3fd.pdf that claims as feature:

On-chip low noise PGA with selectable gain of 128 and 256

Is this an error in the documentation or not implemented in the current batch only and will be available in the future for the HX712?


#18

Hi Clemens,
Here is what they answered when i told them that they should modifiy their datasheet :


Hi Patrick,
We are sorry that we don’ t modify the datasheet in time. We will revise it.

Sorry again.
Best regards,
Mandy
海芯科技(厦门)有限公司


Well, this datasheet can be found since many years… I don’t know what they’re playing. In any case, that’s not serious !
It started to be a good product, but now it looks more like a reworked HX711… It’s still a nice chip to use, but not as expected.


#19

Hey there,

for the sake of completeness, let me reference the conversations with Bogdan, the author of the HX711 library started by Patrick (@TK5EP, @GitHub) the other day on GitHub:
https://github.com/bogde/HX711/issues/39
https://github.com/bogde/HX711/issues/91

Cheers,
Andreas.


#20

Understood.

this I don’t get: HX711’s band gap VBG is 1,25V, VSUP starts @2,7V… but: Where does this 2,45V come from? Don’t you use an external PNP and incorporate the ‘LM317-style’ LDO in the HX711 for sourcing the cell (and AVCC)?

How dare you! ;) You do want to drop an RTC/TCXO which gives you 2ppm worst case over full industrial temp spec, resulting in less than 2 minutes off per year, don’t you?! Any chinese counterfait or ‘ghost-shift’ DS3231 is way better than a DS13x7 or the like. Your design already incorporates this IC part, and it is perfect for a node having a WWAN link itself and no local gateway providing the link as well as accurate system time stamps).

110uA is only true when

  • VCC is used as the primary source and
  • the DS3231 does not run from VBAT.

If VCC= 0V and VBAT >= 2,3V, the the 3231 lives on a timekeeping ‘battery’ current IBATT as low as typ 1uA, max 3,5uA!
In the data sheet, note 5 on this says:

Current is the averaged input current, which includes the temperature conversion current.

This is the current requirement when running only on VBAT:

ds3231-vbat-Irequ

(from here; this ‘app note’ is mostly advertisement for DS3232/3234)

So, by sourcing the DS3231 via a GPIO pin (and RV + decoup caps to make this ‘switch’ low-impedance) and using VBAT most of the time (similar to that), you can achieve an averaged one-digit uA drain for the DS3231. You still can wake up the processor via INT by RTC alarms (see INTCN, A1IE (A2IE) and BBSQW bits).

I’m not familiar with the DS3231M (nor DS3232(M), DS3234) which has different entrails (they don’t mention a TCXO anymore but a TC MEMS resonator…that’s why the SO8 packages was feasible).

Before going deeper into DS3231-related things (which would need me to open a new thread ;) ), I’d point to a very comprehensive entry on this, esp. the update on 2014-10-28 - it also discusses the cheap chinese ‘versions’ of the DS3231 in terms of origin and accuracy, and this guy runs great long-term series: