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)
[![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.3)
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)
[![GitHub release ](https://img.shields.io/github/v/release/pine64/blisp?color=5791ac )](https://github.com/pine64/blisp/releases/tag/v0.0.3)
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-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.