Skip to main content

JEEFS Header — Python Package

Pure Python library for the JEEFS EEPROM format used across JetHome devices. EEPROMHeaderV4 is the current board header and EEPROMHeaderV3 the fielded production one; constants and field offsets for every version (v1-v4) live in jeefs.constants. DeviceIdentityV1 handles the signed device.id record, and build_image / parse_image assemble and read a whole EEPROM image for provisioning tooling. No native dependencies.

Installation

pip install jeefs

Dependencies

  • Python >= 3.10
  • No external runtime dependencies (uses stdlib struct, binascii)

Building / Development

cd python
uv venv .venv && uv pip install -e ".[test]"
.venv/bin/python -m pytest tests/ -v

API

EEPROMHeaderV3 — main dataclass

from jeefs.header import EEPROMHeaderV3

Creating a header

header = EEPROMHeaderV3(
    boardname="JetHub-D1p",
    boardversion="2.0",
    serial="SN-2024-001",
    mac="F0:57:8D:01:02:03",
)
binary = header.to_bytes()  # 256-byte binary

Parsing from binary

header = EEPROMHeaderV3.from_bytes(raw_data)
print(header.boardname)   # "JetHub-D1p"
print(header.mac)         # "F0:57:8D:01:02:03"
print(header.serial)      # "SN-2024-001"

CRC verification

# Instance method
header = EEPROMHeaderV3.from_bytes(data)
is_valid = header.verify_crc(data)

# Static method (no instance needed)
is_valid = EEPROMHeaderV3.verify_crc_static(data)

Validation

errors = header.validate()
if errors:
    print("Invalid:", errors)

Partition image

image = header.to_partition_image()  # 4096-byte flash image

Fields

Field Type Description
boardname str Board name (max 31 chars)
boardversion str Board version (max 31 chars)
serial str Serial number (max 31 chars)
usid str CPU eFuse USID
cpuid str CPU ID
mac str MAC address ("AA:BB:CC:DD:EE:FF")
signature bytes ECDSA signature (raw r||s)
signature_algorithm SignatureAlgorithm NONE / SECP192R1 / SECP256R1
timestamp int | None Unix timestamp, written verbatim (0/None serialize as 0)

SignatureAlgorithm enum

from jeefs.constants import SignatureAlgorithm

SignatureAlgorithm.NONE       # 0
SignatureAlgorithm.SECP192R1  # 1 (48-byte signature)
SignatureAlgorithm.SECP256R1  # 2 (64-byte signature)

Constants

from jeefs.constants import (
    EEPROM_MAGIC,          # b"JETHOME\x00"
    EEPROM_HEADER_SIZE,    # 256
    EEPROM_FIELDS,         # dict of {field: (offset, size)}
    EEPROM_CRC_COVERAGE,   # 252
    EEPROM_PARTITION_SIZE,  # 4096
)

Usage example

See examples/python/read_header.py — reads an EEPROM binary, prints version, CRC status, board name, MAC address, and full v3 fields.

Testing

cd python
python -m pytest tests/ -v

Format specification

Metadata

Release files for jeefs 0.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jeefs 0.11.1
File Size Uploaded
jeefs-0.11.1.tar.gz 23.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jeefs 0.11.1
File Interpreter ABI Platform
jeefs-0.11.1-py3-none-any.whl Python 3 none any Details

Total release size: 40.1 kB

Release files / jeefs-0.11.1.tar.gz

Download URL jeefs-0.11.1.tar.gz
Size 23.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c95c17489fd1a4a160e797295316b5ed2a3c0350b2bfd7c227e8125f2c65124d
BLAKE2b-256 checksum
How to use checksums
f1d583c265fdfa3828d68ac8ab0e6d93e1e3e69910b1fc4759b8d0f92b9b6aca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / jeefs-0.11.1-py3-none-any.whl

Download URL jeefs-0.11.1-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7499c72f4e888e967541ce554e57f976d553364edd96a032b34909c3b199437e
BLAKE2b-256 checksum
How to use checksums
ca52189dacd38e0f787486b655d09430b7f08f23dbfee5b3b391826044cd2a5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.1 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page