I am trying to reverse engineer a serial communication between to microcontrollers (1 device & 1 microcontroller on a board). One MCU validates the other MCU and I want to crack the validation and mimic the validated MCU. I want to find out what protocol is being used to make sense of the data. I have captured the communication with a logic analyzer and here is a screenshot from PulseView: Logic Analyzer Signal

PulseView has decoding function but I don't know where to begin. The communication happens via 1 wire only. But I am not sure if the protocol is "one-wire". Are there any known standard methods to identify an unknown communication protocol? Or do I have to identify it by simply looking at it?

I wrote a script to convert the data into times required to change from one state to another (high-to-low or low-to-high) to compare repeated measurements and absence of the validated MCU. Each time the patterns look slightly different. It would have been great to know to decode this into byte array or whatever is intended for.

PS: smallest time required for a change is 30μs as seen at the 3rd row on the image (120μs = 4 states).


  • Do you have some another line between these units that transmits corresponding clock (which would probably make it I2C protocol ) ? In addition, some logic analyzers sometimes have protocol decoders. May be you have something like this ?
    – w s
    Jun 26 '18 at 13:47
  • @ws There are 5 lines in total. Btw, this is Nikon battery and a Nikon DSLR. 2 lines are + and - (7.4V-8.4V). One pin is for the charger to know the balance between 2 LiPo cells. Another pin is supposed to deliver temperature of the battery (probably analog from some oscilloscope measurements). But I didn't dare to connect the pins to not kill my logic analyzer with ~8V. I don't have constant access to oscilloscope either. Do you think that this looks like I2C? In that case I need to read other pins to see if one of them is clock line, right? Jun 26 '18 at 13:54
  • I'm not sure what protocol it is (btw, what is the voltage of those signals ? I don't see it on the picture). If you don't see clock line it shouldn't by I2C.
    – w s
    Jun 26 '18 at 14:04
  • @ws The voltage was measured ~3.3V on an oscilloscope. But I continued on a logic analyzer, which was more affordable and useful for my other projects. Logic analyzer only differs between low and high (logic). Jun 26 '18 at 14:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.