Skip to main content

MicroPython driver for AT24Cxx EEPROM

Project description

MicroPython EEPROM

Downloads Release MicroPython License: MIT codecov CI

MicroPython driver for AT24Cxx EEPROM


General

MicroPython driver for AT24Cxx EEPROM

📚 The latest documentation is available at MicroPython EEPROM ReadTheDocs 📚

Installation

Install required tools

Python3 must be installed on your system. Check the current Python version with the following command

python --version
python3 --version

Depending on which command Python 3.x.y (with x.y as some numbers) is returned, use that command to proceed.

python3 -m venv .venv
source .venv/bin/activate

pip install -r requirements.txt

Setup

Install package with upip

Connect the MicroPython device to a network (if possible)

import network
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect('SSID', 'PASSWORD')
station.isconnected()

General

Install the latest package version of this lib on the MicroPython device

import mip
mip.install("github:brainelectronics/micropython-eeprom")

For MicroPython versions below 1.19.1 use the upip package instead of mip

import upip
upip.install('micropython-eeprom')

Specific version

Install a specific, fixed package version of this lib on the MicroPython device

import mip
# install a verions of a specific branch
mip.install("github:brainelectronics/micropython-eeprom", version="feature/initial-implementation")
# install a tag version
mip.install("github:brainelectronics/micropython-eeprom", version="0.1.0")

For MicroPython versions below 1.19.1 use the upip package instead of mip

import upip
upip.install('micropython-eeprom')

Test version

Install a specific release candidate version uploaded to Test Python Package Index on every PR on the MicroPython device. If no specific version is set, the latest stable version will be used.

import mip
mip.install("github:brainelectronics/micropython-eeprom", version="0.1.0-rc1.dev1")

For MicroPython versions below 1.19.1 use the upip package instead of mip

import upip
# overwrite index_urls to only take artifacts from test.pypi.org
upip.index_urls = ['https://test.pypi.org/pypi']
upip.install('micropython-eeprom')

See also brainelectronics Test PyPi Server in Docker for a test PyPi server running on Docker.

Manually

Upload files to board

Copy the module to the MicroPython board and import them as shown below using Remote MicroPython shell

Open the remote shell with the following command. Additionally use -b 115200 in case no CP210x is used but a CH34x.

rshell --port /dev/tty.SLAB_USBtoUART --editor nano

Perform the following command inside the rshell to copy all files and folders to the device

mkdir /pyboard/lib
mkdir /pyboard/lib/eeprom

cp eeprom/* /pyboard/lib/eeprom

cp examples/main.py /pyboard
cp examples/boot.py /pyboard

Usage

from eeprom import EEPROM
from machine import I2C, Pin

I2C_ADDR = 0x50     # DEC 80, HEX 0x50
EEPROM_SIZE = 32    # AT24C32 on 0x50

# define custom I2C interface, default is 'I2C(0)'
# check the docs of your device for further details and pin infos
i2c = I2C(0, scl=Pin(13), sda=Pin(12), freq=800000)
eeprom = EEPROM(addr=I2C_ADDR, at24x=EEPROM_SIZE, i2c=i2c)

# write 'micropython' to address 10
eeprom.write(10, 'micropython')

# read 11 bytes starting at address 10
eeprom.read(10, 11)

# update content at address 10 with 'MicroPython'
# only changed values are written, here 'm' -> 'M' and 'p' -> 'P'
eeprom.write(10, 'MicroPython')

Contributing

Unittests

Run the unittests locally with the following command after installing this package in a virtual environment

# run all tests
nose2 --config tests/unittest.cfg

# run only one specific tests
nose2 tests.test_eeprom.TestEEPROM.test_addr

Generate the coverage files with

python create_report_dirs.py
coverage html

The coverage report is placed at reports/coverage/html/index.html

Credits

Based on Mike Causer's MicroPython TinyRTC I2C module and the PyPa sample project

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

micropython-eeprom-0.1.1.tar.gz (5.6 kB view details)

Uploaded Source

File details

Details for the file micropython-eeprom-0.1.1.tar.gz.

File metadata

  • Download URL: micropython-eeprom-0.1.1.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.17

File hashes

Hashes for micropython-eeprom-0.1.1.tar.gz
Algorithm Hash digest
SHA256 fcc5a8e1d8ee066c0f09096c2e7be14740731ff30d7521270796169cab1a1060
MD5 c8523fd9c65a5fe38957fd4658d56a38
BLAKE2b-256 b5a21ad3a5851de33dfeac7bdad3667ea2e63e071b19bee8ef653d32ef6eb0dd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page