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
- Go to python.org and download the latest Python 3 installer.
- Open the downloaded file and follow the steps.
- Open the Terminal app (search with Cmd+Space).
- Type
python3 --versionto confirm it's installed.
๐ช Windows
- Go to python.org and download the latest Python 3 installer.
- Important: when installing, check the box "Add Python to PATH" at the bottom of the installer.
- Open the Command Prompt (search "cmd" in the Start menu).
- Type
python --versionto confirm it's installed.
2. Install PanCalc Tools
Open a terminal and run:
pip install pancalc-tools
If
pipis not found, trypip3on Linux/macOS.
On Windows, also install pywin32 for automatic calculator detection and eject:
pip install pancalc-tools[windows]
Linux users: if you get an
externally-managed-environmenterror, use:pip install --user pancalc-tools
3. Connect your calculator
๐ง Linux
- Turn on your Casio calculator.
- Press F1 (USB mass storage mode).
- Connect it with a USB cable.
- The program will detect it automatically. If not, it will ask for your
password to install
udisksctl(needed for auto-mount).
๐ macOS
- Turn on your Casio calculator.
- Press F1 (USB mass storage mode).
- Connect it with a USB cable.
- It should appear as a drive on your desktop and in Finder. The program will find it automatically.
๐ช Windows
- Turn on your Casio calculator.
- Press F1 (USB mass storage mode).
- Connect it with a USB cable.
- It should appear as a new drive in File Explorer (e.g.
D:\orE:\). 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
pcalcis not recognized: add Python'sScriptsdirectory to yourPATH(usually%APPDATA%\Python\Python314\Scripts), or use the fallback:python -m pcalc
๐ก Tips:
- Use your mouse/trackpad and click to interact.
- Find games at https://github.com/wavonzip/bdesretro/tree/main (with .nes).
- Questions? Ask at https://deepwiki.com/pan-devs/pancalc-tools
- Press Ctrl+S to open the command palette.
- Press Esc to return to the home screen.
- Use โ and โ to move between items.
- Press Space to select/deselect an item.
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
.g3pphoto format or plain text. - ๐ค Push to calculator โ Copy converted files to the calculator's
pthings/directory (sorted intofotos/andtextos/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). The program will attempt to install it automatically on first use (via winget on Windows, brew on macOS, or apt/pacman/dnf on Linux). See https://gpg4win.org for manual Windows installation.
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 |
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
- Registry: https://github.com/pan-devs/pancalc-registry
- Issues: https://github.com/pan-devs/pancalc-tools/issues
- Contact: pan.devs@proton.me
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pancalc_tools-0.1.7.tar.gz.
File metadata
- Download URL: pancalc_tools-0.1.7.tar.gz
- Upload date:
- Size: 49.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ed0f1a28ca68f78d7f40f82366f7e3232d1a0d390d69789f7042050a6465269
|
|
| MD5 |
96e1b4de09ee26b937f0e56708354143
|
|
| BLAKE2b-256 |
31aa127b395bc43fffd2b0c67f2e9edad809552eb2e564091dca7c9beec71586
|
Provenance
The following attestation bundles were made for pancalc_tools-0.1.7.tar.gz:
Publisher:
publish.yml on pan-devs/pancalc-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pancalc_tools-0.1.7.tar.gz -
Subject digest:
5ed0f1a28ca68f78d7f40f82366f7e3232d1a0d390d69789f7042050a6465269 - Sigstore transparency entry: 1623942892
- Sigstore integration time:
-
Permalink:
pan-devs/pancalc-tools@416a3ba19289943c0b814933f1d26884fbb94bb4 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/pan-devs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@416a3ba19289943c0b814933f1d26884fbb94bb4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pancalc_tools-0.1.7-py3-none-any.whl.
File metadata
- Download URL: pancalc_tools-0.1.7-py3-none-any.whl
- Upload date:
- Size: 54.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca455f31d496949226e549f2f3993db77606f1a145a3b6067e02ff541da2dc9b
|
|
| MD5 |
c8a17a3d4ded95e702252ec8e29b6515
|
|
| BLAKE2b-256 |
ac58e012407c2556d98a8e646816b149fc6fb62952a2a10b9199af3cae7bc8f2
|
Provenance
The following attestation bundles were made for pancalc_tools-0.1.7-py3-none-any.whl:
Publisher:
publish.yml on pan-devs/pancalc-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pancalc_tools-0.1.7-py3-none-any.whl -
Subject digest:
ca455f31d496949226e549f2f3993db77606f1a145a3b6067e02ff541da2dc9b - Sigstore transparency entry: 1623942964
- Sigstore integration time:
-
Permalink:
pan-devs/pancalc-tools@416a3ba19289943c0b814933f1d26884fbb94bb4 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/pan-devs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@416a3ba19289943c0b814933f1d26884fbb94bb4 -
Trigger Event:
release
-
Statement type: