I was told that EmonTx Arduino Shield SMT is not compatible with Arduino Zero, since Arduino Zero works with 3.3 volts.
First, I wanted to make sure if this is true and if it is, is there a way to make an interface between this Shield and Arduino Zero to make it compatible?
I’d really appreciate it if you could answer this question.
While it is true that the emonTx Shield is designed for a 5 V supply, one of the principal functions of the Shield is to provide an interface between the 5 V Arduino and the 3.3 V RFM69CW.
So if you are prepared, and have the necessary skills, to modify your Shield, a conversion to 3.3 V operation should be relatively easy. I have not checked that the pin allocations for the Shield are identical, but other than any changes to accommodate any differences there, a cursory glance suggests that the only other change required would be to remove 3 resistors and possibly short-circuit another 3 - effectively removing (rather than adding) the conversion from 5 V to 3.3 V.
Thank you for your reply, I think I got the hang of it. I almost figured it out based on your helpful suggestion and the board schematic in GitHub.
You will want all the points on the schematic labelled “5 V” to actually be 3.3 V, so that the input biassing is correct (i.e. the quiescent input is mid-way between 0 V and 3.3 V, the temperature sensor (if you have one) is OK down to 3.0 V, so the resistors to remove are R7, R9 & R19 and you may or may not need to short out R20, R8 & R18.
If you intend to use the full input range, check the value of burden resistor that you need (as the peak-peak voltage across it needs to be lower). The emonTx uses a 22 Ω burden, so 68 Ω in parallel with the existing burden will be close enough to give you a measuring range on 100 A with our standard CT. (It would have been 66 A maximum without the parallel resistor).
Having now had time to check a schematic and layout of an Arduino Zero, it appears that the Arduino will supply both 5 V and 3.3 V to the Shield, but as you report, it also appears that the Arduino ADC runs on 3.3 V. Therefore, it would seem that you need to cut (or not fit) the 5 V pin on your Shield, and link the track to that pin to the adjacent 3.3 V pin. That will feed all the points labelled 5 V and the points labelled 3.3 V on the Shield with 3.3 V from the Arduino Zero.