Hitachi tv serial control protocol




















The amount of bits is normally 37 bytes. There seems to be some extra bits on the end if you use an alternate address setting on the remote control. We must therefore conver all the raw data to bits.

We did this with a quick and dirty powershell script that takes the input from the AnalysIR sketch, strips out all the positive numbers and converts all the negative numbers to either 1 or 0 depending on how long they are. So bits 4,6,8,10,12 etc are bytes with data while 5,7,9,11 etc are just parity bits. There are only two bytes that changes — byte 14 and The binary representation of 25 is but in the data from the remote it is written with the least significant bit first LSB first — The other bits of byte 14 has never changed in our tests so they are probably always 0.

We went through some basic settings to map out other functions and see what number correspond to certain codes but we have only been scratching the surface. We are quite sure about the green ones while we are just assuming that the orange ones are static. Feel free to do so and let us know what you find in the comments. Seems to be used differently by all remote control operations. Is the same true for mist, sleep, monitoring modes and horizontal deflectors etc? We have not tried to replicate all of these operations.

Must investigate further. Possible values: 16 to 32 for most modes, 10 to 32 for dehumidify. Bit 8: Always 0. To specify minutes. Possible values: Not fully known Bits Fan speed. Possible values: 1 silent to 5 automatic Bit 8: Always 0. Bitwise NOT of Byte Bit Has always been in our tests. Bit 5: Turn unit on 1 or off 0. Should always be 1 when changing other settings. Bit Has always been 11 in our tests. Bit 8: Function is not investigated but turns to 0 when sleep timer is activated.

Otherwise 1. Bit Humidity. More bytes and bits will be added if we find any. If you have any additions or corrections please leave a comment. We can then replace selected parts of that default command to create a full custom command. We put all the bits from the default command into an array. Then we replace the necessary bits with the values we want. If we want to change the temperature we need the binary LSB first representation of the temperature. We then replace the bits with offset in our array with the five bits representing the new temperature.

If everything else in the default command is ok we can send the command now and the temperature will change. Sending the command means doing a lot of pulsing at 38Khz.

A function like this can do that and takes the length of the pulse as an argument:. According to what we learned from our analysis of the protocol we would have to begin the command with a special pulse and a special pause, then standard pulses and delays for either 0 or 1. Instead you loop through an array with all the bits that needs to be sent as mentioned earlier and you just send the special pulses using a teqnique such as the example above.

Download a complete example sketch for sending a command here. It converts the supplied values and applies them to the right positions in the command and then sends the command.

Awesome explanation and insights. Thanks a lot! Will do this to my Mirage and comment again soon. This is very interesting work. I tried to reproduce the result on another Hitachi ACRemote. Works good. The soundcard has internal band filter, so I dont see the 38kHZ signal, I only see high level when there is a burst.

This is enough information to decode the data, and I created a pyaudio program to decode the signal. As my AC as fairly different feature this makes sense. Please tell me the decoding part. I had tried it and I came to understand that the last byte is the checksum for verification of the correctness of the command and I want to generate my own IR command for which I need to figure out what is the method used for checksum here.

I really hope I get some help here. Thanks in advance. Please guide me how to purchase all AC codes for project purpose and cost for the same. Thanks for posting this information. Due to some limitations on the controller system I am working with, I am unable to transmit the full bits.

I see that the last 16 bits are always the same and never change last 8 is inverse of second to last 8. Does anyone know if the AC unit will reject what was sent earlier in the IR stream or does it really require the full length IR signal to decode the data properly? Thanks very much for any insight on this. It is generic enough to be adapted to other IR. My AC is without air purifier and humidity settings. You can compare my work with yours:. Decoding Bits 80 08 00 02 fd ff 00 33 cc 49 b6 22 dd 2a d5 00 ff 00 ff 00 ff 00 ff 00 ff 68 97 8b 74 48 b7 40 bf Decoding Bits Done.

Decoding Bits 80 08 00 02 fd ff 00 33 cc 49 b6 22 dd 1a e5 00 ff 00 ff 00 ff 00 ff 00 ff 68 97 8b 74 48 b7 40 bf Decoding Bits Done.

Partial success on this one. I can turn my AC off but not on. Also setting the fan changes either the mode or the temperature without changing the actual fan speed. Hekami: You completely missed the point of this article. The point was to break down and analyze the data coming from a Hitachi remote control so that it would be possible to reconstruct and mimic ANY command you like. If you would do that using only raw codes you would have to record raw codes for thousands of settings combinations.

Although some time has passed, I hope someone still reads this thread. I converted my array into bites. My array is Raw: instead Raw: … but it is very similar for some points: First pulse: us, First pause: us, Pulse: us, Long pause: us, Short pause: us.

There are also a few inverted bytes but only for the and pair. However it is a great guide to get started. Hi, I am an Homeautomation installer for Control4.

But it did not worked for Hitachi AC. Then i used another device which gives commands as given below. A straight-through cable is used to connect a DTE e.

A crossover null-modem cable is used to connect two DTE directly, without a modem in between. They cross transmit and receive data signals between the two sides and there are many variations on how the other control signals are wired, below is one of them:. RS connects the Ground of 2 different devices together, which is the so-called "Unbalanced" connection. An unbalanced connection is more susceptible to noise, and has a distance limitation of 50 ft which is around 15 meters.

A protocol is one or a few sets of hardware and software rules agreed to by all communication parties for exchanging data correctly and efficiently. Synchronous Communication requires the sender and receiver to share the same clock. The sender provides a timing signal to the receiver so that the receiver knows when to "read" the data. Synchronous Communication generally has higher data rates and greater error-checking capability. A printer is a form of Synchronous Communication.

Asynchronous Communication has no timing signal or clock. As it uses less wires for communication no clock signals , Asynchronous Communication is simpler and more cost-effective. Internal computer communications consists of digital electronics, represented by only two conditions: ON or OFF.

We represent these with two numbers: 0 and 1, which in the binary system is termed a Bit. A Byte consists of 8 bits, which represents decimal number 0 to , or Hexadecimal number 0 to FF. As described above, a byte is the basic unit of Asynchronous communications. The baud rate is the communication speed that measures the number of bit transfers per second. For example, baud is bits per second. Data bits are a measurement of the actual data bits in a communication packet. For example, the above graphic shows eight 8 data bits in a communication packet.

Parity is a simple way to error-check. There are Even, Odd, Mark and Space indicators. You can also use no parity. For Even and Odd parity, the serial port sets the parity bit the last bit after the data bit to a value to ensure that the data packet has an Even or Odd number of logic-high bits. For example, if the data is , for Even parity, the serial port sets the parity bit as 1 to keep the number of logic-high bits Even.

For Odd parity, the parity bit is 0 so that the number of logic-high bits is Odd. Mark parity simply sets the parity bit to logic-high and Space sets the parity bit to logic-low, so that the receiving party can determine if the data is corrupted. Stop bits are used to signal the end of a communication packet.

This also helps to synchronize different clocks on the serial devices. Handshaking is also called "Flow Control". The main purpose of Handshaking is to prevent receiver overloading. By using Handshaking signals, receivers will be able to tell the sending device to pause data transmission if the receiver is overloaded. There are three types of handshaking: Software handshaking, Hardware handshaking and Both. The receiver sends these control characters to pause transmitter during communication.

The drawback of Software handshaking is that these two control characters can not be used in data. This is quite important when you are transmitting Binary data as you might need to use these two codes in your data. DCD Data Carrier Ready is used by the modem when a connection has been established with remote equipment, while RI Ring Indicator is used by the modem to indicate a ring signal from telephone line.

Binary is the Base-2 numbering system. One byte of data consists of 8 binary digits, from to Hexadecimal is the base system, which consists of 16 numbers: 0 to 9 and the letters A to F decimal number The Hexadecimal numbering system is useful because it can represent every byte as two consecutive hexadecimal digits, and it is easier for humans to read Hexadecimal numbers than Binary numbers.

Most of the manufacturers use Hexadecimal in their protocol documentation. It is simple to convert a value from Hexadecimal to Binary.



0コメント

  • 1000 / 1000