fxKeyboard, Use fx-9860 series calculator as a keyboard for your computer!
Posté le 17/04/2021 18:23
Just need a USB cable!
Warning: This tool may damage your calculator or computer. Always follow the doc and I will not be responsible for any damage.
Github Link here
Usage
+ Use FA-124 software to copy the Add-in to your calculator.
+ Use the LINK app in calcutor menu to connect the calculator to your computer.
+ READ NOTICE BEFORE THIS STEP! Download Zadig from
here. Open Zadig, click Options - List All Device, select CESG502, and replace the original driver with WinUSB.
+ Open the Add-in in your calculator. It will automatically connect to your computer. If you didn't plug the USB cable, it will exit after a short time.
+ Open the fxKeyboardLink software in your computer. Now you can use your calculator as a keyboard for your computer.
Some special keyboard mapping:
Calculator Key -> Computer
OPTN -> Switch between arrow mode and cursor mode
Arrow keys -> Arrow keys in arrow mode and cursor controller in cursor mode
θ -> Text: theta
EXIT -> ESC
QUIT -> ESC
∠ -> <
sin-1 -> Text: arcsin
ab/c -> /
CAPTURE -> PrintScreen
CLIP -> Ctrl + C
PASTE -> Ctrl + V
DEL -> Backspace
INS -> Insert
÷ -> /
π -> pi
EXE -> Enter in arrow mode and click in cursor mode
EXE with SHIFT -> Enter with Shift pressed. This is convenient for using Mathmetica
Notice
+ This tool will automatically open the NumLock in your computer.
+ Once your use Zadig to replace the original driver, you can't use FA-124 to link your calculater. If you want to get back to the original driver, follow Zadig's FAQ
here carefully. You need to know that the USB device is CESG502.
+ If you can't connect your calculator to your computer in any way, try to restart your calculator by the button behind.
Known Issue
+ Press the calculator key down continously will not work like that in your computer. The reason is that I only used GetKey function in this Add-in.
+ In cursor mode, the cursor moved slowly in a constant speed.
+ I would be glad if someone can fix the issues above.
Thanks
Thanks Simon Lothar for his great work in syscall.
Fichier joint
Citer : Posté le 17/04/2021 19:03 | #
Neat-o!
I was about to send a message like "Im gonna make a musical calculator add-in for the fx-cg50(with gint)" in the "hs" part of the shoutbox
Citer : Posté le 17/04/2021 21:35 | #
You certainly come up with interesting ideas! A few days ago I was considering trying the opposite, where you would control the calculator from the PC while projecting the screen at the same time, for hands-free testing.
Do you know what kind of protocol the calculator uses in the Comm syscalls? I believed the CESG502 thing was too specific to work with normal drivers.
Citer : Posté le 18/04/2021 04:14 | #
You certainly come up with interesting ideas! A few days ago I was considering trying the opposite, where you would control the calculator from the PC while projecting the screen at the same time, for hands-free testing.
Do you know what kind of protocol the calculator uses in the Comm syscalls? I believed the CESG502 thing was too specific to work with normal drivers.
Actually I didn't use any protocol provided by CASIO in this program. Just use Comm syscalls to create a connection, and you can transmit bytes and design your own protocol. I guess the FA-124 use protocol 7.00, but I think that's for file and screen transfer.
I used libusb-1.0 in this program, and I found that if I don't use Zadig to replace the driver, the libusb_open function will fail. So I had to replace the driver.
By the way, press the calculator key down continously will not work like that in computer. The reason is that I only used GetKey function in this Add-in. Maybe there is a good way to solve that problem. Should I use the IsKeyDown function to redesign that part?
Citer : Posté le 18/04/2021 08:23 | #
I had read the code but missed the libusb types, oops. I see how it is. xD
I previously believed that Comm syscalls implemented a custom protocol, but apparently not. From your headers I assume it simply presents a two-endpoint bulk interface (maybe with an interrupt channel somewhere)?
Yatis and me have been looking at a custom USB driver these past weeks, and now have a working prototype. No standard device classes yet, but that could happen. At first I thought you had implemented a Human-Interface Device class.
You can also use GetKeyWait() (the syscall, since the library function itself is broken).