Failsafe hardware for use with the MUART project
Find a file
2024-09-20 14:54:15 -04:00
libraries Initial commit into new branch. 2024-09-20 09:02:40 -04:00
production Initial commit into new branch. 2024-09-20 09:02:40 -04:00
.gitignore Initial commit into new branch. 2024-09-20 09:02:40 -04:00
fabrication-toolkit-options.json Initial commit into new branch. 2024-09-20 09:02:40 -04:00
fp-info-cache Initial commit into new branch. 2024-09-20 09:02:40 -04:00
fp-lib-table Initial commit into new branch. 2024-09-20 09:02:40 -04:00
LICENSE.txt Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext-2024.5.pdf Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext-back-2024.5.png Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext-front-2024.5.png Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext.kicad_dru Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext.kicad_pcb Update project name in schematic/PCB. 2024-09-20 09:23:59 -04:00
olimex-uext.kicad_prl Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext.kicad_pro Initial commit into new branch. 2024-09-20 09:02:40 -04:00
olimex-uext.kicad_sch Update project name in schematic/PCB. 2024-09-20 09:23:59 -04:00
Parts List.ods Initial commit into new branch. 2024-09-20 09:02:40 -04:00
README.md Add note about the 5V power LED lighting when 3V3 power is supplied. 2024-09-20 14:54:15 -04:00
sym-lib-table Initial commit into new branch. 2024-09-20 09:02:40 -04:00
Test Plan.ods Initial commit into new branch. 2024-09-20 09:02:40 -04:00
Test Plan.pdf Initial commit into new branch. 2024-09-20 09:02:40 -04:00

Olimex UEXT Failsafe Interposer for mUART

Open Source Initiative Approved License logo License - CERN-OHL-S

This repository contains the hardware design for a PCB that can be used with the mUART components in ESPHome. The PCB provides interfaces for the UART links to the heat pump/air handler and thermostat (using CN105-style connectors), and implements a 'failsafe' mode ensuring that the HP/AH and the thermostat can communicate with each other even if the ESPHome 'host' is not operating properly (or not connected at all).

 

Ray-traced 3D rendering of the front side of the adapter board Ray-traced 3D rendering of the back side of the adapter board

This board is designed to be used with an Olimex ESP32-based host board that has a UEXT connector. However, since the host connections are standard header pins, it can be used with any ESP32-based board by using jumper wires.

The board contains CN105-style connectors, the analog multiplexers and MSP430, 3.3V-to-5V level shifters, and various status LEDs.

Power Supplies

The 5V portion of the board includes the analog multiplexers (which handle 5V UART signals), the upper indicator LEDs, and one side of each of the level shifters. This portion of the board obtains power from the +5V pin on the HEAT PUMP connector.

The 3.3V portion of the board includes the MCU, the lower indicator LEDs, and one side of each of the level shifters. This portion of the board obtains power from the +3V3 pin on the UEXT connector.

NOTE These power supplies are NOT isolated; they share a ground (GND) connection, and as a result the device connected to the host connection must be powered using a galvanically-isolated power supply if it is not powered from the HEAT PUMP connector. If desired, a header pin can be installed into the J3 position on the board to provide access to the +12V connection, so that it can be used to power the host device. It is not recommended to power the host device from the +5V connection on the HEAT PUMP connector.

Host Connection

The host connection is a 10-pin IDC-style pin header receptacle, as is commonly used by Olimex on their UEXT modules. The pins are 0.64mm/.025in square, which means they can be used with commonly available 'Dupont' jumper wires to connect to an ESP host board (or breadboard) if a 10-pin ribbon cable is not used.

Pinout

Pin Purpose
1 +3V3 (from host)
2 GND (from host)
3 HP/AH transmit (from host)
4 HP/AH receive (to host)
5 TH transmit (from host)
6 TH receive (to host)
7 HOST_ACTIVE (from host, active low)
8 not used
9 not used
10 not used

Heat Pump/Air Handler Connection

The HEAT PUMP connector should be connected to CN105 on the HP/AH control board using a 5-conductor straight-through cable with JST PA socket plugs.

Alternatively, pin headers can be installed into the J3 position to allow Dupont-style jumper wires to be used for the connection. This may also be useful for attaching a logic analyzer or other tool to monitor the signals to/from the HP/AH.

Thermostat Connection

The THERMOSTAT connector should be connected to the RedLink receiver (for MHK2 thermostats) using the receiver's existing cable.

Alternatively, pin headers can be installed into the J2 position to allow Dupont-style jumper wires to be used for the connection. This may also be useful for attaching a logic analyzer or other tool to monitor the signals to/from the TH.

Indicator LEDs

Upper

The upper LEDs are located just below the center mounting hole. There is a red LED which will light when 5V power is supplied by the HEAT PUMP connection, and a green LED which will light when the host has control of the UART signals. Because the LEDs are located in the same package, if both are lit the resulting color will be orange. This is the desired result, since it means that the HP/AH is supplying power and that the host is maintaining control of the UART signals.

NOTE The 5V power LED will light if 3V3 power is supplied without 5V power also being supplied; it will not light to full brightness in that situation.

Lower

The lower LEDs are located near the lower-right mounting hole. There is a red LED which will light when +3V3 power is supplied by the UEXT connection, and a green LED which will light when the host sends an 'active' pulse. Because the LEDs are located in the same package, if both are lit the resulting color will be orange. This is the desired result, as it means that the host is supplying power and sending 'active' signals (the LED package will light red most of the time, with periodic orange pulses).

Debugging/Programming

The MSP430 can be programmed using the DEBUG-PGM (J5) pads near the lower-right mounting hole. These pads are labeled on the back of the board, and carry +3V3 power, ground, and the data/clock signals for the TI Spy-By-Wire connection. Any TI MSP-FET or FET-compatible interface, including those on the LaunchPad Development Kit boards, can be used for this connection.

This connection can also be used for live debugging of the firmware using mspdebug or other MSP430-compatible debugging software.

These pads are designed for a 4-pin 2.54mm-spacing pin header strip, but can also be used with a programming clip containing spring-loaded ('pogo') pins.

Manufacturing (JLCPCB)

The design files have been pre-configured for manufacturing by JLCPCB, and include all of the part numbers needed for PCB assembly as well. These part numbers are also present in the [Parts List](Parts List.ods) spreadsheet.

The Fabrication Toolkit plugin for KiCAD is used to generate all of the files needed by JLCPCB, which are located in the production directory, and include:

The schematic file includes JLCPCB Rotation Offset and JLCPCB Position Offset fields which correct for mismatches between the KiCAD manufacturing data and JLCPCB's manufacturing data; if any of the pre-selected components are replaced with alternatives, these fields may need to be changed in order to produce a correct CPL.

Credits

"Standing on the shoulders of giants" could not be more true than it is in the open source hardware and software community; this project relies on many wonderful tools and libraries produced by the global open source hardware and software community. I've listed many of them below, but if I've overlooked any please do not be offended :-)