Skip to main content

MAX78630 Library

MAX78630 is a high-precision measurement processor designed for three-phase energy monitoring applications. This library is an Arduino/C++ library that aims to read all energy parameters from MAX78630-based energy cards with an easy and readable API.

The goal is to obtain critical parameters with minimum code complexity on the embedded side in three-phase networks, such as:

  • Voltage and current magnitudes,
  • Active / reactive / apparent power,
  • Energy counters,
  • Power factor and frequency,

and make them meaningful at the upper layer (IoT platform, SCADA, dashboard, etc.).

What Does It Do?

MAX78630 is an energy measurement processor designed for typical industrial three-phase configurations.

When used with your card designs:

  • In three-phase (R–S–T) systems,
  • Current measurement with current transformer, Rogowski coil or shunt resistor,
  • Precise measurement via high-resolution delta-sigma ADC,
  • Communication with host microcontroller via UART,

you complete the scenario with a single library.

This library manages the entire complex register/frame structure of MAX78630 for you, presenting you with "ready-processed" energy parameters.

Key Features

  • Three Phase (Polyphase) Support
    Separate measurements for each of the R, S, T phases and calculation of total values.

  • Wide Range of Measurement Parameters
    Besides basic parameters such as voltage, current, power, energy, power factor, frequency, it can also read fundamental and harmonic components.

  • Direct Reading from Ready Measurement Processor
    MAX78630's embedded processor performs calculations internally; with the library, you just fetch the "result" data.

  • Arduino-Friendly API
    Compatible with Arduino core, simple and understandable function set:
    begin(), readVoltage(), readCurrent(), readPower() etc. usage logic.

  • Compatible with Your Energy Boards (EnergyBoard / 3-Phase Analyzer)
    Designed to be used one-to-one with your existing energy measurement cards, it can be easily used both in laboratory environments and in the field.

  • Suitable for Long-Term Monitoring and Analysis
    Ready for integration with IoT gateway, datalogger, field monitoring devices and cloud-based energy management systems.

Measured Basic Parameters

Through the library, you can read the following parameters for each phase (R / S / T):

  • Instantaneous voltage, RMS voltage, Fundamental component voltage, Harmonic voltage, Grid frequency
  • Instantaneous current, RMS current, Peak current, Fundamental component current, Harmonic current
  • Active power, Reactive power, Apparent power, Fundamental component power, Harmonic power
  • Power factor (PF), Fundamental/harmonic reactive and VA components, Integrated energy counters (kWh, kVArh etc.), Integrated temperature sensor (IC temperature)

Additionally, you can set alarm limits according to the threshold values you determine, and quickly detect phase imbalance, overload, overvoltage, etc. in the field.

Typical Usage Scenarios

You may have designed this library to be used especially in these projects:

  • Industrial three-phase energy monitoring panels
  • Agricultural irrigation pumps and motor protection panels
  • Energy management systems for factories, workshops and facilities
  • IoT-based energy analysis, consumption optimization and carbon footprint tracking
  • Load profile and power quality analysis in test setups

Installation

git clone https://github.com/akkoyun/MAX78630

You can also copy it under the libraries folder of your Arduino project.

Simple Example

The example below is a representative example showing the logic of reading basic parameters for phase R in a typical three-phase energy card:

#include <MAX78630.h>

MAX78630 Energy;

void setup() {
Serial.begin(115200);

// After making UART / hardware settings
if (!Energy.begin()) {
Serial.println("MAX78630 not found or could not be started!");
while (1);
}

Serial.println("MAX78630 started.");
}

void loop() {
float vR = Energy.getVoltageR(); // Phase R voltage (V)
float iR = Energy.getCurrentR(); // Phase R current (A)
float pR = Energy.getActivePowerR(); // Phase R active power (W)
float pfR = Energy.getPowerFactorR();// Phase R power factor

Serial.print("VR = "); Serial.print(vR);
Serial.print(" V, IR = "); Serial.print(iR);
Serial.print(" A, PR = "); Serial.print(pR);
Serial.print(" W, PF = "); Serial.println(pfR);

delay(500);
}

Note: Function names may not match one-to-one with the actual API in your project; this section is a representative example explaining the "usage intent" of the library. For actual signatures, refer to the examples/ folder and README on GitHub.

Bu kütüphane, gerçek sahada kullanılan projelerden gelen ihtiyaçlara göre sürekli gelişen bir açık kaynak projedir. Kullanıcı geri bildirimleri, yeni fonksiyonların eklenmesi ve mevcut yapının iyileştirilmesi açısından kritik öneme sahiptir.

Bu kütüphaneyi hem kişisel hem de ticari projelerinde özgürce kullanabilirsin. Herhangi bir lisans kısıtı uygulanmamaktadır; amacım, bu kütüphanenin mümkün olduğunca fazla gerçek dünya projesinde yer almasıdır. Özel bir entegrasyon ihtiyacın, ticari bir planın veya teknik bir sorunun varsa bana e‑posta üzerinden her zaman ulaşabilirsin: akkoyun@me.com Geri bildirimlerini veya kullanım senaryolarını paylaşman, projeyi geliştirmem açısından büyük katkı sağlar.