Cahute 0.5

Cahute is a library and set of command-line utilities to handle serial and USB communication protocols and file formats related to CASIO calculators, dating from the 1990s to today. It provides the following features[1]:

feat-transfer

File transfer between storages

With p7, transfer files from and to storages on fx-9860G compatible calculators, over USB and serial links!

feat-program

Program backup

With CaS, extract programs from all CASIO calculators since 1991, over USB and serial links!

feat-text

Text conversions

With cahute_convert_text(), convert text between standard and CASIO-specific text encodings!

feat-ohp

Screenstreaming

With p7screen, display screen captures and streaming from your calculator on your host system!

feat-flash

ROM flashing

With p7os, flash fx-9860G and compatible calculators!

Officially supported systems are the following:

system-arch

Archlinux and derivatives

Note

Support and distribution of other platforms is in progress or is awaiting volunteers:

system-debian

Debian and derivatives (#8)

system-win

Microsoft Windows XP and above (#10)

system-amigaos

AmigaOS 3.2 and above (#26)

The project is being worked on on Gitlab. It is maintained by Thomas Touhey. See Forums and other communities for the topics describing the projects in other communities.

The project’s code and documentation contents are licensed under CeCILL version 2.1 as distributed by the CEA, CNRS and Inria on cecill.info.

This documentation is organized using Diátaxis’ structure.

Acknowledgements

There have been many projects over the years about reversing and reimplementing CASIO’s shenannigans for using their calculators from alternative OSes, or simply for fun or out of curiosity. Cahute couldn’t have been made without their research, implementations and in some cases, documentation. This page is a little tribute to these works.

  • Thanks to Tom Wheeley and Tom Lynn for their work on CaS and Caspro and the Casio Graphical Calculator Encyclopaedia.

  • Thanks to the (now defunct) Graph100.com wiki, saved here for historical purposes.

  • Thanks to the team behind Casetta for their documentation on legacy protocols and file formats, which helped me navigate the subtleties more easily.

  • Thanks to Simon Lothar and Andreas Bertheussen for their work on Protocol 7.00 and derivatives through fxReverse and xfer9860, and to Teamfx for their additions.

  • Thanks to the Cemetech community for their Prizm Wiki, especially gbl08ma, BrandonWilson and amazonka.

  • Thanks to Nessotrin for their work on UsbConnector, which prompted me to work on a better version in the first place.

There are obviously plenty more people working on other connected aspects (hardware, low-level system stuff), administering or moderating forums and websites, maintaining communication with CASIO and other partners. Quoting you all would take a substantial time, and I’d likely miss quite a lot of you, but thank you all for your efforts!

How-to guides

These sections provide guides, i.e. recipes, targeted towards various actors. They guide you through the steps involved in addressing key problems and use-cases.

Discussion topics

These sections discuss key topics and concepts at a fairly high level, and provide useful background information and explanation.

References

These sections provide technical reference for APIs and other aspects of Cahute’s machinery. They go into detail, and therefore, assume you have a basic understanding of key concepts.

Project management

These sections describe how the project is managed, and what works it is based on.