def start(self, blocking=False):
        """
        Start the interface

        :param blocking: Should the call block until stop() is called
            (default: False)
        :type blocking: bool
        :rtype: None
        """
        self.debug("()")
        # Init GPIO
        # Enable warnings
        GPIO.setwarnings(True)
        # Careful - numbering between different pi version might differ
        if self.gpio_mode == "BOARD":
            GPIO.setmode(GPIO.BOARD)
        else:
            GPIO.setmode(GPIO.BCM)

        # Register people
        try:
            self.changer.on_person_new(self.people)
        except:
            self.exception("Failed to add people to audience")
            raise StartException("Adding people failed")

        # Setup pins
        for gpio in self.gpios:
            GPIO.setup(gpio, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
            GPIO.add_event_detect(
                gpio, GPIO.BOTH,
                callback=self._gpio_callback, bouncetime=self.gpio_bouncetime
            )
        super(GPIODetector, self).start(blocking)