Skip to the content
2 layers22 × 54.5 mmPrpd hardware, the printed circuit board in 3D

Prpd hardware

BenediktSeidl/prpd6

Read data from NEDAP PowerRouter via HTTP or RS485

Size
22 × 54.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
16
Nets
11
Pads
48
Tracks, vias
149, 6
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
28 Jan 2021
Updated
28 Aug 2021

Overview

Prpd hardware is an open-source printed circuit board by BenediktSeidl, from the BenediktSeidl/prpd repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 22 × 54.5 mm with 16 parts on 11 nets, routed with 149 tracks and 6 vias.

It is built around the SP3485EN-Y. Its parts include 3 connectors, 1 capacitor and 1 IC. It belongs with the interfaces and adapters and home automation and IoT boards of this library.

Main components

1

README

README.md

prpd

prpd is a software and hardware solution to make monitoring information from the NEDAP PowerRouter available although their cloud service was shot down at 2021-01-31.

The Methods were tested with NEDAP PowerRouter PR37Bi Version 7.1.2.

Status of this project

I had this running for some time and it worked fine, but unfortunately the Battery of the PowerRouter broke and the PowerRouter does not support current Batteries, so the whole System was replaced, and I have no longer a system to test with.

Getting the data from the PowerRouter

HTTP

The PowerRouter normally sends monitoring data every minute via a HTTP-POST request to logging1.PowerRouter.com. This is done without any encryption, so we can simple bend the network traffic into our direction and read the data.

More Information

RS485

Some of the data is collected via a RS485 interface of EM24 Energy Sensors by Carlo Gavazzi. This data is transfered about every second. As the PowerRouter is already a master on the bus we don't want to disturb any communication and simple tap into the data lines and listen to the communication.

More Information

Hardware

In order to tab into the RS485 lines, one could access the EM24 Sensors and add some wires there, but the Sensors are in the fuse box and one doesn't mess with this one normally.

There is also the need for additional hardware because most of the linux boards don't support RS485 out of the box. A normal RS485 USB-dongle may be used.

On the other hand, most linux boards do have UART exposed on some headers, so we can add a UART - RS485 transceiver. The SP3485 has also the handy feature that it can be configured in a way that it is not possible to write to the RS485 bus, an ideal feature for our application.

More Information

Use the data from the PowerRouter

prpw is written in a way that it should be possible to add you favourite output. Currently the following outputs are available:

MQTT Home Assistant

Outputs the data on MQTT so it is possible for Home Assistant to auto discover all available Data.

OpenWB

Output the data on MQTT so OpenWB can read the data. This is not done yet, but will be definitely implemented in the near future.

Prometheus

With this output it's possible to scrape the data with prometheus.

Configuration

Configuration is done via environment variables.

  • PRPD_ACTION: how to obtain the data. either serial or http. If you want to get data from http and serial, you have to run the programm twice.
  • PRPD_OUTPUT_HASS_ACTIVE: 1 if you want to activate the homeassistant output
  • PRPD_OUTPUT_HASS_MQTT_URI: mqtt broker for homeassistant output, defaults to tcp://localhost:1883
  • PRPD_OUTPUT_PROM_ACTIVE: 1 if you want to activate the prometheus output
  • PRPD_OUTPUT_PROM_PORT: sets the port of the prometheus output. If you want to run serial and http in parallel, you have to specify two different ports and configure two differen datasources. in prometheus.
  • PRPD_SERIAL_PORT: serial port (like /dev/ttyUSB0) where to listen for data

Development

Installing rust and build dependencies

text
# installing rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # https://www.rust-lang.org/tools/install
source $HOME/.cargo/env
rustup toolchain install nightly
rustup default nightly
# installing build dependencies
apt-get install pkg-config libudev-dev cmake
# install target support (only if you want to run this on GL-AR150)
rustup target add mips-unknown-linux-musl
# installing tool to compress executable (only if you want to run this on GL-AR150)
apt-get install upx

Testing locally

bash
bash dev/run_http.sh # to start the http server
bash dev/http_post_log.sh # to send some test data to the server

bash dev/serial_socat.sh # to create a virtual serial port
bash dev/run_serial.sh # to start prpd in serial mode
python3 dev/serial_write_data.py # to send data to virtual serial port

GL-AR150

GL-AR150 is a cheap, low power network device that can be used as a platform for prpd. The idea is to use a low power device to gather the data and then send it to a more powerful device in order to store the data.

More Information

Disclaimer

Use at your own risk!

Parts

16
QtyValueFootprintReferences
8 prpd_hardware:tabT1, T2, T3, T4, T5, T6, T7, T8
2RJ45_Shieldedprpd_hardware:CAT5 T1U 2.8N4NJ1, J11
10.1uFCapacitor_SMD:C_0805_2012MetricC1
1A+prpd_hardware:tabTI2
1B-prpd_hardware:tabTI3
1Conn_01x03Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ2
1GNDprpd_hardware:tabTI1
1SP3485ENPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1

Similar boards

  • 4 layers59.2 × 66 mmEthernet bob, the printed circuit board in 3D

    Ethernet bob

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    562 parts990GPL-3.0
  • 4 layers120 × 100 mmBsc, the printed circuit board in 3D

    Bsc

    shining-man/bsc_hw

    Hardware battery safety controller (BSC)

    286 parts31MIT
  • 2 layers70 × 65 mmFluepdot, the printed circuit board in 3D

    Fluepdot

    Fluepke/Fluepdot

    Project for controlling Annax flipdot panels used by the Berliner Verkehrsbetriebe

    116 parts17AGPL-3.0
  • 4 layers270 × 34 mmIo board, the printed circuit board in 3D

    Io board

    ReflexCreations/io-board

    This repository contains source documents and manufacturing files for the RE:Flex Dance Pad's I/O Board. It was created using KiCAD 5.1.4.

    95 parts8MIT
  • 2 layers65 × 35 mmJuksautin, the printed circuit board in 3D

    Juksautin

    zouppen/pumpunjuksautin

    Tricking NTC thermistor on a heat pump

    27 parts7GPL-3.0
  • 2 layers100 × 100 mmPanel, the printed circuit board in 3D

    Panel

    dj505/Pad-Light-Kit

    A PIU pad lighting upgrade kit, featuring a 5x5 RGB LED grid

    91 parts3
  • 2 layers100 × 100 mmV2 Estacion Nviel, the printed circuit board in 3D

    V2 Estacion Nviel

    HecVelaz/Proyecto-Mburica-

    Repositorio central del Proyecto Mburicao: Sistema IoT de monitoreo de nivel de cauces, modelos de predicción con IA y documentación científica

    62 parts3MIT
  • 2 layers59.8 × 109.3 mmLoraWeatherstation, the printed circuit board in 3D

    LoraWeatherstation

    3komma3volt/LoRaWeatherStation_Hardware

    A simple stand-alone self-sufficient weather station using LoRa for data transmission

    50 parts2MIT

Questions

How big is the Prpd hardware PCB?

It measures 22 × 54.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Prpd hardware use?

16 parts, built around the SP3485EN-Y. 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 Prpd hardware KiCad files?

From the BenediktSeidl/prpd repository on GitHub, at the commit this page was made from: the board is hardware/pcb/prpd_hardware.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Prpd hardware 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).