# HG changeset patch # User David Douard # Date 1467235087 -7200 # Node ID dcb6f3fcbd1eda0c85544c3e1d516628709d23d3 # Parent 64a7d3e2b2a81c426ac421847b253914581562db [hp34970a] add some stuff on the flags decoding diff -r 64a7d3e2b2a8 -r dcb6f3fcbd1e content/hp34970a_3.rst --- a/content/hp34970a_3.rst Sun Jun 26 01:32:13 2016 +0200 +++ b/content/hp34970a_3.rst Wed Jun 29 23:18:07 2016 +0200 @@ -9,10 +9,10 @@ :series_index: 3 -As explained in `the previous post in this series <{filename}/hp34970a_2.rst>`_, I've started to sniff the serial -protocol between the main board and the display panel so I can replace -the failed VFD by an OLED or TFT display managed by an arduino or -similar. +As explained in `the previous post in this series <{filename}/hp34970a_2.rst>`_, +I've started to sniff the serial protocol between the main board and +the display panel so I can replace the failed VFD by an OLED or TFT +display managed by an arduino or similar. Protocol ======== @@ -44,12 +44,67 @@ - ``<0x55>``: end of transmission. -I've only identified 2 commands for now, but these are the most +I've only identified 3 commands for now, but these are the most important ones: - ``0x00``: send the chars to the main display - ``0x0C``: send the chars to the secondary channel display +- ``0x0A``: set the display indicators + +Main display +------------ + +Characters are simply sent to the display. However, to specify that a +part of the string to display should be less bright (usually, the +selected option is bright and the other ones are dim), the CPU insert +a special character (need to check which hexadecimal value it is) at +the beginning and the end of the dim part of the string. + + +Channel display +--------------- + +Seems there is nothing special there. The frame payload always consist +in 3 characters (the 3 digits). + + +Indicator flags +--------------- + +The indicator flags are always sent as 4 bytes, each bit controlling +one indicator. + +The indicator flags I've been able to identify so far +are below. + +Let's say the frame is: ``<0x0A> <0x04> ``, then: + + +- F1.7 = +- F1.6 = +- F1.5 = +- F1.4 = +- F1.3 = +- F1.2 = Mx+B enabled +- F1.1 = Alarm enabled (or the alarm frame) + +- F2.5 = 4W +- F2.4 = +- F2.1 = + +- F3.6 = +- F3.5 = + +- F4.7 = CONFIG (not sure) +- F4.6 = +- F4.5 = MON +- F4.4 = VIEW +- F4.3 = +- F4.2 = +- F4.1 = + + Quick prototype ===============