docs: def setup(self):
          """Initialize the driver by setting up GPIO interrupts
          and periodic statistics processing. """
          # Initialize the statistics variables.
          self.radiation_count = 0
          self.noise_count = 0
          self.count = 0
          # Initialize count_history[].
          self.count_history = [0] * HISTORY_LENGTH
          self.history_index = 0
          # Init measurement time.
          self.previous_time = millis()
          self.previous_history_time = millis()
          self.duration = 0
          # Init the GPIO context.
          GPIO.setup(self.radiation_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
          GPIO.setup(self.noise_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
          # Register local callbacks.
          GPIO.add_event_detect(
              self.radiation_pin, GPIO.FALLING, callback=self._on_radiation
          )
          GPIO.add_event_detect(self.noise_pin, GPIO.FALLING, callback=self._on_noise)
          # Enable the timer for processing the statistics periodically.
          self._enable_timer()
          return self