2023-03-18 19:27:18 +00:00
[![Hits ](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fpine64%2Fblisp&count_bg=%235791AC&title_bg=%23555555&icon=airplayaudio.svg&icon_color=%23D2D9DD&title=hits&edge_flat=false )](https://github.com/pine64/blisp/wiki/Update-Pinecil-V2)
2023-08-03 06:21:21 +00:00
[![GitHub all downloads ](https://img.shields.io/github/downloads/pine64/blisp/total?color=5791ac&logo=docusign&logoColor=white )](https://github.com/pine64/blisp/releases/tag/v0.0.4)
2023-03-18 19:29:21 +00:00
[![Discord ](https://img.shields.io/discord/463237927984693259?color=5791ac&logo=discord&logoColor=white )](https://discord.com/invite/pine64)
2023-08-03 06:21:21 +00:00
[![GitHub release ](https://img.shields.io/github/v/release/pine64/blisp?color=5791ac )](https://github.com/pine64/blisp/releases/tag/v0.0.4)
2023-03-03 12:20:54 +00:00
2023-03-18 22:01:40 +00:00
< img src = "./img/Gradient-white-blue-03.png" align = "left" width = "60" > < br clear = "left" / >
2023-03-18 20:10:41 +00:00
# BLISP
2022-09-12 14:47:58 +00:00
2023-03-30 17:57:23 +00:00
Bouffalo Labs ISP (in-system-programming) tool & library: an open source tool to flash Bouffalo RISC-V MCUs.
2022-09-12 14:47:58 +00:00
2022-11-08 08:37:29 +00:00
**NOTE:** Library API and `blisp` tool cli arguments are not stable yet.
2023-03-18 20:43:53 +00:00
< br >
2022-11-08 08:37:29 +00:00
2023-03-18 19:31:53 +00:00
## Supported MCUs
2023-02-28 10:23:18 +00:00
- [x] `bl60x` - BL602 / BL604 / TG7100C / LF686 / LF688
2022-11-20 06:22:36 +00:00
- [x] `bl70x` - BL702 / BL704 / BL706
2023-03-18 20:43:53 +00:00
< br >
2022-11-08 21:17:40 +00:00
2023-03-18 20:10:41 +00:00
## Supported Devices
2023-04-02 04:28:08 +00:00
| System | < img width = "15" src = "https://cdn.simpleicons.org/Windows11/5791ac" / > Windows | < img width = "15" src = "https://cdn.simpleicons.org/Apple/5791ac" / > MacOS| < img width = "17" src = "https://cdn.simpleicons.org/Linux/5791ac" / > Linux| < img width = "15" src = "https://cdn.simpleicons.org/Freebsd/5791ac" / > FreeBSD |
2023-03-19 22:49:38 +00:00
| :-----: | :------: | :------: | :------: | :------: |
2023-03-18 21:05:05 +00:00
| Pinecil V2 |< img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > |< img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > | < img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > | < img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > |
| Pinecone |< img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > |< img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > |< img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > | < img width = "22" src = "https://cdn.simpleicons.org/cachet/5791ac" / > |
2023-03-18 20:10:41 +00:00
< br >
## How to update Pinecil V2
2022-11-08 21:17:40 +00:00
2023-04-11 01:26:06 +00:00
Download the newest release of [Blisp updater here ](https://github.com/pine64/blisp/releases/ ).
Check out the [wiki page ](https://github.com/pine64/blisp/wiki/Update-Pinecil-V2 ) for install instructions.
2023-03-18 20:10:41 +00:00
< br > < br >
2023-03-09 22:15:12 +00:00
2023-03-18 20:10:41 +00:00
## Building from code
2022-11-08 21:17:40 +00:00
2023-03-09 22:15:12 +00:00
### Clone repository
2022-11-20 06:22:47 +00:00
2023-01-01 02:07:37 +00:00
If you have not cloned this repository locally; clone the git repository locally by running
2022-11-20 06:22:47 +00:00
```bash
git clone --recursive https://github.com/pine64/blisp.git
cd blisp
2023-02-06 17:31:26 +00:00
git submodule update --init --recursive
2022-11-20 06:22:47 +00:00
```
2023-03-30 18:51:18 +00:00
If vendor/argtable3 and vendor/libserialport/ are empty, this last step has
failed and should be investigated.
2023-03-09 22:15:12 +00:00
### Build the library and command line utility
2022-11-20 06:22:47 +00:00
2022-11-08 21:17:40 +00:00
For building `blisp` command line tool, use following commands:
```bash
mkdir build & & cd build
cmake -DBLISP_BUILD_CLI=ON ..
cmake --build .
```
2023-05-14 16:07:55 +00:00
For building against preinstalled system libraries of the used vendor
libraries (e.g. for use by system maintainers), additionally define
`BLISP_USE_SYSTEM_LIBRARIES` , e.g. using following commands:
```bash
mkdir build & & cd build
cmake -DBLISP_USE_SYSTEM_LIBRARIES=ON -DBLISP_BUILD_CLI=ON ..
cmake --build .
```
2023-03-10 00:39:20 +00:00
#### Need more build details? [See here](https://github.com/pine64/blisp/wiki/Update-Pinecil-V2#build-blisp-flasher-from-code).
2022-11-08 21:17:40 +00:00
2023-03-18 19:31:53 +00:00
## Usage
2022-11-08 21:17:40 +00:00
2023-03-30 18:51:18 +00:00
For BL70X, BL61X, BL808 and BL606P, connected via USB, you can use following command, which will auto-detect serial port on Windows:
2022-11-08 21:17:40 +00:00
```bash
2023-02-15 22:22:20 +00:00
.\blisp.exe write --chip=bl70x --reset .\name_of_firmware.bin
or
.\blisp.exe write -c bl70x --reset .\name_of_firmware.bin
2022-11-08 21:17:40 +00:00
```
For BL60X, you need to specify also the serial port path:
```bash
2023-01-25 07:35:49 +00:00
blisp write --chip bl60x --reset -p /dev/ttyUSB0 name_of_firmware.bin
2022-11-08 21:17:40 +00:00
```
2022-09-12 14:47:58 +00:00
2023-03-30 18:51:18 +00:00
If you wish to see additional debugging, set the environmental
variable LIBSERIALPORT_DEBUG before running. You can either export this
in your shell or change it for a single run via
```bash
LIBSERIALPORT_DEBUG=y ./a.out write -c bl70x -p /dev/tty.usbmodem0000000200001
```
Because this is done at the lowest level of serial communication, the
displays aren't packet-aware or know about the chip's command set or such.
This is really only useful for debugging systems-level issues withing
the device or blisp itself.
2023-08-28 09:25:41 +00:00
## Troubleshooting
### macOS
Depending on your current system security settings, modern versions of macOS requires all software to be notarised before you are able to execute it. This is specially true for software that is downloaded directly from the internet.
If that is the case, you will get an error that looks like the following:
> **“blisp” cannot be opened because the developer cannot be verified.**
>
> macOS cannot verify that this app is free from malware.
In that case, you will need to remove the *quarantine* flag that macOS adds to the executable. After that you should be able to run **blisp** as normal.
```bash
xattr -d com.apple.quarantine blisp
```