Python Flash Reader
Flash Reader allows to read and/or write any EEPROM or Flash memory via SPI or I2C. This library is particularly useful in case of reverse engineering or prototyping for embedded systems (RPI, etc..).
from flashreader.memory import spiflash, m95, mx25, w25q, _24lc, _25lc, _25aa
from flashreader.platform import ft232h, raspberrypi
with ft232h.Platform() as platform: #Open FT232H adapter
with spiflash.Memory(platform) as memory: #Open generic SPI flash
print(f"Writing hello world @0x0000...")
memory.write(0x0000, b'Hello World')
buf = bytearray(memory.read(0x00000000, 11))
print(f"Read @0x0000: {buf}")
Supported platform
- Raspberry pi 4
- FT232H (Adafruit)
Support memory
- Various spi serial flash
- Macronix mx25R..., mx25L...
- Microchip 25aa..., 25lc...
- Winbond w25q...
- Microchip 24lc...
- ST m95...
Quick start (Raspberry pi 4)
Setup Raspbian
apt-get install python3 python3-pip python3-spidev python3-monotonic
sudo raspi-config
- Go to "Interfacing Options" > "SPI" > "Enable"
- Reboot the RPI
Wiring
- SPI: PIN19(MOSI), PIN21(MISO), PIN23(SCK), PIN11(CS)
- I2C: PIN3(SDA), PIN5(SCL)
Quick start (Windows)
Setup Windows
- Plug FT232H
- Use Zadig (https://zadig.akeo.ie/), select the USB device in the list, select libusb-win32 and replace the driver (DO NOT USE WINUSB or any other driver).
Wiring
- SPI: D0(SCK), D1(MOSI), D2(MISO), D3(CS)
- I2C: D0(SCL), D1(SDA)
Run
Read spi flash (By using generic driver: spiflash)
python -m flashreader --platform raspberrypi --memory spiflash --read ./dump.bin --offset 0
Write spi flash (By using generic driver: spiflash)
python -m flashreader --platform raspberrypi --memory spiflash --write ./dump.bin --offset 0
Metadata
Release files for flashreader 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flashreader-1.1.0.tar.gz | 10.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flashreader-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.3 kB
Release files / flashreader-1.1.0.tar.gz
| Download URL | flashreader-1.1.0.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7c1676f78ed53badc6fd819f9d6f1d271373ff3c7720d65b183eb1d0edc6890
|
|
BLAKE2b-256 checksum How to use checksums |
03464635a7f212068b59d90302e5ce16068ba7e99b906aadde4c6e2cc2fd0d54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.1
|
Release files / flashreader-1.1.0-py3-none-any.whl
| Download URL | flashreader-1.1.0-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22f32a0d442a2471cc5f6a6d34a593ce3b6d8c1fc48b787be7feea22bdeb5995
|
|
BLAKE2b-256 checksum How to use checksums |
a639fe1db13a8e3364c7c98823ac3eca734cd5ea2ee6008287fa3bb1ab999c0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.1
|