pulseIn & the HC-SR04

I know this issue has been addressed many times now. And I have read many of the posts. But I am still not quite understanding the exact way the timing aspect of the sensor operation works. Specifically, when the SR04 registers a HIGH signal (+10u) on the Trigger pin, an 8 cycled sonic burst is triggered. That I understand. But what I am having trouble with is that, that when this happens,

  1. does the timer start simultaneously with the sonic burst and then stops when the echo pin detects the reflected sound wave and goes HIGH?

2.If this is the case, does this mean that the timing operation of the sensor is completely independent of the pulseIn function?

  1. When does the timer start?
  2. What exactly starts the timer?
  3. How does it start?
  4. When does the timer end?
  5. What exactly ends the timer?
  6. How does it end?
  7. what role does the pulseIn function play with the timing feature?
  8. can the pulseIn be used with the internal pull-up feature in the Arduino?

VKM

3 - 5. The timer starts when you call pulseIn(). The timer starts because you call pulseIn()
6 - 8. The timer ends (stops) when pulseIn() senses the echo pin going from LOW to HIGH.
9. PulseIn() is the timing feature.
10. As long as the device connected to the pin can reliably pull the pin LOW, why not?

timing operation of the sensor

There is no timing operation of the sensor. The sensor sends a pulse and then just waits for the echo an when the echo arrives, sets the echo pin HIGH. The timing is done entirely in pulseIn().

Appreciate your reply to my many questions. Thank you. I still will be able to execute the operation in my program. But given how explained, if all the timing operation is contained within the pulseIn function,

a) how is it that an accurate begin timer time (assuming this is at the start of the sonic bust resulting from a Trigger HIGH pin for +10u) be had, if the pulseIn operation comes after the TRIGGER HIGH pin?

b) Could it be that whatever time it takes to go from executing the trig code line and then the next code line (pulseIn) is so insignificant, that its almost the equivalent to being simultanieous to that of the sonic burst going out that started in response to the previous line of code (Trigger HIGH)?

I believe that what you state in b) to be correct.

I need to correct an error on my part.

6 - 8. The timer ends (stops) when pulseIn() senses the echo pin going from LOW to HIGH.

The Echo pin actually goes from HIGH to LOW upon the receipt of the echo.

Okay. It all makes sense to me, now. I appreciate it very much. Thank you.