USB detection for CASIO calculators¶
When looking for CASIO calculators, the following USB metadata can be found in the wild:
|
|
|
|
|
|
Description |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
Classpad 300 / 330 (+), fx-9860G Slim |
|
|
|
|
|
|
Graph 35+/75/85/95 |
|
|
|
|
|
|
Classpad 330+, fx-CG20, fx-CP400, fx-CP400+E |
|
|
|
|
|
|
fx-CG50, Graph 90+E, fx-9750GIII (>= OS 3.8) |
Warning
The actual string referenced by iManufacturer, which is only an
integer, can only be accessed after opening the device on some platforms.
Therefore, it cannot be used for communication protocol detection in
a portable fashion.
In order to be compatible with all calculators, Cahute looks for recognized
VID/PID pairs (VID 07cf with PID 6101, 6102 or 6103), then
only assumes the transport based on the interface details:
|
|
|
Transport protocol |
|---|---|---|---|
|
|
|
|
|
|
|
Warning
While more modern devices speaking Protocol 7.00 / Protocol 7.00
Screenstreaming over bulk transfers use a specific iManufacturer
and a greater bcdUSB, ancient Protocol 7.00 / Protocol 7.00
Screenstreaming devices, such as the fx-9860G Slim, are indistinguishable
from Classpad 300 / 330 (+) devices on USB alone.
Because of this, in the cahute_open_usb_link() and
cahute_open_simple_usb_link() interfaces, the protocol can either
be forced by the caller using the CAHUTE_USB_CAS300 or
CAHUTE_USB_SEVEN flag, or determined once the link is made
using automatic protocol detection.
Warning
Some older fx-9860G derivatives using OS 1.x require a specific USB control transfer to be run before Protocol 7.00 can be used; see Initiating the link for more information.
Note
For reference, the following USB serial cables have also be encountered in the wild:
|
|
Description |
|---|---|---|
|
|
SB-88 serial cable (official CASIO cable). |
|
|
Util-Pocket (defunct alternative vendor) serial cable. Uses an USB serial converter from FTDI. |
Note however that these should be used through the system’s serial bus interface rather than directly.