Smart energy meter firmware: metrology, accuracy testing and tamper detection
Write metrology and tamper-detection firmware for a single-phase smart meter: generate test waveforms, compute RMS, power and energy in fixed-point C, prove class 1 accuracy, and catch field tampers without false alarms.
Industry project · for Narmada Meters, a Vadodara manufacturer bidding to supply single-phase smart prepaid meters to state distribution companies
India's distribution companies are replacing tens of millions of old meters with smart prepaid meters under the government's Revamped Distribution Sector Scheme. Narmada Meters wants to bid for a tender of 4 lakh single-phase meters. Its hardware is ready: a shunt in the phase line, a current transformer in the neutral, a voltage divider and a microcontroller with a 24-bit sigma-delta ADC sampling at 3,200 samples a second. The firmware is not. The previous supplier's firmware failed accuracy at low current in type testing, and its tamper logic raised so many false alarms that a discom pilot switched it off.
The tender asks for a meter that meets IS 16444 for smart meters, with class 1.0 accuracy, a basic current of 10 A and a maximum of 60 A at 240 V, 50 Hz. It must detect and log at least these tampers: magnet influence, neutral missing, reverse current, earth load (where phase and neutral currents differ), and cover open. It must also keep its energy registers through any power cut.
You will write the requirements, build a Python generator that produces sampled voltage and current waveforms for any load, power factor, harmonic content and tamper, write the metrology in fixed-point C, test its accuracy across the load points a type-test lab uses, write the tamper detection and event log, and design the non-volatile storage and power-fail handling. Everything runs on a laptop: the C code is compiled and tested on the host against the generated vectors. No meter, mains wiring or high voltage is involved, and you must not work on live mains for this project.
Done looks like a C library with unit tests, an accuracy report against the class 1.0 limits at every load point, a tamper test matrix with no false alarms on normal loads, and a design report the engineering manager can attach to the tender's technical submission.
Python vector generator + C metrology and tamper library with unit tests + accuracy report + tamper test matrix + design report with NVM and power-fail design
Stack: Python (numpy, matplotlib), C compiler (gcc or clang) and a unit-test framework, Microcontroller and metering ADC datasheets, IS 16444 and IS 15959 (via BIS)
- Clear requirements15
Metrology, accuracy, tamper, logging and storage requirements are numbered and testable, and traced to the standard or tender in general terms.
- Correct metrology25
Fixed-point C computes Vrms, Irms, active and reactive power, power factor, frequency and energy, matching the generator's true values on every test vector.
- Accuracy proved25
Errors at every load point and power factor fall within the class 1.0 limits looked up from the standard, including low current and with harmonics.
- Reliable tamper detection20
Every listed tamper is detected with its timing, logged with start and end, and no false alarms occur on the normal-load test set.
- Safe storage and report15
Energy registers survive power cuts by a stated mechanism, NVM wear is calculated, and the design report is fit to attach to a tender.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.