| libraries | ||
| production | ||
| .gitignore | ||
| fabrication-toolkit-options.json | ||
| fp-info-cache | ||
| fp-lib-table | ||
| LICENSE.txt | ||
| olimex-uext-2024.5.pdf | ||
| olimex-uext-back-2024.5.png | ||
| olimex-uext-front-2024.5.png | ||
| olimex-uext.kicad_dru | ||
| olimex-uext.kicad_pcb | ||
| olimex-uext.kicad_prl | ||
| olimex-uext.kicad_pro | ||
| olimex-uext.kicad_sch | ||
| Parts List.ods | ||
| README.md | ||
| sym-lib-table | ||
| Test Plan.ods | ||
| Test Plan.pdf | ||
Olimex UEXT Failsafe Interposer for mUART
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).
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 :-)


