MicroPython drivers for the parts Gekko knows
Install a driver straight onto a Pico W or an ESP32 over Wi-Fi, or from a PC with mpremote. Every file is pinned to an upstream commit and checked against its sha256 when the store is built, and only drivers whose licence allows it are hosted here.
- Packages
- 41
- Files
- 73
- Ports
- rp2 · esp32 · esp8266
- Updated
- 2026-11-01
Three ways to install a driver
Each package installs its files into /lib on the board. The licence text is served next to every package but never copied onto the board.
- a
On the board
Connect to Wi-Fi first (
network.WLAN), then at the REPL or in your script:import mip mip.install("https://mygekko.si/mip/bme280") - b
From a PC
With the board on USB and
mpremoteinstalled:mpremote mip install https://mygekko.si/mip/bme280 - c
By name
Point mip at this store's index and use the bare package name:
import mip; mip.install("bme280", index="https://mygekko.si/mip") mpremote mip install --index https://mygekko.si/mip bme280
41 packages, by kind of part
Open a row for an example, the known issues and the exact files. The licence link shows the text each package ships under.
Sensors15
| Package | Drives | Licence, ports | Install on a board, or from a PC |
|---|---|---|---|
| adxl34511cf142 | ADXL345 3-axis accelerometer over I2C Example and notesADXL345(i2c, address=0x53, range=RANGE_2G to RANGE_16G) in full-resolution mode; pass address=0x1D when SDO is high. check_connection() compares the device id with 0xE5.
From zNitche/pico-adxl345 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/adxl345")mpremote mip install https://mygekko.si/mip/adxl345 |
| ahtx0d61a3c0 | AHT10 and AHT20 temperature and humidity sensors over I2C Example and notesClasses AHT10 and AHT20, address 0x38 (an AHT10 with ADR high needs address=0x39). Each property read starts its own measurement and polls the busy bit every 5 ms.
From targetblank/micropython_ahtx0 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/ahtx0")mpremote mip install https://mygekko.si/mip/ahtx0 |
| bh1750a66f11f | BH1750 ambient light sensor (GY-30, GY-302), lux over I2C Example and notesOne function over any machine.I2C; it only imports time. Pass i2c_addr=0x5C when ADDR is high, or mode=bh1750fvi.OP_SINGLE_LRES for the 24 ms low-resolution mode. Each call blocks about 180 ms and returns whole lux. Despite the repository name it is not ESP8266-specific.
From catdog2/mpy_bh1750fvi_esp8266 at | Apache-2.0rp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/bh1750")mpremote mip install https://mygekko.si/mip/bh1750 |
| bme280a9a7080 | BME280 temperature, humidity and pressure sensor over I2C (float and integer versions) Example and notesbme280_float gives floats (C, Pa, %RH); bme280_int gives fixed-point integers. Forced-mode reads. The default address is 0x76; pass address=0x77 for Adafruit boards. Humidity is meaningless on a BMP280.
From robert-hh/BME280 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/bme280")mpremote mip install https://mygekko.si/mip/bme280 |
| bmp28083dfdd6 | BMP280 pressure and temperature sensor over I2C Example and notesThe constructor reads the calibration data and selects the HANDHELD_DYN use case (normal mode) unless use_case=None. Pressure uses Bosch's 64-bit integer formula. I2C only.
From dafvid/micropython-bmp280 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/bmp280")mpremote mip install https://mygekko.si/mip/bmp280 |
| hcsr0417eafe3 | HC-SR04 ultrasonic distance sensor Example and notesdistance_cm() returns a float, distance_mm() an int without float maths. ECHO is a 5 V signal: put a divider or level shifter between it and a 3.3 V board.
From rsc1975/micropython-hcsr04 at | Apache-2.0rp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/hcsr04")mpremote mip install https://mygekko.si/mip/hcsr04 |
| hx711a5502c9 | HX711 load-cell amplifier (24-bit ADC) Example and notesThree interchangeable classes with the same methods (read, tare, get_value, get_units, read_lowpass, power_down, power_up): hx711_gpio on any port, hx711_pio on rp2 (PIO clocking, immune to interrupt latency; pass state_machine= to avoid clashes) and hx711_spi over SPI.
From robert-hh/hx711 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/hx711")mpremote mip install https://mygekko.si/mip/hx711 |
| lis3dhda3b9da | LIS3DH 3-axis accelerometer over I2C Example and notesInstalls the micropython_lis3dh package. Address 0x18; raises RuntimeError unless WHO_AM_I is 0x33; sets 400 Hz, high-resolution mode and block data update.
From jposada202020/MicroPython_LIS3DH at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/lis3dh")mpremote mip install https://mygekko.si/mip/lis3dh |
| mpu6050ae68046 | MPU-6050 6-axis accelerometer and gyroscope (GY-521) over I2C Example and notesimu.py (class MPU6050, the base of the MPU9150/9250 drivers) needs vector3d.py; both are installed. The constructor waits 200 ms, finds the chip at 0x68 or 0x69, wakes it and selects +/-2 g and +/-250 dps. Clones with another WHO_AM_I print a warning and keep working.
From micropython-IMU/micropython-mpu9x50 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/mpu6050")mpremote mip install https://mygekko.si/mip/mpu6050 |
| mq21.0.0 | MQ-2 smoke and combustible gas sensor on an ADC pin Example and notesUndoes the 10k/20k divider that keeps AO under 3.3 V. calibrate() in clean air (ratio 9.83), then ratio and ppm estimates for LPG, CO and smoke from the datasheet curves, meaningful only between 200 and 10000 ppm. Let the heater warm up first. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: mq2.py (6,320 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/mq2")mpremote mip install https://mygekko.si/mip/mq2 |
| rcwl05161.0.0 | RCWL-0516 microwave radar motion sensor on one GPIO Example and notesmotion() reads the output; an optional rising-edge callback with a hold-off time reports new motion. A failing callback is printed and does not switch the IRQ off. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: rcwl0516.py (3,563 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/rcwl0516")mpremote mip install https://mygekko.si/mip/rcwl0516 |
| sgp3045ad46b | SGP30 TVOC and eCO2 air quality sensor over I2C Example and notesThe constructor checks the serial number and feature set and already calls iaq_init(). Measure once a second so the sensor's baseline compensation works.
From alexmrqt/micropython-sgp30 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/sgp30")mpremote mip install https://mygekko.si/mip/sgp30 |
| sht31b1e0ddb | SHT30, SHT31 and SHT35 temperature and humidity sensors over I2C Example and notesget_temp_humi(resolution=R_HIGH, clock_stretch=True, celsius=True) waits 50 ms between the command and the read. The SHT30 and SHT35 share the command set.
From kfricke/micropython-sht31 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/sht31")mpremote mip install https://mygekko.si/mip/sht31 |
| tsl2591cc705df | TSL2591 high dynamic range light sensor over I2C Example and notesAddress 0x29; checks the device id (0x50) and powers on with the light sensor enabled.
From zyltr/TSL2591 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/tsl2591")mpremote mip install https://mygekko.si/mip/tsl2591 |
| veml607586d21ff | VEML6075 UVA/UVB light sensor over I2C (raw counts) Example and notesAddress 0x10. Returns raw counts; the UV-index formula (Vishay application note 84339) is in the upstream main.py example, not in the package. About 59 KB of source with long docstrings, so the first import is slow.
From octaprog7/VEML6075 at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/veml6075")mpremote mip install https://mygekko.si/mip/veml6075 |
Displays and LEDs9
| Package | Drives | Licence, ports | Install on a board, or from a PC |
|---|---|---|---|
| dotstarf4ea122 | APA102 (DotStar) addressable LED strips over SPI Example and notesCalled dotstar here because apa102 is a module frozen into the ESP8266 firmware. Pure Python with no imports: pass a machine.SPI or machine.SoftSPI object. Upstream's own package.json installs the file as dotstar.py; this store keeps micropython_dotstar.py, as the upstream README imports it.
From mattytrentini/micropython-dotstar at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/dotstar")mpremote mip install https://mygekko.si/mip/dotstar |
| ht16k334.3.0 | HT16K33 LED backpacks: 7- and 14-segment displays, 8x8 and bicolour matrices, bar graphs Example and notesVersion 4.3.0. Installs the ht16k33 package: HT16K33Segment, HT16K33SegmentBig, HT16K33Segment14, HT16K33SegmentGen, HT16K33Matrix, HT16K33MatrixColour, HT16K33MatrixFeatherWing, HT16K33MatrixMulti and HT16K33Bar. Default address 0x70.
From smittytone/HT16K33-Python at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/ht16k33")mpremote mip install https://mygekko.si/mip/ht16k33 |
| ili934167c5131 | ILI9341 240x320 SPI TFT displays (drawing only, no touch) Example and notesRotation and mirroring, x/y offsets, shapes, sprites, scrolling, and images read from a flash path. draw_text8x8() uses framebuf's built-in font.
From rdagger/micropython-ili9341 at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/ili9341")mpremote mip install https://mygekko.si/mip/ili9341 |
| lcd16027affb0b | HD44780 character LCDs (16x2, 20x4) on a PCF8574 I2C backpack or wired in parallel Example and notesmachine_i2c_lcd.I2cLcd (PCF8574 backpack) builds on lcd_api.LcdApi. Use address 0x3F on PCF8574A backpacks and I2cLcd(i2c, 0x27, 4, 20) for a 20x4. nodemcu_gpio_lcd.GpioLcd drives a display wired directly in 4-bit or 8-bit mode and, despite its name, is plain machine.Pin code: GpioLcd(rs_pin=Pin(a), enable_pin=Pin(b), d4_pin=Pin(c), d5_pin=Pin(d), d6_pin=Pin(e), d7_pin=Pin(f), num_lines=2, num_columns=16). From dhylands/python_lcd at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/lcd1602")mpremote mip install https://mygekko.si/mip/lcd1602 |
| max721922195dc | MAX7219 8x8 LED matrix modules, chained (FC-16 4-in-1 and similar) Example and notesframebuf drawing (fill, pixel, hline, vline, line, rect, fill_rect, text, scroll, blit) on an internal MONO_HLSB buffer; text() uses framebuf's 8x8 font. The third argument is the number of chained 8x8 modules.
From mcauser/micropython-max7219 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/max7219")mpremote mip install https://mygekko.si/mip/max7219 |
| pcd8544791d423 | PCD8544 (Nokia 5110) 84x48 monochrome LCD over SPI Example and notespcd8544_fb.PCD8544_FB subclasses framebuf.FrameBuffer and works with Peter Hinch's Writer class. pcd8544.py has the minimal PCD8544 class and a PCD8544_FRAMEBUF wrapper; neither file imports the other.
From mcauser/micropython-pcd8544 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/pcd8544")mpremote mip install https://mygekko.si/mip/pcd8544 |
| sh1106fe67423 | SH1106 1.3-inch 128x64 OLED over I2C or SPI Example and notesA framebuf.FrameBuffer subclass that tracks dirty pages for partial updates; call show() after drawing. SH1106_SPI(width, height, spi, dc, res=None, cs=None) for SPI modules. rotate=0/90/180/270, flip(), contrast(), invert() and sleep().
From robert-hh/SH1106 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/sh1106")mpremote mip install https://mygekko.si/mip/sh1106 |
| st7789py7265925 | ST7789 SPI IPS TFT displays (240x240, 240x320, 135x240, 128x128), pure Python Example and notesRuss Hughes' pure-Python driver (not his C firmware module st7789, which is why the package is not called st7789). fill, pixel, line, rect, fill_rect, blit_buffer, bitmap, polygon and hardware scrolling, plus color565() and named colours. Other panel sizes need custom_rotations.
From russhughes/st7789py_mpy at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/st7789py")mpremote mip install https://mygekko.si/mip/st7789py |
| tm16371.3.0 | TM1637 4-digit 7-segment display modules Example and notesVersion 1.3.0 (the module's __version__ and the repository's package.json agree). TM1637Decimal for modules with a dot per digit. CLK and DIO are bit-banged on any GPIO.
From mcauser/micropython-tm1637 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/tm1637")mpremote mip install https://mygekko.si/mip/tm1637 |
Motors and actuators8
| Package | Drives | Licence, ports | Install on a board, or from a PC |
|---|---|---|---|
| l298n1.0.0 | L298N dual H-bridge: two DC motors, direction and PWM speed Example and notesChannels .a and .b take speed -100 to 100, stop() to coast and brake(); PWM at 1 kHz by default. Pull the ENA/ENB jumpers so the PWM pins set the speed. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: l298n.py (5,264 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/l298n")mpremote mip install https://mygekko.si/mip/l298n |
| pca96850fea273 | PCA9685 16-channel PWM and servo boards, and the Adafruit Motor Shield V2 Example and notespca9685.PCA9685 is the core. pca9685_servo.Servos (upstream servo.py, renamed here so it cannot replace Gekko's servo helper) defaults to address 0x40, 50 Hz, 600-2400 us and 180 degrees. motor.DCMotors and stepper.Steppers default to address 0x60 with the Adafruit Motor Shield V2 channel map: motor.DCMotors(machine.I2C(0), address=0x60).speed(0, 2000).
From adafruit/micropython-adafruit-pca9685 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/pca9685")mpremote mip install https://mygekko.si/mip/pca9685 |
| relay1.0.0 | Relay modules: single relays and 2, 4 or 8-channel boards Example and notesactive_low=True by default. The OFF level is set before the pin becomes an output, so the relay does not click at boot. RelayBank drives several channels. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: relay.py (3,832 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/relay")mpremote mip install https://mygekko.si/mip/relay |
| servo1.0.0 | Hobby servos (SG90, MG90S, MG996R) on one PWM pin Example and notes500-2500 us pulses at 50 Hz by default; no pulse is sent until angle() is called. off() stops the pulses and speed() drives continuous-rotation servos. Power the servo from its own 5 V supply. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: servo.py (4,820 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/servo")mpremote mip install https://mygekko.si/mip/servo |
| solenoid1.0.0 | Solenoids switched by a logic-level MOSFET, with an on-time guard Example and notespulse(ms) is capped at max_on_ms (10 s by default) and always ends with the solenoid off, even on Ctrl-C. An optional PWM hold duty follows the initial kick. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: solenoid.py (4,178 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/solenoid")mpremote mip install https://mygekko.si/mip/solenoid |
| stepper_4phase1.0.0 | 28BYJ-48 stepper on a ULN2003 board, or any 4-phase unipolar stepper Example and notesHalf-step, full-step and wave sequences with deadline timing that never rushes to catch up after a stall; turn() and release(). Nominally 4096 half-steps per turn (the real 63.684:1 gearbox gives about 4075.8). Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: stepper_4phase.py (4,816 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/stepper_4phase")mpremote mip install https://mygekko.si/mip/stepper_4phase |
| stepper_stepdir1.0.0 | STEP/DIR stepper drivers (DRV8825, A4988 and other StepStick carriers) Example and notesKeeps the STEP and DIR timing the DRV8825 and A4988 need; enable() and disable(); microstep() sets M0-M2 when they are wired. No acceleration. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: stepper_stepdir.py (6,348 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/stepper_stepdir")mpremote mip install https://mygekko.si/mip/stepper_stepdir |
| tb6612fng1.0.0 | TB6612FNG dual MOSFET motor driver: two DC motors Example and notesSame API as l298n, following Toshiba's truth table. STBY goes HIGH only after every input is off; without a STBY pin, standby() coasts instead. PWM at 20 kHz by default. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: tb6612fng.py (6,037 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/tb6612fng")mpremote mip install https://mygekko.si/mip/tb6612fng |
Modules and input9
| Package | Drives | Licence, ports | Install on a board, or from a PC |
|---|---|---|---|
| ads1x158981f67 | ADS1115, ADS1015, ADS1113 and ADS1114 analog-to-digital converters over I2C Example and notesgain is an index (0 = +/-6.144 V, 1 = +/-4.096 V, 2 = +/-2.048 V and so on). read(rate=4, channel1=0, channel2=None) returns a signed raw count, and raw_to_v() converts it. Continuous and ALERT modes are supported too.
From robert-hh/ads1x15 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/ads1x15")mpremote mip install https://mygekko.si/mip/ads1x15 |
| dfplayerca8b5b2 | DFPlayer Mini MP3 player module over UART Example and notes9600 baud. play(folder, file), stop(), volume(0-30), volume_up() and volume_down(), reset(), is_playing(), get_volume() and get_files_in_folder(). Installs as the package dfplayer/.
From redoxcode/micropython-dfplayer at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/dfplayer")mpremote mip install https://mygekko.si/mip/dfplayer |
| ds32316c4b362 | DS3231 precision real-time clock (ZS-042 module) over I2C Example and notesget_time() and set_time() use time.localtime() tuples (set_time() with no argument copies the board's clock); alarm1 and alarm2 repeat from EVERY_SECOND to EVERY_MONTH; temperature() reads the chip's sensor. Only this file is taken from Peter Hinch's samples repository. The AT24C32 EEPROM on the ZS-042 board is not covered.
From peterhinch/micropython-samples at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/ds3231")mpremote mip install https://mygekko.si/mip/ds3231 |
| matrix_keypad1.0.0 | Matrix keypads (4x4, 3x4 and other sizes) scanned from GPIOs Example and notesRows are open-drain outputs pulled LOW one at a time and columns are pull-up inputs; 20 ms debounce. get_key() reports each press once and pressed() returns every key held. Gekko's own helper. Lines 1-21 of the file are its MIT licence, also served as LICENSE.
From Gekko helper, MIT. Files: matrix_keypad.py (5,081 bytes). package.json | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/matrix_keypad")mpremote mip install https://mygekko.si/mip/matrix_keypad |
| mfrc5223d52d16 | MFRC522 (RC522) 13.56 MHz RFID reader over SPI Example and notesStefan Wendler's driver as extended by Daniel Perron (Pico support, 7- and 10-byte UIDs, NTAG). On rp2 it uses hardware SPI(spi_id, ...). The file has CRLF line endings and is served byte-for-byte.
From danjperron/micropython-mfrc522 at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/mfrc522")mpremote mip install https://mygekko.si/mip/mfrc522 |
| micropygpsf6c2b76 | NMEA sentence parser for UART GPS modules (u-blox NEO-6M and others) Example and notesA pure parser with no machine import: feed it every byte read from the UART. Parses RMC, GGA, VTG, GSA, GSV and GLL sentences from GP, GL and GN talkers.
From inmcm/micropyGPS at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/micropygps")mpremote mip install https://mygekko.si/mip/micropygps |
| pn532a5d8189 | PN532 NFC/RFID reader over SPI (Mifare Classic, NTAG2xx) Example and notesSingle file with no local imports. Set the PN532 board's mode switches to SPI. The constructor waits about 2 s for the chip to wake; an optional reset= Pin pulses RSTPDN. The driver bit-reverses bytes itself, so keep the SPI bus at its default MSB-first mode 0. Supports Mifare Classic authenticate and read, and NTAG2xx write.
From Carglglz/NFC_PN532_SPI at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/pn532")mpremote mip install https://mygekko.si/mip/pn532 |
| rf433ffb12a1 | 433 MHz remote controls: record a remote's codes, then replay them Example and notesPeter Hinch's record-and-replay library: capture each button once with rx.RX and save the pulse trains to JSON, then replay them with tx.TX. The ESP32 transmits with esp32.RMT, the Pico with PIO. There is no Gekko part record for the 433 MHz modules.
From peterhinch/micropython_remote at | MITrp2 · esp32 | import mip; mip.install("https://mygekko.si/mip/rf433")mpremote mip install https://mygekko.si/mip/rf433 |
| rotaryb4c8ce5 | Rotary encoders (KY-040 and similar), interrupt-driven Example and notesrotary.py is the core; import the port file: rotary_irq_rp2 on a Pico, rotary_irq_esp on an ESP32 or ESP8266. The Pyboard file (rotary_irq_pyb.py) is not included.
From miketeachman/micropython-rotary at | MITrp2 · esp32 · esp8266 | import mip; mip.install("https://mygekko.si/mip/rotary")mpremote mip install https://mygekko.si/mip/rotary |
Listed, but not hosted
Only drivers whose licence allows redistribution are hosted: MIT, BSD-2-Clause, BSD-3-Clause, Apache-2.0 and ISC. GPL, D-FSL, unlicensed and unclear drivers are listed under not_hosted with their upstream github: install strings and are never copied to the server. These install straight from their upstream repositories instead.
| Driver | Why it is not hosted | Licence | Install from upstream |
|---|---|---|---|
| vl53l0xpart vl53l0x | VL53L0X laser time-of-flight distance sensor Licence unclear. The BSD-3-Clause LICENSE was added in 2026, but about 500 of the file's 512 non-trivial lines are verbatim from uceeatz/VL53L0X, which has no licence; the new grant can only cover the later changes. A Gekko helper ported from Adafruit_CircuitPython_VL53L0X (MIT), keeping its notice. | BSD-3-Clause (unclear) | import mip; mip.install("github:kevinmcaleer/vl53l0x/vl53l0x.py", version="d71ce30b0efaa4e45a771049056d8c9fdc2755ac")mpremote mip install github:kevinmcaleer/vl53l0x/vl53l0x.py@d71ce30b0efaa4e45a771049056d8c9fdc2755ac |
| fusionno part record | Madgwick sensor fusion (heading, pitch, roll) over any IMU's readings Licence unclear. The repository is MIT, but update() and update_nomag() transliterate x-io's MadgwickAHRS.cs line by line, and that code was published without a licence (x-io's site defaulted to the GPL), so the MIT grant cannot be relied on for the filter. Port x-io's newer Fusion library (github.com/xioTechnologies/Fusion, MIT) as a Gekko helper, keeping x-io's notice. | MIT (unclear) | import mip; mip.install("github:micropython-IMU/micropython-fusion/fusion.py", version="43748e9cc277ed7d17445025f48b774e2cc2288e")mpremote mip install github:micropython-IMU/micropython-fusion/fusion.py@43748e9cc277ed7d17445025f48b774e2cc2288eimport mip; mip.install("github:micropython-IMU/micropython-fusion/deltat.py", version="43748e9cc277ed7d17445025f48b774e2cc2288e")mpremote mip install github:micropython-IMU/micropython-fusion/deltat.py@43748e9cc277ed7d17445025f48b774e2cc2288e |
| epaperpart epaper_213 | Waveshare 2.13-inch e-paper (V4, SSD1680) on a Pico GPL-3.0 is copyleft; the store only redistributes MIT, BSD, Apache-2.0 and ISC drivers. peterhinch/micropython-nano-gui drivers/epaper/pico_epaper_213_v4.py (MIT, needs drivers/boolpalette.py) could be resolved and hosted instead. | GPL-3.0 | import mip; mip.install("github:waveshareteam/Pico_ePaper_Code/python/Pico_ePaper-2.13_V4.py")mpremote mip install github:waveshareteam/Pico_ePaper_Code/python/Pico_ePaper-2.13_V4.py |
| apds9960part apds9960 | APDS-9960 proximity and light sensor (no gestures) GPL-3.0 is copyleft; the store only redistributes MIT, BSD, Apache-2.0 and ISC drivers. | GPL-3.0 | import mip; mip.install("github:rlangoy/uPy_APDS9960/uPy_APDS9960/apds9960LITE.py")mpremote mip install github:rlangoy/uPy_APDS9960/uPy_APDS9960/apds9960LITE.py |
| as608part as608 | AS608 / ZhianTec optical fingerprint sensors over UART D-FSL (German Free Software License) is copyleft; the store only redistributes MIT, BSD, Apache-2.0 and ISC drivers. | D-FSL-1.0 | import mip; mip.install("github:chrisb2/micropython-fingerprint/pyfingerprint.py")mpremote mip install github:chrisb2/micropython-fingerprint/pyfingerprint.py |
