I chose a USB-A female connector to go on the knock-out panel to give external access, because:
a) It would be the same USB connector as that used on the emonPi2 Pi 4B version and the original emonPi.
b) If you want a direct cable connection to an emonTx4, you would need a USB-A male to USB-C male cable, which are fairly common.
c) If you want to update/serial connect to an emonTx3, or update an emonTH, you would need a USB to serial TTL adapter. My USB to serial TTL adapters all have USB-micro female connectors on them. I have plenty of USB-A male to USB-micro male cables (from old phones), but no USB-micro male to USB-micro male cables.
d) Most (all?) of my separate USB to USB cables (apart from Pi Zero USB adapter cables!), have a USB-A male connector on one end. I’m not sure about the availability of a USB micro male to USB-C male cable, or a USB micro male to USB-micro male cable.
For a diy modification, then the connector used would obviously be a personal choice!
Always assuming that I haven’t missed something in the basic idea of connecting to the Pi Zero 2W USB connector!
A hole large enough to put the connector through or/and with a gland?
We wont be able to make changes on the current design for this batch of course but open to ideas for iterations down the line. One consideration is that the cost difference between the Pi4 and the Zero, £30 doesn’t give a whole lot of room here, once you start adding bits like this, customising to fit nicely in the case and assembly it will start erode that cost difference a bit… A simple cut out panel big enough to pass the cables through for direct connection to the Pi Zero is probably the least cost option
Hello Andy, while not so easy out of the box I will definitely try to find a good solution for you here as the answer is technically yes. Are you replacing the original emonPi? and I assume this is all in close proximity , emonVs, emonTx4 and emonPi /2 replacement?
@TrystanLea Thanks for considering this! Yes, I’d replace the current EmonPi in order to upgrade the CT capabilities and would move the temperature monitoring from EmonTx4 to the EmonPi2. Everything is within 500mm of each other, and connected via usb for data. Currently the EmonPi also gathers data from 5 emonTH units.
For those happy to do this DIY we can supply the RJ45 cable pre-prepared, there are three connections to make. GND, 5V and the 1-phase voltage signal. Confusingly the DC ground is the brown and brown-white pair. 5V the blue and blue-white pair. These are pairs to carry more current. The orange-white single cable is the 1-phase voltage signal. Soldered in here to a spare hole next to R9 (furthest away from the RJ11 socket).
The RJ45 cables we provide have multi-strand cores and so are a bit stronger especially when soldered as in the 1-phase voltage signal here. Care does still need to be taken of course when putting the case back together.
Make sure to disconnect mains power before opening the emonVs case, given that this board handles mains voltages when powered!
For those uncomfortable with making this modification, we are happy to offer an adaptation service if you would like to send the emonVs back to us or if you are happy to wait we are considering an adapter cable to go from an RJ11 splitter to both an RJ45 cable and an RJ11 for the emonTx4.
Interested in any pointers in terms of demand for what would work best for people.
So would you need to power the emonPi2 via USB-C if using this method to get the mains voltage reference? (All the emonVs units shipped alongside the emonTx4 had a USB-C cable available.)
The USB-C cable is not needed to power the emonPi2 and can be removed if not used by anything else. The RJ45 cable can carry enough current to power the emonPi2 as well as provide the voltage signal.
You might be surprised to hear this from me (because I’m so pro-Docker) but I did notice Docker was running on the emonPi2. It’s not doing anything from what I can see so I disabled it.
In somewhat related news: in other places I have switched to podman rather than Docker so I’m not running a daemon as root and giving users access to a socket that lets them use that root context.