anchor.diff:      uart:send(State#state.uart, AssignPorts),
       {ok, GetParams} = encode_packet(get_parameters2, 0),
       uart:send(State#state.uart, GetParams),
  -    {next_state, get_parameters2, State};
  +    {next_state, get_parameters2, State, ?DEFAULT_TIMEOUT};
   
   wait_for_hw_version(timeout, State) ->
       {ok, GetParams} = encode_packet(get_parameters, 0),
       uart:send(State#state.uart, GetParams),
  -    {next_state, get_parameters, State};
  +    {next_state, get_parameters, State, ?DEFAULT_TIMEOUT};
   
   wait_for_hw_version({from_widget, received_dmx, _}, State) ->
  -    {next_state, wait_for_hw_version, State}.
  +    {next_state, wait_for_hw_version, State, ?USB_PRO_TIMEOUT}.
   
   get_parameters2({from_widget, get_parameters2, Params},
                   #state{options = Opts} = State) ->
  
positive.code:     uart:send(State#state.uart, SetParams),
      {ok, GetParams} = encode_packet(get_parameters, 0),
      uart:send(State#state.uart, GetParams),
      {next_state, get_parameters, State};
  
  get_parameters2({from_widget, received_dmx, _}, State) ->
      {next_state, get_parameters2, State}.
  
  get_parameters({from_widget, get_parameters, Params},
                  #state{options = Opts} = State) ->
  
negative.code:     {next_state, wait_for_dmx, State};
  
  get_parameters({from_widget, received_dmx, _}, State) ->
      {next_state, get_parameters, State, ?DEFAULT_TIMEOUT}.
  
  wait_for_dmx({from_widget, received_dmx, Data}, State) ->
      {ok, ChangeOnly} = encode_packet(receive_dmx_on_change, on_change_only),
  