Comments (14)
On my CX II, if I open usb configuration 2 it speaks the normal nspire protocol. that seems like an easy way to add support.
from tilp_and_gfm.
Work has started but I didn't make much progress because I didn't work much on libti* since September 2019, see debrouxl/tilibs#33 :)
I started refactoring nsp_cmd locally, and did exchange a couple NNSE packets with my CX II through test_ticalcs_2's scripting, but I have no proper implementation of the CX II protocol in libticalcs.
@Vogtinator added initial support for the CX II in his fork of libnspire; it's an incomplete implementation of TI's protocol, less unreliable than the original libnspire implementation after debugged and fixed multiple issues, but it's the only one you can use right now.
The main way to help is to gather dumps of the communication between TI's official software and the CX II calculator; however, at this stage, I'm not sure we need more dumps, as the dumps we already have enabled us to gain significant knowledge of the protocol, and should we need more, both Fabian and I can produce such dumps for ourselves using our own calculators, without having to bother users :)
from tilp_and_gfm.
It appears I won't be of much help then, sorry.
Thanks a lot for telling me about that fork, though. I'm not sure how to use it, but I'll try to figure it out myself.
from tilp_and_gfm.
Thanks for proposing your help, though :)
from tilp_and_gfm.
@debrouxl I'm ashamed to admit, I have no clue how to use your suggestion. I realize that asking for help from you would be too much, but could you perhaps point me in the right direction? I'm sorry.
from tilp_and_gfm.
You need to build https://github.com/Vogtinator/libnspire as tersely described in the README, then build https://github.com/tangrs/fuse-nspire using make
, which creates a "nspire" binary :)
from tilp_and_gfm.
@debrouxl had to ask for some help because libnspire wasn't building without running some extra commands and managed to compile and install it, but fuse-nspire appears to be OSX specific, and can't get it to compile on Linux.
Tried to use gcc, clang and changing the fuse directory in the Makefile to match my installation, to no avail.
I can't believe I offered help when I can't even do this haha. Sorry for bothering you even more asking for help.
from tilp_and_gfm.
@DarkAlphaSete https://github.com/Vogtinator/fuse-nspire should builds and work fine on Linux.
from tilp_and_gfm.
All I had was try again..
It's now working really well, so thanks a lot for helping me out!
from tilp_and_gfm.
You're welcome :)
In general, libnspire's functionality set is smaller than libticalcs' for the Nspire before the CX II, but libnspire is the only choice for the CX II right now, so it makes sense to help you. As I wrote, libnspire's lower reliability for file transfers, which I saw for myself back in the day, is (much ?) less of an issue after Vogtinator's fixes.
from tilp_and_gfm.
Well, that would be an interesting piece of news :)
Which OS version are you using ?
EDIT: also, could you provide a USB descriptor dump, e.g. the output of lsusb -v -d 0451:e022
?
For reference, my CX II-T CAS running OS 5.0.0.1509 exposes the following USB descriptors:
Bus 001 Device 029: ID 0451:e022 Texas Instruments, Inc. Nspire CX II
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0451 Texas Instruments, Inc.
idProduct 0xe022 Nspire CX II
bcdDevice 2.01
iManufacturer 2 Texas Instruments Incorporated
iProduct 1 TI-Nspire(tm) CX II Handheld
iSerial 0
bNumConfigurations 2
OTG Descriptor:
bLength 3
bDescriptorType 9
bmAttributes 0x03
SRP (Session Request Protocol)
HNP (Host Negotiation Protocol)
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0023
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0023
bNumInterfaces 1
bConfigurationValue 2
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 2
Device Status: 0x0000
(Bus Powered)
from tilp_and_gfm.
I can confirm that it does work on a CX II with OS 5.2, with configuration2 after fiddling with libticables :)
What a find!
from tilp_and_gfm.
That's a great find indeed, thanks for both the discovery and the tests :)
We'll have to determine the range of OS versions which provide this capability.
from tilp_and_gfm.
I've just pushed an update to the Nspire model split commit on the tilibs repository, which re-enables a number of code paths which I had previously commented out. I've successfully listed files from my CX II-T CAS running OS 5.0.0.1509, and transferred the available files to the computer. However, getting device info and therefore getting screenshots fail consistently.
[EDIT: the culprit for get device info failing was a pre-existing bug in nsp_cmd.cc::nsp_cmd_r_dev_infos()
: it didn't set size
, so the range check on size
I added to calc_nsp.cc::get_version()
started failing, by chance (dependent on memory contents). After fixing that bug, I can now get device info and screenshots.]
from tilp_and_gfm.
Related Issues (20)
- Capture screen from command line HOT 1
- Add support for running assembly programs on TI-84 Plus CE in OS 5.6+ using arTIfiCE HOT 3
- Sync Clock With PC Always Sets Clock to UTC HOT 5
- Android ARM-64 support? HOT 2
- TI83F header comment cutoff? HOT 10
- trying to transfer MirageOs produces an issue stating "Invalid Parameter" HOT 3
- Free software license HOT 3
- Build fails on Manjaro: Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 274. HOT 4
- Double-clicking empty device list causes Segmentation fault HOT 3
- Errors connecting to TI-84 Plus CE HOT 6
- Updating an app with TiLP hangs & times out while calculator is on "Defragmenting" screen HOT 2
- Unable to restore CRASH.82B file to TI-82 on tilp HOT 1
- Feature Request: Dark Theme HOT 3
- File transfer (TX) does not work on TI-92: Files never actually save to the device. HOT 2
- Win32: The procedure entry point deflateSetHeader could not be located in the dynamic link library libgio-2.0-0.dll
- ./install_tilp.sh fails on OSX Ventura 13.3 HOT 3
- ./install_tilp.sh fails on OSX Ventura 13.3 ARM HOT 2
- Cannot download specific variables from TI-92 II HOT 1
- [GFM] macOS: segfault on gtk_file_chooser_set_current_name
- dependency libglade2-0 will be removed from Debian: deprecated and unmaintained upstream HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tilp_and_gfm.