I have an automatic digital control system that collects information from a sensor, but with an unknown and proprietary one-wire host-device protocol, both sides are driven by a microcontroller. I'd like to reverse-engineer it in my spare time, so I can interface it with my own controller. I imagine that this process involves capturing a lot of data with an oscilloscope & logic analyzer for further analysis. But I'm an absolute beginner and I'm not sure how to apporach the problem of directionality.

My questions are,

  1. How do I determine whether the one-wire interface is unidirectional or bidirectional? It's possible that the device just sends whatever data the host needs, but a request-response protocol is also possible.

  2. If it's bidirectional, how do I know whether the one-wire interface uses tristate output or open-collector output? Since it's possible that internal pull-up resistor inside the microcontroller is used, measuring the resistance is not a safe option.

  3. How do I identify the driver of the current signal, and distinguish between the signal sent from host to device, and the signal sent from device to host?

What are the available techniques in reverse engineering?

Also, it's part of a somewhat expensive device, I'm only able to monitor the bus, perhaps adding pull-up or pull-down resistors, but dismantling the device is not an option.

  • 1
    \$\begingroup\$ Putting in a series resistor and watching both sides with a scope can work, especially if there's pull-up or load resistor. \$\endgroup\$ – Chris Stratton Nov 4 '19 at 8:25

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.