anchor.diff:      {next_state, wait_for_dmx, State};
   
   get_parameters({from_widget, received_dmx, _}, State) ->
  -    {next_state, get_parameters, 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),
  
positive.code:          wait_for_dmx/2, wait_for_dmx_change/2]).
  
  -record(state, {uart, options = #{}, dmxin = none}).
  
  -type enttec_widget_opts() :: #{device => file:filename()}.
  
  
negative.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, ?DEFAULT_TIMEOUT};
  
  get_parameters2({from_widget, received_dmx, _}, State) ->
      {next_state, get_parameters2, State, ?DEFAULT_TIMEOUT}.
  
  get_parameters({from_widget, get_parameters, Params},
                  #state{options = Opts} = State) ->
  