code: async def encoder_config(self, pin_a, pin_b, cb=None, cb_type=None,
                               hall_encoder=False):
          
          # checked when encoder data is returned
          self.hall_encoder = hall_encoder
          data = [pin_a, pin_b]
          if cb:
              self.digital_pins[pin_a].cb = cb
          if cb_type:
              self.digital_pins[pin_a].cb_type = cb_type
  
          await self._send_sysex(PrivateConstants.ENCODER_CONFIG, data)
docs: This command enables the rotary encoder support and will
          enable encoder reporting.
  
          This command is not part of StandardFirmata. For 2 pin + ground
          encoders, FirmataPlus is required to be used for 2 pin rotary encoder,
          and for hell effect wheel encoder support, FirmataPlusRB is required.
  
          Encoder data is retrieved by performing a digital_read from pin a
          (encoder pin_a).
  
          When using 2 hall effect sensors (e.g. 2 wheel robot)
          specify pin_a for 1st encoder and pin_b for 2nd encoder.
  
          :param pin_a: Encoder pin 1.
  
          :param pin_b: Encoder pin 2.
  
          :param cb: callback function to report encoder changes
  
          :param cb_type: Constants.CB_TYPE_DIRECT = direct call or
                          Constants.CB_TYPE_ASYNCIO = asyncio coroutine
  
          :param hall_encoder: wheel hall_encoder - set to
                               True to select hall encoder support support.
  
          :returns: No return value