Board design V0.9
The board has the full send and receive circuit to interface between the EMS bus and a 3.3V or 5V interface logic microcontroller.
The current and all previous versions have been succesfully running on many boilers for the past year.
The board has the text 'EMS level shifter' on it but in fact it does more than just that.
For reading data from the bus the board removes the DC offset and converts the higher voltage EMS signalling down to TTL level.
For writing data to the bus it translates the TTL input from the microcontroller to a current instead of a voltage change.
It can be plugged in directly to the EMS service jack on the boiler or parallel to the thermostat.
It is powered via 3.3V or 5V from the microcontroller board.
Some limited protection is provided by two polyfuses to protect the EMS bus from your experimental f*ck ups.
You can get a PCB or an entire working board HERE.
Board design considerations
- The board is double sided but all components are only on the top side.
- Components are all SMD except for the connectors those are through-hole.
In theory the board could have been smaller and f.i. populated on both sides. However it was designed from a more practical point of view. It has larger SMD components and some additional room around them so the board is hand solderable for even not so skilled persons.
Furthermore the board has all components on one side so I would only need one PCB solder paste stencil if I wanted to use one. Those things are relatively expensive compared to the price of the PCB's themselves. And you can't really do two-sided reflow soldering at home anyway.
- All connectors are through hole, these are usually much stronger than SMD connectors which can easily be ripped off the board if f.i. you pull too hard on an attached wire.
- The bottom side of the board has a ground plane for reduced noise.
- The board has several pin holes you can use for mounting. They are not attached to anything.
They are in the normal 2.54mm grid spacing so f.i. you can use a few header pins to directly solder the EMS board onto an Arduino prototyping board so it will fit neatly and sturdy on top of an Arduino.
- Board size and connector positions were chosen such that it all fits on top of an Arduino prototyping board.
The last version is V0.9.
The only difference between V0.8 and V0.9 boards is the silkscreen. There were a few changes to the text on the board but the schematic and layout is identical.
PCB version history
V0.9: Only difference with V0.8 is the silkscreen.
V0.8: Changed the voltage selector to a resistor selector. R15 is no longer populated, changed resistor value R14 to 100 Ohm.
V0.7: Removed wire bridge from V0.6 and added a ground plane. Layout is more compact. Moved around some components. Added vias for mounting. Changed EMS 12V pin header. Added two polyfuses.
V0.6: First production version. This version has a wire bridge and no ground plane.
Instructions for use
You can find the instruction for use as added to the shipment of the fully populated boards here.
I have almost all components in a nice Reichelt shopping list.
Instructions before ordering based on the Reichelt shopping list:
- Double check the schematic and the component list below when you load the shopping cart.
- Sometimes components sell out or have a long delivery time. You need to replace those components yourself with alternatives that are equal. Usually Reichelt has enough alternatives. Its possible to fit a 0603 or 1206 on the 0805 footprint. For passives (resistors and capacitors) if equal components are not availble, you can try the next lower or higher value. For the capacitors on the EMS bus side you want ones that can handle 20V or higher.
- At this time the 10uF 0805 capacitor is not available at Reichelt at all. You could f.i. fit a slightly larger size on the board.
If you buy the bare PCB from me I'll add one to the shipment.
- For the full board you need 8 header pins. In the shopping list there is a single row of 40 pins so if that one sells out just get a strip with at least 10 pins as usually you'll break off a few which you cannot use anymore.
- What Reichelt does not have are the polyfuses. I use the Multicomp MC36207. I got them from Sinuss.nl But you can also get these or similar from Farnell/Element14.
If you buy the bare PCB from me I'll add those two to the shipment.
If you want to omit the polyfuses just solder a piece of wire across the footprint of F1 and F2 or solder a 0805 zero Ohm resistor.
- The screw terminal (J1) is a 5.08mm 2-pin screw terminal I got from Ebay (Like these). A black version is also in the Reichelt shopping list.
- Do not replace the jack terminal with another type, as its footprint is very specific and others will either not fit or they have the wrong pinout.
- L1 and L2 are for SMD inductors. If you want to use axial through-hole inductors instead you need to use L3 and L4. do not use both L1/L2 and L3/L4.
Please see above for the Reichelt shopping list.
|J1||Screw terminal||5.08mm||AKL 057-02||AKL 057-02||F.i. 2-pin terminal strip, spacing 5.08 from Reichelt|
|J2||4 pin header||2.54mm|
|J3||3.5m jack plug stereo||TRS1||EBSF35||EBSF35||Use this one from Reichelt. (Note: I once found the same connectors on Aliexpress).|
|J4||3 pin header with one jumper||2.54mm|
|J5||2 pin header||2.54mm|
|J6 J7 J8 J9 J10 J11 J12||1 pin header||Not populated. Use for mounting.|
|F1 F2||polyfuse||0805||200mA cont. 400mA trip. 30V||Multicomp MC36207||If not used replace with wire bridge or 0805 zero Ohm resistor.|
|L1 L2||inductor/choke||0805||4.7uH||Use pair L1/L2 for SMD OR pair L3/L4 for through hole.|
|L3 L4||inductor/choke||12.7mm axial||4.7uH||Use L3 L4 for through-hole OR L1 L2 for SMD.|
|U2||IC||SOIC-8||LM393D||LM393D||You can also use the LM393.|
|D3 D4||schottky diode bridge||SOT-23||BAT54S||BAT54S|
|D6 D7/Dx/BAT46||diode||SOD-80 (=mini-melf)||1N4148||1N4148||Some boards have the wrong silkscreen 'BAT46' here.|
|R6 R7 R8||resistor||0805||4K7|
|R9 R10 R11 R12||resistor||0805||910E|
|R15||resistor||0805||--||--||Not populated. See alternative setup below the table.|
**Alternative setup** if you want to power the board with 5V but have a 3.3V compatible UART: Replace R14 with 20K and R15 with 10K. And use the lower jumper setting.
Not available. But you can buy a PCB or an entire working board HERE.