https://github.com/themactep/scriba
Linux CLI app for CH341A flash chip programmer. A simplified version of SNANDer. A part of Thingino family.
https://github.com/themactep/scriba
Last synced: 7 months ago
JSON representation
Linux CLI app for CH341A flash chip programmer. A simplified version of SNANDer. A part of Thingino family.
- Host: GitHub
- URL: https://github.com/themactep/scriba
- Owner: themactep
- License: gpl-2.0
- Created: 2025-04-22T17:01:12.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-22T17:56:51.000Z (about 1 year ago)
- Last Synced: 2025-05-11T07:15:58.434Z (about 1 year ago)
- Language: C
- Size: 130 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Scriba - Thingino Programming App
=================================
Scriba is a version of SNANDer that doesn't include any code that isn't used in
Linux. It has been reorganized and streamlined to serve one sole purpose:
to work with flash chips in IP cameras that are used with the Thingino project.
Scriba works well with the first generation of CH341A programmers that have been
modified to work at 3.3 volts. You can find more information about the necessary
change at https://github.com/themactep/thingino-firmware/wiki/CH341A-Programmer.
Building
--------
### Prerequisites
- GCC compiler
- libusb-1.0 development files
- make
### Build Options
# Standard build (dynamically linked)
```
make
```
### Static build (includes libusb)
```
make static
```
### Install
```
sudo make install
```
Configuration
-------------
### USB Permissions
The udev rule `40-persistent-ch341a.rules` grants access to CH341A USB devices.
Usage
-----
```
scriba [options]
Automation:
-R Read chip (read twice and compare)
-W Write chip (erase + write + verify)
Single operations:
-i Read chip ID
-e Erase chip
-r Read chip to file
-w Write file to chip
-v Verify after write
Granularity:
-a
Set address
-l Set length
SPI NAND:
-d Disable internal ECC
-o Set OOB size
-I Ignore ECC errors
-k Skip BAD pages
EEPROM:
-E Select EEPROM type
-8 Set 8-bit organization
-f Set address size
-s Set page size
General:
-h Display help
-L List supported chips
```
Examples
--------
### Get flash info
```
scriba -i
```
### Read and save flash
```
scriba -r output.bin
```
### Write and verify
```
scriba -w data.bin -v
```
### Write chip (automatic erase + write + verify)
```
scriba -W firmware.bin
```
### Read chip (read twice and compare)
```
scriba -R verified_backup.bin
```
### EEPROM operations
```
scriba -E 93c46 -r eeprom.bin
```
Authors
-------
Original code by [McMCC](https://github.com/McMCCRU/SNANDer),
modified by [Droid-MAX](https://github.com/Droid-MAX/),
modified by [Paul Philippov](https://github.com/themactep).