This page is all about my attempt to build a desktop scale power meter, based on the arduino platform. It was a project I worked on for some time in 2009, before I decided to buy a house and lost all my free time to mortgage calculations. In the end I produced the first prototype, but the power readings were not as accurate as I’d hoped for, though all of the interfacing between the arduino and the ADE 7753 worked fine. None the less, I’m happy for anyone who is in need of a reference design to pick this up and use it as per the Creative Commons license. All of the information below has been rescued from the site arduinopower.pbworks.com which I originally set up for the project and have now mothballed. I will upload the schematics and libraries to github when I have time, the source code is already on this blog here.
Latest (Updated 28/10/09)!
I’ve completed the first pass of the design, did the CAM scrips in EagleCad and sent it off to those nice people at PCBTrain.co.uk to make it for me on the 13th October. All the current files in downloads are as my first ‘production’ version. I’m still waiting for the boards to arrive (they’re being posted Royal Mail unfortunately). I’ve also made some changes to the BOM, adding parts I don’t have in my big bag full of parts, so I’ll need to order a few bits & bobs before I can start soldering up the first one. Exciting! Today I also ordered a stack of books on Python, Apache and MySQL to sort out the PC end of the integration.
Progress as of 27/09/09
I’ve had a think about the things that the next version of this board should do. The list is at the bottom of this post.
Completely revised the PCB layout over the weekend with some significant (hopefully!) improvements. The Eaglecad autorouter now does 100% of the routing, with a little persuasion. The main issue I came across during design was the need for very large track widths to accommodate the 13A from a socket outlet, hopefully this is covered by having wide tracks on both sides of the board. I did look at introducing an earth/ground grid (just like on the Arduino board) but decided not to as it didn’t actually do very much due to the large clearances required for the mains tracks. Also worth noting, the transformer seems to be the wrong way round (tracks would be shorter if it was flipped 180 degrees) but this seems to make the autoroute more complicated! All the new stuff is on the download page. Should be ready to get one made any day now.
Also, I stumbled upon a reference design here and here, (maybe it was in the data sheet all along?) though they’re all in chinese so I’m not exactly sure what to make of them till I can get it explained by a chinese speaker.
Progress to date:
27/09/09, hopefully all the things wrong with the version from the 9th September have been looked at and fixed. I’ve done a ‘mock up’ using some cardboard and a scale print out. A picture of the mock up is at the top of the page. There are still a couple of tracks that look a bit too small/rough, but generally everything is at least 12mil wide, which should be plenty. The AC tracks carrying 13A are now double sided and 160mil wide with a decent separation between them.
09/09/09, I’ve done a preliminary circuit design and put the components on an Arduino shield. So far I haven’t got round to verifying the design in any way shape or form. The component list is at the bottom of this post.
Verify design a bit more
Check the PCB design is ok
Test + write arduino code.
The idea is an accurate desktop scale power meter, suitable for measuring individual power usage at (say) a desk. Arduino is a great platform, so it seems like a good thing to base the design on. The idea is to make a plugable device that can be slotted on top of the arduino, called a shield. The principle of this shield will be to work with the Bluetooth Arduino and the USB Arduino duemilanove. The other ‘big idea’ is to include a power supply on board which can drive the arduino in both cases – specifically this is ‘challenging’ because the bluetooth arduino doesn’t accept much above 5V using it’s onboard regulator. The duemilanove accepts a wider range of voltages, so no problem. Thanks should go to Duncan Wilson for his support in encouraging me to develop it this far (hopefully I can take it far enough to make something workable).
Why this project is a bit different to all the other power meters out there:
I’ve based the design on the Analogue Devices ADE 7753 IC, which is a custom measurement ASIC. This approach has a number of benefits, including having hopefully good accuracy and freeing up arduino processor and memory to do lots of other things more interesting than calculate power measurements. Communication (haven’t quite got that far yet) will be over an SPI type bus or similar.. Power measurement will be via a CT, with a resistive potential divider to measure voltage.
(Yes I know version 1 still isn’t even anywhere near finished, but I had a list of things to add to it in my head already and thought I’d note them down here).
- Additional ports/connector blocks to allow connection of an external CT and burden resistor
- Revise the way the incoming ports are set-up so that the earth-neutral connections can be avoided or deliberately introduced without the need for jumpers
- Somehow re-design things to allow XBEE compatibility, this is going to be a bit tough as the relay and other components are quite tall.
- Add a decent amount of flash memory (8megish) to allow off-network recording
- Include opto-isolators so that it can be plugged in via USB directly without risk of exploding the computer.
- Develop/check pin outs for a display (probably using Sparkfun large LED display modules) to indicate energy usage, and also a PIR sensor to measure occupancy.
Latest 13th October 09
Eagle Cad Format – link to be added
Latest 13th October 09 – the ones I actually got made
Eagle Cad Format– link to be added
Eagle Cad Library (with the ADE7753 chip in, the mask isn’t quite right!) – link to be added
Thanks to David Sjunnesson for some very good feedback in helping to get things right.
|NPN darlington transistor,TIP102 8A||Each £0.62 £7.44|
|2512 SMT thick film chip resistor,22R 1W||Each (In a Pack of 10) £0.15 £3.00|
|ADE7753 1-phase energy metering SSOP||Each £5.00 £30.00|
|PCB mount transformer,1VA 2×0-24V o/p||Each £2.39 £26.29|
|AS-100 current transformer,15A 20-200kHz||Each £0.49 £2.45|
|SMT Crystal,3.579545MHz 86SMX||Each (In a Pack of 5) £0.97 £9.70|
|CRG0805 SMT chip resistor,1K 0.125W||Each (In a Pack of 50) £0.03 £3.00|
|0805 X7R ceramic capacitor,33nF 50V||Each (In a Pack of 50) £0.033 £3.30|
|0805 X7R ceramic capacitor, 25V 0.1uF||Each (In a Pack of 50) £0.022 £1.10|
|0805 C0G ceramic capacitor,22pF 50V||Each (In a Pack of 25) £0.03 £1.50|
|SRE Aluminium Radial Cap,35V,22uF||Each (In a Pack of 5) £0.12 £1.80|
|GA Al electrolytic cap,10uF 16V||Each (In a Pack of 25) £0.11 £2.75|
|SPDT PCB power relay,16A 5Vdc coil||Each £2.88 £28.80|
|Rectifier diode,BAS316 0.25A 85V||Each (In a Pack of 50) £0.079 £3.95|
|Reg Standard Lin Fix Pos 5V 2.2A 3TO-220||Each (In a Pack of 5) £0.42 £4.20|
|CRG0805 SMT chip resistor,560K 0.125W||Each (In a Pack of 50) £0.03 £1.50|
|CRG0805 SMT chip resistor,680K 0.125W||Each (In a Pack of 50) £0.03 £1.50|