docs: def get_ADC_value(bus, addr, channel):
      """
      This method selects a channel and initiates conversion
      The ADC operates at 240 SPS (12 bits) with 1x gain
          One shot conversions are used, meaning a wait period is needed
          in order to acquire new data. This is done via a constant poll
          of the ready bit.
      Upon completion, a voltage value is returned to the caller.
  
      Usage - ADC_start(bus, SensorCluster.ADC_addr, channel_to_read)
  
      IMPORTANT NOTE:
          The ADC uses a 2.048V voltage reference
  
      """
      if channel == 1:
          INIT = 0b10000000
      elif channel == 2:
          INIT = 0b10100000
      elif channel == 3:
          INIT = 0b11000000
      elif channel == 4:
          INIT = 0b11100000
      bus.write_byte(addr, INIT)
      data = bus.read_i2c_block_data(addr, 0, 3)
      status = (data[2] & 0b10000000) >> 7
      while(status == 1):
          data = bus.read_i2c_block_data(addr, 0, 3)
          status = (data[2] & 0b10000000) >> 7
      sign = data[0] & 0b00001000
      val = ((data[0] & 0b0000111) << 8) | (data[1])
      if (sign == 1):
          val = (val ^ 0x3ff) + 1  # compute 2s complement for 12 bit val
      # Convert val to a ratiomerical ADC reading
      return float(val) * 2.048 / float(2047)