anchor.diff:      case ms() - Start > Timeout of
           false ->
               timer:sleep(10),
  -            confirm(grisp_onewire:read_byte());
  +            confirm(grisp_onewire:read_byte(), Start, Timeout);
           true ->
               error({onewire_ds18b20, confirmation_timeout})
       end;
  
positive.code:         Temp / 16.0
      end).
  
  read_scratchpad(ID) ->
      grisp_onewire:transaction(fun() ->
          select_device(ID),
          read_scratchpad()
      end).
  
  convert(ID, Timeout) ->
      grisp_onewire:transaction(fun() ->
          select_device(ID),
  
negative.code: 
  %--- API -----------------------------------------------------------------------
  
  %% @doc Read the temperature in °C from the scratchpad.
  %%
  %% === Example ===
  %% ```
  %%  onewire_ds18b20:temp([40,255,190,25,96,23,3,203]).
  %%  22.375
  %% '''
  -spec temp([byte()]) -> float().
  temp(ID) ->
      grisp_onewire:transaction(fun() ->
          select_device(ID),
  