code: async def get_firmware_version(self):
          
          current_time = time.time()
          if self.query_reply_data.get(PrivateConstants.REPORT_FIRMWARE) == '':
              await self._send_sysex(PrivateConstants.REPORT_FIRMWARE)
              while self.query_reply_data.get(
                      PrivateConstants.REPORT_FIRMWARE) == '':
                  elapsed_time = time.time()
                  if elapsed_time - current_time > 4:
                      return None
                  await asyncio.sleep(self.sleep_tune)
          return self.query_reply_data.get(PrivateConstants.REPORT_FIRMWARE)
docs: This method retrieves the Firmata firmware version
  
          :returns: Firmata firmware version