Skip to main content

Package manager and developer toolkit for Casio Prizm calculators

Project description

PanCalc Tools

Package manager, file converter, and developer toolkit for Casio Prizm calculators (fx-CG50, fx-CG100, and compatible models).

Part of the Pan Devs project.


๐Ÿ“– Quick Start (for everyone)

PanCalc Tools lets you install programs (add-ins) on your Casio calculator, convert photos and documents so you can view them on the calculator screen, and much more.

1. Install Python

PanCalc Tools needs Python 3.10 or newer.

๐Ÿง Linux

Open a terminal (search for "Terminal" in your apps) and type:

python3 --version

If you see Python 3.10 or higher, you're ready. If not, install Python:

  • Ubuntu / Debian / Mint:
    sudo apt install python3 python3-pip
    
  • Arch / Manjaro:
    sudo pacman -S python python-pip
    
  • Fedora:
    sudo dnf install python3 python3-pip
    

๐ŸŽ macOS

  1. Go to python.org and download the latest Python 3 installer.
  2. Open the downloaded file and follow the steps.
  3. Open the Terminal app (search with Cmd+Space).
  4. Type python3 --version to confirm it's installed.

๐ŸชŸ Windows

  1. Go to python.org and download the latest Python 3 installer.
  2. Important: when installing, say "y" to everything when the terminal opens (do not freak out, it is save), specially the "Add Python to PATH".
  3. Open the Command Prompt (search "cmd" in the Start menu).
  4. Type python --version to confirm it's installed.

2. Install PanCalc Tools

๐Ÿง Linux

Open a terminal and run:

cd ~
git clone https://github.com/pan-devs/pancalc-tools.git
cd pancalc-tools
pip install -e .

If you get a "pip not found" error, use pip3 instead:

pip3 install -e .

โš ๏ธ Error "externally-managed-environment"? Linux moderno bloquea pip install fuera de un entorno virtual. Soluciones:

  • Opciรณn A (recomendada): pip install --user -e .
  • Opciรณn B (entorno virtual):
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -e .
    
    A partir de ahรญ usa source .venv/bin/activate antes de ejecutar pcalc y cd ~/pancalc-tools para estar en el directorio del proyecto.

Windows y macOS no tienen esta restricciรณn.

๐ŸŽ macOS

Open the Terminal app (Cmd+Space, type "Terminal") and run:

cd ~
git clone https://github.com/pan-devs/pancalc-tools.git
cd pancalc-tools
pip3 install -e .

๐ŸชŸ Windows

  1. Descarga el ZIP desde github.com/pan-devs/pancalc-tools y extraelo en una carpeta (ej. C:\pancalc-tools).

  2. Abre el Command Prompt (Inicio โ†’ "cmd") y escribe:

cd C:\pancalc-tools
pip install -e .

Si pip no se reconoce, instalaste Python sin marcar "Add Python to PATH". Re-ejecuta el instalador de Python y marca esa casilla.

3. Connect your calculator

๐Ÿง Linux

  1. Turn on your Casio calculator.
  2. Press F1 (USB mass storage mode).
  3. Connect it with a USB cable.
  4. The program will detect it automatically. If not, it will ask for your password to install udisksctl (needed for auto-mount).

๐ŸŽ macOS

  1. Turn on your Casio calculator.
  2. Press F1 (USB mass storage mode).
  3. Connect it with a USB cable.
  4. It should appear as a drive on your desktop and in Finder. The program will find it automatically.

๐ŸชŸ Windows

  1. Turn on your Casio calculator.
  2. Press F1 (USB mass storage mode).
  3. Connect it with a USB cable.
  4. It should appear as a new drive in File Explorer (e.g. D:\ or E:\). The program will find it automatically.

4. Launch the program

๐Ÿง Linux

In the terminal, type:

pcalc

The interactive menu will open.

๐ŸŽ macOS

In the Terminal app, type:

pcalc

The interactive menu will open.

๐ŸชŸ Windows

In the Command Prompt, type:

pcalc

The interactive menu will open.

โš ๏ธ If pcalc is not recognized: add Python's Scripts directory to your PATH (usually %APPDATA%\Python\Python314\Scripts), or use the fallback:

python -m pcalc

๐Ÿ’ก Tips:


Features

  • ๐Ÿ“ฆ Add-in management โ€” Install, remove, and verify add-ins from the pan-devs/pancalc-registry with automatic SHA256 + PGP signature verification.
  • ๐Ÿ–ผ๏ธ File conversion โ€” Convert images (PNG, JPG, BMP, GIF, TIFF, WebP) and documents (PDF, DOCX) to Casio .g3p photo format or plain text.
  • ๐Ÿ“ค Push to calculator โ€” Copy converted files to the calculator's pthings/ directory (sorted into fotos/ and textos/ subdirectories).
  • ๐Ÿ” Calculator browsing โ€” Browse the full calculator filesystem, identify known add-ins, and inspect storage usage.
  • ๐Ÿ” Cryptographic verification โ€” SHA256 checksums on every download and PGP signature verification against the official Pan Devs key (auto-downloaded, no manual setup required).
  • ๐Ÿ–ฅ๏ธ Dual interface โ€” Full-featured Terminal UI (Textual) and a complete CLI (click) for scripting.
  • ๐Ÿ”‘ PGP key management โ€” Import, trust, list, and untrust additional keys for advanced users.

Installation

Requirements

  • Python 3.10+
  • A Casio Prizm calculator connected via USB in mass storage mode (F1).

From PyPI

pip install pancalc-tools

On Windows, also install pywin32 for automatic drive detection and eject:

pip install pancalc-tools[windows]

Note: PGP signature verification requires gpg (GnuPG) on your system.

  • Windows: Download from https://gpg4win.org
  • Linux: sudo apt install gpg (or your package manager's equivalent)
  • macOS: brew install gpg

Without gpg, PGP keys and verification are skipped gracefully.

From source

git clone https://github.com/pan-devs/pancalc-tools.git
cd pancalc-tools
pip install -e .

Dependencies

Package Purpose
click CLI framework
rich Terminal formatting & progress bars
textual Terminal UI framework
Pillow Image processing
pymupdf PDF & DOCX parsing
requests HTTP downloads
python-gnupg PGP signature verification
questionary Interactive prompts
platformdirs Cross-platform config paths

On Windows, also install pywin32 for automatic drive detection and eject:

pip install pancalc-tools[windows]

Quick Start

Terminal UI

pcalc

Opens the interactive TUI with a sidebar for navigation:

Button Action
๐Ÿ  Home Dashboard with calculator info & help
๐Ÿ“‚ Catch Browse calculator filesystem
๐Ÿ“ฅ Install Install add-ins from the registry
๐Ÿ—‘๏ธ Remove Uninstall add-ins or delete pthings/ files
๐Ÿ”„ Convert Convert images/documents to G3P/TXT
๐Ÿ“ค Push Copy converted files to calculator
โœ… Verify Check SHA256 of installed add-ins
๐Ÿ“‹ Registry Browse available add-ins
๐Ÿ”‘ PGP Keys Manage cryptographic keys
๐Ÿ”„ Update Registry Force-refresh add-in list from GitHub
โ๏ธ Eject Safely unmount calculator

CLI

pcalc install khicas
pcalc verify
pcalc convert image.png
pcalc convpush
pcalc catch
pcalc eject

See all commands:

pcalc --help

CLI Reference

pcalc list / search / info

pcalc list                    # List all add-ins in the registry
pcalc search calculator       # Search by keyword
pcalc info khicas             # Show add-in details

pcalc install

pcalc install khicas utilities   # Install multiple add-ins
pcalc install --yes khicas       # Skip confirmation prompts
pcalc install --overwrite khicas # Overwrite existing files

pcalc remove / rm

pcalc remove khicas              # By add-in name
pcalc rm pthings/fotos/photo.g3p # By path (relative to mount)

pcalc verify

pcalc verify                     # Verify ALL add-ins on the calculator
pcalc verify khicas utilities    # Verify specific add-ins

Scans the calculator directly โ€” no local cache needed.

pcalc convert

pcalc convert photo.png          # Image โ†’ G3P
pcalc convert doc.pdf            # PDF โ†’ interactive prompt (G3P/TXT/Both)
pcalc convert --g3p doc.pdf      # PDF โ†’ G3P only
pcalc convert --txt doc.pdf      # PDF โ†’ TXT only
pcalc convert --both doc.pdf     # PDF โ†’ G3P + TXT

pcalc convpush

pcalc convpush                   # Copy all converted files to calculator

Files go to pthings/fotos/ (.g3p) and pthings/textos/ (.txt). Filenames are automatically sanitized (accents stripped, spaces โ†’ _, special characters removed).

pcalc catch / calc

pcalc catch                  # Browse calculator filesystem

pcalc eject

pcalc eject                   # Safely unmount calculator

Registry

pcalc update-registry         # Force-refresh add-in registry from GitHub

PGP Keys

pcalc import-key mykey.asc    # Import a PGP public key
pcalc list-keys               # List all keys and trust status
pcalc trust-key <fingerprint> # Trust a key for signature verification
pcalc untrust-key <fingerprint>

Configuration

Settings are stored via platformdirs and can be managed programmatically:

Key Default Description
registry_url GitHub repo URL Add-in registry source
cache_ttl_hours 6 Registry cache duration
auto_update true Auto-refresh registry on install
confirm_install true Ask before installing
confirm_remove true Ask before removing

Input / Output Layout

pancalc-tools/
โ”œโ”€โ”€ convert/            โ† Drop files here for conversion
โ”‚   โ”œโ”€โ”€ images/         (PNG, JPG, BMP, GIF, TIFF, WebP)
โ”‚   โ””โ”€โ”€ documents/      (PDF, DOCX)
โ”œโ”€โ”€ converted/          โ† Converted files appear here
โ”‚   โ”œโ”€โ”€ g3p/            (.g3p files)
โ”‚   โ””โ”€โ”€ txt/            (.txt files)

Both the TUI Convert and Push views scan these directories automatically.

Security

SHA256 Verification

Every add-in in the registry includes a sha256 field. The installer computes the SHA256 of every downloaded/extracted file and aborts on mismatch.

PGP Signatures

All official registry files are signed with the Pan Devs PGP key. The key is auto-downloaded from the registry on first use โ€” no manual import or trust setup required.

  • Key fingerprint: C7AD 9689 E894 B261 7EAB CFE2 1A37 0E1B 68A1 94A8
  • Algorithm: Ed25519

For zip-type add-ins (e.g., Nesizm), verification downloads the zip, extracts the .g3a, and computes the SHA of the extracted file โ€” no local cache dependency.

Architecture

See ARCHITECTURE.md for a detailed overview of the codebase structure, module responsibilities, and data flow.

License

PAN DEVS NON-COMMERCIAL ATTRIBUTION LICENSE v1.0

  • Non-commercial use is free with attribution required.
  • Commercial use requires a separate paid license. Contact pan.devs@proton.me.
  • AI/ML training on this code is explicitly prohibited.

See LICENSE.md for the full text.

Contributing

Pull requests and issues are welcome. For major changes, please open an issue first to discuss what you'd like to change.

Development setup

git clone https://github.com/pan-devs/pancalc-tools.git
cd pancalc-tools
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Links

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

pancalc_tools-0.1.4.tar.gz (49.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pancalc_tools-0.1.4-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file pancalc_tools-0.1.4.tar.gz.

File metadata

  • Download URL: pancalc_tools-0.1.4.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pancalc_tools-0.1.4.tar.gz
Algorithm Hash digest
SHA256 5c196c5e5d382f9f229541aa065b2f7dc472eb7044ca94f10feb005c4eec9d76
MD5 96bffc15e73219e9c54cc47baab2061e
BLAKE2b-256 29e95f98f0908ab7e9914bcd9e21c0bb06cce7bfa15bb25866ec8a64cac704ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pancalc_tools-0.1.4.tar.gz:

Publisher: publish.yml on pan-devs/pancalc-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pancalc_tools-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pancalc_tools-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pancalc_tools-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cfa57291eaae18f2974a13343f3925aac80d9387cea0f81808cc408786a5e352
MD5 ed9dad888f353d360953e78f05268626
BLAKE2b-256 6d1de38b87c82e23d21029498e4ac61f4760d0fa92237920e4a4762fa8686c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pancalc_tools-0.1.4-py3-none-any.whl:

Publisher: publish.yml on pan-devs/pancalc-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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