Index of /Projects/ot2smbus/ot2rs232/latest

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[   ]Makefile2016-10-26 07:31 1.9K 
[TXT]README.html2016-10-26 07:31 26K 
[   ]README.pdf2016-10-26 07:31 72K 
[TXT]README.txt2016-10-26 07:31 4.2K 
[TXT]ot2rs232.c2016-10-26 07:31 21K 
[   ]ot2rs232_2400.elf2016-10-26 07:30 4.2K 
[   ]ot2rs232_2400.hex2016-10-26 07:30 5.3K 
[   ]ot2rs232_9600.elf2016-10-26 07:30 4.2K 
[   ]ot2rs232_9600.hex2016-10-26 07:30 5.3K 
[   ]ot2rs232_19200.elf2016-10-26 07:30 4.2K 
[   ]ot2rs232_19200.hex2016-10-26 07:30 5.3K 

Opentherm to RS232 converter

Copyright © 2014,2016 Peter Popovec <popovec.peter@gmail.com>

Transparent mode

Allow send frame as defined in chapter 4.2 Opentherm™ Protocol Specification v.2.2 (http://www.domoticaforum.eu/uploaded/Ard%20M/Opentherm%20Protocol%20v2-2.pdf)

In this mode only parity bit is calculated automatically, all other bits are transparently mapped to Opentherm frame.

Line format:

Line must end with CR (0x0d) or LF (0x0a) or CRLF (0x0d 0x0a). There is waiting time for about 3 chars after CR to test if LF is received. Response from device uses same line ends as found in received lines.

        <  MSG-TYPE-TX DATA-ID DATA-VALUE-1 DATA-VALUE-2
  • < - character "<" (value 0x3c)

  • MSG-TYPE-TX - decadic number 0-255 interpreted per bit:

    • Bit 7 - is ignored, parity bit is calculated internally

    • Bits 6,5,4 - message type - transparently forwarded to boiler

    • Bits 3..0 - reserved - transparently forwarded to boiler

  • DATA-ID - decadic number 0-255

  • DATA-VALUE-1 - decadic number 0-255

  • DATA-VALUE-2 - decadic number 0-255

These numbers are transparent forwarded to boiler, the number is greater than 255, real value is number modulo 256.

Response format

        >  MSG-TYPE-RX  DATA-ID DATA-VALUE-1 DATA-VALUE-2
  • > - character ">" (value 0x3e)

  • MSG-TYPE-RX - decadic number 0-255 interpreted per bit:

    • Bit 7 - 0 no error, 1 error, DATA-VALUE-2 represent error code

    • Bits 6..0 - response from boiler (msg type, reserved)

  • DATA-ID - decadic number 0-255

  • DATA-VALUE-1 - decadic number 0-255

  • DATA-VALUE-2 - decadic number 0-255

User mode

In this mode 1st byte of Opentherm frame is filled for TX automatically and response from boiler is checked automatically:

Line format

Line must end with CR (0x0d) or LF (0x0a) or CRLF (0x0d 0x0a). There is waiting time for about 3 chars after CR to test if LF is received. Response from device uses same line ends as found in received lines.

Read register

        < r  DATA-ID DATA-VALUE-1 DATA-VALUE-2
  • r - character "r" or "R"

  • DATA-ID - decadic number 0-255

  • DATA-VALUE-1 - decadic number 0-255

  • DATA-VALUE-2 - decadic number 0-255

Device generate 1st byte for Opentherm frame as message type 0,0,0 reserved bites 0,0,0,0, then calculate parity bit and this frame is send to boiler.

Rest of frame (DATA-ID, DATA-VALUE-1, DATA-VALUE-2) are transparently forwarded to boiler.

Write register

        < w  DATA-ID DATA-VALUE-1 DATA-VALUE-2
  • w - character "w" or "W"

  • DATA-ID - decadic number 0-255

  • DATA-VALUE-1 - decadic number 0-255

  • DATA-VALUE-2 - decadic number 0-255

Device generate 1st byte for Opentherm frame as message type 0,0,1 reserved bites 0,0,0,0, then calculate parity bit and this frame is send to boiler.

Rest of frame (DATA-ID, DATA-VALUE-1, DATA-VALUE-2) are transparently forwarded to boiler.

Response format

        > R-CODE DATA-ID DATA-VALUE-1 DATA-VALUE-2
  • R-CODE - return code

    • 128 - error in response, DATA-VALUE-2 represent error code

    • 0-15 - transparent copy of reserved bites from boiler

  • DATA-ID - decadic number 0-255

  • DATA-VALUE-1 - decadic number 0-255

  • DATA-VALUE-2 - decadic number 0-255

Error codes

  • ERR: 1 missing < on line start

  • ERR: 2 wrong character in number

  • ERR: 4 wrong separator

  • ERR: 5 too many parameter

  • ERR: 8 not enough parameters on line

  • ERR: 10 response before expected period ( < 20ms)

  • ERR: 11 response timeout ( > 800ms)

  • ERR: 20 timeout for bit middle transition

  • ERR: 21 transition before window

  • ERR: 22 transition outside 0,1 window

  • ERR: 23 transition before bit middle

  • ERR: 24 parity error

Return codes for user mode:

  • ERR: 30 returned register ID does not match transmitted register ID

  • ERR: 31 returned data not for slave → master direction

  • ERR: 32 failed unknown data ID

  • ERR: 33 failed invalid data

  • ERR: 34 no read ack for read / no write ack for write