Jump to content

Sipeed M1s DOCK (sipeed-m1sdock): Difference between revisions

From postmarketOS Wiki
Danct12 (talk | contribs)
No edit summary
Halamix2 (talk | contribs)
mNo edit summary
 
(10 intermediate revisions by 5 users not shown)
Line 3: Line 3:
| name = M1s DOCK
| name = M1s DOCK
| codename = sipeed-m1sdock
| codename = sipeed-m1sdock
| image = File:CHANGE_ME_TO_DEVICE_CODENAME.jpg
| image = File:M1sdock_breadboard.jpg
| imagecaption = CHANGE_ME
| imagecaption = Sipeed M1s DOCK sitting on a breadboard
| releaseyear = CHANGE_ME
| releaseyear = 2022
| originalsoftware = AliOS
| originalsoftware = FreeRTOS
| chipset = BouffaloLabs BL808
| chipset = Bouffalo Lab BL808
| cpu = 1x T-Head C906, E907 and E902
| cpu = 1x T-Head C906, E907 and E902
| gpu = "2D Accelerator"
| gpu = 2D Accelerator
| storage = 16MB SPI
| storage = 16MB SPI
| display = 280x240 IPS
| display = 280x240 IPS (optional)
| memory = 64 MB PSRAM
| memory = 64 MB PSRAM
| architecture = riscv64
| architecture = riscv64
| type = Development Board
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment -->
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment -->
Line 22: Line 23:
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_mainline = Y
| status_battery = <!-- Charging the battery with charging-sdl is possible -->
| status_battery = -
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_3d = -
| status_audio = <!-- Using the device's speakers/headphone jack works -->
| status_audio = <!-- Using the device's speakers/headphone jack works -->
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_camera = <!-- Taking photos and videos works. -->
| status_camera = <!-- Taking photos and videos works. -->
| status_gps = <!-- The Global Positioning System sensor works.  -->
| status_gps = -
| status_mobiledata = <!-- Connecting to the Internet via cellular network. -->
| status_mobiledata = -
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status_sms = -
| status_calls = <!-- Talking to other people over the cellular network. -->
| status_calls = -
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_nfc = <!-- Near-Field Communication (NFC) works -->
| status_dvb = -
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) -->
| status_nfc = -
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works -->
| status_usba = -
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) -->
| status_hdmidp = -
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) -->
| status_keyboard = -
| status_irtx = <!-- Infrared (IR) port works -->
| status_touchpad = -
| status_accel = <!-- The sensor that measures proper acceleration works -->
| status_irtx = -
| status_magnet = <!-- Magnetometer works -->
| status_irrx = -
| status_light = <!-- Ambient light sensor works -->
| status_accel = -
| status_proximity = <!-- Proximity sensor works -->
| status_magnet = -
| status_hall = <!-- Hall effect sensor works -->
| status_light = -
| status_barometer = <!-- Barometer works -->
| status_proximity = -
| status_powersensor = <!-- Power sensor works -->
| status_hall = -
| status_fossbootloader = y
| status_barometer = -
| status_powersensor = -
| status_fossbootloader = Y
| status_uart = Y
| status_stylus = -
| status_haptics = -
| booting = yes
| booting = yes
| n-android =  ✔
}}
}}
Sipeed M1s DOCK is a development board based on the Sipeed M1s module, it has two USB-C ports, a microphone, a white LED, an SD card slot and support for Wi-Fi 4, Bluetooth 5 (with LE). It runs FreeRTOS as the operating system.
Despite being a small board that fits on a breadboard, it has a MMU and can run Linux. A PoC Linux demo is available on Sipeed's Wiki.
1.69-inch IPS LCD and 2 MP camera is not included, however Sipeed sells a bundle that include the M1s DOCK, Display and Camera.
Mainline Linux support is actively being developed by the OpenBouffalo community, and this pmOS port uses that.


== Contributors ==
== Contributors ==
Line 56: Line 68:
== Users owning this device ==
== Users owning this device ==
{{Device owners}}
{{Device owners}}
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page -->
 
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}-->
== How to enter flash mode ==
<!-- you may need to purge page cache to see changes (more->purge cache)-->
* '''BL808 Bootloader''': Plug in the device then hold down BOOT and hit RST.
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->
* '''BL702 Bootloader''': While holding the BOOT key, plug in the device.
 


== Installation ==
== Installation ==
Use [[pmbootstrap]] to build your own installation image.
{{Notice|When the board is plugged into a computer, there should be two new serial device appears on the computer (mainly ttyACM0 and ttyACM1). If one is only shown, you will have to [https://wiki.sipeed.com/hardware/en/maix/m1s/other/start.html#Burn-onboard-bl702 reflash the BL702 firmware].}}
 
=== Flash postmarketOS to SD card ===
{{Warning|Booting Linux from the SD card requires U-Boot to be installed on SPI Flash.}}
{{Warning|There may be incompatibilities with some SD card, it is recommended to try 32GB SD cards. This is currently being investigated by OpenBouffalo team.}}
The internal SPI flash is only 16MB, which isn't enough to fit a minimal postmarketOS installation. Even if it's possible through memory upgrades, it'll never be supported.
 
<syntaxhighlight lang="shell-session">
$ pmbootstrap init # vendor: sipeed, device: m1sdock
$ pmbootstrap install --sdcard=/dev/sdcard # replace /dev/sdcard with the main block device of the SD card reader
</syntaxhighlight>
 
The first boot takes longer, as the root partition gets resized to fit the whole SD card. <b>DO NOT REBOOT, POWER OFF OR UNPLUG THE BOARD WHILE IT IS RESIZING.</b>
 
=== Install U-Boot to SPI ===
The Sipeed M1s firmware by default does not have any SD card functionality. In order to boot to Linux on the SD card, U-Boot needs to be installed.
 
* Download the latest version of [https://dev.bouffalolab.com/download Bouffalo Lab Dev Cube] and [https://github.com/openbouffalo/buildroot_bouffalo/releases/latest Buildroot for BL808]
* Open BLDevCube for your platform, select <b><q>BL808</q></b> as platform and hit Finish.
 
==== BLDevCube - MCU ====
* Go to the <b><q>MCU</q></b> tab
* Set the following:
** M0 Group [Group0] Image Addr [0x58000000] m0_lowload_bl808_m0.bin]
** D0 Group [Group0] Image Addr [0x58100000] d0_lowload_bl808_d0.bin]
* Set port to /dev/ttyACM1 and hit 'Create & Download'
 
When it finishes, switch to IOT tab.
 
==== BLDevCube - IOT ====
* Enable 'Single Download', set Address with 0x800000, choose bl808-firmware.bin
* Click 'Create & Download' again and wait until it's done


<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. -->
If you're having trouble following the text-based guide, check out these images:
<source lang="shell-session">
<gallery>
$ pmbootstrap init
File:Uboot-bldevcube1.jpg|MCU Tab
$ pmbootstrap install --fde
File:Uboot-bldevcube2.jpg|IOT Tab
</source>
</gallery>


<!-- add more sections below as necessary, e.g. WiFi, photos, ... -->
Once everything is done, use PuTTY or Minicom and connect to the lower serial port (/dev/ttyACM0) with baudrate <b>2000000</b> 8n1. Then hit the RST button on the board, if you see U-Boot then it is installed!


== See also ==
== See also ==
<!--
* {{MR|4025|pmaports}} initial MR
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
* {{Device package|sipeed-m1sdock|testing}}
* {{MR|CHANGEME|pmaports}} Initial merge request
* {{Kernel package|postmarketos-bflb|testing}}
* {{issue|CHANGEME|pmaports}} Some related issue
You can also add normal web links:
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]
-->
<!--
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.
* {{Device package|DEVICE_CODENAME}}
* {{Kernel package|DEVICE_CODENAME}}
-->

Latest revision as of 11:35, 1 February 2025

Sipeed M1s DOCK
Sipeed M1s DOCK sitting on a breadboard
Sipeed M1s DOCK sitting on a breadboard
Manufacturer Sipeed
Name M1s DOCK
Codename sipeed-m1sdock
Released 2022
Type development board
Hardware
Chipset Bouffalo Lab BL808
CPU 1x T-Head C906, E907 and E902
GPU 2D Accelerator
Display 280x240 IPS (optional)
Storage 16MB SPI
Memory 64 MB PSRAM
Architecture riscv64
Software
Original software FreeRTOS
FOSS bootloader yes
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
No data
USB Networking
No data
Internal storage
No data
SD card
No data
Screen
No data
Touchscreen
No data
Multimedia
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
Miscellaneous
FDE
No data
USB OTG
No data

Sipeed M1s DOCK is a development board based on the Sipeed M1s module, it has two USB-C ports, a microphone, a white LED, an SD card slot and support for Wi-Fi 4, Bluetooth 5 (with LE). It runs FreeRTOS as the operating system.

Despite being a small board that fits on a breadboard, it has a MMU and can run Linux. A PoC Linux demo is available on Sipeed's Wiki.

1.69-inch IPS LCD and 2 MP camera is not included, however Sipeed sells a bundle that include the M1s DOCK, Display and Camera.

Mainline Linux support is actively being developed by the OpenBouffalo community, and this pmOS port uses that.

Contributors

  • Danct12

Users owning this device


How to enter flash mode

  • BL808 Bootloader: Plug in the device then hold down BOOT and hit RST.
  • BL702 Bootloader: While holding the BOOT key, plug in the device.


Installation

Notice When the board is plugged into a computer, there should be two new serial device appears on the computer (mainly ttyACM0 and ttyACM1). If one is only shown, you will have to reflash the BL702 firmware.

Flash postmarketOS to SD card

Warning WARNING: Booting Linux from the SD card requires U-Boot to be installed on SPI Flash.
Warning WARNING: There may be incompatibilities with some SD card, it is recommended to try 32GB SD cards. This is currently being investigated by OpenBouffalo team.

The internal SPI flash is only 16MB, which isn't enough to fit a minimal postmarketOS installation. Even if it's possible through memory upgrades, it'll never be supported.

$ pmbootstrap init # vendor: sipeed, device: m1sdock
$ pmbootstrap install --sdcard=/dev/sdcard # replace /dev/sdcard with the main block device of the SD card reader

The first boot takes longer, as the root partition gets resized to fit the whole SD card. DO NOT REBOOT, POWER OFF OR UNPLUG THE BOARD WHILE IT IS RESIZING.

Install U-Boot to SPI

The Sipeed M1s firmware by default does not have any SD card functionality. In order to boot to Linux on the SD card, U-Boot needs to be installed.

BLDevCube - MCU

  • Go to the MCU tab
  • Set the following:
    • M0 Group [Group0] Image Addr [0x58000000] m0_lowload_bl808_m0.bin]
    • D0 Group [Group0] Image Addr [0x58100000] d0_lowload_bl808_d0.bin]
  • Set port to /dev/ttyACM1 and hit 'Create & Download'

When it finishes, switch to IOT tab.

BLDevCube - IOT

  • Enable 'Single Download', set Address with 0x800000, choose bl808-firmware.bin
  • Click 'Create & Download' again and wait until it's done

If you're having trouble following the text-based guide, check out these images:

Once everything is done, use PuTTY or Minicom and connect to the lower serial port (/dev/ttyACM0) with baudrate 2000000 8n1. Then hit the RST button on the board, if you see U-Boot then it is installed!

See also