GNU General Public License v3.0

项目介绍

beryllium-org/Micro 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前获得 329 个 Star、17 次 Fork。

仓库全名
beryllium-org/Micro
开源许可证
GNU General Public License v3.0
Star 数
329
Fork 数
17
未关闭 Issue
3

README 摘要

Beryllium OS Micro (Formerly known as ljinux) Important notes: This project is still in it's early developement ! The kernel API is undergoing massive breaking changes every day. This project is NOT a linux distribution. This project is NOT compatible with any linux code / binaries. We also now have a discord server! If you need support or want to hang out, feel free to join in! We also work with Github Discussions…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Micro 用什么语言开发?

主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前有 329 个 Star。

Micro 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 Micro 的源码?

可以直接克隆仓库:git clone https://github.com/beryllium-org/Micro.git,默认分支为 master;安装与运行步骤见仓库 README。

Micro 最近还在维护吗?

仓库最近一次更新为 8月29日,当前有 3 个未关闭 Issue;Star 数为 329,可作为社区活跃度的参考。

关于

Beryllium OS Micro, a unix-like operating system for CircuitPython powered microcontrollers.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

Makefile
Python
Roff
Shell

Release

README

Beryllium OS Micro

A unix-like operating system for CircuitPython powered microcontrollers. Code style: black
(Formerly known as ljinux)
neofetch
Important notes:
This project is still in it’s early developement!
The kernel API is undergoing massive breaking changes every day.
This project is NOT a linux distribution.
This project is NOT compatible with any linux code / binaries.

We also now have a discord server!
If you need support or want to hang out, feel free to join in!

We also work with Github Discussions.

Table of Contents

Prerequisites and hardware support

Runs on CircuitPython 9.0.X, 9.1.X and 9.2.X.
Currently the supported boards are:

Espressif:

  • 01Space ESP32-C3-0.42LCD
  • Adafruit Feather ESP32-S2
  • Adafruit Feather ESP32-S3 TFT
  • AiThinker ESP32-CAM
  • DFRobot Beetle ESP32-C3
  • Firebeetle 2 ESP32-S3
  • LILYGO T-Deck
  • LILYGO T-Watch-S3
  • M5Stack Cardputer (Requires 9.1.0-beta1 or later)
  • M5Stack Timer Camera X
  • MakerGo C3 Supermini
  • MakerGo C6 Supermini
  • NodeMcu ESP32-C2 (experimental support)
  • Wemos Lolin S2 Mini
  • WeAct ESP32-C6
  • Waveshare ESP32-S2-Pico
  • Waveshare ESP32-S3-Zero

Raspberry Pi:

  • Adafruit KB2040
  • Adafruit Feather RP2350
  • Pimoroni Pico Lipo (16mb)
  • Pimoroni Pico Lipo (4mb)
  • Raspberry Pi Pico
  • Raspberry Pi Pico W
  • Raspberry Pi Pico 2
  • Waveshare RP2040-Zero
  • Waveshare RP2040-Tiny

Nordic:

  • Seeed XIAO nRF52840 (Sense)
  • Nice!Nano (Limited storage and preinstalled packages)

SAMD:

  • Seeed Wio Terminal

But it can probably run on many more.

The currently stable supported MCUs are: ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, RP2040, RP2350, nRF52840, SAMD51.
The currently unstable MCUs (experimental support) are: ESP32-C2.
The currently unsupported CircuitPython-compatible MCU families / CircuitPython platforms are: SAMD21, litex, mimxrt10xx, efr32, stm.
The MCU's that are currently unsupported are so because I either can't get my hands on a decent board with them or they don't have enough ram for it.

The only real limiting factor should be ram, as about 70k (usable under circuitpython) are needed.
(If you have gotten it running on an unsupported board, feel free to pr)

Installation / Updating

Installation from windows using scripts is only supported through WSL.
Though, if you are windows user, this project really isn’t for you.
Linux and MacOS will work much better.

  1. Install a supported CircuitPython version onto the board.
    Detailed instructions regarding CircuitPython can be found here.
  2. Download the latest Beryllium OS release for your board and extract it onto it.
    If your board has no stable release just yet, or you wish to use the latest and greatest, clone this repository and from within the “source” folder, run make install with your board mounted.
    DO NOT run with -j!!! GNU/Make is assumed to be installed.
    This command will automatically update the system files if they already exist.
    To only update the core files, run make kernel instead.
    If you only want to update the board extras, like drivers and packages, run make extras instead.
    If you plan on loading the files remotely (via web/ble workflow), run make BOARD=*your board.board_id* install instead.
    The files for you to copy will be created inside source/build_*your board.board_id*.
  3. (Optional) Load / Strap 3rd party packages.
    More info regarding packages in Packages
  4. Eject & powercycle the board
    When it’s plugged back in, you can connect to it via serial.
    (You can use putty to connect to the board on Windows, Tio or GNU/Screen on Linux or MacOS)
    Most Wi-Fi boards will start an AP and a telnet server. You can connect with default Wi-Fi credentials.
    More info under Connection IMPORTANT NOTE: To make the board appear again as a usb drive on the host, run the Beryllium command devmode.
    More info regarding internal commands, available in the manual.

Packages

Most of what you need to use your board is already included with the stock installation. (Whatever drivers are implemented, are preloaded)
However it’s possible to install 3rd party packages using the Beryllium OS’ package manager JPKG.
You will have to install them seperately through the jpkg package manager.

You can find beryllium packages in the jpkg github topic.

Connection

To connect to the board it’s recommended to use Putty for Windows and Tio for Linux/MacOS.
A console that works with ANSI escape commands is REQUIRED (aka, not arduino ide).

For Putty, select connection type to be Serial, select the port to be COMX where X is the number of the serial port allocated by the board, and set the speed/baudrate to 115200.
(You can find which com port is allocated from within the Device Manager, it usually is COM3 or COM4)

For Tio if you are on linux, you need to be in the dialout or uucp user group and to connect, run: tio /dev/ttyACM0
If you are on a Mac instead, run: ls /dev/tty.usb* to find the device name, and connect to it by running: tio /dev/tty.usb<Device name here>
To disconnect, press Ctrl + t, q.
To be added to the dialout group, run sudo usermod -a -G dialout <your username here> and restart.

Wi-Fi boards by default start a Wi-Fi hotspot by default and a telnet server.
The default wifi credentials are: beryllium-ap/CHANGEME WIFI PASSWORD and can be changed from &/settings.toml
The default hotspot IP is 192.168.4.1.

Directory structure

  • base, the base root filesystem that will be used to strap all other packages over it.
  • Boardfiles, the different board ports and their configuration data.
  • bootcfg, boot configuration files, to be cherrypicked by ports.
  • drivers, different device drivers that may be build depending on the board.
  • other, miscellaneous files, not used during installation.
  • packages, most of these (if they are compatible with your board) will be bundles with every new installation.
  • scripts, the files needed for compilation, and installation to a board.
  • source, the source files for this project and co. They should be compiled into .mpy files, then into packages.

A complete Beryllium manual is available

https://github.com/beryllium-org/OS/blob/main/Manual.txt

Additional screenshots

less iwctl

Useful resources that helped with the development of this project

https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
https://en.wikipedia.org/wiki/ANSI_escape_code
https://github.com/todbot/circuitpython-tricks

评论

暂无评论