├── .github └── workflows │ ├── build.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── README.txt ├── adafruit_circuitpython_community_bundle_100_large.png ├── build.sh ├── circuitpython_community_auto_library_list.md ├── circuitpython_community_library_list.md ├── requirements.txt ├── update-submodules.sh ├── update_scripts ├── update_linux.sh └── update_macosx.command └── works_in_progress.md /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build CI 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | test: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Set up Python 3 10 | uses: actions/setup-python@v4 11 | with: 12 | python-version: 3.x 13 | - name: Versions 14 | run: | 15 | python3 --version 16 | - uses: actions/checkout@v3 17 | with: 18 | submodules: true 19 | - name: Fetch correct submodule shas 20 | run: git submodule foreach 'git fetch --tags --depth 1 origin $sha1 && git checkout -q $sha1' 21 | - name: Install deps 22 | run: | 23 | sudo apt-get install -y gettext gawk 24 | pip install -r requirements.txt 25 | - name: Library version 26 | run: git describe --dirty --always --tags 27 | - name: Build assets 28 | run: ./build.sh 29 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release Actions 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | upload-release-assets: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Translate Repo Name For Build Tools filename_prefix 12 | id: repo-name 13 | run: | 14 | echo "repo-name=$( 15 | echo ${{ github.repository }} | 16 | awk -F '\/' '{ print tolower($2) }' | 17 | tr '_' '-' 18 | )" >> $GITHUB_OUTPUT 19 | - name: Set up Python 3 20 | uses: actions/setup-python@v4 21 | with: 22 | python-version: 3.x 23 | - name: Versions 24 | run: | 25 | python3 --version 26 | - uses: actions/checkout@v3 27 | with: 28 | submodules: true 29 | - name: Fetch correct submodule shas 30 | run: git submodule foreach 'git fetch --tags --depth 1 origin $sha1 && git checkout -q $sha1' 31 | - name: Install deps 32 | run: | 33 | sudo apt-get install -y gettext gawk 34 | pip install -r requirements.txt 35 | - name: Package Folder Prefix For circuitpython-build-tools (Community Bundle Specific) 36 | id: pkg-folder 37 | run: | 38 | echo prefix=$( 39 | ls -RUx | 40 | gawk -F '\n' '{ match($1, /(drivers|helpers)\/(.+)\/(.+)\:/, arr) ; if (length(arr[0]) > 0 && match(arr[3], arr[2]) > 0) printf "%s, ", arr[3] }' | 41 | gawk '{ trimmed = substr($0, 1, length($0) - 2) ; print "\"" trimmed "\"" }' 42 | ) >> $GITHUB_OUTPUT 43 | - name: Build assets 44 | run: circuitpython-build-bundles --filename_prefix ${{ steps.repo-name.outputs.repo-name }} --library_location libraries --library_depth 2 --package_folder_prefix ${{ steps.pkg-folder.outputs.prefix }} 45 | - name: Upload Release Assets 46 | uses: shogo82148/actions-upload-release-asset@v1 47 | with: 48 | asset_path: "bundles/*" 49 | github_token: ${{ secrets.GITHUB_TOKEN }} 50 | upload_url: ${{ github.event.release.upload_url }} 51 | - name: Upload Assets To AWS S3 52 | env: 53 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 54 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 55 | run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bundles/ s3://adafruit-circuit-python/bundles/community --recursive --no-progress --region us-east-1" 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/* 2 | .env 3 | bundles 4 | build_deps 5 | build-circuitpython* 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libraries/helpers/example"] 2 | path = libraries/helpers/example 3 | url = https://github.com/tannewt/CircuitPython_Example.git 4 | [submodule "libraries/drivers/hcsr04"] 5 | path = libraries/drivers/hcsr04 6 | url = https://github.com/mmabey/CircuitPython_HCSR04.git 7 | [submodule "libraries/drivers/adafruit_soundboard"] 8 | path = libraries/drivers/adafruit_soundboard 9 | url = https://github.com/mmabey/Adafruit_Soundboard.git 10 | [submodule "libraries/helpers/dotstar_featherwing"] 11 | path = libraries/helpers/dotstar_featherwing 12 | url = https://github.com/circuitpython/circuitPython_dotstar_featherwing.git 13 | [submodule "libraries/helpers/nonblocking_timer"] 14 | path = libraries/helpers/nonblocking_timer 15 | url = https://github.com/Angeleno-Tech/nonblocking_timer.git 16 | [submodule "libraries/drivers/sh1106"] 17 | path = libraries/drivers/sh1106 18 | url = https://github.com/winneymj/CircuitPython_SH1106 19 | [submodule "libraries/drivers/slight_tlc5957"] 20 | path = libraries/drivers/slight_tlc5957 21 | url = https://github.com/s-light/slight_CircuitPython_TLC5957.git 22 | [submodule "libraries/drivers/tmp75"] 23 | path = libraries/drivers/tmp75 24 | url = https://github.com/barbudor/CircuitPython_TMP75.git 25 | [submodule "libraries/drivers/ina3221"] 26 | path = libraries/drivers/ina3221 27 | url = https://github.com/barbudor/CircuitPython_INA3221.git 28 | [submodule "libraries/drivers/qwiicjoystick"] 29 | path = libraries/drivers/qwiicjoystick 30 | url = https://github.com/fourstix/Sparkfun_CircuitPython_QwiicJoystick.git 31 | [submodule "libraries/drivers/qwiicrelay"] 32 | path = libraries/drivers/qwiicrelay 33 | url = https://github.com/fourstix/Sparkfun_CircuitPython_QwiicRelay.git 34 | [submodule "libraries/drivers/qwiictwist"] 35 | path = libraries/drivers/qwiictwist 36 | url = https://github.com/fourstix/Sparkfun_CircuitPython_QwiicTwist.git 37 | [submodule "libraries/drivers/qwiickeypad"] 38 | path = libraries/drivers/qwiickeypad 39 | url = https://github.com/fourstix/Sparkfun_CircuitPython_QwiicKeypad 40 | [submodule "libraries/drivers/qwiicas3935"] 41 | path = libraries/drivers/qwiicas3935 42 | url = https://github.com/fourstix/Sparkfun_CircuitPython_QwiicAS3935.git 43 | [submodule "libraries/drivers/lis2dh12"] 44 | path = libraries/drivers/lis2dh12 45 | url = https://github.com/electronut/Electronutlabs_CircuitPython_LIS2DH12.git 46 | [submodule "libraries/drivers/ltr329als01"] 47 | path = libraries/drivers/ltr329als01 48 | url = https://github.com/electronut/Electronutlabs_CircuitPython_LTR329ALS01.git 49 | [submodule "libraries/drivers/ili9163"] 50 | path = libraries/drivers/ili9163 51 | url = https://github.com/electronut/Electronutlabs_CircuitPython_ILI9163 52 | [submodule "libraries/drivers/serlcd"] 53 | path = libraries/drivers/serlcd 54 | url = https://github.com/fourstix/Sparkfun_CircuitPython_SerLCD.git 55 | [submodule "libraries/helpers/ifttt"] 56 | path = libraries/helpers/ifttt 57 | url = https://github.com/benevpi/CIRCUITPYTHON_ifttt.git 58 | [submodule "libraries/drivers/nrf24l01"] 59 | path = libraries/drivers/nrf24l01 60 | url = https://github.com/2bndy5/CircuitPython_nRF24L01.git 61 | [submodule "libraries/drivers/i2cencoderlibv21"] 62 | path = libraries/drivers/i2cencoderlibv21 63 | url = https://github.com/bwshockley/CircuitPython-i2cEncoderLibV21.git 64 | [submodule "libraries/drivers/mitutoyo"] 65 | path = libraries/drivers/mitutoyo 66 | url = https://github.com/vifino/CircuitPython-mitutoyo.git 67 | [submodule "libraries/helpers/base64"] 68 | path = libraries/helpers/base64 69 | url = https://github.com/jimbobbennett/CircuitPython_Base64 70 | [submodule "libraries/helpers/HMAC"] 71 | path = libraries/helpers/HMAC 72 | url = https://github.com/jimbobbennett/CircuitPython_HMAC 73 | [submodule "libraries/helpers/parse"] 74 | path = libraries/helpers/parse 75 | url = https://github.com/jimbobbennett/CircuitPython_Parse 76 | [submodule "libraries/helpers/AzureCustomVision_Prediction"] 77 | path = libraries/helpers/AzureCustomVision_Prediction 78 | url = https://github.com/jimbobbennett/CircuitPython_AzureCustomVision_Prediction 79 | [submodule "libraries/helpers/gamblor21_ahrs"] 80 | path = libraries/helpers/gamblor21_ahrs 81 | url = https://github.com/gamblor21/Gamblor21_CircuitPython_AHRS.git 82 | [submodule "libraries/drivers/dynamixel"] 83 | path = libraries/drivers/dynamixel 84 | url = https://github.com/hierophect/Hierophect_Circuitpython_Dynamixel.git 85 | [submodule "libraries/drivers/ltr559"] 86 | path = libraries/drivers/ltr559 87 | url = https://github.com/pimoroni/Pimoroni_CircuitPython_LTR559.git 88 | [submodule "libraries/helpers/udecimal"] 89 | path = libraries/helpers/udecimal 90 | url = https://github.com/jepler/Jepler_CircuitPython_udecimal.git 91 | [submodule "libraries/helpers/discordbot"] 92 | path = libraries/helpers/discordbot 93 | url = https://github.com/2231puppy/CircuitPython_DiscordBot.git 94 | [submodule "libraries/drivers/mics6814"] 95 | path = libraries/drivers/mics6814 96 | url = https://github.com/pimoroni/Pimoroni_CircuitPython_MICS6814.git 97 | [submodule "libraries/helpers/circuitpython_display_frame"] 98 | path = libraries/helpers/circuitpython_display_frame 99 | url = https://github.com/FoamyGuy/CircuitPython_Display_Frame.git 100 | [submodule "libraries/drivers/at42qt1070"] 101 | path = libraries/drivers/at42qt1070 102 | url = https://github.com/skerr92/at42qt-acorn-python.git 103 | [submodule "libraries/drivers/wiichuck"] 104 | path = libraries/drivers/wiichuck 105 | url = https://github.com/jfurcean/CircuitPython_WiiChuck.git 106 | [submodule "libraries/drivers/as3935"] 107 | path = libraries/drivers/as3935 108 | url = https://github.com/BiffoBear/CircuitPython_AS3935.git 109 | [submodule "libraries/drivers/bteve"] 110 | path = libraries/drivers/bteve 111 | url = https://github.com/jamesbowman/CircuitPython_bteve.git 112 | [submodule "libraries/drivers/gc9a01"] 113 | path = libraries/drivers/gc9a01 114 | url = https://github.com/tylercrumpton/CircuitPython_GC9A01.git 115 | [submodule "libraries/helpers/PiperBlocklyLibrary"] 116 | path = libraries/helpers/PiperBlocklyLibrary 117 | url = https://github.com/buildwithpiper/PiperBlocklyLibrary.git 118 | [submodule "libraries/helpers/arrowline"] 119 | path = libraries/helpers/arrowline 120 | url = https://github.com/jposada202020/CircuitPython_ArrowLine.git 121 | [submodule "libraries/helpers/candlesticks"] 122 | path = libraries/helpers/candlesticks 123 | url = https://github.com/jposada202020/CircuitPython_Candlesticks.git 124 | [submodule "libraries/helpers/schedule"] 125 | path = libraries/helpers/schedule 126 | url = https://github.com/cognitivegears/CircuitPython_Schedule.git 127 | [submodule "libraries/helpers/morsecode"] 128 | path = libraries/helpers/morsecode 129 | url = https://github.com/jposada202020/CircuitPython_MorseCode.git 130 | [submodule "libraries/drivers/tca9555"] 131 | path = libraries/drivers/tca9555 132 | url = https://github.com/lesamouraipourpre/Community_CircuitPython_TCA9555.git 133 | [submodule "libraries/helpers/styles"] 134 | path = libraries/helpers/styles 135 | url = https://github.com/jposada202020/CircuitPython_styles 136 | [submodule "libraries/drivers/74hc165"] 137 | path = libraries/drivers/74hc165 138 | url = https://github.com/WoolseyWorkshop/WoolseyWorkshop_CircuitPython_74HC165.git 139 | [submodule "libraries/drivers/trellism4_extended"] 140 | path = libraries/drivers/trellism4_extended 141 | url = https://github.com/arofarn/CircuitPython_TrellisM4_extended.git 142 | [submodule "libraries/drivers/i2c_button"] 143 | path = libraries/drivers/i2c_button 144 | url = https://github.com/gmparis/CircuitPython_I2C_Button.git 145 | [submodule "libraries/drivers/bluepad32"] 146 | path = libraries/drivers/bluepad32 147 | url = https://github.com/ricardoquesada/bluepad32-circuitpython.git 148 | [submodule "libraries/helpers/asynccp"] 149 | path = libraries/helpers/asynccp 150 | url = https://github.com/WarriorOfWire/CircuitPython_async.git 151 | [submodule "libraries/helpers/csv"] 152 | path = libraries/helpers/csv 153 | url = https://github.com/tekktrik/CircuitPython_CSV.git 154 | [submodule "libraries/helpers/nvm_helper"] 155 | path = libraries/helpers/nvm_helper 156 | url = https://github.com/FoamyGuy/Foamyguy_CircuitPython_nvm_helper.git 157 | [submodule "libraries/helpers/ansi_escape_code"] 158 | path = libraries/helpers/ansi_escape_code 159 | url = https://github.com/s-light/CircuitPython_ansi_escape_code.git 160 | [submodule "libraries/helpers/nonblocking_serialinput"] 161 | path = libraries/helpers/nonblocking_serialinput 162 | url = https://github.com/s-light/CircuitPython_nonblocking_serialinput.git 163 | [submodule "libraries/helpers/functools"] 164 | path = libraries/helpers/functools 165 | url = https://github.com/tekktrik/CircuitPython_functools.git 166 | [submodule "libraries/drivers/ticstepper"] 167 | path = libraries/drivers/ticstepper 168 | url = https://github.com/tekktrik/CircuitPython_TicStepper.git 169 | [submodule "libraries/drivers/bbq10keyboard"] 170 | path = libraries/drivers/bbq10keyboard 171 | url = https://github.com/solderparty/arturo182_CircuitPython_BBQ10Keyboard.git 172 | [submodule "libraries/drivers/nau7802"] 173 | path = libraries/drivers/nau7802 174 | url = https://github.com/CedarGroveStudios/CircuitPython_NAU7802.git 175 | [submodule "libraries/drivers/hx711"] 176 | path = libraries/drivers/hx711 177 | url = https://github.com/fivesixzero/CircuitPython_HX711.git 178 | [submodule "libraries/helpers/tzdb"] 179 | path = libraries/helpers/tzdb 180 | url = https://github.com/evindunn/circuitpython_tzdb.git 181 | [submodule "libraries/drivers/lcd1602"] 182 | path = libraries/drivers/lcd1602 183 | url = https://github.com/Neradoc/Circuitpython_Waveshare_LCD1602.git 184 | [submodule "libraries/drivers/qwiicquadsolidstaterelay"] 185 | path = libraries/drivers/qwiicquadsolidstaterelay 186 | url = https://github.com/gbeland/CircuitPython_Sparkfun_QwiicQuadSolidStateRelay.git 187 | [submodule "libraries/helpers/palettefader"] 188 | path = libraries/helpers/palettefader 189 | url = https://github.com/CedarGroveStudios/CircuitPython_PaletteFader.git 190 | [submodule "libraries/drivers/drv8830"] 191 | path = libraries/drivers/drv8830 192 | url = https://github.com/CedarGroveStudios/CircuitPython_DRV8830.git 193 | [submodule "libraries/helpers/rangeslicer"] 194 | path = libraries/helpers/rangeslicer 195 | url = https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer.git 196 | [submodule "libraries/helpers/palettefilter"] 197 | path = libraries/helpers/palettefilter 198 | url = https://github.com/Cedargrovestudios/circuitpython_paletteFilter.git 199 | [submodule "libraries/drivers/rda5807"] 200 | path = libraries/drivers/rda5807 201 | url = https://github.com/tinkeringtech/CircuitPython_rda5807.git 202 | [submodule "libraries/drivers/ad5245"] 203 | path = libraries/drivers/ad5245 204 | url = https://github.com/cedargrovestudios/CircuitPython_AD5245.git 205 | [submodule "libraries/drivers/ad9833"] 206 | path = libraries/drivers/ad9833 207 | url = https://github.com/CedarGroveStudios/CircuitPython_AD9833.git 208 | [submodule "libraries/helpers/shadowwatcher"] 209 | path = libraries/helpers/shadowwatcher 210 | url = https://github.com/cedargrovestudios/circuitpython_shadowwatcher.git 211 | [submodule "libraries/helpers/punkconsole"] 212 | path = libraries/helpers/punkconsole 213 | url = https://github.com/cedargrovestudios/circuitpython_punkconsole.git 214 | [submodule "libraries/helpers/airqualitytools"] 215 | path = libraries/helpers/airqualitytools 216 | url = https://github.com/cedargrovestudios/circuitpython_airqualitytools.git 217 | [submodule "libraries/helpers/temperaturetools"] 218 | path = libraries/helpers/temperaturetools 219 | url = https://github.com/cedargrovestudios/circuitpython_temperaturetools.git 220 | [submodule "libraries/helpers/dst_adjuster"] 221 | path = libraries/helpers/dst_adjuster 222 | url = https://github.com/cedargrovestudios/circuitpython_dst_adjuster 223 | [submodule "libraries/helpers/leapyear"] 224 | path = libraries/helpers/leapyear 225 | url = https://github.com/cedargrovestudios/circuitpython_leapyear 226 | [submodule "libraries/drivers/rm3100"] 227 | path = libraries/drivers/rm3100 228 | url = https://github.com/furbrain/CircuitPython_RM3100.git 229 | [submodule "libraries/helpers/colorfader"] 230 | path = libraries/helpers/colorfader 231 | url = https://github.com/CedarGroveStudios/CircuitPython_ColorFader.git 232 | [submodule "libraries/helpers/touchcalibrator"] 233 | path = libraries/helpers/touchcalibrator 234 | url = https://github.com/CedarGroveStudios/CircuitPython_TouchCalibrator.git 235 | [submodule "libraries/helpers/rgb_spectrumtools"] 236 | path = libraries/helpers/rgb_spectrumtools 237 | url = https://github.com/CedarGroveStudios/CircuitPython_RGB_SpectrumTools.git 238 | [submodule "libraries/helpers/midi_tools"] 239 | path = libraries/helpers/midi_tools 240 | url = https://github.com/CedarGroveStudios/CircuitPython_MIDI_Tools.git 241 | [submodule "libraries/helpers/ohmslaw"] 242 | path = libraries/helpers/ohmslaw 243 | url = https://github.com/CedarGroveStudios/CircuitPython_OhmsLaw.git 244 | [submodule "libraries/drivers/seeed_xiao_nrf52840"] 245 | path = libraries/drivers/seeed_xiao_nrf52840 246 | url = https://github.com/furbrain/CircuitPython_seeed_xiao_nRF52840.git 247 | [submodule "libraries/drivers/df1201s"] 248 | path = libraries/drivers/df1201s 249 | url = https://github.com/mindwidgets/Mindwidgets_CircuitPython_DF1201S.git 250 | [submodule "libraries/drivers/paj7620"] 251 | path = libraries/drivers/paj7620 252 | url = https://github.com/deshipu/circuitpython-paj7620.git 253 | [submodule "libraries/helpers/mag_cal"] 254 | path = libraries/helpers/mag_cal 255 | url = https://github.com/furbrain/CircuitPython_mag_cal.git 256 | [submodule "libraries/drivers/laser_at"] 257 | path = libraries/drivers/laser_at 258 | url = https://github.com/furbrain/CircuitPython_laser_at.git 259 | [submodule "libraries/helpers/paletteslice"] 260 | path = libraries/helpers/paletteslice 261 | url = https://github.com/CedarGroveStudios/CircuitPython_PaletteSlice.git 262 | [submodule "libraries/drivers/jled-circuitpython"] 263 | path = libraries/drivers/jled 264 | url = https://github.com/jandelgado/jled-circuitpython 265 | [submodule "libraries/helpers/uuidv4"] 266 | path = libraries/helpers/uuidv4 267 | url = https://github.com/DerBroader71/circuitpython_uuid4.git 268 | [submodule "libraries/helpers/equalizer"] 269 | path = libraries/helpers/equalizer 270 | url = https://github.com/jposada202020/CircuitPython_equalizer.git 271 | [submodule "libraries/helpers/color_picker"] 272 | path = libraries/helpers/color_picker 273 | url = https://github.com/jposada202020/CircuitPython_color_picker.git 274 | [submodule "libraries/drivers/gpio_expander"] 275 | path = libraries/drivers/gpio_expander 276 | url = https://github.com/gpongelli/CircuitPython_gpio_expander.git 277 | [submodule "libraries/helpers/noise"] 278 | path = libraries/helpers/noise 279 | url = https://github.com/todbot/CircuitPython_Noise.git 280 | [submodule "libraries/helpers/uboxplot"] 281 | path = libraries/helpers/uboxplot 282 | url = https://github.com/jposada202020/CircuitPython-UBoxplot.git 283 | [submodule "libraries/helpers/uplot"] 284 | path = libraries/helpers/uplot 285 | url = https://github.com/jposada202020/CircuitPython_uplot.git 286 | [submodule "libraries/drivers/pcf85063a"] 287 | path = libraries/drivers/pcf85063a 288 | url = https://github.com/bablokb/circuitpython-pcf85063a.git 289 | [submodule "libraries/helpers/async_button"] 290 | path = libraries/helpers/async_button 291 | url = https://github.com/furbrain/CircuitPython_async_button.git 292 | [submodule "libraries/helpers/gauge"] 293 | path = libraries/helpers/gauge 294 | url = https://github.com/jposada202020/CircuitPython_gauge.git 295 | [submodule "libraries/drivers/ad5293"] 296 | path = libraries/drivers/ad5293 297 | url = https://github.com/CedarGroveStudios/CircuitPython_AD5293.git 298 | [submodule "libraries/helpers/async_buzzer"] 299 | path = libraries/helpers/async_buzzer 300 | url = https://github.com/furbrain/CircuitPython_async_buzzer.git 301 | [submodule "libraries/helpers/simple_dial"] 302 | path = libraries/helpers/simple_dial 303 | url = https://github.com/jposada202020/CircuitPython_simple_dial.git 304 | [submodule "libraries/helpers/mcp23017_scanner"] 305 | path = libraries/helpers/mcp23017_scanner 306 | url = https://github.com/Neradoc/CircuitPython_mcp23017_Scanner 307 | [submodule "libraries/helpers/displayio_listselect"] 308 | path = libraries/helpers/displayio_listselect 309 | url = https://github.com/FoamyGuy/CircuitPython_DisplayIO_ListSelect.git 310 | [submodule "libraries/helpers/multi_keypad"] 311 | path = libraries/helpers/multi_keypad 312 | url = https://github.com/Neradoc/CircuitPython_Multi_Keypad 313 | [submodule "libraries/drivers/tm1637_display"] 314 | path = libraries/drivers/tm1637_display 315 | url = https://github.com/Neradoc/CircuitPython_tm1637_display 316 | [submodule "libraries/drivers/laser_egismos"] 317 | path = libraries/drivers/laser_egismos 318 | url = https://github.com/furbrain/CircuitPython_laser_egismos.git 319 | [submodule "libraries/drivers/cirque_pinnacle"] 320 | path = libraries/drivers/cirque_pinnacle 321 | url = https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle.git 322 | [submodule "libraries/helpers/absolute_mouse"] 323 | path = libraries/helpers/absolute_mouse 324 | url = https://github.com/Neradoc/CircuitPython_Absolute_Mouse 325 | [submodule "libraries/drivers/m5stack_unit8"] 326 | path = libraries/drivers/m5stack_unit8 327 | url = https://github.com/Neradoc/CircuitPython_m5stack_unit8 328 | [submodule "libraries/helpers/slider"] 329 | path = libraries/helpers/slider 330 | url = https://github.com/jposada202020/CircuitPython_slider.git 331 | [submodule "libraries/drivers/axp192"] 332 | path = libraries/drivers/axp192 333 | url = https://github.com/CDarius/CircuitPython_AXP192.git 334 | [submodule "libraries/helpers/scales"] 335 | path = libraries/helpers/scales 336 | url = https://github.com/jposada202020/CircuitPython_scales.git 337 | [submodule "libraries/helpers/display_ht16k33"] 338 | path = libraries/helpers/display_ht16k33 339 | url = https://github.com/jposada202020/CircuitPython_DISPLAY_HT16K33.git 340 | [submodule "libraries/drivers/ps2controller"] 341 | path = libraries/drivers/ps2controller 342 | url = https://github.com/todbot/CircuitPython_PS2Controller.git 343 | [submodule "libraries/drivers/ltc166x"] 344 | path = libraries/drivers/ltc166x 345 | url = https://github.com/creativecontrol/creativecontrol_CircuitPython_LTC166X.git 346 | [submodule "libraries/helpers/caveble"] 347 | path = libraries/helpers/caveble 348 | url = https://github.com/furbrain/CircuitPython_CaveBLE.git 349 | [submodule "libraries/drivers/gc9d01"] 350 | path = libraries/drivers/gc9d01 351 | url = https://github.com/tylercrumpton/CircuitPython_GC9D01.git 352 | [submodule "libraries/helpers/microosc"] 353 | path = libraries/helpers/microosc 354 | url = https://github.com/todbot/CircuitPython_MicroOSC.git 355 | [submodule "libraries/drivers/at24mac_eeprom"] 356 | path = libraries/drivers/at24mac_eeprom 357 | url = https://github.com/facts-engineering/CircuitPython_AT24MAC_EEPROM.git 358 | [submodule "libraries/drivers/ruhrohrotaryio"] 359 | path = libraries/drivers/ruhrohrotaryio 360 | url = https://github.com/todbot/CircuitPython_RuhRohRotaryIO.git 361 | [submodule "libraries/helpers/chime"] 362 | path = libraries/helpers/chime 363 | url = https://github.com/cedargrovestudios/circuitpython_chime.git 364 | [submodule "libraries/drivers/qmi8658c"] 365 | path = libraries/drivers/qmi8658c 366 | url = https://github.com/jins-tkomoda/CircuitPython_QMI8658C.git 367 | [submodule "libraries/helpers/toml"] 368 | path = libraries/helpers/toml 369 | url = https://github.com/elpekenin/circuitpython_toml.git 370 | [submodule "libraries/drivers/lilygo_tdeck"] 371 | path = libraries/drivers/lilygo_tdeck 372 | url = https://github.com/rgrizzell/CircuitPython_LILYGO_T-Deck.git 373 | [submodule "libraries/drivers/P1AM"] 374 | path = libraries/drivers/P1AM 375 | url = https://github.com/facts-engineering/CircuitPython_P1AM.git 376 | [submodule "libraries/helpers/p1am_200_helpers"] 377 | path = libraries/helpers/p1am_200_helpers 378 | url = https://github.com/facts-engineering/CircuitPython_p1am_200_helpers.git 379 | [submodule "libraries/helpers/RS485-Wrapper"] 380 | path = libraries/helpers/RS485-Wrapper 381 | url = https://github.com/facts-engineering/CircuitPython_rs485_wrapper.git 382 | [submodule "libraries/helpers/biplane"] 383 | path = libraries/helpers/biplane 384 | url = https://github.com/Uberi/biplane.git 385 | [submodule "libraries/drivers/segment_display"] 386 | path = libraries/drivers/segment_display 387 | url = https://github.com/bablokb/circuitpython-segment-display.git 388 | [submodule "libraries/helpers/wavebuilder"] 389 | path = libraries/helpers/wavebuilder 390 | url = https://github.com/CedarGroveStudios/CircuitPython_WaveBuilder.git 391 | [submodule "libraries/helpers/waveviz"] 392 | path = libraries/helpers/waveviz 393 | url = https://github.com/cedargrovestudios/circuitpython_waveviz.git 394 | [submodule "libraries/drivers/mpu6886"] 395 | path = libraries/drivers/mpu6886 396 | url = https://github.com/jins-tkomoda/CircuitPython_MPU6886.git 397 | [submodule "libraries/drivers/i2c_expanders"] 398 | path = libraries/drivers/i2c_expanders 399 | url = https://github.com/ilikecake/CircuitPython_I2C_Expanders.git 400 | [submodule "libraries/drivers/gt911"] 401 | path = libraries/drivers/gt911 402 | url = https://github.com/rgrizzell/CircuitPython_GT911.git 403 | [submodule "libraries/helpers/softkeyboard"] 404 | path = libraries/helpers/softkeyboard 405 | url = https://github.com/FoamyGuy/CircuitPython_SoftKeyboard.git 406 | [submodule "libraries/helpers/ble_cycling_power_service"] 407 | path = libraries/helpers/ble_cycling_power_service 408 | url = https://github.com/EzrSchwartz/Circuitpython_BLE_Cycling_Power_Service.git 409 | [submodule "libraries/helpers/Oakdevtech_CircuitPython_IcePython"] 410 | path = libraries/helpers/Oakdevtech_CircuitPython_IcePython 411 | url = https://github.com/skerr92/Oakdevtech_CircuitPython_IcePython.git 412 | [submodule "libraries/helpers/ehttpserver"] 413 | path = libraries/helpers/ehttpserver 414 | url = https://github.com/bablokb/circuitpython-ehttpserver.git 415 | [submodule "libraries/drivers/mcp48xx"] 416 | path = libraries/drivers/mcp48xx 417 | url = https://github.com/brushmate/CircuitPython_MCP48XX.git 418 | [submodule "libraries/drivers/axp2101"] 419 | path = libraries/drivers/axp2101 420 | url = https://github.com/CDarius/CircuitPython_AXP2101.git 421 | [submodule "libraries/drivers/displayio_st7565"] 422 | path = libraries/drivers/displayio_st7565 423 | url = https://github.com/mateusznowakdev/CircuitPython_DisplayIO_ST7565.git 424 | [submodule "libraries/helpers/button_handler"] 425 | path = libraries/helpers/button_handler 426 | url = https://github.com/EGJ-Moorington/CircuitPython_Button_Handler.git 427 | [submodule "libraries/helpers/circuitpython_tmidi"] 428 | path = libraries/helpers/tmidi 429 | url = https://github.com/todbot/CircuitPython_TMIDI.git 430 | [submodule "libraries/drivers/pca9674"] 431 | path = libraries/drivers/pca9674 432 | url = https://github.com/XENONFFM/CircuitPython_PCA9674.git 433 | [submodule "libraries/helpers/rotaryselect"] 434 | path = libraries/helpers/rotaryselect 435 | url = https://github.com/FoamyGuy/CircuitPython_RotarySelect.git 436 | [submodule "libraries/drivers/m5stack_pbhub"] 437 | path = libraries/drivers/m5stack_pbhub 438 | url = https://github.com/CDarius/CircuitPython_M5Stack_PbHub.git 439 | [submodule "libraries/drivers/buildhat"] 440 | path = libraries/drivers/buildhat 441 | url = https://github.com/CDarius/CircuitPython_RaspberryPI_BuildHAT.git 442 | [submodule "libraries/drivers/mhz19"] 443 | path = libraries/drivers/mhz19 444 | url = https://github.com/bablokb/circuitpython-mhz19.git 445 | [submodule "libraries/helpers/pio_i2s"] 446 | path = libraries/helpers/pio_i2s 447 | url = https://github.com/relic-se/CircuitPython_PIO_I2S.git 448 | [submodule "libraries/drivers/pca9955b"] 449 | path = libraries/drivers/pca9955b 450 | url = https://github.com/noelanderson/CircuitPython_PCA9955B.git 451 | [submodule "libraries/helpers/buzzer-music"] 452 | path = libraries/helpers/buzzer-music 453 | url = https://github.com/bablokb/cp-buzzer-music.git 454 | [submodule "libraries/drivers/as5600"] 455 | path = libraries/drivers/as5600 456 | url = https://github.com/noelanderson/CircuitPython_AS5600.git 457 | [submodule "libraries/helpers/game_controls"] 458 | path = libraries/helpers/game_controls 459 | url = https://github.com/FoamyGuy/CircuitPython_GameControls.git 460 | [submodule "libraries/drivers/fs3000"] 461 | path = libraries/drivers/fs3000 462 | url = https://github.com/noelanderson/CircuitPython_FS3000.git 463 | [submodule "libraries/helpers/iperf"] 464 | path = libraries/helpers/iperf 465 | url = https://github.com/bablokb/circuitpython-iperf.git 466 | [submodule "libraries/helpers/waveform"] 467 | path = libraries/helpers/waveform 468 | url = https://github.com/relic-se/CircuitPython_Waveform.git 469 | [submodule "libraries/helpers/keymanager"] 470 | path = libraries/helpers/keymanager 471 | url = https://github.com/relic-se/CircuitPython_KeyManager.git 472 | [submodule "libraries/helpers/synthvoice"] 473 | path = libraries/helpers/synthvoice 474 | url = https://github.com/relic-se/CircuitPython_SynthVoice.git 475 | [submodule "libraries/drivers/ttp229"] 476 | path = libraries/drivers/ttp229 477 | url = https://github.com/relic-se/CircuitPython_TTP229.git 478 | [submodule "libraries/helpers/displayio_cartesian"] 479 | path = libraries/helpers/displayio_cartesian 480 | url = https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Cartesian.git 481 | [submodule "libraries/helpers/displayio_dial"] 482 | path = libraries/helpers/displayio_dial 483 | url = https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Dial.git 484 | [submodule "libraries/helpers/displayio_annotation"] 485 | path = libraries/helpers/displayio_annotation 486 | url = https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Annotation.git 487 | [submodule "libraries/helpers/displayio_effects"] 488 | path = libraries/helpers/displayio_effects 489 | url = https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Effects.git 490 | [submodule "libraries/drivers/circuitpython-as7343"] 491 | path = libraries/drivers/circuitpython-as7343 492 | url = https://github.com/joepardue/circuitpython-as7343.git 493 | [submodule "libraries/helpers/pixel_mapper"] 494 | path = libraries/helpers/pixel_mapper 495 | url = https://github.com/clickonben/CircuitPython_pixel_mapper.git 496 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # Adafruit Community Code of Conduct 8 | 9 | ## Our Pledge 10 | 11 | In the interest of fostering an open and welcoming environment, we as 12 | contributors and leaders pledge to making participation in our project and 13 | our community a harassment-free experience for everyone, regardless of age, body 14 | size, disability, ethnicity, gender identity and expression, level or type of 15 | experience, education, socio-economic status, nationality, personal appearance, 16 | race, religion, or sexual identity and orientation. 17 | 18 | ## Our Standards 19 | 20 | We are committed to providing a friendly, safe and welcoming environment for 21 | all. 22 | 23 | Examples of behavior that contributes to creating a positive environment 24 | include: 25 | 26 | * Be kind and courteous to others 27 | * Using welcoming and inclusive language 28 | * Being respectful of differing viewpoints and experiences 29 | * Collaborating with other community members 30 | * Gracefully accepting constructive criticism 31 | * Focusing on what is best for the community 32 | * Showing empathy towards other community members 33 | 34 | Examples of unacceptable behavior by participants include: 35 | 36 | * The use of sexualized language or imagery and sexual attention or advances 37 | * The use of inappropriate images, including in a community member's avatar 38 | * The use of inappropriate language, including in a community member's nickname 39 | * Any spamming, flaming, baiting or other attention-stealing behavior 40 | * Excessive or unwelcome helping; answering outside the scope of the question 41 | asked 42 | * Trolling, insulting/derogatory comments, and personal or political attacks 43 | * Promoting or spreading disinformation, lies, or conspiracy theories against 44 | a person, group, organisation, project, or community 45 | * Public or private harassment 46 | * Publishing others' private information, such as a physical or electronic 47 | address, without explicit permission 48 | * Other conduct which could reasonably be considered inappropriate 49 | 50 | The goal of the standards and moderation guidelines outlined here is to build 51 | and maintain a respectful community. We ask that you don’t just aim to be 52 | "technically unimpeachable", but rather try to be your best self. 53 | 54 | We value many things beyond technical expertise, including collaboration and 55 | supporting others within our community. Providing a positive experience for 56 | other community members can have a much more significant impact than simply 57 | providing the correct answer. 58 | 59 | ## Our Responsibilities 60 | 61 | Project leaders are responsible for clarifying the standards of acceptable 62 | behavior and are expected to take appropriate and fair corrective action in 63 | response to any instances of unacceptable behavior. 64 | 65 | Project leaders have the right and responsibility to remove, edit, or 66 | reject messages, comments, commits, code, issues, and other contributions 67 | that are not aligned to this Code of Conduct, or to ban temporarily or 68 | permanently any community member for other behaviors that they deem 69 | inappropriate, threatening, offensive, or harmful. 70 | 71 | ## Moderation 72 | 73 | Instances of behaviors that violate the Adafruit Community Code of Conduct 74 | may be reported by any member of the community. Community members are 75 | encouraged to report these situations, including situations they witness 76 | involving other community members. 77 | 78 | You may report in the following ways: 79 | 80 | In any situation, you may send an email to . 81 | 82 | On the Adafruit Discord, you may send an open message from any channel 83 | to all Community Moderators by tagging @community moderators. You may 84 | also send an open message from any channel, or a direct message to 85 | @kattni#1507, @tannewt#4653, @Dan Halbert#1614, @cater#2442, 86 | @sommersoft#0222, @Mr. Certainly#0472 or @Andon#8175. 87 | 88 | Email and direct message reports will be kept confidential. 89 | 90 | In situations on Discord where the issue is particularly egregious, possibly 91 | illegal, requires immediate action, or violates the Discord terms of service, 92 | you should also report the message directly to Discord. 93 | 94 | These are the steps for upholding our community’s standards of conduct. 95 | 96 | 1. Any member of the community may report any situation that violates the 97 | Adafruit Community Code of Conduct. All reports will be reviewed and 98 | investigated. 99 | 2. If the behavior is an egregious violation, the community member who 100 | committed the violation may be banned immediately, without warning. 101 | 3. Otherwise, moderators will first respond to such behavior with a warning. 102 | 4. Moderators follow a soft "three strikes" policy - the community member may 103 | be given another chance, if they are receptive to the warning and change their 104 | behavior. 105 | 5. If the community member is unreceptive or unreasonable when warned by a 106 | moderator, or the warning goes unheeded, they may be banned for a first or 107 | second offense. Repeated offenses will result in the community member being 108 | banned. 109 | 110 | ## Scope 111 | 112 | This Code of Conduct and the enforcement policies listed above apply to all 113 | Adafruit Community venues. This includes but is not limited to any community 114 | spaces (both public and private), the entire Adafruit Discord server, and 115 | Adafruit GitHub repositories. Examples of Adafruit Community spaces include 116 | but are not limited to meet-ups, audio chats on the Adafruit Discord, or 117 | interaction at a conference. 118 | 119 | This Code of Conduct applies both within project spaces and in public spaces 120 | when an individual is representing the project or its community. As a community 121 | member, you are representing our community, and are expected to behave 122 | accordingly. 123 | 124 | ## Attribution 125 | 126 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 127 | version 1.4, available at 128 | , 129 | and the [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html). 130 | 131 | For other projects adopting the Adafruit Community Code of 132 | Conduct, please contact the maintainers of those projects for enforcement. 133 | If you wish to use this code of conduct for your own project, consider 134 | explicitly mentioning your moderation policy or making a copy with your 135 | own moderation policy so as to avoid confusion. 136 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Adafruit Industries 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CircuitPython Community Library Bundle 2 | 3 | [![Doc Status](https://readthedocs.org/projects/circuitpython/badge/?version=latest)](https://circuitpython.readthedocs.io/en/latest/docs/drivers.html) [![Discord](https://img.shields.io/discord/327254708534116352.svg)](https://adafru.it/discord) 4 | 5 | ![Blinka Community](https://github.com/adafruit/CircuitPython_Community_Bundle/blob/main/adafruit_circuitpython_community_bundle_100_large.png) 6 | 7 | This repo bundles a bunch of useful CircuitPython libraries into an easy to 8 | download zip file. CircuitPython boards can ship with the contents of the zip to 9 | make it easy to provide a lot of libraries by default. 10 | 11 | # License 12 | Each included library has its own license that must allow for redistribution. To 13 | save space, license text is not included in the bundle. However, a link to each 14 | individual repository is which should provide source code access and license 15 | information. 16 | 17 | # Use 18 | To use the bundle download the zip (not source zip) from the 19 | [latest release](https://github.com/adafruit/CircuitPython_Community_Bundle/releases/latest), 20 | unzip it and copy over the subfolders, such as `lib`, into the root of your 21 | CircuitPython device. Make sure to indicate that it should be merged with the 22 | existing folder when it exists. 23 | 24 | # Development 25 | 26 | After you clone this repository you must run `git submodule init` on update 27 | also do `git submodule update`. 28 | 29 | ## Updating libraries 30 | To update the libraries run `update-submodules.sh`. The script will fetch the 31 | latest code and update to the newest tag (not master). 32 | 33 | ## Expectations for Library Inclusion 34 | You're interested in having your library included in the Community Bundle? Great! Here are some things to keep in mind: 35 | 36 | * The subject and content of your library has to be compatible with the [Adafruit Community Code of Conduct](CODE_OF_CONDUCT.md) 37 | * Tagged release of the library must be compatible with [circuitpython-build-tools](https://github.com/adafruit/circuitpython-build-tools). The best way to ensure this is to use Github Actions with files like those produced by our [Cookie Cutter](https://github.com/adafruit/cookiecutter-adafruit-circuitpython/) 38 | * If your library has a problematic release that impacts Community Bundle releases, you will do your best to resolve it in a timely manner 39 | * If future changes to circuitpython-build-tools impact your library, you will do your best to resolve it in a timely manner (we try to keep breaking changes to a minimum, but they do happen!) 40 | 41 | If a particular library is causing problems for distribution in the Community Bundle we may temporarily drop it or hold it at an old revision, so that we can continue making Community Bundle releases. 42 | 43 | ## Adding a library 44 | Determine the best location within `libraries` for the new library and then run: 45 | 46 | git submodule add libraries/ 47 | 48 | The target directory should omit any MicroPython or CircuitPython specific 49 | prefixes such as `CircuitPython_` to simplify the listing. 50 | 51 | You should make sure that the git url has the format `https://github.com/{:user}/{:repo}.git`, 52 | such as `https://github.com/tannewt/CircuitPython_Example.git`. Other forms may interfere with 53 | adabot scripts (see https://github.com/adafruit/adabot/issues/145 for details). 54 | 55 | The repository must have a tag, as the bundle release process pulls the latest tag, usually 56 | matching a release of your library. The tag must follow the Semver format (such as *1.2.3*). 57 | 58 | The [circuitpython_community_library_list.md](circuitpython_community_library_list.md) page is 59 | manually updated. Please add your library to the list with the relevant links to the repository, 60 | pypi page and documentation if available. 61 | 62 | ## Removing a library 63 | Only do this if you are replacing the module with an equivalent: 64 | 65 | git submodule deinit libraries/ 66 | git rm libraries/ 67 | 68 | ## Building the bundle 69 | To build this bundle locally you'll need to install the 70 | `circuitpython-build-tools `_ package. 71 | 72 | python3 -m venv .env 73 | source .env/bin/activate 74 | pip install circuitpython-build-tools 75 | 76 | Once installed, make sure you are in the virtual environment: 77 | 78 | source .env/bin/activate 79 | 80 | Then run the build: 81 | 82 | ./build.sh 83 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | See here for more info: https://github.com/adafruit/CircuitPython_Community_Bundle 2 | See VERSIONS.txt for version info. 3 | -------------------------------------------------------------------------------- /adafruit_circuitpython_community_bundle_100_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adafruit/CircuitPython_Community_Bundle/d51b4cae2d68f44e853e053d054463a95d6d4be4/adafruit_circuitpython_community_bundle_100_large.png -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) 2021 Scott Shawcroft for Adafruit Industries 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | 25 | # This script builds the bundle 26 | 27 | set -e 28 | 29 | P=$( 30 | ls -RUx | 31 | gawk -F '\n' '{ match($1, /(drivers|helpers)\/(.+)\/(.+)\:/, arr) ; if (length(arr[0]) > 0 && match(arr[3], arr[2]) > 0) printf "%s, ", arr[3] }' | 32 | gawk '{ trimmed = substr($0, 1, length($0) - 2) ; print "\"" trimmed "\"" }' 33 | ) 34 | 35 | circuitpython-build-bundles --filename_prefix circuitpython-community-bundle --library_location libraries --library_depth 2 --package_folder_prefix "$P" 36 | -------------------------------------------------------------------------------- /circuitpython_community_auto_library_list.md: -------------------------------------------------------------------------------- 1 | # Adafruit CircuitPython Libraries 2 | ![Blinka Reading](https://raw.githubusercontent.com/adafruit/Adafruit_CircuitPython_Bundle/main/assets/BlinkaBook.png) 3 | Here is a listing of current Adafruit CircuitPython Libraries. 4 | There are 165 libraries available. 5 | 6 | ## Drivers: 7 | * [Adafruit Soundboard](https://github.com/mmabey/Adafruit_Soundboard.git) 8 | * [CircuitPython AD5245](https://github.com/cedargrovestudios/CircuitPython_AD5245.git) 9 | * [CircuitPython AD5293](https://github.com/CedarGroveStudios/CircuitPython_AD5293.git) 10 | * [CircuitPython AD9833](https://github.com/CedarGroveStudios/CircuitPython_AD9833.git) 11 | * [CircuitPython AS3935](https://github.com/BiffoBear/CircuitPython_AS3935.git) \([Docs](https://circuitpython-as3935.readthedocs.io/)) 12 | * [CircuitPython AS5600](https://github.com/noelanderson/CircuitPython_AS5600.git) \([Docs](https://circuitpython-as5600.readthedocs.io/)) 13 | * [CircuitPython AT24MAC EEPROM](https://github.com/facts-engineering/CircuitPython_AT24MAC_EEPROM.git) 14 | * [CircuitPython AXP192](https://github.com/CDarius/CircuitPython_AXP192.git) \([Docs](https://circuitpython-axp192.readthedocs.io/)) 15 | * [CircuitPython AXP2101](https://github.com/CDarius/CircuitPython_AXP2101.git) \([Docs](https://circuitpython-axp2101.readthedocs.io/)) 16 | * [CircuitPython Cirque Pinnacle](https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle.git) ([PyPi](https://pypi.org/project/circuitpython-cirque-pinnacle)) \([Docs](https://circuitpython-cirque-pinnacle.readthedocs.io/en/latest/?badge=latest)) 17 | * [CircuitPython DRV8830](https://github.com/CedarGroveStudios/CircuitPython_DRV8830.git) 18 | * [CircuitPython DisplayIO ST7565](https://github.com/mateusznowakdev/CircuitPython_DisplayIO_ST7565.git) 19 | * [CircuitPython FS3000](https://github.com/noelanderson/CircuitPython_FS3000.git) \([Docs](https://circuitpython-fs3000.readthedocs.io/)) 20 | * [CircuitPython GC9A01](https://github.com/tylercrumpton/CircuitPython_GC9A01.git) 21 | * [CircuitPython GC9D01](https://github.com/tylercrumpton/CircuitPython_GC9D01.git) 22 | * [CircuitPython GT911](https://github.com/rgrizzell/CircuitPython_GT911.git) ([PyPi](https://pypi.org/project/circuitpython-gt911)) \([Docs](https://circuitpython-gt911.readthedocs.io/)) 23 | * [CircuitPython HCSR04](https://github.com/mmabey/CircuitPython_HCSR04.git) 24 | * [CircuitPython HX711](https://github.com/fivesixzero/CircuitPython_HX711.git) \([Docs](https://circuitpython-hx711.readthedocs.io/)) 25 | * [CircuitPython I2C Button](https://github.com/gmparis/CircuitPython_I2C_Button.git) ([PyPi](https://pypi.org/project/circuitpython-i2c-button)) \([Docs](https://circuitpython-i2c_button.readthedocs.io/)) 26 | * [CircuitPython I2C Expanders](https://github.com/ilikecake/CircuitPython_I2C_Expanders.git) ([PyPi](https://pypi.org/project/circuitpython-i2c-expanders)) \([Docs](https://circuitpython-i2c-expanders.readthedocs.io/)) 27 | * [CircuitPython INA3221](https://github.com/barbudor/CircuitPython_INA3221.git) \([Docs](https://circuitpython-ina3221.readthedocs.io/en/latest/)) 28 | * [CircuitPython LILYGO T-Deck](https://github.com/rgrizzell/CircuitPython_LILYGO_T-Deck.git) ([PyPi](https://pypi.org/project/circuitpython-lilygo-t-deck)) \([Docs](https://circuitpython-lilygo-t-deck.readthedocs.io/)) 29 | * [CircuitPython M5Stack PbHub](https://github.com/CDarius/CircuitPython_M5Stack_PbHub.git) \([Docs](https://circuitpython-m5stack-pbhub.readthedocs.io/)) 30 | * [CircuitPython MCP48XX](https://github.com/brushmate/CircuitPython_MCP48XX.git) ([PyPi](https://pypi.org/project/circuitpython-mcp48xx)) \([Docs](https://circuitpython-mcp48xx.readthedocs.io/)) 31 | * [CircuitPython MPU6886](https://github.com/jins-tkomoda/CircuitPython_MPU6886.git) 32 | * [CircuitPython NAU7802](https://github.com/CedarGroveStudios/CircuitPython_NAU7802.git) 33 | * [CircuitPython P1AM](https://github.com/facts-engineering/CircuitPython_P1AM.git) 34 | * [CircuitPython PCA9674](https://github.com/XENONFFM/CircuitPython_PCA9674.git) ([PyPi](https://pypi.org/project/circuitpython-pca9674)) 35 | * [CircuitPython PCA9955B](https://github.com/noelanderson/CircuitPython_PCA9955B.git) \([Docs](https://circuitpython-pca9955b.readthedocs.io/)) 36 | * [CircuitPython PS2Controller](https://github.com/todbot/CircuitPython_PS2Controller.git) ([PyPi](https://pypi.org/project/circuitpython-ps2controller)) \([Docs](https://circuitpython-ps2controller.readthedocs.io/)) 37 | * [CircuitPython QMI8658C](https://github.com/jins-tkomoda/CircuitPython_QMI8658C.git) 38 | * [CircuitPython RM3100](https://github.com/furbrain/CircuitPython_RM3100.git) ([PyPi](https://pypi.org/project/circuitpython-rm3100)) \([Docs](https://circuitpython-rm3100.readthedocs.io/)) 39 | * [CircuitPython RaspberryPI BuildHAT](https://github.com/CDarius/CircuitPython_RaspberryPI_BuildHAT.git) \([Docs](https://circuitpython-raspberrypi-buildhat.readthedocs.io/)) 40 | * [CircuitPython RuhRohRotaryIO](https://github.com/todbot/CircuitPython_RuhRohRotaryIO.git) ([PyPi](https://pypi.org/project/circuitpython-ruhrohrotaryio)) \([Docs](https://circuitpython-ruhrohrotaryio.readthedocs.io/)) 41 | * [CircuitPython SH1106](https://github.com/winneymj/CircuitPython_SH1106) 42 | * [CircuitPython Sparkfun QwiicQuadSolidStateRelay](https://github.com/gbeland/CircuitPython_Sparkfun_QwiicQuadSolidStateRelay.git) ([PyPi](https://pypi.org/project/circuitpython-sparkfun-qwiicquadsolidstaterelay)) \([Docs](https://circuitpython-sparkfun-qwiicquadsolidstaterelay.readthedocs.io/)) 43 | * [CircuitPython TMP75](https://github.com/barbudor/CircuitPython_TMP75.git) \([Docs](https://circuitpython-tmp75.readthedocs.io/en/latest/)) 44 | * [CircuitPython TTP229](https://github.com/relic-se/CircuitPython_TTP229.git) \([Docs](https://circuitpython-ttp229.readthedocs.io/)) 45 | * [CircuitPython TicStepper](https://github.com/tekktrik/CircuitPython_TicStepper.git) ([PyPi](https://pypi.org/project/circuitpython-ticstepper)) \([Docs](https://circuitpython-ticstepper.readthedocs.io/)) 46 | * [CircuitPython TrellisM4 extended](https://github.com/arofarn/CircuitPython_TrellisM4_extended.git) \([Docs](https://circuitpython-trellism4_extended.readthedocs.io/)) 47 | * [CircuitPython WiiChuck](https://github.com/jfurcean/CircuitPython_WiiChuck.git) ([PyPi](https://pypi.org/project/circuitpython-wiichuck)) \([Docs](https://circuitpython-wiichuck.readthedocs.io/)) 48 | * [CircuitPython bteve](https://github.com/jamesbowman/CircuitPython_bteve.git) 49 | * [CircuitPython gpio expander](https://github.com/gpongelli/CircuitPython_gpio_expander.git) ([PyPi](https://pypi.org/project/circuitpython-gpio-expander)) \([Docs](https://circuitpython-gpio-expander.readthedocs.io/)) 50 | * [CircuitPython laser at](https://github.com/furbrain/CircuitPython_laser_at.git) ([PyPi](https://pypi.org/project/circuitpython-laser-at)) 51 | * [CircuitPython laser egismos](https://github.com/furbrain/CircuitPython_laser_egismos.git) ([PyPi](https://pypi.org/project/circuitpython-laser-egismos)) \([Docs](https://circuitpython-laser-egismos.readthedocs.io/)) 52 | * [CircuitPython m5stack unit8](https://github.com/Neradoc/CircuitPython_m5stack_unit8) \([Docs](https://circuitpython-m5stack-unit8.readthedocs.io/)) 53 | * [CircuitPython nRF24L01](https://github.com/2bndy5/CircuitPython_nRF24L01.git) ([PyPi](https://pypi.org/project/circuitpython-nrf24l01)) \([Docs](https://circuitpython-nrf24l01.readthedocs.io/en/stable/)) 54 | * [CircuitPython rda5807](https://github.com/tinkeringtech/CircuitPython_rda5807.git) \([Docs](https://circuitpython-rda5807m.readthedocs.io/)) 55 | * [CircuitPython seeed xiao nRF52840](https://github.com/furbrain/CircuitPython_seeed_xiao_nRF52840.git) ([PyPi](https://pypi.org/project/circuitpython-seeed-xiao-nrf52840)) 56 | * [CircuitPython tm1637 display](https://github.com/Neradoc/CircuitPython_tm1637_display) \([Docs](https://tm1637-display-for-circuitpython.readthedocs.io/)) 57 | * [CircuitPython-i2cEncoderLibV21](https://github.com/bwshockley/CircuitPython-i2cEncoderLibV21.git) \([Docs](https://circuitpython-i2cencoderlibv21.readthedocs.io/)) 58 | * [CircuitPython-mitutoyo](https://github.com/vifino/CircuitPython-mitutoyo.git) \([Docs](https://circuitpython-mitutoyo.readthedocs.io/)) 59 | * [Circuitpython Waveshare LCD1602](https://github.com/Neradoc/Circuitpython_Waveshare_LCD1602.git) ([PyPi](https://pypi.org/project/circuitpython-waveshare-lcd1602)) \([Docs](https://circuitpython-waveshare-lcd1602.readthedocs.io/)) 60 | * [Community CircuitPython TCA9555](https://github.com/lesamouraipourpre/Community_CircuitPython_TCA9555.git) ([PyPi](https://pypi.org/project/community-circuitpython-tca9555)) \([Docs](https://community-circuitpython-tca9555.readthedocs.io/)) 61 | * [Electronutlabs CircuitPython ILI9163](https://github.com/electronut/Electronutlabs_CircuitPython_ILI9163) \([Docs](https://ili9163.readthedocs.io/en/latest/)) 62 | * [Electronutlabs CircuitPython LIS2DH12](https://github.com/electronut/Electronutlabs_CircuitPython_LIS2DH12.git) \([Docs](https://circuitpython-lis2dh12-library.readthedocs.io/en/latest/)) 63 | * [Electronutlabs CircuitPython LTR329ALS01](https://github.com/electronut/Electronutlabs_CircuitPython_LTR329ALS01.git) \([Docs](https://circuitpython-ltr329als01-library.readthedocs.io/en/latest/)) 64 | * [Hierophect Circuitpython Dynamixel](https://github.com/hierophect/Hierophect_Circuitpython_Dynamixel.git) \([Docs](https://circuitpython-dynamixel.readthedocs.io/)) 65 | * [Mindwidgets CircuitPython DF1201S](https://github.com/mindwidgets/Mindwidgets_CircuitPython_DF1201S.git) ([PyPi](https://pypi.org/project/mindwidgets-circuitpython-df1201s)) \([Docs](https://mindwidgets-circuitpython-df1201s-library.readthedocs.io/)) 66 | * [Pimoroni CircuitPython LTR559](https://github.com/pimoroni/Pimoroni_CircuitPython_LTR559.git) \([Docs](https://circuitpython.readthedocs.io/projects/pimoroni_circuitpython_ltr559/en/latest/)) 67 | * [Pimoroni CircuitPython MICS6814](https://github.com/pimoroni/Pimoroni_CircuitPython_MICS6814.git) \([Docs](https://circuitpython.readthedocs.io/projects/mics6814/en/latest/)) 68 | * [Sparkfun CircuitPython QwiicAS3935](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicAS3935.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicas3935)) \([Docs](https://sparkfun-circuitpython-qwiicas3935.readthedocs.io/en/latest/)) 69 | * [Sparkfun CircuitPython QwiicJoystick](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicJoystick.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicjoystick)) \([Docs](https://sparkfun-circuitpython-qwiicjoystick.readthedocs.io/en/latest/)) 70 | * [Sparkfun CircuitPython QwiicKeypad](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicKeypad) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiickeypad)) \([Docs](https://sparkfun-circuitpython-qwiickeypad.readthedocs.io/en/latest/)) 71 | * [Sparkfun CircuitPython QwiicRelay](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicRelay.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicrelay)) \([Docs](https://sparkfun-circuitpython-qwiicrelay.readthedocs.io/en/latest/)) 72 | * [Sparkfun CircuitPython QwiicTwist](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicTwist.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiictwist)) \([Docs](https://sparkfun-circuitpython-qwiictwist.readthedocs.io/en/latest/)) 73 | * [Sparkfun CircuitPython SerLCD](https://github.com/fourstix/Sparkfun_CircuitPython_SerLCD.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-serlcd)) \([Docs](https://sparkfun-circuitpython-serlcd.readthedocs.io/en/latest/)) 74 | * [WoolseyWorkshop CircuitPython 74HC165](https://github.com/WoolseyWorkshop/WoolseyWorkshop_CircuitPython_74HC165.git) ([PyPi](https://pypi.org/project/woolseyworkshop-circuitpython-74hc165)) \([Docs](https://woolseyworkshop-circuitpython-74hc165.readthedocs.io/)) 75 | * [arturo182 CircuitPython BBQ10Keyboard](https://github.com/solderparty/arturo182_CircuitPython_BBQ10Keyboard.git) 76 | * [at42qt-acorn-python](https://github.com/skerr92/at42qt-acorn-python.git) 77 | * [bluepad32-circuitpython](https://github.com/ricardoquesada/bluepad32-circuitpython.git) 78 | * [circuitpython-as7343](https://github.com/joepardue/circuitpython-as7343.git) 79 | * [circuitpython-mhz19](https://github.com/bablokb/circuitpython-mhz19.git) 80 | * [circuitpython-paj7620](https://github.com/deshipu/circuitpython-paj7620.git) 81 | * [circuitpython-pcf85063a](https://github.com/bablokb/circuitpython-pcf85063a.git) 82 | * [circuitpython-segment-display](https://github.com/bablokb/circuitpython-segment-display.git) 83 | * [creativecontrol CircuitPython LTC166X](https://github.com/creativecontrol/creativecontrol_CircuitPython_LTC166X.git) ([PyPi](https://pypi.org/project/creativecontrol-circuitpython-ltc166x)) 84 | * [jled-circuitpython](https://github.com/jandelgado/jled-circuitpython) 85 | * [slight CircuitPython TLC5957](https://github.com/s-light/slight_CircuitPython_TLC5957.git) \([Docs](.. https://circuitpython.readthedocs.io/projects/tlc5957/en/latest/)) 86 | 87 | ## Helpers: 88 | * [CIRCUITPYTHON ifttt](https://github.com/benevpi/CIRCUITPYTHON_ifttt.git) \([Docs](https://circuitpython-ifttt.readthedocs.io/)) 89 | * [CircuitPython Absolute Mouse](https://github.com/Neradoc/CircuitPython_Absolute_Mouse) \([Docs](https://circuitpython-absolute-mouse.readthedocs.io/)) 90 | * [CircuitPython ArrowLine](https://github.com/jposada202020/CircuitPython_ArrowLine.git) ([PyPi](https://pypi.org/project/circuitpython-arrowline)) \([Docs](https://circuitpython-arrowline.readthedocs.io/)) 91 | * [CircuitPython AzureCustomVision Prediction](https://github.com/jimbobbennett/CircuitPython_AzureCustomVision_Prediction) ([PyPi](https://pypi.org/project/circuitpython-azurecustomvision-prediction)) \([Docs](https://circuitpython.readthedocs.io/projects/circuitpython_azurecustomvision_prediction/en/latest/)) 92 | * [CircuitPython Base64](https://github.com/jimbobbennett/CircuitPython_Base64) ([PyPi](https://pypi.org/project/circuitpython-base64)) \([Docs](https://circuitpython.readthedocs.io/projects/base64/en/latest/)) 93 | * [CircuitPython Button Handler](https://github.com/EGJ-Moorington/CircuitPython_Button_Handler.git) ([PyPi](https://pypi.org/project/circuitpython-button-handler)) \([Docs](https://circuitpython-button-handler.readthedocs.io/)) 94 | * [CircuitPython CSV](https://github.com/tekktrik/CircuitPython_CSV.git) ([PyPi](https://pypi.org/project/circuitpython-csv)) \([Docs](https://circuitpython-csv.readthedocs.io/)) 95 | * [CircuitPython Candlesticks](https://github.com/jposada202020/CircuitPython_Candlesticks.git) ([PyPi](https://pypi.org/project/circuitpython-candlesticks)) \([Docs](https://circuitpython-candlesticks.readthedocs.io/en/latest/?badge=latest)) 96 | * [CircuitPython CaveBLE](https://github.com/furbrain/CircuitPython_CaveBLE.git) ([PyPi](https://pypi.org/project/circuitpython-caveble)) \([Docs](https://circuitpython-caveble.readthedocs.io/)) 97 | * [CircuitPython ColorFader](https://github.com/CedarGroveStudios/CircuitPython_ColorFader.git) 98 | * [CircuitPython DISPLAY HT16K33](https://github.com/jposada202020/CircuitPython_DISPLAY_HT16K33.git) ([PyPi](https://pypi.org/project/circuitpython-display-ht16k33)) \([Docs](https://circuitpython-display-ht16k33.readthedocs.io/)) 99 | * [CircuitPython DiscordBot](https://github.com/2231puppy/CircuitPython_DiscordBot.git) 100 | * [CircuitPython Display Frame](https://github.com/FoamyGuy/CircuitPython_Display_Frame.git) ([PyPi](https://pypi.org/project/circuitpython-display-frame)) \([Docs](https://circuitpython.readthedocs.io/projects/display_frame/en/latest/)) 101 | * [CircuitPython DisplayIO ListSelect](https://github.com/FoamyGuy/CircuitPython_DisplayIO_ListSelect.git) ([PyPi](https://pypi.org/project/circuitpython-displayio-listselect)) \([Docs](https://circuitpython-displayio-listselect.readthedocs.io/)) 102 | * [CircuitPython Example](https://github.com/tannewt/CircuitPython_Example.git) \([Docs](https://circuitpython-example.readthedocs.io/en/latest/)) 103 | * [CircuitPython GameControls](https://github.com/FoamyGuy/CircuitPython_GameControls.git) ([PyPi](https://pypi.org/project/circuitpython-gamecontrols)) \([Docs](https://circuitpython-gamecontrols.readthedocs.io/)) 104 | * [CircuitPython HMAC](https://github.com/jimbobbennett/CircuitPython_HMAC) ([PyPi](https://pypi.org/project/circuitpython-hmac)) \([Docs](https://circuitpython.readthedocs.io/projects/hmac/en/latest/)) 105 | * [CircuitPython KeyManager](https://github.com/relic-se/CircuitPython_KeyManager.git) \([Docs](https://circuitpython-keymanager.readthedocs.io/)) 106 | * [CircuitPython MIDI Tools](https://github.com/CedarGroveStudios/CircuitPython_MIDI_Tools.git) 107 | * [CircuitPython MicroOSC](https://github.com/todbot/CircuitPython_MicroOSC.git) ([PyPi](https://pypi.org/project/circuitpython-microosc)) \([Docs](https://circuitpython-microosc.readthedocs.io/)) 108 | * [CircuitPython MorseCode](https://github.com/jposada202020/CircuitPython_MorseCode.git) ([PyPi](https://pypi.org/project/circuitpython-morsecode)) \([Docs](https://circuitpython-morsecode.readthedocs.io/)) 109 | * [CircuitPython Multi Keypad](https://github.com/Neradoc/CircuitPython_Multi_Keypad) \([Docs](https://multi-keypad-for-circuitpython.readthedocs.io/)) 110 | * [CircuitPython Noise](https://github.com/todbot/CircuitPython_Noise.git) ([PyPi](https://pypi.org/project/circuitpython-noise)) 111 | * [CircuitPython OhmsLaw](https://github.com/CedarGroveStudios/CircuitPython_OhmsLaw.git) 112 | * [CircuitPython Org DisplayIO Annotation](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Annotation.git) \([Docs](https://circuitpython-displayio-annotation.readthedocs.io/)) 113 | * [CircuitPython Org DisplayIO Cartesian](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Cartesian.git) \([Docs](https://circuitpython-displayio-cartesian.readthedocs.io/)) 114 | * [CircuitPython Org DisplayIO Dial](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Dial.git) \([Docs](https://circuitpython-displayio-dial.readthedocs.io/en/latest/)) 115 | * [CircuitPython Org DisplayIO Effects](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Effects.git) \([Docs](https://circuitpython-displayio-effects.readthedocs.io/)) 116 | * [CircuitPython PIO I2S](https://github.com/relic-se/CircuitPython_PIO_I2S.git) \([Docs](https://circuitpython-pio-i2s.readthedocs.io/)) 117 | * [CircuitPython PaletteFader](https://github.com/CedarGroveStudios/CircuitPython_PaletteFader.git) 118 | * [CircuitPython PaletteSlice](https://github.com/CedarGroveStudios/CircuitPython_PaletteSlice.git) 119 | * [CircuitPython Parse](https://github.com/jimbobbennett/CircuitPython_Parse) ([PyPi](https://pypi.org/project/circuitpython-parse)) \([Docs](https://circuitpython.readthedocs.io/projects/parse/en/latest/)) 120 | * [CircuitPython RGB SpectrumTools](https://github.com/CedarGroveStudios/CircuitPython_RGB_SpectrumTools.git) 121 | * [CircuitPython RangeSlicer](https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer.git) 122 | * [CircuitPython RotarySelect](https://github.com/FoamyGuy/CircuitPython_RotarySelect.git) ([PyPi](https://pypi.org/project/circuitpython-rotaryselect)) \([Docs](https://circuitpython-rotaryselect.readthedocs.io/)) 123 | * [CircuitPython Schedule](https://github.com/cognitivegears/CircuitPython_Schedule.git) ([PyPi](https://pypi.org/project/circuitpython-schedule)) \([Docs](https://circuitpython-schedule.readthedocs.io/)) 124 | * [CircuitPython SoftKeyboard](https://github.com/FoamyGuy/CircuitPython_SoftKeyboard.git) ([PyPi](https://pypi.org/project/circuitpython-softkeyboard)) \([Docs](https://circuitpython-softkeyboard.readthedocs.io/)) 125 | * [CircuitPython SynthVoice](https://github.com/relic-se/CircuitPython_SynthVoice.git) \([Docs](https://circuitpython-synthvoice.readthedocs.io/)) 126 | * [CircuitPython TMIDI](https://github.com/todbot/CircuitPython_TMIDI.git) ([PyPi](https://pypi.org/project/circuitpython-tmidi)) \([Docs](https://circuitpython-tmidi.readthedocs.io/)) 127 | * [CircuitPython TouchCalibrator](https://github.com/CedarGroveStudios/CircuitPython_TouchCalibrator.git) 128 | * [CircuitPython WaveBuilder](https://github.com/CedarGroveStudios/CircuitPython_WaveBuilder.git) 129 | * [CircuitPython Waveform](https://github.com/relic-se/CircuitPython_Waveform.git) \([Docs](https://circuitpython-waveform.readthedocs.io/)) 130 | * [CircuitPython ansi escape code](https://github.com/s-light/CircuitPython_ansi_escape_code.git) ([PyPi](https://pypi.org/project/circuitpython-ansi-escape-code)) \([Docs](https://circuitpython-ansi-escape-code.readthedocs.io/)) 131 | * [CircuitPython async button](https://github.com/furbrain/CircuitPython_async_button.git) ([PyPi](https://pypi.org/project/circuitpython-async-button)) \([Docs](https://circuitpython-async-button.readthedocs.io/)) 132 | * [CircuitPython async buzzer](https://github.com/furbrain/CircuitPython_async_buzzer.git) ([PyPi](https://pypi.org/project/circuitpython-async-buzzer)) \([Docs](https://circuitpython-async-buzzer.readthedocs.io/)) 133 | * [CircuitPython async](https://github.com/WarriorOfWire/CircuitPython_async.git) 134 | * [CircuitPython color picker](https://github.com/jposada202020/CircuitPython_color_picker.git) ([PyPi](https://pypi.org/project/circuitpython-color-picker)) \([Docs](https://circuitpython-color-picker.readthedocs.io/en/latest/?badge=latest)) 135 | * [CircuitPython equalizer](https://github.com/jposada202020/CircuitPython_equalizer.git) ([PyPi](https://pypi.org/project/circuitpython-equalizer)) \([Docs](https://circuitpython-equalizer.readthedocs.io/en/latest/?badge=latest)) 136 | * [CircuitPython functools](https://github.com/tekktrik/CircuitPython_functools.git) ([PyPi](https://pypi.org/project/circuitpython-functools)) \([Docs](https://circuitpython-functools.readthedocs.io/)) 137 | * [CircuitPython gauge](https://github.com/jposada202020/CircuitPython_gauge.git) ([PyPi](https://pypi.org/project/circuitpython-gauge)) \([Docs](https://circuitpython-gauge.readthedocs.io/)) 138 | * [CircuitPython mag cal](https://github.com/furbrain/CircuitPython_mag_cal.git) ([PyPi](https://pypi.org/project/circuitpython-mag-cal)) 139 | * [CircuitPython mcp23017 Scanner](https://github.com/Neradoc/CircuitPython_mcp23017_Scanner) \([Docs](https://circuitpython-mcp23017-scanner.readthedocs.io/)) 140 | * [CircuitPython nonblocking serialinput](https://github.com/s-light/CircuitPython_nonblocking_serialinput.git) \([Docs](https://circuitpython-nonblocking-serialinput.readthedocs.io/)) 141 | * [CircuitPython p1am 200 helpers](https://github.com/facts-engineering/CircuitPython_p1am_200_helpers.git) 142 | * [CircuitPython pixel mapper](https://github.com/clickonben/CircuitPython_pixel_mapper.git) ([PyPi](https://pypi.org/project/circuitpython-pixel-mapper)) 143 | * [CircuitPython rs485 wrapper](https://github.com/facts-engineering/CircuitPython_rs485_wrapper.git) 144 | * [CircuitPython scales](https://github.com/jposada202020/CircuitPython_scales.git) ([PyPi](https://pypi.org/project/circuitpython-scales)) \([Docs](https://circuitpython-scales.readthedocs.io/en/latest/?badge=latest)) 145 | * [CircuitPython simple dial](https://github.com/jposada202020/CircuitPython_simple_dial.git) \([Docs](https://circuitpython-simple_dial.readthedocs.io/)) 146 | * [CircuitPython slider](https://github.com/jposada202020/CircuitPython_slider.git) ([PyPi](https://pypi.org/project/circuitpython-slider)) \([Docs](https://circuitpython-slider.readthedocs.io/en/latest/?badge=latest)) 147 | * [CircuitPython styles](https://github.com/jposada202020/CircuitPython_styles) ([PyPi](https://pypi.org/project/circuitpython-styles)) \([Docs](https://circuitpython-styles.readthedocs.io/en/latest/?badge=latest)) 148 | * [CircuitPython uplot](https://github.com/jposada202020/CircuitPython_uplot.git) ([PyPi](https://pypi.org/project/circuitpython-uplot)) 149 | * [CircuitPython-UBoxplot](https://github.com/jposada202020/CircuitPython-UBoxplot.git) ([PyPi](https://pypi.org/project/circuitpython-uboxplot)) \([Docs](https://circuitpython-uboxplot.readthedocs.io/)) 150 | * [Circuitpython BLE Cycling Power Service](https://github.com/EzrSchwartz/Circuitpython_BLE_Cycling_Power_Service.git) 151 | * [Foamyguy CircuitPython nvm helper](https://github.com/FoamyGuy/Foamyguy_CircuitPython_nvm_helper.git) ([PyPi](https://pypi.org/project/foamyguy-circuitpython-nvm-helper)) \([Docs](https://circuitpython-nvm-helper.readthedocs.io/)) 152 | * [Gamblor21 CircuitPython AHRS](https://github.com/gamblor21/Gamblor21_CircuitPython_AHRS.git) \([Docs](https://circuitpython-ahrs.readthedocs.io/)) 153 | * [Jepler CircuitPython udecimal](https://github.com/jepler/Jepler_CircuitPython_udecimal.git) ([PyPi](https://pypi.org/project/jepler-circuitpython-udecimal)) \([Docs](https://jepler-udecimal.readthedocs.io/en/latest/)) 154 | * [Oakdevtech CircuitPython IcePython](https://github.com/skerr92/Oakdevtech_CircuitPython_IcePython.git) 155 | * [PiperBlocklyLibrary](https://github.com/buildwithpiper/PiperBlocklyLibrary.git) 156 | * [biplane](https://github.com/Uberi/biplane.git) ([PyPi](https://pypi.org/project/biplane)) 157 | * [circuitPython dotstar featherwing](https://github.com/circuitpython/circuitPython_dotstar_featherwing.git) \([Docs](https://circuitpython.readthedocs.io/projects/dotstar_featherwing/en/latest/)) 158 | * [circuitpython airqualitytools](https://github.com/cedargrovestudios/circuitpython_airqualitytools.git) 159 | * [circuitpython chime](https://github.com/cedargrovestudios/circuitpython_chime.git) 160 | * [circuitpython dst adjuster](https://github.com/cedargrovestudios/circuitpython_dst_adjuster) 161 | * [circuitpython leapyear](https://github.com/cedargrovestudios/circuitpython_leapyear) 162 | * [circuitpython paletteFilter](https://github.com/Cedargrovestudios/circuitpython_paletteFilter.git) 163 | * [circuitpython punkconsole](https://github.com/cedargrovestudios/circuitpython_punkconsole.git) 164 | * [circuitpython shadowwatcher](https://github.com/cedargrovestudios/circuitpython_shadowwatcher.git) 165 | * [circuitpython temperaturetools](https://github.com/cedargrovestudios/circuitpython_temperaturetools.git) 166 | * [circuitpython toml](https://github.com/elpekenin/circuitpython_toml.git) 167 | * [circuitpython tzdb](https://github.com/evindunn/circuitpython_tzdb.git) ([PyPi](https://pypi.org/project/circuitpython-tzdb)) \([Docs](https://circuitpython-tzdb.readthedocs.io/)) 168 | * [circuitpython uuid4](https://github.com/DerBroader71/circuitpython_uuid4.git) 169 | * [circuitpython waveviz](https://github.com/cedargrovestudios/circuitpython_waveviz.git) 170 | * [circuitpython-ehttpserver](https://github.com/bablokb/circuitpython-ehttpserver.git) 171 | * [circuitpython-iperf](https://github.com/bablokb/circuitpython-iperf.git) 172 | * [cp-buzzer-music](https://github.com/bablokb/cp-buzzer-music.git) 173 | * [nonblocking timer](https://github.com/Angeleno-Tech/nonblocking_timer.git) \([Docs](https://circuitpython-nonblocking_timer.readthedocs.io/)) 174 | -------------------------------------------------------------------------------- /circuitpython_community_library_list.md: -------------------------------------------------------------------------------- 1 | # CircuitPython Community Libraries 2 | ![Blinka Reading](https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/assets/common_assets/blinka.png) 3 | 4 | Here is a listing of current CircuitPython Community Libraries. These libraries are supplied and supported by community members. 5 | 6 | ## Drivers: 7 | * [Adafruit Soundboard](https://github.com/mmabey/Adafruit_Soundboard.git) An easy way to add sound to your maker project. \([Docs](https://adafruit-soundboard.readthedocs.io/en/latest/README.html)) 8 | * [at24mac-eeprom](https://github.com/facts-engineering/CircuitPython_AT24MAC_EEPROM.git) I2C driver for the AT24MAC402 and AT24MAC602 devices. 9 | * [at42qt-acorn-python](https://github.com/skerr92/at42qt-acorn-python.git) Driver library for the AT42QT1070 Acorn. 10 | * [Bluepad 32](https://github.com/ricardoquesada/bluepad32-circuitpython) Enables gamepad support for CircuitPython. 11 | * [CircuitPython_AD5245](https://github.com/CedarGroveStudios/CircuitPython_AD5245.git) A driver for the AD5245 digital potentiometer. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_AD5245/blob/main/media/pseudo_readthedocs_cedargrove_ad5245.pdf)) 12 | * [CircuitPython_AD5293](https://github.com/CedarGroveStudios/CircuitPython_AD5293.git) A driver for the AD5293 digital potentiometer. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_AD5293/blob/main/media/pseudo_readthedocs_cedargrove_ad5293.pdf)) 13 | * [CircuitPython_AD9833](https://github.com/CedarGroveStudios/CircuitPython_AD9833.git) A driver for the AD9833 Programmable Waveform Generator. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_AD9833/blob/master/media/pseudo_readthedocs_cedargrove_ad9833.pdf)) 14 | * [CircuitPython AS3935](https://github.com/BiffoBear/CircuitPython_AS3935.git) Library for the Franklin AS3935 lightning detector. The driver supports connections via SPI and I2C. \([Docs](https://circuitpython-as3935.readthedocs.io/)) 15 | * [CircuitPython AS5600](https://github.com/noelanderson/CircuitPython_AS5600.git) Driver for the AMS AS5600 12-bit on-axis magnetic rotary position sensor ([Docs](https://circuitpython-as5600.readthedocs.io/en/latest/)) 16 | * [CircuitPython AXP192](https://github.com/CDarius/CircuitPython_AXP192.git) A driver for AXP192 power management IC. \([Docs](https://circuitpython-axp192.readthedocs.io/)) 17 | * [CircuitPython AXP2101](https://github.com/CDarius/CircuitPython_AXP2101.git) A driver for AXP2101 power management IC. \([Docs](http://circuitpython-driver-for-axp2101-power-management-ic.readthedocs.io//)) 18 | * [CircuitPython BMA220](https://github.com/jposada202020/CircuitPython_BMA220.git) Driver for the Bosch BMA220 Sensor ([PyPi](https://pypi.org/project/circuitpython-bma220/)) \([Docs](https://circuitpython-bma220.readthedocs.io/en/latest/)) 19 | * [CircuitPython DisplayIO ST7565](https://github.com/mateusznowakdev/CircuitPython_DisplayIO_ST7565.git) CircuitPython displayio driver for ST7565 and ST7567 displays \([Docs](https://circuitpython-displayio-st7565.readthedocs.io/en/latest/)) 20 | * [CircuitPython_DRV8830](https://github.com/CedarGroveStudios/CircuitPython_DRV8830.git) A driver for the DRV8830 DC motor controller. 21 | * [CircuitPython FS3000](https://github.com/noelanderson/CircuitPython_FS3000.git) Driver for the Renesas FS3000 Air Velocity Sensor Module ([Docs](https://circuitpython-fs3000.readthedocs.io/en/latest/)) 22 | * [CircuitPython GC9A01](https://github.com/tylercrumpton/CircuitPython_GC9A01.git) Displayio driver for GC9A01 TFT LCD displays. 23 | * [CircuitPython GC9D01](https://github.com/tylercrumpton/CircuitPython_GC9D01.git) Displayio driver for GC9D01 TFT LCD displays. 24 | * [CircuitPython gpio_expander](https://github.com/gpongelli/CircuitPython_gpio_expander.git) I2C GPIO expander support for PCA9534, PCA9535, PCA9555, TCA9534, TCA9535 and TCA9555 chips. ([PyPi](https://pypi.org/project/circuitpython-gpio-expander/)) \([Docs](https://github.com/gpongelli/CircuitPython_gpio_expander/blob/main/README.rst)) 25 | * [CircuitPython_GT911](https://github.com/rgrizzell/CircuitPython_GT911.git) Driver for the Goodix GT911 touchscreen sensor. \([Docs](https://circuitpython-gt911.readthedocs.io/en/latest/)) 26 | * [CircuitPython HCSR04](https://github.com/mmabey/CircuitPython_HCSR04.git) Library for The HC-SR04 for measuring distances using microcontrollers \([Docs](https://circuitpython-hcsr04.readthedocs.io/en/latest/)) 27 | * [CircuitPython HX711](https://github.com/fivesixzero/CircuitPython_HX711) CircuitPython driver for the HX711 load cell amplifer and ADC \([Docs](https://circuitpython-hx711.readthedocs.io/en/latest/)) 28 | * [CircuitPython I2C Expanders](https://github.com/ilikecake/CircuitPython_I2C_Expanders.git) Drivers for various i2C expanders. Current support for PCA9555, PCAL9555, PCA9554, PCAL9554, PCA9538, PCAL9538. ([PyPi](https://pypi.org/project/circuitpython-i2c-expanders/)) \([Docs](https://circuitpython-i2c-expanders.readthedocs.io/en/latest/)) 29 | * [CircuitPython INA3221](https://github.com/barbudor/CircuitPython_INA3221.git) CircuitPython driver for the Texas Instruments' INA3221 3 channels current sensor. \([Docs](https://circuitpython-ina3221.readthedocs.io/en/latest/)) 30 | * [CircuitPython JLed](https://github.com/jandelgado/jled-circuitpython) Non-blocking LED effects. \([Docs](https://jandelgado.github.io/jled-circuitpython)) 31 | * [CircuitPython Laser AT](https://github.com/furbrain/CircuitPython_laser_at.git) Driver for a cheap laser rangefinder \([Docs](https://circuitpython-laser-at.readthedocs.io/en/latest/)) 32 | * [CircuitPython Laser Egismos](https://github.com/furbrain/CircuitPython_laser_egismos.git) Driver for the Egismos laser rangefinder module 2 \([Docs](https://circuitpython-laser-egismos.readthedocs.io/en/latest/)) 33 | * [CircuitPython LILYGO T-Deck](https://github.com/rgrizzell/CircuitPython_LILYGO_T-Deck.git) CircuitPython drivers for the LILYGO T-Deck peripherals. ([PyPi](https://pypi.org/project/circuitpython-lilygo-t-deck/)) \([Docs](https://circuitpython-lilygo-t-deck.readthedocs.io/en/latest/)) 34 | * [CircuitPython M5Stack PbHub](https://github.com/CDarius/CircuitPython_M5Stack_PbHub.git) Driver for the M5Stack PbHub \([Docs](https://circuitpython-m5stack-pbhub.readthedocs.io/en/latest/)) 35 | * [CircuitPython MCP48XX](https://github.com/brushmate/CircuitPython_MCP48XX.git) Driver for the Microchip MCP4801, MCP4811, MCP4821, MCP4802, MCP4812, and MCP4822 digital to analog converters ([PyPi](https://pypi.org/project/circuitpython-mcp48xx/) )\([Docs](https://circuitpython-mcp48xx.readthedocs.io/en/latest/)) 36 | * [CircuitPython MPU6886](https://github.com/jins-tkomoda/CircuitPython_MPU6886.git) Driver for the MPU6886 inertial measurement unit ([Docs](https://circuitpython-mpu6886.readthedocs.io/en/latest/)) 37 | * [CircuitPython_NAU7802](https://github.com/CedarGroveStudios/CircuitPython_NAU7802.git) A driver for the NAU7802 24-bit ADC. 38 | * [CircuitPython PS2Controller](https://github.com/todbot/CircuitPython_PS2Controller.git) ([PyPi](https://pypi.org/project/circuitpython-ps2controller)) \([Docs](https://circuitpython-ps2controller.readthedocs.io/en/latest/)) CircuitPython library to read Sony PS2 game controllers 39 | * [CircuitPython_paj7620](https://github.com/deshipu/circuitpython-paj7620.git) A driver for the PAJ7620 gesture sensor. 40 | * [CircuitPython PCA9674](https://github.com/XENONFFM/CircuitPython_PCA9674.git) Driver for the NXP PCA9674(A) 8 channel I2C I/O expander ([PyPi](https://pypi.org/project/circuitpython-pca9674)) 41 | * [CircuitPython PCA9955b](https://github.com/noelanderson/CircuitPython_PCA9955B.git) Driver for the NXP PCA9955b 16-Channel I2C-Bus Constant-Current LED Driver ([Docs](https://circuitpython-pca9955b.readthedocs.io/en/latest/)) 42 | * [CircuitPython qmi8658c](https://github.com/jins-tkomoda/CircuitPython_QMI8658C.git) Driver for the QMI8658C inertial measurement unit 43 | ([Docs](https://circuitpython-qmi8658c.readthedocs.io/en/latest/)) 44 | * [CircuitPython Raspberry PI Build HAT](https://github.com/CDarius/CircuitPython_RaspberryPI_BuildHAT.git) Driver for Raspberry PI Build HAT \([Docs](https://circuitpython-raspberrypi-buildhat.readthedocs.io/en/latest/)) 45 | * [CircuitPython RDA5807](https://github.com/tinkeringtech/CircuitPython_rda5807) rda5807m FM radio chip CircuitPython library \([Docs](https://circuitpython-rda5807m.readthedocs.io/en/latest/)) 46 | * [CircuitPython RM3100](https://github.com/furbrain/CircuitPython_RM3100.git) Driver for the RM3100 magnetometer \([PyPI](https://circuitpython-rm3100.readthedocs.io/en/latest/)) \([Docs](https://circuitpython-rm3100.readthedocs.io/en/latest/)) 47 | * [CircuitPython RuhRohRotaryIO](https://github.com/todbot/CircuitPython_RuhRohRotaryIO.git) CircuitPython library that pretents to be `rotaryio` for non-sequential pins ([PyPi](https://pypi.org/project/circuitpython-ruhrohrotaryio)) \([Docs](https://circuitpython-ruhrohrotaryio.readthedocs.io/en/latest/)) 48 | * [CircuitPython SH1106](https://github.com/winneymj/CircuitPython_SH1106) CircuitPython driver for SH1106 OLED displays. 49 | * [CircuitPython Seeed XIAO nRF52840](https://github.com/furbrain/CircuitPython_seeed_xiao_nRF52840) Provides access to onboard sensors and battery charge management circuitry \([Docs](https://circuitpython-seeed-xiao-nrf52840.readthedocs.io/en/latest/)) 50 | * [CircuitPython TCA9555](https://github.com/lesamouraipourpre/Community_CircuitPython_TCA9555) CircuitPython library for Texas Instruments TCA9555 Low-Voltage 16-Bit I2C and SMBus I/O Expander with Input / Output and Polarity Inversion. \([PyPI](https://pypi.org/project/community-circuitpython-tca9555/)) \([Docs](http://community-circuitpython-tca9555.rtfd.io/)) 51 | * [CircuitPython TMP75](https://github.com/barbudor/CircuitPython_TMP75.git) CircuitPython driver library for Texas Instruments' TMP75 I2C temperature sensor \([Docs](https://circuitpython-tmp75.readthedocs.io/en/latest/)) 52 | * [CircuitPython TicStepper](https://github.com/tekktrik/CircuitPython_TicStepper.git) Driver for the TIC stepper motor drivers \([Docs](https://circuitpython-ticstepper.readthedocs.io/en/latest/)) 53 | * [CircuitPython TTP229](https://github.com/relic-se/CircuitPython_TTP229.git) CircuitPython driver library for the TonTouch TTP229 16-key capacitive touch detector \([Docs](https://circuitpython-ttp229.readthedocs.io/en/latest/)) 54 | * [CircuitPython WiiChuck](https://github.com/jfurcean/CircuitPython_WiiChuck.git) CircuitPython driver for Nintendo WiiMote I2C Accessory Devices([PyPi](https://pypi.org/project/circuitpython-wiichuck)) \([Docs](https://circuitpython-wiichuck.readthedocs.io/)) 55 | * [CircuitPython bteve](https://github.com/jamesbowman/CircuitPython_bteve.git) CircuitPython_bteve 56 | * [CircuitPython NeoTrellisM4 extended (with Neotrellis seesaw boards)](https://github.com/arofarn/CircuitPython_TrellisM4_extended) Use Adafruit TrellisM4 Express board as 2 Neotrellis board. \([Docs](https://circuitpython-trellism4-extended.readthedocs.io/en/latest/)) 57 | * [CircuitPython nRF24L01](https://github.com/2bndy5/CircuitPython_nRF24L01.git) Circuitpython driver library for the nRF24L01 transceiver. ([PyPi](https://pypi.org/project/circuitpython-nrf24l01)) \([Docs](https://circuitpython-nrf24l01.readthedocs.io/en/stable/)) 58 | * [CircuitPython-i2cEncoderLibV21](https://github.com/bwshockley/CircuitPython-i2cEncoderLibV21.git) CircuitPython helper library for the i2c Encoder \([Docs](https://circuitpython-i2cencoderlibv21.readthedocs.io/)) 59 | * [CircuitPython-mitutoyo](https://github.com/vifino/CircuitPython-mitutoyo.git) \([Docs](https://circuitpython-mitutoyo.readthedocs.io/) CircuitPython implementation of the Mitutoyo Digimatic SPC interface. 60 | * [creativecontrol LTC166X](https://github.com/creativecontrol/creativecontrol_CircuitPython_LTC166X.git) Driver for LTC166X 8 channel DACs ([PyPi](https://pypi.org/project/creativecontrol-circuitpython-ltc166x/)) \([Docs](https://creativecontrol-circuitpython-ltc166x.readthedocs.io/)) 61 | * [Electronutlabs CircuitPython ILI9163](https://github.com/electronut/Electronutlabs_CircuitPython_ILI9163) Displayio driver for ILI9163 TFT-LCD displays. \([Docs](https://ili9163.readthedocs.io/en/latest/)) 62 | * [Electronutlabs CircuitPython LIS2DH12](https://github.com/electronut/Electronutlabs_CircuitPython_LIS2DH12.git) Circuitpython library for LIS2DH12 3-axis low power accelerometer. \([Docs](https://circuitpython-lis2dh12-library.readthedocs.io/en/latest/)) 63 | * [Electronutlabs CircuitPython LTR329ALS01](https://github.com/electronut/Electronutlabs_CircuitPython_LTR329ALS01.git) Circuitpython library for reading data from light sensor LTR329ALS01. \([Docs](https://circuitpython-ltr329als01-library.readthedocs.io/en/latest/)) 64 | * [Hierophect Circuitpython Dynamixel](https://github.com/hierophect/Hierophect_Circuitpython_Dynamixel.git) Circuitpython driver library for the Dynamixel series of servo motors from Robotis \([Docs](https://circuitpython-dynamixel.readthedocs.io/)) 65 | * [M5Stack 8 Angle and 8 Encoder Unit](https://github.com/Neradoc/CircuitPython_m5stack_unit8) Circuitpython driver library for the M5Stack 8Unit Angle and Encoder breakout boards \([Docs](https://m5stack-unit8-for-circuitpython.readthedocs.io/)) 66 | * [MH-Z19x](https://github.com/bablokb/circuitpython-mhz19.git) Driver for the MH-Z19x CO2-sensors 67 | * [Mindwidgets CircuitPython DF1201S](https://github.com/mindwidgets/Mindwidgets_CircuitPython_DF1201S) CircuitPython driver for DFRobot DFPlayer Pro MP3 player with onboard storage \([Docs](https://mindwidgets-circuitpython-df1201s-library.readthedocs.io/en/latest/)) 68 | * [Pimoroni CircuitPython LTR559](https://github.com/pimoroni/Pimoroni_CircuitPython_LTR559.git) Library for the LTR559 Proximity/Presence/Light Sensor \([Docs](https://circuitpython.readthedocs.io/projects/pimoroni_circuitpython_ltr559/en/latest/)) 69 | * [Pimoroni CircuitPython MICS6814](https://github.com/pimoroni/Pimoroni_CircuitPython_MICS6814.git) Driver for the MICS6814 Gas sensor \([Docs](https://circuitpython.readthedocs.io/projects/mics6814/en/latest/)) 70 | * [Solder Party BBQ10Keyboard](https://github.com/solderparty/arturo182_CircuitPython_BBQ10Keyboard)CircuitPython library for interfacing the BB Q10 and BB Q20 Keyboards over I2C \([Docs](https://docs.solder.party/)) 71 | * [Sparkfun CircuitPython QwiicAS3935](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicAS3935.git)CircuitPython library for Sparkfun Qwiic Joystick. ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicas3935)) \([Docs](https://sparkfun-circuitpython-qwiicas3935.readthedocs.io/en/latest/)) 72 | * [Sparkfun CircuitPython QwiicJoystick](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicJoystick.git) ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicjoystick)) \([Docs](https://sparkfun-circuitpython-qwiicjoystick.readthedocs.io/en/latest/)) 73 | * [Sparkfun CircuitPython QwiicKeypad](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicKeypad) CircuitPython library for Sparkfun Qwiic 12 Button Keypad. ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiickeypad)) \([Docs](https://sparkfun-circuitpython-qwiickeypad.readthedocs.io/en/latest/)) 74 | * [Sparkfun CircuitPython QwiicRelay](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicRelay.git) CircuitPython library for Sparkfun Qwiic Single Relay ([PyPi](https://pypi.org/project/sparkfun-circuitpython-qwiicrelay)) \([Docs](https://sparkfun-circuitpython-qwiicrelay.readthedocs.io/en/latest/)) 75 | * [CircuitPython_Sparkfun_QwiicQuadSolidStateRelay](https://github.com/gbeland/CircuitPython_Sparkfun_QwiicQuadSolidStateRelay.git) ([PyPi](https://pypi.org/project/CircuitPython_Sparkfun_QwiicQuadSolidStateRelay)) \([Docs](https://CircuitPython_Sparkfun_QwiicQuadSolidStateRelay.readthedocs.io/en/latest/])) 76 | * [Sparkfun CircuitPython QwiicTwist](https://github.com/fourstix/Sparkfun_CircuitPython_QwiicTwist.git) CircuitPython library for Sparkfun Qwiic Twist RGB Rotary Encoder.\([Docs](https://sparkfun-circuitpython-qwiictwist.readthedocs.io/en/latest/)) 77 | * [Sparkfun CircuitPython SerLCD](https://github.com/fourstix/Sparkfun_CircuitPython_SerLCD.git) CircuitPython library for the Sparkfun SerLCD displays. ([PyPi](https://pypi.org/project/sparkfun-circuitpython-serlcd)) \([Docs](https://sparkfun-circuitpython-serlcd.readthedocs.io/en/latest/)) 78 | * [slight CircuitPython TLC5957](https://github.com/s-light/slight_CircuitPython_TLC5957.git) CircuitPython library for TI TLC5957 48-channel 16bit LED-Driver ([Docs](https://slight-circuitpython-tlc5957.readthedocs.io/en/latest/)) 79 | * [TM1637 7-Segment Display](https://github.com/Neradoc/CircuitPython_tm1637_display.git) CircuitPython library for a TM1637 7-segment display board ([Docs](https://tm1637-display-for-circuitpython.readthedocs.io/)) 80 | * [Waveshare's I2C Character Display LCD1602](https://github.com/Neradoc/Circuitpython_Waveshare_LCD1602.git) Drive for Waveshare's I2C character display LCD1602 ([PyPi](https://pypi.org/project/circuitpython-waveshare-lcd1602)) \([Docs](https://waveshare-lcd1602-circuitpython-driver.readthedocs.io/)) 81 | * [Woolsey Workshop CircuitPython 74HC165](https://github.com/WoolseyWorkshop/WoolseyWorkshop_CircuitPython_74HC165.git) CircuitPython driver for 74HC165 shift register. ([PyPI](https://pypi.org/project/woolseyworkshop-circuitpython-74hc165/)) \([Docs](https://woolseyworkshop-circuitpython-74hc165.readthedocs.io/en/latest/)) 82 | * [Waveshare's I2C E-Ink Segment-Display](https://github.com/bablokb/circuitpython-segment-display.git) CircuitPython driver for E-Ink Segment-Display 83 | 84 | ## Helpers: 85 | * [Absolute Mouse](https://github.com/Neradoc/CircuitPython_Absolute_Mouse) An Absolute Position Mouse HID library and descriptor for adafruit\_hid ([Docs](https://circuitpython-absolute-mouse.readthedocs.io/)) 86 | * [Ansi Escape Codes](https://github.com/s-light/CircuitPython_ansi_escape_code) Simple helper library for common ANSI escape codes ([PyPI](https://pypi.org/project/circuitpython-ansi-escape-code/)) \([Docs](https://circuitpython-ansi-escape-code.readthedocs.io/)) 87 | * [Biplane](https://github.com/Uberi/biplane/) Minimal, fast, robust HTTP server library that uses non-blocking concurrent I/O even when asyncio isn't available ([PyPI](https://pypi.org/project/biplane/)) ([Docs](https://github.com/Uberi/biplane/blob/main/README.md)) 88 | * [CIRCUITPYTHON ifttt](https://github.com/benevpi/CIRCUITPYTHON_ifttt.git) A simple link to If This Then That (IFTTT) webhooks \([Docs](https://circuitpython-ifttt.readthedocs.io/)) 89 | * [CircuitPython_AirQualityTools](https://github.com/CedarGroveStudios/CircuitPython_AirQualityTools.git) Calculate PM2.5 and CO2 air quality levels \([Docs](https://github.com/CedarGroveStudios/CircuitPython_AirQualityTools/blob/main/media/pseudo_rtd_cedargrove_airqualitytools.pdf)) 90 | * [CircuitPython ArrowLine](https://github.com/jposada202020/CircuitPython_ArrowLine.git) Utility function to draw arrow lines using vectorio and DisplayIO ([PyPi](https://pypi.org/project/circuitpython-ArrowLine)) \([Docs](https://circuitpython-arrowline.readthedocs.io/)) 91 | * [CircuitPython_async](https://github.com/WarriorOfWire/CircuitPython_async.git) Pure Python cooperative multitasking implementation for the async/await language syntax 92 | * [CircuitPython_async_button](https://github.com/furbrain/CircuitPython_async_button.git) async implementation of a button - allows detection of single, double and triple clicks \[Docs](https://circuitpython-async-button.readthedocs.io/en/latest/)) 93 | * [CircuitPython_async_buzzer](https://github.com/furbrain/CircuitPython_async_buzzer.git) Utility to play simple tunes via pwmio asynchronously \[Docs](https://circuitpython-async-buzzer.readthedocs.io/en/latest/)) 94 | * [CircuitPython AzureCustomVision Prediction](https://github.com/jimbobbennett/CircuitPython_AzureCustomVision_Prediction) CircuitPython prediction library for the Azure custom vision service ([PyPi](https://pypi.org/project/circuitpython-azurecustomvision-prediction)) \([Docs](https://circuitpython.readthedocs.io/projects/circuitpython_azurecustomvision_prediction/en/latest/)) 95 | * [CircuitPython Base64](https://github.com/jimbobbennett/CircuitPython_Base64) RFC 3548: Base16, Base32, Base64 Data Encodings ([PyPi](https://pypi.org/project/circuitpython-base64)) \([Docs](https://circuitpython.readthedocs.io/projects/base64/en/latest/)) 96 | * [CircuitPython_BLE_Cycling_Power_Service](https://github.com/EzrSchwartz/Circuitpython_BLE_Cycling_Power_Service.git) Extracting power in watts from a bluetooth low energy cycling power meter. 97 | * [CircuitPython Boxplot](https://github.com/jposada202020/CircuitPython_uboxplot) Helps calculate and graphs boxplots ([PyPi](https://pypi.org/project/circuitpython-uboxplot/)) \([Docs](https://circuitpython-uboxplot.readthedocs.io/en/latest/)) 98 | * [CircuitPython_Button_Handler](https://github.com/EGJ-Moorington/CircuitPython_Button_Handler.git) Simplifies the usage of buttons by handling different types of button presses.([PyPI](https://pypi.org/project/circuitpython-button-handler/)) \([Docs](https://circuitpython-button-handler.readthedocs.io/en/stable/)) 99 | * [Circuit Python Buzzer-Music](https://github.com/bablokb/cp-buzzer-music) Asyncio-Based Library for Buzzer-Music 100 | * [CircuitPython Candlesticks](https://github.com/jposada202020/CircuitPython_Candlesticks.git) Graphical representation of the stock movement in candlestick form ([PyPi](https://pypi.org/project/circuitpython-Candlesticks)) \([Docs](https://circuitpython-candlesticks.readthedocs.io/)) 101 | * [CircuitPython_Chime](https://github.com/CedarGroveStudios/CircuitPython_Chime.git) A class for generating wind chime and bell sounds using synthio. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_Chime/blob/main/media/pseudo_rtd_cedargrove_chime.pdf)) 102 | * [CircuitPython ColorPicker](https://github.com/jposada202020/CircuitPython_color_picker.git) Color Picker for CircuitPython. Allows to pick a color directly from CircuitPython, giving you the color information ([PyPi](https://pypi.org/project/circuitpython-color-picker) )\([Docs](https://circuitpython-color-picker.readthedocs.io/)) 103 | * [CircuitPython_ColorFader](https://github.com/CedarGroveStudios/CircuitPython_ColorFader.git) Brightness and gamma adjustment of an integer RGB color value \([Docs](https://github.com/CedarGroveStudios/CircuitPython_ColorFader/blob/main/media/pseudo_rtd_cedargrove_colorfader.pdf)) 104 | * [CircuitPython CSV](https://github.com/tekktrik/CircuitPython_CSV) CircuitPython helper library for working with CSV files ([PyPI](https://pypi.org/project/circuitpython-csv/)) \([Docs](https://circuitpython-csv.readthedocs.io/)) 105 | * [CircuitPython DiscordBot](https://github.com/2231puppy/CircuitPython_DiscordBot.git) A very simple Discord API for CircuitPython 106 | * [CircuitPython_DisplayIO_ListSelect](https://github.com/FoamyGuy/CircuitPython_DisplayIO_ListSelect) CircuitPython displayio widget to show a list and allow user to select an item from it. 107 | * [CircuitPython Display Frame](https://github.com/FoamyGuy/CircuitPython_Display_Frame.git) CircuitPython displayio widget to create a rounded rectangle frame with text label at the top center ([PyPi](https://pypi.org/project/circuitpython-display-frame)) \([Docs](https://circuitpython.readthedocs.io/projects/display_frame/en/latest/)) 108 | * [CircuitPython CaveBLE](https://github.com/furbrain/CircuitPython_CaveBLE.git) Communicate with cave surveying devices \([Docs](https://circuitpython-caveble.readthedocs.io/en/latest/)) 109 | * [CircuitPython DST_Adjuster](https://github.com/CedarGroveStudios/CircuitPython_DST_Adjuster.git) Adjust struct time to North American Daylight Saving Time (DST) \([Docs](https://github.com/CedarGroveStudios/CircuitPython_DST_Adjuster/blob/main/media/pseudo_rtd_cedargrove_dst_adjuster.pdf)) 110 | * [CircuitPython Equalizer](https://github.com/jposada202020/CircuitPython_equalizer) CircuitPython graphic equalizer with DisplayIO ([PyPi](https://pypi.org/project/circuitpython-equalizer) \([Docs](https://circuitpython-equalizer.readthedocs.io/)) 111 | * [CircuitPython Example](https://github.com/tannewt/CircuitPython_Example.git) This is an example CircuitPython library used in an Adafruit Learn Guide \([Docs](https://circuitpython-example.readthedocs.io/en/latest/)) 112 | * [CircuitPython Functools](https://github.com/tekktrik/CircuitPython_Functools.git) A CircuitPython implementation of CPython's functools library \([Docs](https://circuitpython-functools.readthedocs.io/en/latest/)) 113 | * [CircuitPython gauge](https://github.com/jposada202020/CircuitPython_gauge) Customizable Gauge widget for displayio ([PyPi](https://pypi.org/project/circuitpython-gauge/)) \([Docs](https://circuitpython-gauge.readthedocs.io/en/latest/)) 114 | * [CircuitPython GameControls](https://github.com/FoamyGuy/CircuitPython_GameControls) Abstraction API for video game controls. ([PyPi](https://pypi.org/project/circuitpython-gamecontrols/)) \([Docs](https://circuitpython-gamecontrols.readthedocs.io/en/latest/)) 115 | * [CircuitPython HMAC](https://github.com/jimbobbennett/CircuitPython_HMAC) HMAC (Keyed-Hashing for Message Authentication) Python module. Implements the HMAC algorithm as described by RFC 2104 ([PyPi](https://pypi.org/project/circuitpython-hmac)) \([Docs](https://circuitpython.readthedocs.io/projects/hmac/en/latest/)) 116 | * [CircuitPython Display_HT16K33](https://github.com/jposada202020/CircuitPython_DISPLAY_HT16K33.git) On display simulation for the HT16K33 driver. Works with 8x8 and 16x8 matrices, as well as 4x7 and 4x14 segments ([PyPi](https://pypi.org/project/circuitpython-display-ht16k33/)) \([Docs](https://circuitpython-display-ht16k33.readthedocs.io/en/latest/)) 117 | * [CircuitPython I2C Button](https://github.com/gmparis/CircuitPython_I2C_Button) CircuitPython I2C Button à la Sparkfun Qwiic Button/Switch/Arcade ([PyPI](https://pypi.org/project/circuitpython-i2c-button/)) \([Docs](https://circuitpython-i2c-button.readthedocs.io/en/latest/)) 118 | * [CircuitPython iperf](https://github.com/bablokb/circuitpython-iperf) CircuitPython port of the iperf3-utility 119 | * [CircuitPython KeyManager](https://github.com/relic-se/CircuitPython_KeyManager) Helper library to manage notes in musical applications. Includes note priority, arpeggiation, and sequencing. \([Docs](https://circuitpython-keymanager.readthedocs.io/en/latest/)) 120 | * [CircuitPython LeapYear](https://github.com/CedarGroveStudios/CircuitPython_LeapYear.git) Confirms whether a specified year is a leap year \([Docs](https://github.com/CedarGroveStudios/CircuitPython_LeapYear/blob/main/media/pseudo_rtd_cedargrove_leapyear.pdf)) 121 | * [CircuitPython Mag Cal](https://github.com/furbrain/CircuitPython_mag_cal.git) Calibrate magnetic sensors \([Docs](https://circuitpython-mag-cal.readthedocs.io/en/latest/)) 122 | * [CircuitPython MicroOSC](https://github.com/todbot/CircuitPython_MicroOSC.git) ([PyPi](https://pypi.org/project/circuitpython-microosc)) \([Docs](https://circuitpython-microosc.readthedocs.io/en/latest/)) Minimal OSC parser and server for CircuitPython and CPython 123 | * [CircuitPython_MIDI_Tools](https://github.com/CedarGroveStudios/CircuitPython_MIDI_Tools.git) A collection of methods for processing MIDI notes and Control Change codes \([Docs](https://github.com/CedarGroveStudios/CircuitPython_MIDI_Tools/blob/main/media/pseudo_rtd_cedargrove_midi_tools.pdf)) 124 | * [CircuitPython MorseCode](https://github.com/jposada202020/CircuitPython_MorseCode.git) Circuitpython library to crete Morse code ([PyPi](https://pypi.org/project/circuitpython-MorseCode)) \([Docs](https://circuitpython-morsecode.readthedocs.io/en/latest/)) 125 | * [CircuitPython Noise](https://github.com/todbot/CircuitPython_Noise.git) ([PyPi](https://pypi.org/project/circuitpython-noise)) \([Docs](https://circuitpython-noise.readthedocs.io/en/latest/)) Simplex (Perlin-like) noise generation 126 | * [CircuitPython_OhmsLaw](https://github.com/CedarGroveStudios/CircuitPython_OhmsLaw.git) Calculate an Ohm’s Law result from two input parameters \([Docs](https://github.com/CedarGroveStudios/CircuitPython_OhmsLaw/blob/main/media/pseudo_rtd_cedargrove_ohmslaw.pdf)) 127 | * [CircuitPython_Org_DisplayIO_Annotation](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Annotation.git) Annotation widget for displayio ([PyPi](https://pypi.org/project/circuitpython-displayio-annotation/) \([Docs](https://docs.circuitpython.org/projects/displayio_annotation/en/latest/)) 128 | * [CircuitPython_Org_DisplayIO_Cartesian](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Cartesian.git) Graph cartesian widget for displayio ([PyPi](https://pypi.org/project/circuitpython-displayio-cartesian/) \([Docs](https://circuitpython-displayio-cartesian.readthedocs.io/en/latest/)) 129 | * [CircuitPython_Org_DisplayIO_Dial](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Dial.git) Dial widget for displayio ([Docs](https://circuitpython-displayio-dial.readthedocs.io/en/latest/)) 130 | * [CircuitPython_Org_DisplayIO_Effects](https://github.com/circuitpython/CircuitPython_Org_DisplayIO_Effects.git) Displayio effects that manipulate widgets over time ([PyPi](https://pypi.org/project/circuitpython-displayio-effects/) \([Docs](https://circuitpython-displayio-effects.readthedocs.io/en/latest/)) 131 | * [CircuitPython PaletteFader](https://github.com/CedarGroveStudios/CircuitPython_PaletteFader.git) Color palette and list brightness setter and normalizer tool. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_PaletteFader/blob/main/media/pseudo_rtd_cedargrove_palettefader.pdf)) 132 | * [CircuitPython PaletteFilter](https://github.com/CedarGroveStudios/CircuitPython_PaletteFilter.git) Replace color index values in a displayio.Palette object \([Docs](https://github.com/CedarGroveStudios/CircuitPython_PaletteFilter/blob/main/media/pseudo_readthedocs_palettefilter.pdf)) 133 | * [CircuitPython PaletteSlice](https://github.com/CedarGroveStudios/CircuitPython_PaletteSlice.git) Wrap a displayio.Palette object to permit list-like slicing \([Docs](https://github.com/CedarGroveStudios/CircuitPython_PaletteSlice/blob/main/media/pseudo_rtd_paletteslice.pdf)) 134 | * [CircuitPython Parse](https://github.com/jimbobbennett/CircuitPython_Parse) Parse (absolute and relative) URLs ([PyPi](https://pypi.org/project/circuitpython-parse)) \([Docs](https://circuitpython.readthedocs.io/projects/parse/en/latest/)) 135 | * [CircuitPython_PIO_I2S](https://github.com/relic-se/CircuitPython_PIO_I2S.git) CircuitPython library to handle bidirectional I2S communication using PIO to be used with audio codecs and microphones \([Docs](https://circuitpython-pio-i2s.readthedocs.io/)) 136 | * [CircuitPython_pixel_mapper](https://github.com/clickonben/CircuitPython_pixel_mapper/) Pixel Mapper helper for Adafruit_CircuitPython_LED_Animation ([PyPI](https://pypi.org/project/circuitpython-pixel-mapper/)) \([Docs](https://circuitpython-pixel-mapper.readthedocs.io/)) 137 | * [CircuitPython_PunkConsole](https://github.com/CedarGroveStudios/CircuitPython_PunkConsole.git) Emulate the Atari Punk Console \([Docs](https://github.com/CedarGroveStudios/CircuitPython_PunkConsole/blob/main/media/pseudo_readthedocs_cedargrove_punkconsole.pdf)) 138 | * [CircuitPython_RangeSlicer](https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer.git) Scale a range of input values into quantized range using hysteresis for noise reduction \([Docs](https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer/blob/master/media/pseudo_readthedocs_rangeslicer.pdf)) 139 | * [CircuitPython_RGB_SpectrumTools](https://github.com/CedarGroveStudios/CircuitPython_RGB_SpectrumTools.git) Methods and classes for converting a normalized spectral index to RGB color values \([Docs](https://github.com/CedarGroveStudios/CircuitPython_RGB_SpectrumTools/blob/main/media/pseudo_rtd_cedargrove_rgb_spectrumtools.pdf)) 140 | c* [CircuitPython_RotarySelect](https://github.com/FoamyGuy/CircuitPython_RotarySelect) CircuitPython displayio widget with circle icons laid out around a circle with a selection indicator ([PyPi](https://pypi.org/project/circuitpython-rotaryselect/) \([Docs](https://circuitpython-rotarydial.readthedocs.io/en/latest/)) 141 | * [CircuitPython scales](https://github.com/jposada202020/CircuitPython_scales.git) Displayio widget to draw graphical scales. Scales can be animated, having the ability to represent realtime data ([PyPi](https://pypi.org/project/circuitpython-scales/)) \([Docs](https://circuitpython-scales.readthedocs.io/en/latest/)) 142 | * [CircuitPython_Schedule](https://github.com/cognitivegears/CircuitPython_Schedule) Reduced version of the schedule library for CircuitPython ([PyPi](https://pypi.org/project/circuitpython-schedule/)) \([Docs](https://circuitpython-schedule.readthedocs.io/en/latest/)) 143 | * [CircuitPython_ShadowWatcher](https://github.com/CedarGroveStudios/CircuitPython_ShadowWatcher.git) Detects a shadow cast over an analog light sensor \([Docs](https://github.com/CedarGroveStudios/CircuitPython_ShadowWatcher/blob/main/media/pseudo_readthedocs_shadowwatcher.pdf)) 144 | * [CircuitPython simple_dial](https://github.com/jposada202020/CircuitPython_simple_dial.git) Simple dial to graph Gyros, dial or simple clocks ([PyPi](https://pypi.org/project/circuitpython-simnple-dial/)) \([Docs](https://circuitpython-simple-dial.readthedocs.io/en/latest/)) 145 | * [CircuitPython Slider](https://github.com/jposada202020/CircuitPython_slider.git) Simpleslider for Touchscreens ([PyPi](https://pypi.org/project/circuitpython-slider/)) \([Docs](https://circuitpython-slider.readthedocs.io/en/latest/)) 146 | * [CircuitPython SoftKeyboard](https://github.com/FoamyGuy/CircuitPython_SoftKeyboard.git) Soft Keyboard for Touchscreens ([PyPi](https://pypi.org/project/circuitpython-softkeyboard/)) \([Docs](https://circuitpython-softkeyboard.readthedocs.io/en/latest/)) 147 | * [CircuitPython Styles](https://github.com/jposada202020/CircuitPython_styles.git) Library helper to add styles to CircuitPython display functions CircuitPython widgets ([PyPi](https://pypi.org/project/circuitpython-styles)) \([Docs](https://circuitpython-styles.readthedocs.io/en/latest/)) 148 | * [CircuitPython_SynthVoice](https://github.com/relic-se/CircuitPython_SynthVoice/) Helper library to generate complex synthio voices. \([Docs](https://circuitpython-synthvoice.readthedocs.io/en/latest/)) 149 | * [CircuitPython_TemperatureTools](https://github.com/CedarGroveStudios/CircuitPython_TemperatureTools.git) A collection of Dew Point, Heat Index, and temperature unit helpers \([Docs](https://github.com/CedarGroveStudios/CircuitPython_TemperatureTools/blob/main/media/pseudo_rtd_cedargrove_temperaturetools.pdf)) 150 | * [CircuitPython_TMIDI](https://github.com/todbot/CircuitPython_TMIDI.git) Alternate CircuitPython MIDI library, inherits from Winterbloom_SmolMIDI ([PyPi](https://pypi.org/project/circuitpython-tmidi/)) \([Docs](https://circuitpython-tmidi.readthedocs.io/en/latest/)) 151 | * [CircuitPython_TOML](https://github.com/elpekenin/circuitpython_toml.git) A subset of CPython's built-in module for working with TOML data. Useful for complex data on `settings.toml` where `os.getenv` is not enough. 152 | * [CircuitPython_TouchCalibrator](https://github.com/CedarGroveStudios/CircuitPython_TouchCalibrator.git) A resistive touchscreen calibrator for Adafruit built-in and TFT FeatherWing displays 153 | * [CircuitPython TZDB](https://github.com/evindunn/circuitpython_tzdb) IANA timezones for adafruit_datetime ([PyPi](https://pypi.org/project/circuitpython-tzdb/)) \([Docs](https://circuitpython-tzdb.readthedocs.io/en/latest/)) 154 | * [CircuitPython uplot](https://github.com/jposada202020/CircuitPython_uplot) Plot library for CircuitPython ([PyPi](https://pypi.org/project/circuitpython-uplot/)) \([Docs](https://circuitpython-uplot.readthedocs.io/en/latest/)) 155 | * [CircuitPython_WaveBuilder](https://github.com/CedarGroveStudios/CircuitPython_WaveBuilder.git) A CircuitPython class to construct a composite synthio wave table from a collection of oscillators. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_WaveBuilder/blob/main/media/pseudo_rtd_cedargrove_wavebuilder.pdf)) 156 | * [CircuitPython_Waveform](https://github.com/relic-se/CircuitPython_Waveform.git) Helper library to generate simple and composite waveforms for use with synthio. \([Docs](https://circuitpython-waveform.readthedocs.io/)) 157 | * [CircuitPython_WaveViz](https://github.com/CedarGroveStudios/CircuitPython_WaveViz.git) A CircuitPython class to create a positionable displayio.Group graphics widget from a synthio wave table. \([Docs](https://github.com/CedarGroveStudios/CircuitPython_WaveViz/blob/main/media/pseudo_rtd_cedargrove_waveviz.pdf)) 158 | * [Gamblor21 CircuitPython AHRS](https://github.com/gamblor21/Gamblor21_CircuitPython_AHRS.git) This library contains right now one algorithm for AHRS - Attitude and Heading Reference System \([Docs](https://circuitpython-ahrs.readthedocs.io/)) 159 | * [Jepler CircuitPython udecimal](https://github.com/jepler/Jepler_CircuitPython_udecimal.git) Reduced version of the decimal library for CircuitPython ([PyPi](https://pypi.org/project/jepler-circuitpython-udecimal)) \([Docs](https://jepler-udecimal.readthedocs.io/en/latest/)) 160 | * [PiperBlocklyLibrary](https://github.com/buildwithpiper/PiperBlocklyLibrary.git) CircuitPython Library to support block-coding using the RP Pico microcontroller 161 | * [circuitPython dotstar featherwing](https://github.com/dastels/circuitPython_dotstar_featherwing.git) A higher level library for working with the DotStar FeatherWing, build on top of the CircuitPython DotStar driver \([Docs](https://circuitpython.readthedocs.io/projects/dotstar_featherwing/en/latest/)) 162 | * [MCP23017 Scanner](https://github.com/Neradoc/CircuitPython_mcp23017_Scanner) A keypad-like module to scan keys or a key matrix connected to a MCP23017 GPIO expander ([Docs](https://mcp23017-matrix-scanner-for-circuitpython.readthedocs.io/)) 163 | * [Multi Keypad](https://github.com/Neradoc/CircuitPython_Multi_Keypad) A helper library to use multiple instances from the keypad library or compatible as a single event queue ([Docs](https://multi-keypad-for-circuitpython.readthedocs.io/)) 164 | * [nonblocking timer](https://github.com/Angeleno-Tech/nonblocking_timer.git) nonblockingtimer is a class to simplify the use of time.monotonic() when working with CircuitPython \([Docs](https://circuitpython-nonblocking_timer.readthedocs.io/)) 165 | * [nonblocking Serial Input](https://github.com/s-light/CircuitPython_nonblocking_serialinput) CircuitPython helper library to handle serial user input in a nonblocking way \([Docs](https://circuitpython-nonblocking-serialinput.readthedocs.io/)) 166 | * [NVM Helper](https://github.com/FoamyGuy/Foamyguy_CircuitPython_nvm_helper) Easy interface to store and retrieve objects persisted via NVM \([Docs](https://circuitpython-nvm-helper.readthedocs.io/)) 167 | * [Oak Dev Tech CircuitPython IcePython](https://github.com/skerr92/Oakdevtech_CircuitPython_IcePython) Helper for programming Lattice iCE40 FPGA 168 | * [UUIDv4](https://github.com/DerBroader71/circuitpython_uuid4) This is a CircuitPython library to generate a UUID version 4 169 | * [P1AM](https://github.com/facts-engineering/CircuitPython_P1AM.git) A CircuitPython driver library for the P1AM product family. 170 | * [p1am_200_helpers](https://github.com/facts-engineering/CircuitPython_p1am_200_helpers.git) A CircuitPython helper library for the features of the P1AM-200. 171 | * [PCF85063A](https://github.com/bablokb/circuitpython-pcf85063a) A CircuitPython library for the PCF85063A RTC 172 | * [RS485-Wrapper](https://github.com/facts-engineering/CircuitPython_rs485_wrapper.git) A CircuitPython helper library to convert a UART object into an RS485 object. 173 | * [Cirque Pinnacle](https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle) A driver library to use circular trackpads (as seen in the Steam controller and HTC Vive VR controllers) empowered with Cirque's 1CA027 ASIC (surnamed "Pinnacle"). More information can be found in the [documentation](https://circuitpython-cirque-pinnacle.rtfd.io). 174 | * [Embedded HTTPServer](https://github.com/bablokb/circuitpython-ehttpserver) An efficient and slim HTTP-server (fork of biplane) 175 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | circuitpython-build-tools 2 | setuptools 3 | -------------------------------------------------------------------------------- /update-submodules.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) 2016 Scott Shawcroft for Adafruit Industries 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | 25 | # This script updates all submodules to the latest tag (hopefully release). 26 | git submodule update 27 | git submodule foreach git fetch 28 | git submodule foreach "tag=\$(git rev-list --tags --max-count=1); git checkout -q \$tag" 29 | -------------------------------------------------------------------------------- /update_scripts/update_linux.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | latest_release=$(curl -s "https://api.github.com/repos/adafruit/Adafruit_CircuitPython_Bundle/releases/latest") 3 | download_link=$(echo $latest_release | grep -o "\"browser_download_url\": \"[^\"]*" | cut -d \" -f 4) 4 | tag=$(echo $latest_release | grep -o "\"tag_name\": \"[^\"]*" | cut -d \" -f 4) 5 | current=$(head -n 1 VERSIONS.txt | tr -d '[:space:]') 6 | if [ $? -ne 0 ] 7 | then echo "No VERSIONS.txt please run from lib/" 8 | fi 9 | if [ $current == $tag ] 10 | then echo "Already updated to the latest."; exit 0 11 | fi 12 | save_to=~/Downloads/$(basename $download_link) 13 | echo "Downloading to " $save_to 14 | curl -sL $download_link > $save_to 15 | unzip -o $save_to -d .. 16 | -------------------------------------------------------------------------------- /update_scripts/update_macosx.command: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | cd $(dirname $0) 3 | latest_release=$(curl -s "https://api.github.com/repos/adafruit/Adafruit_CircuitPython_Bundle/releases/latest") 4 | download_link=$(echo $latest_release | grep -o "\"browser_download_url\": \"[^\"]*" | cut -d \" -f 4) 5 | tag=$(echo $latest_release | grep -o "\"tag_name\": \"[^\"]*" | cut -d \" -f 4) 6 | current=$(head -n 1 VERSIONS.txt | tr -d '[:space:]') 7 | if [ $? -ne 0 ] 8 | then echo "No VERSIONS.txt please run from lib/" 9 | fi 10 | if [ $current == $tag ] 11 | then echo "Already updated to the latest."; exit 0 12 | fi 13 | save_to=~/Downloads/$(basename $download_link) 14 | echo "Downloading to " $save_to 15 | curl -sL $download_link > $save_to 16 | unzip -o $save_to -d .. 17 | -------------------------------------------------------------------------------- /works_in_progress.md: -------------------------------------------------------------------------------- 1 | # Community Modules: Works In Progress 2 | 3 | This is a list of links to CircuitPython modules from the community 4 | that are not ready to be submitted to the Community Bundle, but that 5 | the author would like to inform others of the module's existence. 6 | 7 | If you've written a CircuitPython driver that you'd like to make 8 | available but don't feel it's ready for the Community Bundle, feel 9 | free to add a link to the GitHub repo below. 10 | 11 | If you'd like to see a driver listed below included in the 12 | Community Bundle, consider contacting the author to see how you can 13 | help get the driver ready for the Bundle. 14 | 15 | 16 | ## 🚧 Works In Progress 17 | 18 | * [https://github.com/maholli/CircuitPython_SX1280](https://github.com/maholli/CircuitPython_SX1280) 19 | * [https://github.com/maholli/CircuitPython_FDC221x](https://github.com/maholli/CircuitPython_FDC221x) 20 | * [https://github.com/maholli/CircuitPython_ADS124S08](https://github.com/maholli/CircuitPython_ADS124S08) 21 | * [https://github.com/maholli/CircuitPython_ADM1176](https://github.com/maholli/CircuitPython_ADM1176) 22 | * [https://github.com/maholli/CircuitPython_INA226](https://github.com/maholli/CircuitPython_INA226) 23 | * [https://github.com/maholli/CircuitPython_BQ25883](https://github.com/maholli/CircuitPython_BQ25883) 24 | * [https://github.com/spacecraft-design-lab-2019/CircuitPython_BMX160](https://github.com/spacecraft-design-lab-2019/CircuitPython_BMX160) 25 | --------------------------------------------------------------------------------