RS485 Breakout with 48 V Passthrough Building Block Board — Final Testing#

Today I carried out what should be the final round of testing on the current version of the RS485 Breakout with 48 V Passthrough board.

This time, the aim was to test the RS485 section at higher transfer rates and confirm that the board still behaved correctly beyond the earlier low-speed tests. The results were encouraging.

I repeated the previous test setup, sending messages from a transmitter board to a receiver board over the same approximate 20 metre length of Cat 6 Ethernet cable. Previously I had tested the board at 9600 baud. This time I increased the transfer rate to 115200 baud and then to 921600 baud.

Both tests completed without any obvious problems.

The received text came through clearly on the receiver board, and when I observed the signals on the oscilloscope, they looked clean and sharp. This gives me enough confidence to consider the RS485 section of the board validated for this stage of development.

Test Setup#

The test setup was broadly the same as the earlier RS485 test.

One board acted as the transmitter and another acted as the receiver. The transmitter sent a simple counter value once per second, while the receiver displayed the incoming text in the Thonny serial monitor.

The test was carried out over approximately 20 metres of Cat 6 Ethernet cable.

I also connected the 48 V side of the board during the test. The reason for doing this was to introduce 48 V power onto the board and check whether its presence had any obvious effect on the RS485 communication.

It did not.

The data still came through clearly, with no visible corruption in the received text.

Transmit Script#

The following MicroPython script was used on the transmitting board:

from machine import UART, Pin
import time

# Configure UART
uart = UART(0, baudrate=921600, tx=Pin(0), rx=Pin(1))

# Define the Driver Enable / Receiver Enable pin for RS485
de_re = Pin(2, Pin.OUT)

counter = 0

while True:
    # Enable transmit mode
    de_re.value(1)

    message = "Okay here's a counter value: " + str(counter)

    uart.write(message.encode())
    print("Sent:", message.strip())

    uart.flush()

    time.sleep(1)

    if counter >= 10:
        counter = 0
    else:
        counter += 1

Receive Script#

The following MicroPython script was used on the receiving board:

from machine import UART, Pin
import time

# Configure UART
uart = UART(0, baudrate=921600, tx=Pin(0), rx=Pin(1))

# Define the Driver Enable / Receiver Enable pin for RS485
de_re = Pin(2, Pin.OUT)

# Set board into receive mode
de_re.value(0)

print("Waiting for data...")

while True:
    if uart.any():
        data = uart.read()

        try:
            decoded_text = data.decode("utf-8")

            print("Received Raw:", data)
            print("Decoded Text:", decoded_text.strip())

        except UnicodeError:
            print("Received data, but could not decode it as UTF-8.")

    # Small delay to avoid hogging the CPU
    time.sleep(0.1)

Results#

The result I was looking for was simple: I wanted to see the same clear text output that I had previously seen at 9600 baud, but this time at much higher transfer rates.

That is what happened.

At both 115200 baud and 921600 baud, the received text appeared correctly in the Thonny serial monitor on the receiver board. The oscilloscope also showed signals that looked clean and well-defined.

This is not a full compliance test, and it is not a substitute for proper signal integrity testing across every possible cable length, topology, termination arrangement, and environment. However, for the purpose of validating this prototype board and confirming that the RS485 section behaves sensibly, it is a good result.

Decision on the Next Revision#

These tests have given me enough confidence to move forward with the next version of the RS485 board.

The main design decision is that the next version will omit the 48 V circuitry.

The original idea behind this board was to combine RS485 communication with 48 V passthrough, providing both communication and power distribution on a single board. That was useful as an experiment, but after building and testing it, I am now leaning toward separating those functions.

The RS485 section has worked well, but having 48 V power distribution on the same board introduces extra risk and complexity. In particular, there is always the possibility of wiring errors or accidental connection of 48 V to signals that should never see that voltage.

Splitting the design into separate boards now feels like the better engineering choice.

The next RS485 board can focus purely on communication, layout, termination, protection, and possibly future isolation. The 48 V distribution side can then be developed separately as a more capable power board.

Future 48 V Power Board#

While the revised RS485 boards are being manufactured, I still have the task of redesigning the 48 V circuit as its own board.

That is not urgent and can move further down the schedule, but it is still a useful direction to explore.

A dedicated 48 V power board could include better reverse polarity protection, improved input protection, clearer power distribution, and possibly isolation depending on the intended use case.

It may also tie into future work around designing a buck converter circuit to convert 48 V down to other useful voltages, such as 5 V, 3.3 V, and possibly 12 V.

That would make the 48 V side of the project more useful in its own right, rather than just being an additional feature attached to an RS485 breakout.

I am also toying with the idea of including USB-C Power Delivery output as well, but that is a conversation for another time.

Closing Thoughts#

Overall, this has been a successful round of testing.

The RS485 section of the board has now been tested at 9600 baud, 115200 baud, and 921600 baud over approximately 20 metres of Cat 6 cable. The received text came through clearly, which fits my requirements and expectations for this board.

The presence of 48 V on the board did not appear to corrupt the RS485 data during this test, and the oscilloscope traces looked clean.

That gives me confidence in the RS485 design itself.

The bigger lesson, though, is that just because two functions can be placed on the same board does not always mean they should be. Combining RS485 communication and 48 V passthrough was a useful experiment, but separating them into dedicated boards now feels like the more robust path forward.

The current board has done its job. It has helped validate the RS485 section, exposed a few design considerations around the 48 V side, and given me a clearer direction for the next revision.

For now, I have a few handy boards for my personal collection while I get the next version manufactured. I will not be releasing this version of the board for sampling, as I plan on creating a new one with the tweaks I have identified during testing and my initial review of the results.

What About the Schematics and Board Files?#

As I am tweaking the design into separate boards, the schematics and board files will change accordingly.

I will release them for the next version of the boards when they are ready for public release. In the meantime, I am happy to make the current files available to anyone who requests them.

If you are interested, just drop me an email at [email protected] and I will send them over, warts and all.


If you are looking for reusable open hardware modules to speed up your bench testing, or need support designing custom breakout circuits, check out our catalog at Protoworks (NI).