gitextract_4majm_s_/ ├── .chglog/ │ ├── CHANGELOG.gobot.md │ ├── README.md │ └── config_gobot.yml ├── .circleci/ │ └── config.yml ├── .github/ │ ├── FUNDING.yml │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ └── golangci-lint.yml ├── .gitignore ├── .golangci.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── MIGRATION.md ├── Makefile ├── README.md ├── adaptor.go ├── api/ │ ├── api.go │ ├── api_test.go │ ├── basic_auth.go │ ├── basic_auth_test.go │ ├── cors.go │ ├── cors_test.go │ ├── doc.go │ ├── helpers_test.go │ └── robeaux/ │ └── robeaux.go ├── appveyor.yml ├── commander.go ├── commander_test.go ├── connection.go ├── debug.go ├── device.go ├── doc.go ├── driver.go ├── drivers/ │ ├── aio/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── aio_driver.go │ │ ├── aio_driver_test.go │ │ ├── analog_actuator_driver.go │ │ ├── analog_actuator_driver_test.go │ │ ├── analog_sensor_driver.go │ │ ├── analog_sensor_driver_test.go │ │ ├── doc.go │ │ ├── grove_drivers.go │ │ ├── grove_drivers_test.go │ │ ├── grove_temperature_sensor_driver.go │ │ ├── grove_temperature_sensor_driver_test.go │ │ ├── helpers_test.go │ │ ├── temperature_sensor_driver.go │ │ ├── temperature_sensor_driver_test.go │ │ ├── thermalzone_driver.go │ │ └── thermalzone_driver_test.go │ ├── ble/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── battery_driver.go │ │ ├── battery_driver_test.go │ │ ├── ble_driver.go │ │ ├── ble_driver_test.go │ │ ├── device_information_driver.go │ │ ├── device_information_driver_test.go │ │ ├── doc.go │ │ ├── generic_access_driver.go │ │ ├── generic_access_driver_test.go │ │ ├── microbit/ │ │ │ ├── LICENSE │ │ │ ├── accelerometer_driver.go │ │ │ ├── accelerometer_driver_test.go │ │ │ ├── button_driver.go │ │ │ ├── button_driver_test.go │ │ │ ├── doc.go │ │ │ ├── io_pin_driver.go │ │ │ ├── io_pin_driver_test.go │ │ │ ├── led_driver.go │ │ │ ├── led_driver_test.go │ │ │ ├── magnetometer_driver.go │ │ │ ├── magnetometer_driver_test.go │ │ │ ├── temperature_driver.go │ │ │ └── temperature_driver_test.go │ │ ├── parrot/ │ │ │ ├── LICENSE │ │ │ ├── doc.go │ │ │ ├── minidrone_driver.go │ │ │ └── minidrone_driver_test.go │ │ ├── serial_port.go │ │ ├── serial_port_test.go │ │ ├── sphero/ │ │ │ ├── LICENSE │ │ │ ├── doc.go │ │ │ ├── sphero_bb8_driver.go │ │ │ ├── sphero_bb8_driver_test.go │ │ │ ├── sphero_ollie_driver.go │ │ │ ├── sphero_ollie_driver_test.go │ │ │ ├── sphero_sprkplus_driver.go │ │ │ └── sphero_sprkplus_driver_test.go │ │ └── testutil/ │ │ └── testutil.go │ ├── common/ │ │ ├── bit/ │ │ │ ├── bit.go │ │ │ └── bit_test.go │ │ ├── mfrc522/ │ │ │ ├── mfrc522_connectionwrapper.go │ │ │ ├── mfrc522_pcd.go │ │ │ ├── mfrc522_pcd_register.go │ │ │ ├── mfrc522_pcd_test.go │ │ │ └── mfrc522_picc.go │ │ └── spherocommon/ │ │ ├── spherocommon.go │ │ ├── spherocommon_packets.go │ │ └── spherocommon_test.go │ ├── gpio/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── aip1640_driver.go │ │ ├── aip1640_driver_test.go │ │ ├── button_driver.go │ │ ├── button_driver_test.go │ │ ├── buzzer_driver.go │ │ ├── buzzer_driver_test.go │ │ ├── direct_pin_driver.go │ │ ├── direct_pin_driver_test.go │ │ ├── doc.go │ │ ├── easy_driver.go │ │ ├── easy_driver_test.go │ │ ├── gpio_driver.go │ │ ├── gpio_driver_test.go │ │ ├── grove_drivers.go │ │ ├── grove_drivers_test.go │ │ ├── hcsr04_driver.go │ │ ├── hcsr04_driver_test.go │ │ ├── hd44780_driver.go │ │ ├── hd44780_driver_test.go │ │ ├── helpers_test.go │ │ ├── led_driver.go │ │ ├── led_driver_test.go │ │ ├── max7219_driver.go │ │ ├── max7219_driver_test.go │ │ ├── motor_driver.go │ │ ├── motor_driver_test.go │ │ ├── pir_motion_driver.go │ │ ├── pir_motion_driver_test.go │ │ ├── relay_driver.go │ │ ├── relay_driver_test.go │ │ ├── rgb_led_driver.go │ │ ├── rgb_led_driver_test.go │ │ ├── servo_driver.go │ │ ├── servo_driver_test.go │ │ ├── stepper_driver.go │ │ ├── stepper_driver_test.go │ │ ├── tm1638_driver.go │ │ └── tm1638_driver_test.go │ ├── i2c/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adafruit1109_driver.go │ │ ├── adafruit1109_driver_test.go │ │ ├── adafruit2327_driver.go │ │ ├── adafruit2327_driver_test.go │ │ ├── adafruit2348_driver.go │ │ ├── adafruit2348_driver_test.go │ │ ├── ads1x15_driver.go │ │ ├── ads1x15_driver_1015_test.go │ │ ├── ads1x15_driver_1115_test.go │ │ ├── ads1x15_driver_test.go │ │ ├── adxl345_driver.go │ │ ├── adxl345_driver_test.go │ │ ├── bh1750_driver.go │ │ ├── bh1750_driver_test.go │ │ ├── blinkm_driver.go │ │ ├── blinkm_driver_test.go │ │ ├── bme280_driver.go │ │ ├── bme280_driver_test.go │ │ ├── bmp180_driver.go │ │ ├── bmp180_driver_test.go │ │ ├── bmp280_driver.go │ │ ├── bmp280_driver_test.go │ │ ├── bmp388_driver.go │ │ ├── bmp388_driver_test.go │ │ ├── ccs811_driver.go │ │ ├── ccs811_driver_test.go │ │ ├── doc.go │ │ ├── drv2605l_driver.go │ │ ├── drv2605l_driver_test.go │ │ ├── generic_driver.go │ │ ├── generic_driver_test.go │ │ ├── grove_drivers.go │ │ ├── grove_drivers_test.go │ │ ├── grovepi_driver.go │ │ ├── grovepi_driver_test.go │ │ ├── helpers_test.go │ │ ├── hmc5883l_driver.go │ │ ├── hmc5883l_driver_test.go │ │ ├── hmc6352_driver.go │ │ ├── hmc6352_driver_test.go │ │ ├── i2c_config.go │ │ ├── i2c_config_test.go │ │ ├── i2c_connection.go │ │ ├── i2c_connection_test.go │ │ ├── i2c_driver.go │ │ ├── i2c_driver_test.go │ │ ├── ina3221_driver.go │ │ ├── ina3221_driver_test.go │ │ ├── jhd1313m1_driver.go │ │ ├── jhd1313m1_driver_test.go │ │ ├── l3gd20h_driver.go │ │ ├── l3gd20h_driver_test.go │ │ ├── lidarlite_driver.go │ │ ├── lidarlite_driver_test.go │ │ ├── mcp23017_driver.go │ │ ├── mcp23017_driver_test.go │ │ ├── mfrc522_driver.go │ │ ├── mma7660_driver.go │ │ ├── mma7660_driver_test.go │ │ ├── mpl115a2_driver.go │ │ ├── mpl115a2_driver_test.go │ │ ├── mpu6050_driver.go │ │ ├── mpu6050_driver_test.go │ │ ├── pca9501_driver.go │ │ ├── pca9501_driver_test.go │ │ ├── pca953x_driver.go │ │ ├── pca953x_driver_test.go │ │ ├── pca9685_driver.go │ │ ├── pca9685_driver_test.go │ │ ├── pcf8583_driver.go │ │ ├── pcf8583_driver_test.go │ │ ├── pcf8591_driver.go │ │ ├── pcf8591_driver_test.go │ │ ├── sht2x_driver.go │ │ ├── sht2x_driver_test.go │ │ ├── sht3x_driver.go │ │ ├── sht3x_driver_test.go │ │ ├── ssd1306_driver.go │ │ ├── ssd1306_driver_test.go │ │ ├── th02_driver.go │ │ ├── th02_driver_test.go │ │ ├── tsl2561_driver.go │ │ ├── tsl2561_driver_test.go │ │ ├── wiichuck_driver.go │ │ ├── wiichuck_driver_test.go │ │ ├── yl40_driver.go │ │ └── yl40_driver_test.go │ ├── onewire/ │ │ ├── README.md │ │ ├── ds18b20_driver.go │ │ ├── ds18b20_driver_test.go │ │ ├── helpers_test.go │ │ ├── onewire_connection.go │ │ ├── onewire_connection_test.go │ │ ├── onewire_driver.go │ │ └── onewire_driver_test.go │ ├── serial/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── megapi/ │ │ │ └── motor_driver.go │ │ ├── neurosky/ │ │ │ ├── LICENSE │ │ │ ├── mindwave_driver.go │ │ │ └── mindwave_driver_test.go │ │ ├── serial_driver.go │ │ ├── serial_driver_test.go │ │ ├── sphero/ │ │ │ ├── LICENSE │ │ │ ├── sphero_driver.go │ │ │ └── sphero_driver_test.go │ │ └── testutil/ │ │ └── testutil.go │ └── spi/ │ ├── README.md │ ├── apa102.go │ ├── apa102_test.go │ ├── doc.go │ ├── helpers_test.go │ ├── mcp3002.go │ ├── mcp3002_test.go │ ├── mcp3004.go │ ├── mcp3004_test.go │ ├── mcp3008.go │ ├── mcp3008_test.go │ ├── mcp3202.go │ ├── mcp3202_test.go │ ├── mcp3204.go │ ├── mcp3204_test.go │ ├── mcp3208.go │ ├── mcp3208_test.go │ ├── mcp3304.go │ ├── mcp3304_test.go │ ├── mfrc522_driver.go │ ├── mfrc522_driver_test.go │ ├── spi_config.go │ ├── spi_connection.go │ ├── spi_connection_test.go │ ├── spi_driver.go │ ├── spi_driver_test.go │ ├── ssd1306_driver.go │ └── ssd1306_driver_test.go ├── event.go ├── eventer.go ├── eventer_test.go ├── examples/ │ ├── ardrone.go │ ├── ardrone_face_tracking.go │ ├── ardrone_ps3.go │ ├── audio.go │ ├── batty.go │ ├── beaglebone_basic_direct_pin.go │ ├── beaglebone_blink.go │ ├── beaglebone_blink_usr_led.go │ ├── beaglebone_blinkm.go │ ├── beaglebone_button.go │ ├── beaglebone_grove_accelerometer.go │ ├── beaglebone_led_brightness.go │ ├── beaglebone_led_brightness_with_analog_input.go │ ├── beaglepocket_direct_pin.go │ ├── bebop.go │ ├── bebop.sdp │ ├── bebop_ps3.go │ ├── bebop_ps3_video.go │ ├── bebop_rtp_video.go │ ├── bleclient_battery.go │ ├── bleclient_bb8-collision.go │ ├── bleclient_bb8.go │ ├── bleclient_device_info.go │ ├── bleclient_firmata_blink.go │ ├── bleclient_firmata_curie_imu.go │ ├── bleclient_generic_access.go │ ├── bleclient_microbit_accelerometer.go │ ├── bleclient_microbit_blink.go │ ├── bleclient_microbit_buttons.go │ ├── bleclient_microbit_buttons_leds.go │ ├── bleclient_microbit_io_button.go │ ├── bleclient_microbit_led.go │ ├── bleclient_microbit_magnetometer.go │ ├── bleclient_microbit_temperature.go │ ├── bleclient_minidrone.go │ ├── bleclient_minidrone_events.go │ ├── bleclient_minidrone_mambo_ps3.go │ ├── bleclient_minidrone_ps3.go │ ├── bleclient_multiple_generic.go │ ├── bleclient_multiple_info.go │ ├── bleclient_ollie.go │ ├── bleclient_ollie_boost.go │ ├── bleclient_ollie_crazy.go │ ├── bleclient_ollie_mqtt.go │ ├── bleclient_ollie_multiple.go │ ├── bleclient_ollie_roll.go │ ├── bleclient_ollie_spin.go │ ├── bleclient_sprkplus.go │ ├── bleclient_sprkplus_collision.go │ ├── chip_blink.go │ ├── chip_blinkm.go │ ├── chip_button.go │ ├── chip_button_led.go │ ├── chip_drv2605l.go │ ├── chip_grove_accelerometer.go │ ├── chip_grove_lcd.go │ ├── chip_mpu6050.go │ ├── chip_tsl2561.go │ ├── chip_wiichuck.go │ ├── digispark_api.go │ ├── digispark_blink.go │ ├── digispark_blinkm.go │ ├── digispark_driver.go │ ├── digispark_led_brightness.go │ ├── digispark_mpl115a2.go │ ├── digispark_pca9501.go │ ├── digispark_servo.go │ ├── dragonboard_button.go │ ├── edison_blink.go │ ├── edison_blink_without_all_gobot_framework.go │ ├── edison_blinkm.go │ ├── edison_bme280.go │ ├── edison_button.go │ ├── edison_button_led.go │ ├── edison_button_led_api.go │ ├── edison_grove_accelerometer.go │ ├── edison_grove_buzzer.go │ ├── edison_grove_lcd.go │ ├── edison_grove_light_sensor.go │ ├── edison_grove_piezo_vibration.go │ ├── edison_grove_rotary_sensor.go │ ├── edison_grove_sound_sensor.go │ ├── edison_grove_temperature_sensor.go │ ├── edison_led_brightness.go │ ├── edison_led_brightness_with_analog_input.go │ ├── edison_miniboard_grove_accelerometer.go │ ├── every_done.go │ ├── firmata_adxl345.go │ ├── firmata_aip1640.go │ ├── firmata_blink.go │ ├── firmata_blink_api.go │ ├── firmata_blink_metal.go │ ├── firmata_blink_robot.go │ ├── firmata_blinkm.go │ ├── firmata_bme280.go │ ├── firmata_bmp180.go │ ├── firmata_bmp280.go │ ├── firmata_button.go │ ├── firmata_buzzer.go │ ├── firmata_cat_toy.go │ ├── firmata_curie_imu.go │ ├── firmata_curie_imu_shock_detect.go │ ├── firmata_curie_imu_step_counter.go │ ├── firmata_curie_imu_tap_detect.go │ ├── firmata_direct_pin.go │ ├── firmata_gpio_max7219.go │ ├── firmata_grove_lcd.go │ ├── firmata_grove_sound_sensor.go │ ├── firmata_hmc6352.go │ ├── firmata_integration.go │ ├── firmata_led_brightness.go │ ├── firmata_led_brightness_with_analog_input.go │ ├── firmata_lidarlite.go │ ├── firmata_metal_button.go │ ├── firmata_mma7660.go │ ├── firmata_motor.go │ ├── firmata_mpl115a2.go │ ├── firmata_mpu6050.go │ ├── firmata_pca9685.go │ ├── firmata_pir_motion.go │ ├── firmata_rgb_led.go │ ├── firmata_servo.go │ ├── firmata_ssd1306.go │ ├── firmata_temp36.go │ ├── firmata_tm1638.go │ ├── firmata_travis.go │ ├── firmata_wiichuck.go │ ├── gopigo3.go │ ├── gopigo3_grove_button.go │ ├── gopigo3_grove_lcd.go │ ├── gopigo3_grove_light_sensor.go │ ├── gopigo3_led_brightness.go │ ├── gopigo3_servo.go │ ├── haarcascade_frontalface_alt.xml │ ├── hello.go │ ├── hello_api.go │ ├── hello_api_auth.go │ ├── hello_api_custom.go │ ├── hello_api_video.go │ ├── holystone_hs200.go │ ├── jetson-nano_blink.go │ ├── jetson-nano_servo.go │ ├── joule_blink.go │ ├── joule_blinkm.go │ ├── joule_grove_lcd.go │ ├── joule_grove_rotary_sensor.go │ ├── joule_led_brightness.go │ ├── joule_led_brightness_with_analog_input.go │ ├── joule_leds.go │ ├── joystick_ps3.go │ ├── joystick_ps4.go │ ├── joystick_ps5.go │ ├── joystick_xbox360.go │ ├── joystick_xbox360_rock_band_drums.go │ ├── joystick_xboxone.go │ ├── keyboard.go │ ├── keyboard_mqtt.go │ ├── leap_motion.go │ ├── leap_motion_gestures.go │ ├── leap_motion_hands.go │ ├── leap_servos.go │ ├── leap_sphero.go │ ├── mavlink.go │ ├── metal_button.go │ ├── mqtt_driver_ping.go │ ├── mqtt_firmata_blink.go │ ├── mqtt_ping.go │ ├── nanopct6_direct_pin.go │ ├── nanopct6_ds18b20.go │ ├── nanopct6_servo.go │ ├── nanopct6_thermalzone.go │ ├── nanopct6_yl40.go │ ├── nanopi_button.go │ ├── nanopi_direct_pin.go │ ├── nanopi_direct_pin_event.go │ ├── nanopi_led_brightness.go │ ├── nanopi_pca9533.go │ ├── nats.go │ ├── nats_driver_ping.go │ ├── opencv_face_detect.go │ ├── opencv_window.go │ ├── orangepi5pro_direct_pin.go │ ├── orangepi5pro_servo.go │ ├── orangepi5pro_thermalzone.go │ ├── particle_api.go │ ├── particle_blink.go │ ├── particle_button.go │ ├── particle_events.go │ ├── particle_function.go │ ├── particle_led_brightness.go │ ├── particle_variable.go │ ├── pebble.go │ ├── pebble_accelerometer.go │ ├── raspi_adafruit2327_servo.go │ ├── raspi_adafruit2348_dcmotor.go │ ├── raspi_adafruit2348_stepper.go │ ├── raspi_ads1015.go │ ├── raspi_blink.go │ ├── raspi_blinkm.go │ ├── raspi_button.go │ ├── raspi_ccs811.go │ ├── raspi_direct_pin.go │ ├── raspi_direct_pin_event.go │ ├── raspi_generic.go │ ├── raspi_grove_pi_blink.go │ ├── raspi_grove_pi_button.go │ ├── raspi_grove_pi_dht.go │ ├── raspi_grove_pi_rotary.go │ ├── raspi_grove_pi_ultrasonic.go │ ├── raspi_grove_rotary_sensor.go │ ├── raspi_hcsr04.go │ ├── raspi_hmc5883l.go │ ├── raspi_ina3221.go │ ├── raspi_led_brightness.go │ ├── raspi_mcp3008.go │ ├── raspi_pca9533.go │ ├── raspi_servo.go │ ├── raspi_sht2x.go │ ├── raspi_sht3x.go │ ├── raspi_ssd1306.go │ ├── raspi_ssd1306spi.go │ ├── raspi_stepper_move.go │ ├── raspi_thermalzone.go │ ├── rock64_direct_pin.go │ ├── rock64_yl40.go │ ├── serialport_megapi_motor.go │ ├── serialport_mindwave.go │ ├── serialport_sphero.go │ ├── serialport_sphero_api.go │ ├── serialport_sphero_calibration.go │ ├── serialport_sphero_conways.go │ ├── serialport_sphero_dpad.go │ ├── serialport_sphero_master.go │ ├── serialport_sphero_multiple.go │ ├── square.go │ ├── square_fire.go │ ├── tello.go │ ├── tello_facetracker.go │ ├── tello_keyboard.go │ ├── tello_opencv.go │ ├── tello_ps3.go │ ├── tello_video.go │ ├── tinkerboard2_direct_pin_bin_counter.go │ ├── tinkerboard2_yl40.go │ ├── tinkerboard_adafruit1109_lcd_keys.go │ ├── tinkerboard_ads1115.go │ ├── tinkerboard_adxl345.go │ ├── tinkerboard_blink.go │ ├── tinkerboard_bme280.go │ ├── tinkerboard_bmp280.go │ ├── tinkerboard_button.go │ ├── tinkerboard_direct_pin.go │ ├── tinkerboard_ds18b20.go │ ├── tinkerboard_generic.go │ ├── tinkerboard_grove_lcd.go │ ├── tinkerboard_hcsr04.go │ ├── tinkerboard_hmc5883l.go │ ├── tinkerboard_mfcrc522gpio.go │ ├── tinkerboard_mfcrc522spi.go │ ├── tinkerboard_motor.go │ ├── tinkerboard_mpl115a2.go │ ├── tinkerboard_mpu6050.go │ ├── tinkerboard_pca9533.go │ ├── tinkerboard_pcf8583_clock.go │ ├── tinkerboard_pcf8583_counter.go │ ├── tinkerboard_pcf8591.go │ ├── tinkerboard_thermalzone.go │ ├── up2_lcd.go │ ├── up2_leds.go │ ├── wifi_firmata_analog_input.go │ ├── wifi_firmata_blink.go │ ├── zero_analog.go │ ├── zero_direct_pin.go │ ├── zero_servo.go │ └── zero_yl40.go ├── go.mod ├── go.sum ├── helpers_test.go ├── manager.go ├── manager_test.go ├── platforms/ │ ├── adaptors/ │ │ ├── analogpinsadaptor.go │ │ ├── analogpinsadaptor_test.go │ │ ├── analogpinsadaptoroptions.go │ │ ├── analogpinsadaptoroptions_test.go │ │ ├── analogpintranslator.go │ │ ├── analogpintranslator_test.go │ │ ├── busnumbervalidator.go │ │ ├── busnumbervalidator_test.go │ │ ├── digitalpinsadaptor.go │ │ ├── digitalpinsadaptor_test.go │ │ ├── digitalpinsadaptoroptions.go │ │ ├── digitalpinsadaptoroptions_test.go │ │ ├── digitalpintranslator.go │ │ ├── digitalpintranslator_test.go │ │ ├── i2cbusadaptor.go │ │ ├── i2cbusadaptor_test.go │ │ ├── i2cbusadaptoroptions.go │ │ ├── i2cbusadaptoroptions_test.go │ │ ├── onewirebusadaptor.go │ │ ├── onewirebusadaptor_test.go │ │ ├── onewirebusadaptoroptions.go │ │ ├── onewirebusadaptoroptions_test.go │ │ ├── piblasterpwm_pin.go │ │ ├── piblasterpwm_pin_test.go │ │ ├── pwmpinsadaptor.go │ │ ├── pwmpinsadaptor_test.go │ │ ├── pwmpinsadaptoroptions.go │ │ ├── pwmpinsadaptoroptions_test.go │ │ ├── pwmpintranslator.go │ │ ├── pwmpintranslator_test.go │ │ ├── spibusadaptor.go │ │ ├── spibusadaptor_test.go │ │ ├── spibusadaptoroptions.go │ │ └── spibusadaptoroptions_test.go │ ├── asus/ │ │ ├── tinkerboard/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── adaptor.go │ │ │ ├── adaptor_test.go │ │ │ ├── doc.go │ │ │ └── pinmap.go │ │ └── tinkerboard2/ │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ └── pinmap.go │ ├── audio/ │ │ ├── LICENSE │ │ ├── audio_adaptor.go │ │ ├── audio_adaptor_test.go │ │ ├── audio_driver.go │ │ ├── audio_driver_test.go │ │ └── doc.go │ ├── beagleboard/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── beaglebone/ │ │ │ ├── adaptor.go │ │ │ ├── adaptor_test.go │ │ │ └── pinmap.go │ │ ├── doc.go │ │ └── pocketbeagle/ │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ └── pinmap.go │ ├── bleclient/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ble_client_adaptor.go │ │ ├── ble_client_adaptor_options.go │ │ ├── ble_client_adaptor_options_test.go │ │ ├── ble_client_adaptor_test.go │ │ ├── btwrapper.go │ │ ├── doc.go │ │ ├── helpers_test.go │ │ ├── uuid.go │ │ └── uuid_test.go │ ├── chip/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── chip_adaptor.go │ │ ├── chip_adaptor_test.go │ │ ├── chip_pinmap.go │ │ ├── chippro_adaptor.go │ │ ├── chippro_adaptor_test.go │ │ ├── chippro_pinmap.go │ │ └── doc.go │ ├── dexter/ │ │ ├── README.md │ │ ├── dexter.go │ │ └── gopigo3/ │ │ ├── README.md │ │ ├── driver.go │ │ └── driver_test.go │ ├── digispark/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── digispark_adaptor.go │ │ ├── digispark_adaptor_test.go │ │ ├── digispark_i2c.go │ │ ├── digispark_i2c_test.go │ │ ├── doc.go │ │ ├── littleWire.c │ │ ├── littleWire.go │ │ ├── littleWire.h │ │ ├── littleWire_servo.c │ │ ├── littleWire_servo.h │ │ ├── littleWire_util.c │ │ ├── littleWire_util.h │ │ ├── opendevice.c │ │ └── opendevice.h │ ├── dji/ │ │ ├── README.md │ │ ├── dji.go │ │ └── tello/ │ │ ├── README.md │ │ ├── crc.go │ │ ├── driver.go │ │ ├── driver_test.go │ │ ├── pitch.go │ │ └── pitch_test.go │ ├── dragonboard/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── dragonboard_adaptor.go │ │ └── dragonboard_adaptor_test.go │ ├── firmata/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ble_firmata_adaptor.go │ │ ├── ble_firmata_adaptor_test.go │ │ ├── client/ │ │ │ ├── client.go │ │ │ ├── client_test.go │ │ │ └── examples/ │ │ │ └── blink.go │ │ ├── doc.go │ │ ├── firmata_adaptor.go │ │ ├── firmata_adaptor_test.go │ │ ├── firmata_i2c.go │ │ ├── firmata_i2c_test.go │ │ ├── tcp_firmata_adaptor.go │ │ └── tcp_firmata_adaptor_test.go │ ├── friendlyelec/ │ │ ├── nanopct6/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── adaptor.go │ │ │ ├── adaptor_test.go │ │ │ ├── doc.go │ │ │ └── pinmap.go │ │ └── nanopi/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── neo_pinmap.go │ ├── holystone/ │ │ ├── README.md │ │ ├── holystone.go │ │ └── hs200/ │ │ ├── README.md │ │ ├── doc.go │ │ ├── hs200_driver.go │ │ └── hs200_driver_test.go │ ├── intel-iot/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── curie/ │ │ │ ├── README.md │ │ │ ├── doc.go │ │ │ ├── imu_driver.go │ │ │ └── imu_driver_test.go │ │ ├── edison/ │ │ │ ├── README.md │ │ │ ├── arduino_pinmap.go │ │ │ ├── doc.go │ │ │ ├── edison_adaptor.go │ │ │ ├── edison_adaptor_test.go │ │ │ ├── miniboard_pinmap.go │ │ │ └── sparkfun_pinmap.go │ │ ├── intel-iot.go │ │ └── joule/ │ │ ├── README.md │ │ ├── doc.go │ │ ├── joule_adaptor.go │ │ ├── joule_adaptor_test.go │ │ └── tuchuck_pinmap.go │ ├── jetson/ │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ ├── joystick/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin/ │ │ │ └── scanner.go │ │ ├── configs/ │ │ │ ├── dualsense.json │ │ │ ├── dualshock3.json │ │ │ ├── dualshock4.json │ │ │ ├── magicseer1.json │ │ │ ├── shield.json │ │ │ └── xbox360_power_a_mini_proex.json │ │ ├── doc.go │ │ ├── events.go │ │ ├── joystick_adaptor.go │ │ ├── joystick_adaptor_test.go │ │ ├── joystick_driver.go │ │ ├── joystick_driver_test.go │ │ ├── joystick_dualsense.go │ │ ├── joystick_dualshock3_darwin.go │ │ ├── joystick_dualshock3_linux.go │ │ ├── joystick_dualshock3_windows.go │ │ ├── joystick_dualshock4_darwin.go │ │ ├── joystick_dualshock4_linux.go │ │ ├── joystick_dualshock4_windows.go │ │ ├── joystick_nintendo_joycon.go │ │ ├── joystick_shield.go │ │ ├── joystick_tflight_hotas_x.go │ │ ├── joystick_xbox360.go │ │ ├── joystick_xbox360_rock_band_drums.go │ │ ├── joystick_xboxone.go │ │ └── test_helper.go │ ├── keyboard/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── keyboard.go │ │ ├── keyboard_driver.go │ │ ├── keyboard_driver_test.go │ │ └── keyboard_test.go │ ├── leap/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── leap_motion_adaptor.go │ │ ├── leap_motion_adaptor_test.go │ │ ├── leap_motion_driver.go │ │ ├── leap_motion_driver_test.go │ │ ├── parser.go │ │ └── test/ │ │ └── support/ │ │ └── example_frame.json │ ├── mavlink/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── common/ │ │ │ ├── common.go │ │ │ ├── mavlink.go │ │ │ └── version.go │ │ ├── doc.go │ │ ├── mavlink_adaptor.go │ │ ├── mavlink_adaptor_test.go │ │ ├── mavlink_driver.go │ │ ├── mavlink_driver_test.go │ │ ├── mavlink_udp_adaptor.go │ │ └── mavlink_udp_adaptor_test.go │ ├── megapi/ │ │ ├── README.md │ │ └── doc.go │ ├── microbit/ │ │ ├── LICENSE │ │ ├── README.md │ │ └── doc.go │ ├── mqtt/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── mqtt_adaptor.go │ │ ├── mqtt_adaptor_test.go │ │ ├── mqtt_driver.go │ │ └── mqtt_driver_test.go │ ├── nats/ │ │ ├── README.md │ │ ├── doc.go │ │ ├── nats_adaptor.go │ │ ├── nats_adaptor_test.go │ │ ├── nats_driver.go │ │ ├── nats_driver_test.go │ │ └── test_certs/ │ │ ├── catest-key.pem │ │ ├── catest.pem │ │ ├── client-cert.pem │ │ ├── client-key.pem │ │ ├── server-cert.pem │ │ └── server-key.pem │ ├── neurosky/ │ │ ├── LICENSE │ │ └── README.md │ ├── opencv/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── camera_driver.go │ │ ├── camera_driver_test.go │ │ ├── doc.go │ │ ├── haarcascade_frontalface_alt.xml │ │ ├── helpers_test.go │ │ ├── utils.go │ │ ├── utils_test.go │ │ ├── window_driver.go │ │ └── window_driver_test.go │ ├── orangepi/ │ │ └── orangepi5pro/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ ├── parrot/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ardrone/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── ardrone_adaptor.go │ │ │ ├── ardrone_adaptor_test.go │ │ │ ├── ardrone_driver.go │ │ │ ├── ardrone_driver_test.go │ │ │ ├── doc.go │ │ │ ├── pitch.go │ │ │ ├── pitch_test.go │ │ │ └── test_helper.go │ │ ├── bebop/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bebop_adaptor.go │ │ │ ├── bebop_adaptor_test.go │ │ │ ├── bebop_driver.go │ │ │ ├── bebop_driver_test.go │ │ │ ├── client/ │ │ │ │ ├── client.go │ │ │ │ ├── constants.go │ │ │ │ ├── examples/ │ │ │ │ │ ├── ff.conf │ │ │ │ │ ├── takeoff.go │ │ │ │ │ └── video.go │ │ │ │ └── networkframegenerator.go │ │ │ ├── doc.go │ │ │ ├── pitch.go │ │ │ ├── pitch_test.go │ │ │ └── test_helper.go │ │ ├── minidrone/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── doc.go │ │ └── parrot.go │ ├── particle/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ └── doc.go │ ├── pebble/ │ │ ├── README.md │ │ ├── doc.go │ │ ├── pebble_adaptor.go │ │ ├── pebble_adaptor_test.go │ │ ├── pebble_driver.go │ │ └── pebble_driver_test.go │ ├── pine64/ │ │ └── rock64/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ ├── radxa/ │ │ ├── rockpi/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── adaptor.go │ │ │ ├── adaptor_test.go │ │ │ ├── doc.go │ │ │ └── pinmap.go │ │ └── zero/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ ├── raspi/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ ├── serialport/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_options.go │ │ ├── adaptor_options_test.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── helpers_test.go │ ├── sphero/ │ │ ├── bb8/ │ │ │ ├── LICENSE │ │ │ └── README.md │ │ ├── ollie/ │ │ │ ├── LICENSE │ │ │ └── README.md │ │ ├── sphero/ │ │ │ ├── LICENSE │ │ │ └── README.md │ │ └── sprkplus/ │ │ ├── LICENSE │ │ └── README.md │ └── upboard/ │ ├── README.md │ ├── up2/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── adaptor.go │ │ ├── adaptor_test.go │ │ ├── doc.go │ │ └── pinmap.go │ └── upboard.go ├── robot.go ├── robot_test.go ├── robot_work.go ├── robot_work_test.go ├── system/ │ ├── GPIO.md │ ├── I2C.md │ ├── ONEWIRE.md │ ├── PWM.md │ ├── README.md │ ├── analogpin_sysfs.go │ ├── analogpin_sysfs_test.go │ ├── digitalpin_bench_test.go │ ├── digitalpin_cdev.go │ ├── digitalpin_cdev_test.go │ ├── digitalpin_mock.go │ ├── digitalpin_poll.go │ ├── digitalpin_poll_test.go │ ├── digitalpin_sysfs.go │ ├── digitalpin_sysfs_test.go │ ├── digitalpinaccess.go │ ├── digitalpinaccess_test.go │ ├── digitalpinoptions.go │ ├── digitalpinoptions_test.go │ ├── doc.go │ ├── fs.go │ ├── fs_mock.go │ ├── fs_mock_test.go │ ├── fs_test.go │ ├── i2c_device.go │ ├── i2c_device_test.go │ ├── onewiredevice_sysfs.go │ ├── onewiredevice_sysfs_test.go │ ├── pwmpin_sysfs.go │ ├── pwmpin_sysfs_test.go │ ├── spi_gpio.go │ ├── spi_gpio_test.go │ ├── spi_mock.go │ ├── spi_periphio.go │ ├── spiaccess.go │ ├── spiaccess_test.go │ ├── syscall.go │ ├── syscall_mock.go │ ├── sysfsfileaccess.go │ ├── system.go │ ├── system_test.go │ ├── systemoptions.go │ └── systemoptions_test.go ├── utils.go └── utils_test.go