{"id":22345236,"url":"https://github.com/seeed-studio/grove-linux-driver","last_synced_at":"2025-07-30T03:32:18.840Z","repository":{"id":140438733,"uuid":"163935655","full_name":"Seeed-Studio/grove-linux-driver","owner":"Seeed-Studio","description":"Grove linux driver for Grove-Base-Cape","archived":false,"fork":false,"pushed_at":"2025-01-08T08:53:19.000Z","size":219,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-06T01:06:01.556Z","etag":null,"topics":["grove","grove-base-cape","linux-driver"],"latest_commit_sha":null,"homepage":"https://www.seeedstudio.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Seeed-Studio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-03T07:03:27.000Z","updated_at":"2025-01-08T08:53:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"18d18534-9561-4517-a325-312cbeb97f8f","html_url":"https://github.com/Seeed-Studio/grove-linux-driver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Seeed-Studio/grove-linux-driver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seeed-Studio%2Fgrove-linux-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seeed-Studio%2Fgrove-linux-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seeed-Studio%2Fgrove-linux-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seeed-Studio%2Fgrove-linux-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Seeed-Studio","download_url":"https://codeload.github.com/Seeed-Studio/grove-linux-driver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seeed-Studio%2Fgrove-linux-driver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267803984,"owners_count":24146527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grove","grove-base-cape","linux-driver"],"created_at":"2024-12-04T09:17:02.497Z","updated_at":"2025-07-30T03:32:18.829Z","avatar_url":"https://github.com/Seeed-Studio.png","language":"C","readme":"Grove Linux Driver\r\n==================\r\n\r\n  Here is the Grove Linux Driver, currently it only support some grove devices on below platforms:\r\n  - [PocketBeagle](https://beagleboard.org/pocket) with Pocket Beagle Grove Cape\r\n  - [BeagleBone Green](https://www.seeedstudio.com/Grove-Cape-for-BeagleBone-Series-p-1718.html)\r\n  - [BeagleBone Green Wireless](https://www.seeedstudio.com/BeagleBone-Green-Wireless-Development-Board-TI-AM335x-WiFi-B-p-2650.html)\r\n  - SeeedStudio BeagleBone Green Gateway Baseboard\r\n  - [Raspberry Pi](https://www.seeedstudio.com/category/Boards-c-17.html)\r\n\r\n\r\n\r\n\u003cbr\u003e\u003cbr\u003e\r\nInstallation\r\n------------\r\n  Below steps will prepare all grove device tree blob object(.dtbo) to\r\n```/lib/firmware/``` on BB Series or ```/boot/overlays/``` on RPi,\r\nand grove device kernel module(.ko) to ```/lib/modules/\u003ckernel version\u003e/``` or it's sub-folder.\r\n\r\n1. Clone this repo\r\n\r\n   ```bash\r\n   cd\r\n   git clone https://github.com/Seeed-Studio/grove-linux-driver.git\r\n   ```\r\n\r\n2. Begin install\r\n\r\n   ```bash\r\n   cd ~/grove-linux-driver\r\n   sudo ./install.sh\r\n   ```\r\n\r\n\r\n\u003cbr\u003e\u003cbr\u003e\r\nUsage\r\n-----\r\nAfter installation, the driver is prepared well, then we need to enable specific\r\ngrove device in system configuration file.\r\n\r\n#### BB Series\r\n\r\n* Append below line to the configuration file\r\n  [/boot/uEnv.txt](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays):\r\n\r\n  ```bash\r\n\r\n  uboot_overlay_addr\u003cn\u003e=/lib/firmware/\u003cDevice-Tree-Blob-Name\u003e.dtbo\r\n  \r\n  ```\r\n  ```\u003cn\u003e```: is in 0..7 which not be used in the uEnv.txt.  \u003cbr\u003e\r\n  ```\u003cDevice-Tree-Blob-Name\u003e```: refer to [Grove Device Table](#grove-device-table).\r\n\r\n  ***example:***\r\n\r\n\r\n  ```bash\r\n  # If you plugin Grove LED to slot 1057 of Pocket Beagle Grove Cape, \r\n  # and uboot_overlay_addr0 is unused, append the line:\r\n\r\n  uboot_overlay_addr0=/lib/firmware/BB-GPIO-GROVE-LED.dtbo\r\n\r\n  ```\r\n\r\n#### RPi Series\r\n\r\n* Append below line to the configuration file\r\n  [/boot/config.txt](https://github.com/raspberrypi/linux/blob/rpi-4.14.y/arch/arm/boot/dts/overlays/README)\r\n\r\n  ```bash\r\n  \r\n  dtoverlay=\u003cDevice-Tree-Blob-Name\u003e,\u003cparam0\u003e=\u003cvalue0\u003e,\u003cparam1\u003e=\u003cvalue1\u003e,...\r\n  \r\n  ```\r\n  ```\u003cDevice-Tree-Blob-Name\u003e```,```\u003cparamN\u003e```, ```\u003cvalueN\u003e```:\r\n  refer to specific usage in [Grove Device Table](#grove-device-table)\r\n\r\n  ***example:***\r\n\r\n\r\n  ```bash\r\n  # If you connect Grove Button to gpio 5 of Raspberry Pi, append the line:\r\n  \r\n  dtoverlay=gpio-key,gpio=5\r\n  \r\n  # The default keycode is KEY_POWER, so the pressing will result in a power off.\r\n  ```\r\n\r\n\r\n#### User interface\r\n* refer to ```Specific Usage``` of [Grove Device Table](#grove-device-table).\r\n\r\n\r\n\r\n\u003cbr\u003e\u003cbr\u003e\r\nGrove Device Table\r\n------------------\r\n\u003cdiv\u003e\r\n  \u003ctable border=\"0\"\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003cth\u003eGrove Devices\u003c/th\u003e\r\n      \u003cth\u003eDevice Tree Blob\u003c/th\u003e\r\n      \u003cth\u003eDevice Driver\u003c/th\u003e\r\n      \u003cth\u003eSpecific Usage\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Red-LED-p-1142.html\"\u003eRed LED\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Green-LED-p-1144.html\"\u003eGreen LED\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Purple-LED-3m-p-1143.html\"\u003ePurple LED\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-White-LED-p-1140.html\"\u003eWhite LED\u003c/a\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003e\r\n        BB : \u003ca href=\"dts/bbb/BB-GPIO-GROVE-LED.dts\"\u003eBB-GPIO-GROVE-LED\u003c/a\u003e\u003cbr\u003e\r\n        RPi: \u003ca href=\"dts/rpi/grove-led-overlay.dts\"\u003egrove-led\u003c/a\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003einner \u003ca href=\"https://github.com/beagleboard/linux/blob/master/drivers/leds/leds-gpio.c\"\u003edrivers/leds/leds-gpio.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/grove-led/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/s/Grove-Button-p-766.html\"\u003eButton\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\r\n        BB : \u003ca href=\"dts/bbb/BB-GPIO-GROVE-BUTTON.dts\"\u003eBB-GPIO-GROVE-BUTTON\u003c/a\u003e\u003cbr\u003e\r\n        RPi: \u003ca href=\"https://github.com/raspberrypi/linux/blob/rpi-4.14.y/arch/arm/boot/dts/overlays/gpio-key-overlay.dts\"\u003egpio-key\u003c/a\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003einner \u003ca href=\"https://github.com/beagleboard/linux/blob/master/drivers/input/keyboard/gpio_keys.c\"\u003edrivers/input/keyboard/gpio_keys.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/grove-button/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-Ultrasonic-Ranger-p-960.html\"\u003eUltrasonic Ranger\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-GPIO-HCSR04.dts\"\u003eBB-GPIO-HCSR04\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/hcsr04/hcsr04.c\"\u003esrc/hcsr04/hcsr04.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/hcsr04/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-Temp-Humi-Barometer-Sensor-BME280-p-2653.html\"\u003eTemp\u0026Humi\u0026Barometer Sensor (BME280)\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C1-BME280.dts\"\u003eBB-I2C1-BME280\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003einner \u003ca href=\"https://github.com/beagleboard/linux/blob/master/drivers/iio/pressure/bmp280-i2c.c\"\u003edrivers/iio/pressure/bmp280-i2c.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/bme280/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-16-x-2-LCD-Black-on-Red-p-3197.html\"\u003e16 x 2 LCD (Black on Red)\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-16-x-2-LCD-Black-on-Yellow-p-3198.html\"\u003e16 x 2 LCD (Black on Yellow)\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-16-x-2-LCD-White-on-Blue-p-3196.html\"\u003e16 x 2 LCD (White on Blue)\u003c/a\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C1-JHD1802.dts\"\u003eBB-I2C1-JHD1802\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/hd44780/hd44780-i2c.c\"\u003esrc/hd44780/hd44780-i2c.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/hd44780/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-3-Axis-Digital-Accelerometer-16-p-1156.html\"\u003e3-Axis Digital Accelerometer (±16g)\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C2-ADXL34X.dts\"\u003eBB-I2C2-ADXL34X\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/adxl34x/adxl34x-i2c.c\"\u003esrc/adxl34x/adxl34x-i2c.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/adxl34x/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-3-Axis-Digital-Accelerometer-400-p-1897.html\"\u003e3-Axis Digital Accelerometer (±400g)\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C2-LIS331DLH.dts\"\u003eBB-I2C2-LIS331DLH\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003einner \u003ca href=\"https://github.com/beagleboard/linux/blob/master/drivers/iio/accel/st_accel_i2c.c\"\u003edrivers/iio/accel/st_accel_i2c.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/lis3lv02d/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-SHT31-p-2655.html\"\u003eTemperature \u0026 Humidity Sensor (SHT31)\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C2-SHT3X.dts\"\u003eBB-I2C2-SHT3X\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/sht3x/sht3x.c\"\u003esrc/sht3x/sht3x.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/sht3x/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\u003ca href=\"https://www.seeedstudio.com/Grove-Time-of-Flight-Distance-Sensor-VL53L0-p-3086.html\"\u003eTime of Flight Distance Sensor (VL53L0X)\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-I2C2-VL53L0X.dts\"\u003eBB-I2C2-VL53L0X\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/vl53l0x/vl53l0x.c\"\u003esrc/vl53l0x/vl53l0x.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/vl53l0x/Readme.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e   \r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Triple-Color-E-Ink-Display-1-54-p-2890.html\"\u003eTriple Color E-Ink Display 1.54\"\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Triple-Color-E-Ink-Display-2-13-p-2889.html\"\u003eTriple Color E-Ink Display 2.13\"\u003c/a\u003e\u003cbr\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-UART4-E-INK.dts\"\u003eBB-UART4-E-INK\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/e-ink/eink-tty.c\"\u003esrc/e-ink/eink-tty.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr align=\"center\"\u003e\r\n      \u003ctd\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Chainable-RGB-LED-p-850.html\"\u003eChainable RGB LED\u003c/a\u003e\u003cbr\u003e\r\n        \u003ca href=\"https://www.seeedstudio.com/Grove-Chainable-RGB-Led-V2-0.html\"\u003eChainable RGB Led V2.0\u003c/a\u003e\u003cbr\u003e\r\n      \u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"dts/bbb/BB-GPIO-P9813.dts\"\u003eBB-GPIO-P9813\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/p9813/p9813.c\"\u003esrc/p9813/p9813.c\u003c/a\u003e\u003c/td\u003e\r\n      \u003ctd\u003e\u003ca href=\"src/p9813/README.md\"\u003eClick\u003c/a\u003e\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/table\u003e\r\n\u003c/div\u003e\r\n\r\n**Note:**  \r\n  ```inner``` means the device driver integreted into linux kernel image,  \r\nno need driver source code in this repo.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseeed-studio%2Fgrove-linux-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseeed-studio%2Fgrove-linux-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseeed-studio%2Fgrove-linux-driver/lists"}