Cahute 0.4

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:

  • Transferring storage files from and to fx-9860G compatible calculators, over USB and serial links;

  • Receiving programs from all CASIO calculators since 1991, over USB and serial links;

  • Converting between character encodings;

  • Screenstreaming from fx-9860G, fx-CG and compatible calculators, over USB links;

  • Flashing fx-9860G and compatible using the fxRemote method.

Officially supported OSes are Archlinux-based and macOS.


For support for other platforms, see the following issues:

The project is being worked on on Gitlab. It is maintained by Thomas Touhey.

It is also talked about in the following places:

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

This documentation is organized using Diátaxis’ structure.


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) 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.


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.