uPyPi: A PyPI-like MicroPython Package Repository #18904
Replies: 7 comments 3 replies
-
|
Looks a lot like mim! |
Beta Was this translation helpful? Give feedback.
-
|
The user guide is in Chinese. The GitHub button on the application's home page asks for permission to access my own repositories. In the absence of an English language explanation I find that alarming. |
Beta Was this translation helpful? Give feedback.
-
|
So, mip allows installation directly from GitHub or GitLab. It doesn't support versions but the typical workaround for that is to include a submodule in your own repository and add it to a manifest. mim indexes libraries that are mip-installable so they're easy to find. I don't want to be discouraging to your work, but it's not clear what benefit there is to creating a package repository? |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for providing English language docs. The following comments are intended as general information for potential users. I see that uPyPi uses $ mpremote mip install "github:peterhinch/micropython-nano-gui/drivers/st7789"The key aim of uPyPi seems to be to encourage developers to re-publish their packages to a Chinese server, to enable easier access from within China. |
Beta Was this translation helpful? Give feedback.
-
Core Features of the uPyPi Upgrade1. Bilingual Interface (Chinese / English)
2. Special Package Identification
3. Intelligent Cache Strategy Optimization
4. Bulk High-Speed Upload
5. Precise & Efficient Search
6. Lightweight Development Environment
|
Beta Was this translation helpful? Give feedback.
-
|
About How to use: Instructions for Downloading and Uploading Driver Packages on the uPyPi Platform1. Project Background
In the early days of the MicroPython ecosystem, when developers shared or used third-party libraries, they often had to manually download multiple files and then copy them into the project directory. This "copy-and-paste" approach has many pain points:
Later, the MicroPython community introduced the mip (mip installs packages) tool, similar to Package platforms similar to PyPI for MicroPython include mim and awesome-micropython, but they all have relatively significant issues:
Thus,** uPyPi (https://upypi.net/) ** came into being —— it is a package management repository specifically designed for MicroPython, like the "PyPI for MicroPython", enabling developers to easily upload, share, and discover driver packages, completely resolving the early library management challenges. Core issues of the mim platform:
Core issues of the mim platform:
Core issues of the awesome-micropython project:
2. What benefits can uPyPi bring?Using uPyPi to manage driver packages has these core advantages:
**Simply put, the uPyPi platform is the "distribution center" for MicroPython driver packages, where we can search for, view, download, and upload the required driver packages. ** Core features include:
Other features include:
3. Quickly Install the Driver PackageIf you're new to the MicroPython and uPyPi platforms, don't worry! This guide will start from ** the most basic preparations ** and teach you step by step how to download and use driver packages from the uPyPi platform on Raspberry Pi Pico2 (without network) and Pico2W (with network), using 3.1 Preparatory Work for Beginners with No Prior KnowledgeBefore using uPyPi, it is necessary to prepare the hardware, software, and complete the basic settings, all of which are indispensable. 3.1.1 Hardware Preparation3.1.2 Software Preparation
Thonny is the most suitable MicroPython development tool for beginners, supporting code writing, development board connection, and file management.
This is a tool for communication between a computer and a MicroPython development board, used for ** locally installing driver packages ** ( ** essential for single-chip microcomputers without network connectivity ** ). Open the "Command Prompt (CMD)" or "PowerShell" on your computer, enter the following command, and press Enter: pip install mpremoteThe prompt "Successfully installed mpremote" indicates successful installation. 3.2 Development Board Basic Settings (Flashing MicroPython Firmware)You need to first flash an mpy firmware to your MCU. Here we take Raspberry Pi Pico2 / Pico2W as an example, which comes without a MicroPython firmware out of the box and needs to be flashed first before use.
3.3 Open the uPyPi platform to search for packages and copy commandsThe uPyPi platform is the "hub" for MicroPython driver packages, where we can search for, view, and download the required driver packages.
Open your browser and visit the official uPyPi website:https://upypi.net/ Enter ** bmp280 ** in the
Search results will display matching driver packages (such as
Click "View Details" to enter the driver package details page, where you can switch driver package versions on the right side of the page:
The left side of the page will display ** core installation commands ** (local installation / remote installation):
3.4 Download and Install the Driver PackageDepending on whether the development board has network connectivity, it is divided into** local installation (Pico2)** and** remote installation (Pico2W)** two methods. 3.4.1 Local Installation (for development boards without WiFi)Connect to the computer via USB and use the Enter execution command: mpremote mip install https://upypi.net/pkgs/bmp280_driver/1.0.0Wait for the command to execute. When the following content appears in the terminal, the installation is successful:
We can also use the following command to check the files inside the board and confirm whether the download was successful: # List the root file directory
mpremote fs ls
# List the directory under the 'lib/' folder
mpremote fs ls 'lib/'
3.4.2 Remote Installation (for development boards with WiFi)First, connect the development board to WiFi, then directly install the driver package in the REPL terminal of the development board.
After the import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Your WiFi Name", "Your WiFi Password")
# Wait for the WiFi connection to succeed
import time
while not wlan.isconnected():
print("Connecting to WIFI...")
time.sleep(1)
print("WIFI Connected! IP Address:", wlan.ifconfig()[0])If it shows "WIFI Connected! IP Address: 192.168.xx.xx", it indicates that the WiFi connection is successful:
After import mip
mip.install("https://upypi.net/pkgs/bmp280_driver/1.0.0")After execution is completed, the following display indicates successful installation:
Click "Raspberry Pi Pico2" in the left "File" panel, expand the "lib" folder, if you can see the
3.5 Use the installed driver packageAfter the installation is complete, we use the BMP280 sensor to test whether the driver package can work properly. You can refer to the following cloud document for this part:
https://freakstudio.cn/node/019ba20b-b702-7118-a3b3-c3fb7218fd61 4. Upload Driver Packages (Advanced: For Users Who Want to Share Drivers)If you have developed your own MicroPython driver and would like to share it on uPyPi for others to use, you can follow these steps (using 4.1 Prepare a compliant driver package fileThe file directory of the driver package must follow the following structure (refer to Figure 6-9), and all components are indispensable: Your driver package folder (e.g., bmp280_driver)/
├── code/ # Folder for core driver code
│ ├── core_driver_file.py (e.g., bmp280_float.py)
│ └── test_example_file.py (e.g., main.py, optional)
├── package.json # "ID card" of the driver package (required file)
├── README.md # Driver usage instructions (recommended file)
└── LICENSE # Open source license file (recommended file)
{
"name": "bmp280_driver", // Package name, lowercase, separated by underscores
"version": "1.0.0", // Version number, following Major.Minor.Patch rules
"urls": [ // File mapping: ["device-side filename", "local file path"]
["bmp280_float.py", "code/bmp280_float.py"]
],
"description": "MicroPython driver for controlling the BMP280 pressure and temperature sensor", // Optional: Function description
"author": "Your Name", // Optional: Author
"license": "MIT", // Optional: Open source license
"keywords": ["micropython", "bmp280", "sensor"] // Optional: Search keywords
}4.2 Upload the driver package to uPyPi
Ensure that your project's root directory contains the following files (without nested folders, directly placed in the root directory):
Next, package the library files into a Compressed Packet:
Visit the official uPyPi website, click on "Log in with GitHub" in the top right corner, and authorize to log in using your GitHub account:
After logging in, click on "My Panel" at the top, then click on "Click Here to Upload the First Compressed Packet":
Go to the upload page, click "Select File", and select the ZIP Compressed Packet generated just now:
After confirming that the folder contains
After successful upload, your driver package will be searchable on uPyPi, and other users can install it directly. 4.3 Frequently Asked Questions - Avoiding Version Conflicts and Package Name Duplication
When uploading a driver package to uPyPi, you may encounter a prompt like the one shown in the picture:** "Package bmp280_driver version 1.0.0 already exists." ** This is because the uPyPi platform has strict rules for package management to ensure that each package's version and name are unique, facilitating users to accurately install and use packages. uPyPi does not allow uploadingidentical version numbersfor the same package name. This is like the update log of a mobile app:
The version number follows the ** "major.minor.patch" ** rule (Semantic Versioning), and must be incremented with each upload:
If your package name is too broad (such as
Steps to resolve the "Version already exists" prompt:
5. Related Operation Videos |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.

































Uh oh!
There was an error while loading. Please reload this page.
-
uPyPi: A PyPI-like MicroPython Package Repository
uPyPi is a dedicated package management hub for the MicroPython ecosystem, designed to simplify the discovery, sharing, and deployment of MicroPython libraries and drivers.
Core Features
(1) Package Management: A PyPI-inspired repository where you can upload, browse, download, and manage your MicroPython packages.
(2) JSON Metadata Parsing: All packages require a package.json file to define essential metadata (e.g., name, version), ensuring consistency and compatibility.
(3) Bilingual Support: Full Chinese/English interface toggle for global accessibility.
(4) Chip & Firmware Filtering: Discover packages tailored to specific hardware (e.g., RP2040) and firmware environments.
(5) Personal Dashboard: Track and manage all your uploaded packages in one place, with a clear overview of your contributions.
What's New in v0.3.1
(1) Streamlined UI: Removed redundant code and controls for a cleaner, more intuitive front-end.
(2) Backend Optimization: Refactored the database, added LRU cache for performance, and removed unnecessary TXT columns.
(3) Enhanced Development Support: Restored sandbox support, added containerization and local development modes, and decoupled GitHub integration (now only required for development).
Platform URL: https://upypi.net/



User Guide: https://f1829ryac0m.feishu.cn/wiki/L9AlwY1MEiVHQMk19Q7cYb3Hnwh?from=from_copylink
Beta Was this translation helpful? Give feedback.
All reactions