Skip to the content
PCBKitNew board
2 layers80 × 80 mmRS485 Interface Board PCB, the printed circuit board in 3D

RS485 Interface Board PCB

curiouselectric/RS485InterfaceBoard

A unit to interface various RS485 sensors with a simple serial interface via an Arduino based circuit.

Size
80 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
44
Nets
35
Pads
135
Tracks, vias
430, 3
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
26 Aug 2026
Updated
4 Nov 2026

Overview

RS485 Interface Board PCB is an open-source printed circuit board by curiouselectric, from the curiouselectric/RS485InterfaceBoard repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 80 mm with 44 parts on 35 nets, routed with 430 tracks and 3 vias.

It is built around the ATMEGA328P-PU, RS485 and IRFR9220. Its parts include 11 connectors, 7 resistors, 6 capacitors, 2 ICs and 2 transistors. It belongs with the interfaces and adapters and sensors and measurement boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

RS485 Sensor Interface Board

A unit to interface various RS485 sensors with a simple serial interface via an ATMega328-based circuit. The unit also provides averaged data, controlled stepped-up supply voltage and a field-adjustable ID.

"Why do you need that?", you ask....

I had been wanting to use an industrial soil mositure sensor for a simple project. This device was only available as an RS3485 device. So I ordered that - it then took days of head scratching to sort basic communication with the device. This unit is meant to simplify reading of avaeraged data from RS485 sensors and make it easy to get that data into your project via a simple serial request/reply set of commands.

The other issue with a lot of the RS485 sensor is that they need higher voltages supplied (such as 12V or even 24V DC). So on this interface board I added a DC-DC step up converter to power the sensor.

I was also concerned with energy consumption (my project was battery based). If I was to leave the DC-DC converter running all the time then my battery would run down very quickly. So I added control of the power to the sensor, so that I can power up, take the readings then power down. This saves a huge ammount of energy (well, proportional to my battery size).

Overview

The problem with measuring sensors with values that change relatively quickly is that they constantly need to be checked. This requires a bit of microcontroller time and processing. This unit is designed to solve that.

Wire up your RS485 sensor. Power the unit up. Then it will save the averaged data for you. You can then get hold of the data through serial requests and process as you need.

Overview

I wrote this to interface to an ESP32 data logger, which sleeps most of the time. It wakes up, talks to the RS485 sensor, gets the data it needs, then goes back to sleep, knowing the RS485 Interface Board is always monitoring.

It was designed as a relatively simple interface to remove the need for monitoring pulses/dealing with RS485 requests/getting sensor data and averaging the sensor data.

The brilliant ESPHome project has loads of sensor types you can interafce easily with a low cost ESP microcontrollers. For systems that have WiFi and good power connections then that project is a good resource to use. This project is designed for very low power systems (battery based datalogging) and for situations where easy access to Wi-Fi is not available.

RS485 Sensor Interface Firmware

The firmware for this project has been moved to:

https://github.com/curiouselectric/SensorInterfaceBoard/tree/main/Sensor%20Interface%20Board%20Firmware

This is within the Sensor Interface Board repository: https://github.com/curiouselectric/SensorInterfaceBoard

I have done this to keep all the sensor boards up to date with just one set of firmware for all the sensor boards.

Hardware

A number of PCBs have been designed in KiCAD. This repository holds the RS485 sensor and is available here. A small PCB has been designed.

There is one reset switch, one user input switch and one LED output.

There is a step-up DC-DC converter with power control (to power higher voltage sensors).

There is a TTL to RS485 converter (to connect to the RS485 sensors)

There is a 4 pin 'Grove'-type connector for direct connection I2C (code for this is not yet implemented)

Board ID Number

Each unit can have a unique ID (using a push link 6 pin pad for 0-7 values), so multiple units can be added to a serial bus, if needed. The defalt is 0 (no links used).

PCB User Switch (SWA) and User LED

There is one user switch (SWA) and one user LED on the unit. There is also a reset switch (RST) which will reset the microcontroller (and all stored data will be lost)

The LED will show a regular flash every 5 seconds. This will briefly flash once every 5 seconds if the unit is in 'Response' mode. The LED will briefly flash twice every 5 seconds if the unit is in 'Broadcast' mode. Data will be sent at the broadcast rate.

The LED will also flash whenever data is sent of the serial port. The LED will go on before data sent and then off after data is sent.

Pressing the user switch for > 0.5 seconds and then releasing will result in a switch press.

A switch press will increment the mode from 0-1-2-3-4-5 then back to 0.

The unit will flash after a button press to indicate the broadcast mode (so 0 flashes if the value is 0, 1 flash if the value is 1 etc).

If this is set to 5 then the unit works in 'Response' mode.

If this is set to 0-4 then the unit is in 'Broadcast' mode and will send the data at the relevant interval (0 = 1s, 1 = 10s, 2 = 1 min, 3 = 10 min and 4 = 1 hour).

The mode can also be set with a serial request, using the "Set the unit to broadcast:" method.

Parts

44
QtyValueFootprintReferences
3100nREInnovationFootprint:C1_wide_lg_pad_2C1, C3, C4
2100kREInnovationFootprint:TH_Resistor_1R2, R3
222pREInnovationFootprint:C1_lg_padC5, C6
24k7REInnovationFootprint:TH_Resistor_1R6, R7
1100uREInnovationFootprint:C_Radial_D6.3_L11.2_P2.5C2
110kREInnovationFootprint:TH_Resistor_1R5
11kREInnovationFootprint:TH_Resistor_1R1
12N3904Package_TO_SOT_THT:TO-92_InlineQ1
1470REInnovationFootprint:TH_Resistor_1R4
18MHz_XTALCrystal:Crystal_HC49-4H_VerticalY1
1ATmega328P-PPackage_DIP:DIP-28_W7.62mmU2
1BOARD IDREInnovationFootprint:ID_SELECT_3x2P7
1DC-DC_GENERICREInnovationFootprint:TH_DCDC_Step_up_MT3608DCDC1
1G***kibuzzard-68D6B946kibuzzard-68D6B946
1G***kibuzzard-68D6B9BBkibuzzard-68D6B9BB
1G***kibuzzard-68D6BA4Akibuzzard-68D6BA4A
1G***kibuzzard-68D6B99Dkibuzzard-68D6B99D
1G***kibuzzard-68D6BAD1kibuzzard-68D6BAD1
1G***kibuzzard-68D6BA8Ekibuzzard-68D6BA8E
1G***kibuzzard-68D6B980kibuzzard-68D6B980
1G***kibuzzard-68D6B9C5kibuzzard-68D6B9C5
1G***kibuzzard-68D6BA98kibuzzard-68D6BA98
1G***kibuzzard-68D6B914kibuzzard-68D6B914
1G***kibuzzard-68D6BA3Ckibuzzard-68D6BA3C
1I2CREInnovationFootprint:SIL-4_Grove_Labelled_CorrectP5
1IRFR9220Package_TO_SOT_THT:TO-251-3_VerticalQ2
1ISPREInnovationFootprint:ISP_3x2P9
1LEDREInnovationFootprint:TH_LED-5MM_AKD1
1LOGO2REInnovationGraphics:RS485 Logo DesignP2
1LOGO2CuriousElectric3:2019_011_16_CuriousElectricCompany_Logo_Round_Logo_No_words_KiCAD_10mm_PCBLogoP11
1LOGO3CuriousElectric3:TCEC_Words_13mmP10
1PCBREInnovationFootprint:PCB_outline_JSL22LP3
1PROGREInnovationFootprint:TH_6x1_FTDIP8
1PWR SELREInnovationFootprint:SIL-3_lg_pad_PWR_SELECTJ1
1RS485REInnovationFootprint:SIL-4_Grove_SCREWP6
1RS485_TTL_ModuleREInnovationFootprint:TH_RS485_BI_SERIALU1
1RSTREInnovationFootprint:TH_FRONT_SWSW2
1SERIALREInnovationFootprint:SIL-4_Grove_SCREWP1
1SWAREInnovationFootprint:TH_FRONT_SWSW1

Questions

How big is the RS485 Interface Board PCB PCB?

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

What parts does the RS485 Interface Board PCB use?

44 parts, built around the ATMEGA328P-PU, RS485 and IRFR9220. 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 RS485 Interface Board PCB KiCad files?

From the curiouselectric/RS485InterfaceBoard repository on GitHub, at the commit this page was made from: the board is RS485 Interface Board PCB/RS485 Interface Board PCB.kicad_pcb and its schematic RS485 Interface Board PCB/RS485 Interface Board PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RS485 Interface Board PCB design in my own project?

Its repository publishes it under the MIT 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 layers100 × 100 mmExplorer, the printed circuit board in 3D

    Explorer

    anyshake/explorer

    🌏 Detecting seismic wave using 3 geophones and 3-axis accelerometer, pack & send data to AnyShake Observer over RS232 / RS485 serial.

    266 parts100
  • 2 layers45 × 45 mmMotor, the printed circuit board in 3D

    Motor

    DizzyRobot/DirectServo

    Controller that drives BLDC motor as servo

    48 parts76
  • 8 layers163.5 × 123.5 mmYeti, the printed circuit board in 3D

    Yeti

    PionixPublic/reference-hardware

    BelayBox reference hardware

    278 parts70CERN-OHL-P-2.0
  • 2 layers63 × 46 mmPi485, the printed circuit board in 3D

    Pi485

    bvarner/pi485

    An open-source TTL UART <-> RS485 converter, intended for a Raspberry Pi or Arduino

    31 parts41MIT
  • 2 layers123 × 87.5 mmFastLOGIC, the printed circuit board in 3D

    FastLOGIC

    Neumi/fastLOGIC

    An affordable Arduino-based board designed for straightforward (industrial) logic control, ideal for building small-scale automation and control solutions.

    180 parts23MIT
  • 4 layers105 × 55 mmMotorKit, the printed circuit board in 3D

    MotorKit

    zhbi98/ODriveX

    【无刷电机FOC驱动器】双通道 FOC 无刷电机驱动套件,最高电压 60V 单通道电流可达 100A,可以驱动 1.2kW 以内 BLDC 或 PMSM(有中文注释)。

    184 parts22MIT
  • 2 layers98.9 × 91.4 mmCoin Cell Tester, the printed circuit board in 3D

    Coin Cell Tester

    tomrodinger/servomotor

    Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software.

    204 parts17MIT
  • 4 layers80 × 100 mmTempCtrl, the printed circuit board in 3D

    TempCtrl

    charlesbaynham/DigitalTemperatureController

    Schematic, PCB and source code for a high-precision digital temperature controller

    186 parts14