Skip to the content
PCBKitNew board
2 layers42.6 × 47.4 mmCurrent sensor, the printed circuit board in 3D

read full report # Rogowski Coil–Based Current Sensor with Edge Connectivity

Size
42.6 × 47.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
40
Pads
78
Tracks, vias
75, 1
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
12 Dec 2025
Updated
4 Jan 2026

Overview

Current sensor is an open-source printed circuit board by pointertoaperson, from the pointertoaperson/current_sensor repository on GitHub. It is a 2-layer board of 42.6 × 47.4 mm with 19 parts on 40 nets, routed with 75 tracks and 1 via.

It is built around the OPA4277PA. Its parts include 8 resistors, 6 capacitors, 3 connectors and 1 IC. It belongs with the sensors and measurement boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

read full report report project

Rogowski Coil–Based Current Sensor with Edge Connectivity

This project implements a non-invasive current measurement system based on a Rogowski coil, combined with embedded digital signal processing and wireless data transmission. The system measures peak current, RMS current, and frequency of an AC signal and publishes the results to an MQTT broker for real-time edge visualization.

The project demonstrates a complete cyber-physical system (CPS) pipeline, spanning analog sensing, bare-metal firmware, digital signal processing, wireless communication, and edge-side visualization.


Key Features

  • Non-invasive current sensing using a hand-wound Rogowski coil
  • Wide bandwidth measurement without magnetic saturation
  • Bare-metal firmware on ATmega328P (no Arduino / RTOS)
  • Fixed-point FIR filtering and digital integration
  • Peak, RMS, and frequency estimation
  • Real-time OLED display (SSD1306)
  • SPI communication between ATmega328P and ESP8266
  • Wi-Fi + MQTT data publishing using ESP8266 (ESP_RTOS_SDK)
  • Edge visualization using Python and Matplotlib

visualization app

  • edge_listener.py

System Architecture

Hardware Blocks

  • Rogowski Coil + Signal Conditioning
    Produces a small voltage proportional to di/dt, followed by amplification and conditioning.

  • ATmega328P (16 MHz)
    Performs ADC sampling, FIR filtering, digital integration, current calculation, frequency estimation, and display control.

  • SSD1306 OLED (128×32, I²C)
    Displays peak current, RMS current, and frequency locally.

  • ESP8266
    Acts as an SPI slave, connects to Wi-Fi, and publishes data via MQTT.

  • Edge Device (PC)
    Subscribes to MQTT data and visualizes it in real time using Python.


Firmware Overview

ATmega328P (Bare-Metal)

  • Written in register-level C for deterministic behavior
  • No Arduino framework or operating system
  • Timer-driven ADC sampling at 1 kHz
  • 31-tap FIR low-pass filter implemented using Q15 fixed-point arithmetic
  • Digital integration using Forward Euler method
  • Zero-crossing based frequency estimation
  • SPI master for data transfer to ESP8266

Source files:

  • main.c – System initialization and main loop
  • adc.c / adc.h – ADC configuration and sampling
  • timer.c / timer.h – Timer-based sampling control
  • fir.c / fir.h – FIR filter implementation
  • spi.c / spi.h – SPI communication with ESP8266
  • i2c.c / i2c.h – I²C driver
  • ssd1306.c / ssd1306.h – OLED driver

ESP8266 (ESP_RTOS_SDK)

  • Configured as SPI slave
  • Receives current and frequency values from ATmega328P
  • Connects to Wi-Fi network
  • Publishes measurements via MQTT in JSON format

Parts

19
QtyValueFootprintReferences
610kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R3, R5, R7, R8
3Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J2, J3
20,1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C5
2180pCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2
233uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4, C6
1100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6
110MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4
1Arduino_Nano_EveryModule:Arduino_NanoA1
1OPA4277PASamacSys_Parts:DIP794W53P254L1930H508Q14NIC1

Questions

How big is the Current sensor PCB?

It measures 42.6 × 47.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Current sensor use?

19 parts, built around the OPA4277PA. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Current sensor KiCad files?

From the pointertoaperson/current_sensor repository on GitHub, at the commit this page was made from: the board is kicad schematic and pcb layout/current_sensor.kicad_pcb and its schematic kicad schematic and pcb layout/current_sensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Current sensor design in my own project?

Its repository states no licence, so its author keeps all rights: ask pointertoaperson before reusing the design.

Similar boards

  • 2 layers43.9 × 27.7 mmTcd1304-4v, the printed circuit board in 3D

    Tcd1304-4v

    OpnTec/open-spectrometer-hardware

    Open source VIS spectrometer

    19 parts1.5k
  • 2 layers50 × 60 mmDebate Device, the printed circuit board in 3D

    Debate Device

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    19 parts915
  • 2 layers102.9 × 96.7 mmISA adapter, the printed circuit board in 3D

    ISA adapter

    polpo/picogus

    Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support

    19 parts805
  • 2 layers60 × 39 mmPs2usb, the printed circuit board in 3D

    Ps2usb

    rasteri/HIDman

    Adapting USB devices to work on old computers

    19 parts432
  • 2 layers70.1 × 43.2 mmIaq device, the printed circuit board in 3D

    Iaq device

    nkitanov/iaq_board

    IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

    19 parts396
  • 2 layers80 × 80 mmGB BRK CPU G1, the printed circuit board in 3D

    GB BRK CPU G1

    Gekkio/gb-hardware

    Game Boy -related custom hardware by gekkio

    19 parts379CC-BY-4.0
  • 2 layers25.4 × 25.4 mmIna169, the printed circuit board in 3D

    Ina169

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    19 parts282
  • 2 layers58.4 × 28.6 mmNew rele, the printed circuit board in 3D

    New rele

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    19 parts269