Skip to the content
PCBKitNew board
2 layers43.3 × 37.6 mmZBSmartMeter, the printed circuit board in 3D

This is a ZigBee device to collect data from smartmeters using the DLMS/COSEM protocol.

Size
43.3 × 37.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
37
Nets
58
Pads
180
Tracks, vias
169, 20
Pours
121
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
10 Jul 2023
Updated
5 Mar 2024

Overview

ZBSmartMeter is an open-source printed circuit board by Tropaion, from the Tropaion/ZigBee_SmartMeter_Reader repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 43.3 × 37.6 mm with 37 parts on 58 nets, routed with 169 tracks and 20 vias.

It is built around the ESP32-C6-MINI-1U-H4, TLV1117-33DCY and CPDQ5V0-HF, with the SMAJ40CA among its other parts. Its parts include 11 resistors, 9 capacitors, 6 diodes, 5 connectors and 3 ICs. It belongs with the radio and wireless and home automation and IoT boards and the ESP32 and RISC-V boards of this library.

Main components

4

README

README.md

ZigBee_SmartMeter_Reader

This is an open-source ZigBee device based on the new ESP32-C6 to collect data from smartmeters using the DLMS/COSEM protocol.

Ever since I got the smartmeter "Sagemcom T-210D" with the P1 user interface, I wanted to integrate it into my ZigBee network. Since I didn't find any existing solution, I decided to develop my own.

If someone is interested in buying an assembled PCB, pm me. Currently I have one board with external antenna available.

THE PROJECT IS STILL WIP.

Hardware

View the latest PCB Interactive BOM.

You can also view the latest Schematic or Layout.

The same hardware could also be used with WLAN and ESPHome.

For this project, I used the ESP32-C6-MINI-1U. I chose the version with an external antenna, since, in most cases, the devices will be mounted in an isolated meter box. And, since many of them are made of metal (Faraday cage), like in my case, I opted for an external antenna to mount on the outside of the meter box.

To provide easy flashing and debugging the USB-C-Socket is connected to the ESP internal USB-JTAG-Converter. In the case that the converter is not working, the UART0 programming interface is connected to J2 and J3, which will not be assembled.

For production use in the meter box, only the 5V supply terminal (J5) which in my case will be connected to a 5V DIN Power Supply and RJ12 (J1) cable going to the smartmeter is needed.

Since most smartmeters send encrypted data, you probably need to request an decryption key from your provider. This key has to be configured in the software. The current plan for this is to provide a simple configuration terminal which is accessible via the USB-C-Socket.

Software

The software will be separated into three core components/libraries. Each will be individually tested and then combined.

  • human_interface - handles button input and led (working)
  • zigbee - handles zigbee basic functions
  • zigbee_electricity_meter - handles everything zigbee and electricity meter related (cluster)
  • smartmeter - read data via uart, parse layers and decrypt data

Possible additional functionalities:

  • zigbee_ota - updating firmware via zigbee
  • configuration_console - usb console to configure device (decryption key)

OR

  • zigbee custom configuration cluster - cluster configure device (decryption key)

Structure of SmartMeter data

How the data is handled is a bit complicated and consists of three layers:

  • MBUS-Layer
  • DLMS-Layer
  • OBIS-Layer

Each layer will be handled by a parser.

See the diagram to understand the structure and how the parser handles the data:

Sources

Enclosue

The first version of the enclosure is released and now in printing.

Attribution

Thanks to EspressIf for sponsoring two samples of ESP32-C6-MINI-1U.

Thanks to PCBWay for sponsoring the production of the PCB and Stencil for v0.2. It was my first time using their service and they have nice customer service and great build quality. The image in the hardware section shows the result of v0.2.

Parts

37
QtyValueFootprintReferences
3CPDQ5V0-HFDiode_SMD:D_SOD-923D4, D5, D6
210kΩ 1%Resistor_SMD:R_0603_1608MetricR5, R6
2160ΩResistor_SMD:R_0603_1608MetricR8, R9
21µF/10VCapacitor_SMD:C_0603_1608MetricC5, C6
2220ΩResistor_SMD:R_0603_1608MetricR1, R2
25.1kΩ 1%Resistor_SMD:R_0603_1608MetricR10, R11
2SW_PushButton_Switch_SMD:SW_SPST_TL3305ASW1, SW2
10.1µF/50V/10%Capacitor_SMD:C_0603_1608MetricC8
1100Ω 1%Resistor_SMD:R_0603_1608MetricR4
110µFCapacitor_SMD:C_0603_1608MetricC1
110µF/25V/20%Capacitor_SMD:C_0603_1608MetricC9
11N5819Diode_SMD:D_SOD-123D3
11µF/16V/10%Capacitor_SMD:C_0603_1608MetricC4
1220nFCapacitor_SMD:C_0603_1608MetricC2
122µF/10VCapacitor_SMD:C_0805_2012MetricC7
130kΩ 1%Resistor_SMD:R_0603_1608MetricR3
1330µF 10%Capacitor_SMD:CP_Elec_8x10.5C3
1680ΩResistor_SMD:R_0603_1608MetricR7
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1ESP32-C6-MINI-1/UEspressif:ESP32-C6-MINI-1UU3
1LEDmALED_SMD:LED_0603_1608MetricD2
1MountingHoleMountingHole:MountingHole_2.2mm_M2H1
1NCN5150DGPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU1
1RJ12Connector_RJ:RJ12_Amphenol_54601J1
1SMAJ40CASMAJ40CA:DIOM4325X250ND1
1Screw_Terminal_01x02Connector_Phoenix_MSTB:PhoenixContact_MSTBA_2,5_2-G_1x02_P5.00mm_HorizontalJ5
1TLV1117-33Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ6

Questions

How big is the ZBSmartMeter PCB?

It measures 43.3 × 37.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ZBSmartMeter use?

37 parts, built around the ESP32-C6-MINI-1U-H4, TLV1117-33DCY, CPDQ5V0-HF and SMAJ40CA. 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 ZBSmartMeter KiCad files?

From the Tropaion/ZigBee_SmartMeter_Reader repository on GitHub, at the commit this page was made from: the board is hardware/external_antenna/ZBSmartMeter.kicad_pcb and its schematic hardware/external_antenna/ZBSmartMeter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ZBSmartMeter design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers54.1 × 21.9 mmCoralWave, the printed circuit board in 3D

    CoralWave

    mineiwik/CoralWave

    Custom Sub-GHz Transceiver Gateway

    45 parts6MIT
  • 2 layers54.1 × 33.9 mmChrononauts board, the printed circuit board in 3D

    Chrononauts board

    dsg-jam/chrononauts-quest

    This sub-folder contains the hardware design files for an RF transceiver system built using an ESP32-C3 module and a CC1101 RF chip.

    59 partsMIT
  • 2 layers35 × 55 mmCoral ir, the printed circuit board in 3D

    Coral ir

    mineiwik/coral-ir

    Smart infrared transmitter

    31 partsMIT
  • 2 layers158 × 85 mmPiPLC Mainboard, the printed circuit board in 3D

    PiPLC Mainboard

    Chrismettal/PiPLC

    Glorified breakout board + DIN rail case for Pis

    154 parts19
  • 2 layers65 × 56.1 mmRasPi HAT, the printed circuit board in 3D

    RasPi HAT

    OpenKNX/OpenKNX-RasPi-HAT

    46 parts4
  • 4 layers98 × 100 mmEsp32s3-can sd logger, the printed circuit board in 3D

    Esp32s3-can sd logger

    MrBlahhhh/esp32-shield-can1-can2-kdcan-analogin-sdcard

    A carrier board an ESP32-S3-DevKitC-1 plugs into, turning it into a vehicle data logger. The dev board brings the MCU and its power; this board brings everything that has to touch a car.

    164 parts1
  • 2 layers25.4 × 42.9 mmKnx mikrobus board, the printed circuit board in 3D

    Knx mikrobus board

    RavuAlHemio/mikrobus-boards

    A few mikroBUS board designs.

    30 parts1
  • 4 layers75.5 × 78 mmCurrent loop gen, the printed circuit board in 3D

    Current loop gen

    andrzejkasica/CO-sensor

    Project based on ME2-CO gas sensor with current loop and 2 relays output.

    126 parts