Giter Site home page Giter Site logo

mcauser / awesome-micropython Goto Github PK

View Code? Open in Web Editor NEW
1.3K 63.0 168.0 1.6 MB

A curated list of awesome MicroPython libraries, frameworks, software and resources.

Home Page: https://awesome-micropython.com

License: Creative Commons Zero v1.0 Universal

Makefile 22.31% HTML 77.69%
awesome micropython collection awesome-list

awesome-micropython's People

Contributors

5roop avatar andypiper avatar askpatrickw avatar brainelectronics avatar carlosperate avatar cbrand avatar dmazzella avatar dsiggi avatar hilch avatar josverl avatar jphalip avatar jposada202020 avatar luiz-brandao avatar matthias-bs avatar mattytrentini avatar mcauser avatar mdaeron avatar orbin avatar peter-l5 avatar peterhinch avatar prcutler avatar rafaelaroca avatar redoxcode avatar scruss avatar spekulatius avatar stevesek avatar thilomichael avatar thinktransit avatar upesy avatar wooldoughnut310 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-micropython's Issues

Add social sharing / OpenGraph tags

Enhancement: could add og: and twitter:card meta tags to make Awesome MicroPython more awesome when the link is shared online.

(mostly logging this as a todo for myself to contribute / @mcauser consider me assigned!)

mpsync - A tool that detects changes in files and synchronizes them to a micropython board

Hi,

I'm new to micropython and for my workflow I created a tool that detects changes to files in a specified folder and synchronizes them to a micropython board. That way, whenever you save your project, your board directly executes what you've just written.

The project is called mpsync, is licensed under the MIT license and can be downloaded via pip (pip install mpsync). It is in very early development and has definitely some missing features.

Maybe this tool is also helpful for other developers, so it would be great if it can be added to this list. I'm not sure under wich topic it would fit. It runs on the host, but is not really a shell.

Best,
Uhlo

[MicroPython-NeuralNetwork] - (https://gitlab.com/olivierlenoir/MicroPython-NeuralNetwork) - Neural Network for MicroPython

In category AI.

[MicroPython-NeuralNetwork] - (https://gitlab.com/olivierlenoir/MicroPython-NeuralNetwork) - Neural Network for MicroPython

README
Neural Network using an ESP32 with MicroPython

This repository require using Matrix:
https://gitlab.com/olivierlenoir/MicroPython-Matrix

PROCESS
1 - Train neural network with python
cd micropython
python3 test_neuralnetwork

2 - Use neuralnetwork with micropython
import utest_neuralnetwork

DOCUMENTATION
https://olivierlenoir.gitlab.io/MicroPython-NeuralNetwork/MicroPythonNeuralNetwork.pdf

dead links in the micropyton display driver list

Hey, i am setting up a reference chart for micropython display drivers and unfortunately i came across some dead links on your website/github. Do you happen to have new sources for the drivers?

Controller  Type Typical display conn. Typ.res. Driver Library  Remark 
Dead link SSD1606  E-Paper active matrix epaper   128x180 micropython-ili9341
Dead link ILI9341 LCD TFT Medium lcd rgb 2.7”-3.2”      micropython-ili9341
Dead link SH1106 LCD TFT       micropython-ili9341
Dead link SSD1606 LCD TFT       micropython-ili9341
Dead link ST7735 LCD TFT       micropython-ili9341
Dead link PCD8544 OLED       micropython-oled
Dead link SH1106 OLED       micropython-oled
Dead link SSD1306 OLED       micropython-oled
Dead link UC1701X OLED       micropython-oled

there is no micro:bit section

the microbit rus so slowly that one wire protocol solution have to be written in arm thumb assembly language and won't easily port to other micropython boards even if there were the need for an assembly solution to getting a sensor to work.
With version 1 microbits there were issues with the size of program source, this is still the case with version 2, less than 20kb so the microbit version of a sensor is often rendered unreadable by minifying all function and variable names.

do you want to start a microbit section on your awesome list, this is a list i host?
https://github.com/rhubarbdog/microbit-component

Add Husky Lens drivers

This is a driver for the DFRobot Husky Lens. https://github.com/QuirkyCort/IoTy/blob/main/public/extensions/huskylib.py

The Husky Lens (https://www.dfrobot.com/product-1922.html) is a camera module that can do some onboard machine vision tasks and returns the results in either UART or I2C mode.

The driver is based on the official Python API (https://github.com/HuskyLens/HUSKYLENSPython), but heavily modified to work with micropython and fix a few bugs.

This driver was written for the IoTy project (...a web-based blocks to Python system, similar to BIPES), so it doesn't have it's own repository.

Add VL53L1X driver

This is a driver for the VL53L1X. https://github.com/QuirkyCort/IoTy/blob/main/public/extensions/vl53l1x.py

Compared to the current driver listed on awesome-micropython, this one provides the ability to set distance mode and timing budget. This should allow better results in some cases, but I haven't played around with it enough to see a difference.

This driver was written for the IoTy project (...a web-based blocks to Python system, similar to BIPES), so it doesn't have it's own repository.

Add micropython-gy33 driver

This is a pair of UART and I2C driver for the GY-33 color sensor.

https://github.com/QuirkyCort/micropython-gy33

The GY-33 uses a TCS3472, but does not expose it by default. Instead, it has an onboard micro-controller (STM32F030F4) that handles reading of the sensor and provides a UART and I2C interface. The I2C interface is not compatible with drivers written for the TCS3472, so a separate driver is required.

I couldn't find any detailed English documentation for the GY33, so I've also provided documentation for it in the repository based on the Chinese docs and my own tests.

ESP32 Micropython version

HI,
Very good web site for micropython examples but could you tell me what micropython firmware for ESP32 are you using ?

Sincerely
Eric

Proposing a new section "Frameworks"

Dear Mike,

thanks for your awesome collection of MicroPython resources - and also thanks to all of the contributors.

We would like to add the Terkin Datalogger to the collection. However, it is not quite a library but would probably qualify as a "full program".

While thinking about that, the naming would be a bit awkward, so we came up with "Frameworks" which we believe would fit better. We have a strong background using the Pyramid web framework which could be seen as a role model for Terkin somehow - naturally on a much smaller scale ;].

Thanks already for looking into this. We wanted to humbly ask about your opinion on that before actually starting a pull request.

With kind regards,
Andreas.

Add micropython-generic-thermistor

Would you be willing to add my library to the ADC temperature sensor section?
Thanks!

micropython-generic-thermistor - Micropython Generic Thermistor Library is a basic software module designed to simplify temperature sensing using NTC thermistors within MicroPython-based projects. The library assumes a generic NTC thermistor on the ground side of a voltage divider.

Suggestion: Set up a cron CI workflow to check links

Just a suggestion in case you are interested, on my Awesome list I run a workflow like this to check for dead links every morning:
https://github.com/carlosperate/awesome-microbit/blob/master/.github/workflows/check-links.yml

It uses a ruby-base awesome list tool instea of the more common awesome-lint, as I find some of the awesome-link rules a bit too strick and awesome_bot works well for my purposes.

The workflow file would likely Just Work™️ if it's copy/pasted, happy to submit a PR if it's something you'd like to integrate here as well.

Suggestion: SH1107 display driver with support for 128 x 128 pixel OLEDs

Besides support for 128 x 64 displays provided by the SH1107 driver already listed, this one also supports 128 x 128 displays. It works with I2C and SPI and provides for initialisation in different rotations, some optimisations for partial screen updates, and support for hardware features such as flipping the display upside down.

SH1107 - Micropython driver for SH1107-based OLED displays, both 128 x 128 and 128 x 64 pixels

Add HX710 driver

This is a driver for the HX710. https://github.com/QuirkyCort/IoTy/blob/main/public/extensions/hx710.py

It is very similar to the current drivers for HX711 (...and is readable using the HX711 drivers), but the HX710 has different settings and either a built-in temperature sensor (HX710A) or a Analog/Digital Voltage difference detector (HX710B).

This driver was written for the IoTy project (...a web-based blocks to Python system, similar to BIPES), so it doesn't have it's own repository.

Micropython video+written tutorials

Two great sources of tutorials for Micropython:

  1. Miguel Grinberg's 6-part Micropython course. He also created the awesome Microdot library, which allows you to use a Flask-like expressive web framework in Micropython.
    https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome
    https://github.com/miguelgrinberg/microdot

  2. Bi-weekly Micropython video+written tutorials (full disclosure: this is me...but the tutorials are free, so it's win-win :)
    https://bhave.sh

Modbus slave: TCP and RTU

Hi!

Thanks for the great page.

I'm researching so much on the internet, including forum, and so on to find a Modbus TCP Server (slave) and Modbus RTU slave. But I will be happy if just one that slave (TCP or RTU) can be found :)

Do you know some project with that?

I found only this: https://github.com/sfera-labs/exo-sense-py-modbus Unfortunately that was wrote for the PyCom modules where their MicroPython is a bit different than official MicroPython, and that last commit has 2 years.
If will be not possible to find a project, do you know (more or less) if is easy to port that to Official MicroPython?
Ps: actually I'm using uasyncio on applications. So I would like to use the ModBus integrated with uasyncio as well.

Thank you so much.

Add P10 32*16 LED panel display driver

I propose adding my project, LED Panel MicroPython Driver Module, to the Awesome MicroPython list.

This driver is designed for P10 32x16 single-color LED panel displays. I couldn't find an existing MicroPython driver for this module during my research, so I hope adding it to the Awesome MicroPython list would make it more accessible to others.

P10 Panel

Add mpbridge CLI tool

I'm maintainer of mpbridge CLI tool which helps MicroPython developers to develop and debug faster and easier. This tool can be integrated into any IDE and help you sync / run / debug project faster. It depends on mpremote which is officially maintained by MicroPython organization.

Add Belay (Package Manager & computer-device communications)

I'd like to propose adding my project, Belay, to your list! I can open a PR, but I was unsure of what section to put it under. Belay is primarily 2 things:

Allows Easy Computer-Device Communications.

The following code, running on a computer (e.g. with CPython), will toggle an LED on a microcontroller board running micropython. Besides micropython, no prior pre-configuration is required.

import belay

device = belay.Device("/dev/ttyUSB0")


@device.task
def set_led(state):
    print(f"Printing from device; turning LED to {state}.")
    Pin(25, Pin.OUT).value(state)


set_led(True)

Package Manager

It's been a challenge to get repeatable deployments, and reliable dependency updates. I added a cli tool belay that is heavily inspired by Poetry.

Basically, micropython dependency URLs can be specified in pyproject.toml. Running belay update will fetch and cache those files into the .belay/ folder of your project (this should be committed to git and can be thought of like a lock file). The dependencies and project can then be installed to device via belay install [PORT]. Hashes of files are compared, so syncs are efficient when only a few changes are made. The CLI has a lot of other actions to aid in development and debugging, but this is the basic use-case.

Here's a very basic project that uses Belay for handling dependencies. Note that in this project, no explicit belay install needs to be performed since it's automatically handled within main.py. This also allows for pip-installable libraries/cli to bundle micropython code that can be automatically deployed to micropython microcontrollers.

Add mprsa

mprsa - A MicroPython module for creating, importing, and exporting RSA keys in DER and PEM formats with PKCS#1, PKCS#8, and X.509/SPKI structures, and signing/verifying and encryption/decryption using blinding and SHA-1 and SHA-256 hashing algorithms.

Add a driver for the CS1237 24 bit ADC and for the HX710 24 bit ADC.

Hi Mike.
The CS1237 plays in the field of the HX711, but is told to be less noisy. My test did not show a huge difference, but that may be a problem of the test set-up. It's more flexible than the HX711, with gains of 1,2,64 and 128, and sampling rates of 10, 40, 640 and 1280.

https://github.com/robert-hh/CS1237

I made a variant of my HX711 driver for the HX710: https://github.com/robert-hh/hx710
My HX711 driver is at: https://github.com/robert-hh/hx711

The difference to the HX711 driver you listed already is the synchronization of the data reading with the data ready pulse on the data line, which will be created even if the data reading is in progress. If you do not synchronize the reading with that pulse, it may cause severely wrong values being retrieved.

Best Regards, Robert

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.