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:async_recv(Uart, 4),
      NewOpts = maps:remove(device, Opts),
      NewState = #state{uart = Uart, options = NewOpts},
      {ok, wait_for_hw_version, NewState, ?USB_PRO_TIMEOUT};
  
  init(Opts) ->
      Dev = "/dev",
  