Read/write i2c & spi memory chipsets (Flash & EEPROM)
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flashreader-1.1.0.tar.gz
(10.4 kB
view hashes)
Built Distribution
Close
Hashes for flashreader-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22f32a0d442a2471cc5f6a6d34a593ce3b6d8c1fc48b787be7feea22bdeb5995 |
|
MD5 | f879a08b1ee359f1db632cbd7d3b9eb1 |
|
BLAKE2b-256 | a639fe1db13a8e3364c7c98823ac3eca734cd5ea2ee6008287fa3bb1ab999c0b |