-
Notifications
You must be signed in to change notification settings - Fork 3
Board Bring Up and Testing
Having worked through the slight pain of the early GTEM board setup, which used the ATM90E26 and required a more time consuming, rigorous test and calibration routine, in designing the subsequent board, it was really important that this could be made much easier. This applies not only from production test point of view, but also the end user.
A positive advantage of the ATM90E32 and ATM90E36, over the ATM90E26 device, is that with a known test setup, the calibration is almost non-existent - it is really only voltage calibration that may need a minor tweak at the users end depending on the transformer used.
The Board Design
It all starts in the R&D, concept, schematic and board design. With a thought out schematic and board layout, where the end manufacturing and test process is considered, equal to the board R&D and functionality importance, with all components being surface mount and resistors of 1% tolerance, or less, confidence in safety and build quality must be consistent.
Some of you may realise, I have a version of Engineering OCD and it is really important to me that testing of the all my boards, goes through a strict but straight forward methodical process. It is equally important that I am confident all boards are tested and of a known state, before being packaged and shipped.
Every IPEM and IPEC board goes through a production bring-up power test and then a calibration and final test. Current production is 100% pass on all counts.
Bring Up Test and Calibration Test
In order to be consistent in testing, save time and importantly do this safely, a Mains Power Calibration TestBox was made.
The prerequisite for the test box was:
- Safety
- Consistency and Ease in Testing
- Ability to test single, split and three phases
- Ability to switch Import/export test
- Flexibility in Testing. Small load, large load etc
- Time Saving Without Cutting corners
The key components are essentially:
- Three standard YHDC SCT-013-000 (100A/50mA), current clamps. All going through a single phase live wire, so I can test consistency of the three channel outputs from the same single source.
- One DAT01A transformer using the 12V tapping. This produces around 18V RMS AC and powers the test board, plus provides an AC feed for reference.
- Switchable resistive loads bolted to an internal heatsink. Typically these are 200W @ 360 Ohms.
- Thermostatically controlled heatsink fan
All boards are individually tested and logged, using my homebrew lab calibration box.
The boards serial debug outputs are consistent in value readings which is an important milestone.
Test Flashing
Early testing all started with a bunch of various Arduino code. This proved messy and inconsistent in test flow, so with the need to ramp up the various board functionality, and then check calibration for both E32 and E36, the code was merged, ported to Platform IO and massively expanded over time. The IPEM release in GitHub of 'IPEM_1_Test_Code_ATM90E32_ATM90E36', is what is used for testing the boards in the lab, as well as used and adapted by users.
As you may have realised, more so if looking through the code, this has really evolved into quite a large application firmware. It certainly now needs a revamp but it works and with this is mind, and with the new IPEC board, coupled with the IPEX, I decided to merge in IPEC/IPEX functionality too. The reason being, it is a single piece of manageable code for ALL Power Energy Monitor boards (except the older GTEM).
Final Test
Now that we have a board which has been flashed with a known build standard, the 12V and current clamps are connected and the firmware debug output is checked.
Test Code Example Output
IPEC Test Firmware Output Example
Configuring Board.. Please Wait..
Hardware Options and Auto Configuration
Scanning I2C Bus for Devices for Auto Configuration ...
I2C Possible Device(s) found at Address:
* Hex 0x40 (64) PCA9685 12bit IPEX PWM Driver
* Hex 0x49 (73) ADS1115 16bit IPEX1 ADC
* Hex 0x50 (80) EEPROM
* Hex 0x60 (96) MCP4728 12bit IPEC DAC
* Hex 0x70 (112) PCA9685 12bit IPEX PWM 'All Call'
I2C Bus Scan Complete
IPEC/IPEX1 ESP32 ATM90E32 MCP4728 ADS1115 PCA9685 IoT Power Energy Monitor Controller
IPEC/IPEX1 Register Status and Startup Report
ESP32 Serial ID: E055F4519140
Firmware Version: 230809
Board Location: House
Preparing New EEPROM. Full Formatting... Please Wait...
|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~~|~~~
EEPROM Cleared and Ready
EEPROM Check: 20 (Validation OK)
DAC MCP4728 Initialised
DAC Output is Enabled from DAC Test Output
DAC Output Voltage Minimum V: 0.000
DAC Output Voltage Maximum V: 3.300
DAC Minimum Power Threshold W: 0005
DAC Maximum Power Limit W: 4000
DAC Resolution Bit: 12
DAC Maximum Resolution: 4095
PWM (ESP32) Output is Disabled
PWM (PCA9685) Output is Disabled
Channel Count: 16
Get Mode 1: 0x21
Get Mode 2: 0x4
Default Frequency: 200
Set Frequency: 1000
Actual Frequency: 1017
ADC (ADS1115) Initialised
AIN0: 2965 0.56V
AIN1: 3081 0.58V
AIN2: 3070 0.58V
AIN3: 3069 0.58V
Testing RGB LED
WiFi Options
WiFi is Disabled
MQTT Publishing is Disabled
Domoticz Publishing is Disabled
ThingSpeak Publishing is Disabled
Zabbix Publishing Disabled
Software Options
AC/DC Voltage Input Detected
Connecting to the ATM90E32
ATM90E32 Connected OK
IPEC/IPEX1 Hardware Setup and PowerUp Test Board Initialized
Register Status and Diagnostic Report
ESP32 Serial ID: E055F4519140
Firmware Version: 230809
Location: House
Hardware Configuration for ATM90E32
AC Voltage Inputs: Single Input V1 will be used for Current Phase Calculations
Split AC Voltage: Disabled
CT Current Clamps: Configured for 1, 2 or 3 Phase
[Status Values]
System Status: S0:0x370 S1:0xFF00
Meter Status: E0:0x300 E1:0x3300
Mains RMS Voltage
Voltage 1: 247.87 V (Single Line Voltage Selected)
Mains RMS Current
Current CT1: 0.64 A
Current CT2: 0.64 A
Current CT3: 0.64 A
Actual Total Current: 1.92 A (CT1~CT2~CT3)
Calculated RMS Power
Power V1*I1: 158.64 W
Power V1*I2: 158.64 W
Power V1*I3: 158.64 W
Calculated Total Power: 158.64 W (CT1~CT2~CT3)
Active Power (Absorbed or Used by the Load)
Active Power CT1: 158.88 W (Import)
Active Power CT2: 0.00 W
Active Power CT3: 0.00 W
Total Active Power: 158.86 W (Import)
Calculated Total Active Power: 158.88 W (CT1~CT2~CT3)
ReActive Power
ReActive Power CT1: 10.03 VAR
ReActive Power CT2: 0.00 VAR
ReActive Power CT3: 0.00 VAR
Total ReActive Power: 10.03 VAR (CT1~CT2~CT3)
Calculated Total Reactive Power: 10.03 W (CT1~CT2~CT3)
Apparent Power (Total Amount of Power Flowing from Source to Load)
Apparent Power CT1: 159.24 VA
Apparent Power CT2: 0.03 VA
Apparent Power CT3: 0.00 VA
Total Apparent Power: 159.20 VA (CT1~CT2~CT3)
Calculated Total Apparent Power: 159.27 W (CT1~CT2~CT3)
Other Power Information
Total Fundamental Power: 158.54 pH(t)
Total Harmonic Power: 0.20
Power Factor
Power Factor CT1: 1.00 PF
Power Factor CT2: 0.34 PF
Power Factor CT3: 1.00 PF
Total Power Factor: 1.00 PF
Phase Angle
Phase Angle CT1: 3.60
Phase Angle CT2: 0.00
Phase Angle CT3: 0.00
Other Information
Chip Temperature: 29.00 °C
Mains Frequency: 50.01 Hz
ADC Raw: 2689 > ADC Adjusted: 2689 > Calculated: 32.43 V
Additional information, and other technical details on this project, maybe found in the related repository pages.
Repository Folders
- Code (Code examples for Arduino IDE and PlatformIO)
- Datasheets and Information (Component Datasheets, Schematics, Board Layouts, Photos, Technical Documentation)
- Certification (Related Repository Project or Part, Certification Information)
Repository Tabs
- Wiki (Related Repository Wiki pages and Technical User Information)
- Discussions (Related Repository User Discussion Forum)
- Issues (Related Repository Technical Issues and Fixes)
We value our Customers, Users of our designs and STEM Communities, all over the World . Should you have any other questions, or feedback to share to others, please feel free to:
- Visit the related Project plus the related Discussions and Wiki Pages. See tab in each separate repository.
- Project Community Information can be found at https://www.hackster.io/DitroniX
- DitroniX.net Website - Contact Us
- Twitter: https://twitter.com/DitroniX
- Supporting the STEM Projects - BuyMeACoffee
- LinkedIN: https://www.linkedin.com/in/g8puo/
Dave Williams, Eastbourne, UK.
Electronics Engineer | Software Developer | R&D Support | RF Engineering | Product Certification and Testing | STEM Ambassador
Supporting STEM Learning
Life is one long exciting learning curve, help others by setting the seed to knowledge.