GithubHelp home page GithubHelp logo

timendus / ticalc.link Goto Github PK

View Code? Open in Web Editor NEW
34.0 9.0 11.0 973 KB

A website that can send files to your calculator through WebUSB and ticalc-usb

Home Page: https://ticalc.link

License: GNU General Public License v3.0

JavaScript 52.35% SCSS 47.65%
calculator ti-84 ti-84-plus webusb

ticalc.link's Introduction

ko-fi

ticalc.link

This is a website that allows the user to upload files to their calculators using WebUSB. No complicated installation instructions, just open the website, follow the three on-screen steps and you're done.

Status of this website

This website is currently very experimental. I have successfully communicated with my TI-84 Plus with it, and sent files to it. However, it comes with absolutely no guarantees that it can handle other models or even other version of the TI-84 Plus, nor that it can properly parse and send any file you throw at it. So be warned.

If you run into issues, please report them or submit a PR at the ticalc-usb library.

License

This application is released under GPL version 3.0.

The favicon was made by Scott Zeid and released under a Creative Commons Attribution 3.0 Unported license. No changes were made other than transforming the image into an icon file.

ticalc.link's People

Contributors

dependabot[bot] avatar reesericci avatar timendus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ticalc.link's Issues

8xk isn't working

Bro I just need this fixed asap I kinda deleted everything on my calculator and was gonna use the space for games but i can't use mirageos because it takes 8xk thats the program i use to play most of my games

Having trouble with the send button

It will not send, it connects the calculator, selects the file, and then when I click send it unconnects the calculator and wont let me reconnect it until i reload and unplug the cord/website

Programs always have error on TI-84 CE

Hello,

I am able to upload programs but my inability to play them is a bit saddening. I can upload perfect, but i can't do anything with them except getting errors. Please fix this if you can, but i know you have a very limited time

Best Regards,
Squeezy

Google analytics.

Would it be possible to replace Google Analytics with something more privacy respecting like Plausible Analytics?

I would prefer to not have google tracking me while visiting your site.

connectio issue?

SO, I've got my TI-84 Plus CE plugged in correctly, but the site doesn't recognize it. Any suggestions?

Interesting ChromeOS Issue

I can transfer files to a TI-84 Plus CE and python edition, but when I tried this with a regular TI-84, I was only able to transfer a broken 2048 file, which ended up launching, but didn't really work. After that, nothing happened when I clicked the send button.

Cannot send.

I can select a calculator and file. But nothing I do will start the process to send file over. I am using a TI-84 Plus.

Some files not sending properly for the TI-84+ CE(-T Python Edition)

There are some files that are being sended properly.
I've made a list of files that do work and files that do not work.
I think that the problem has something to do with the file size.
The files that are being sent are all small...

files that work:

  • BATTERY (https://www.ticalc.org/archives/files/fileinfo/475/47544.html) [Only after replugging the cable, if tried another file first]
  • ΞΈLIGHT (Within the CLOCKCE zip) [DOES send, but NOT correctly. the theta is changed into another symbol]
  • ΞΈDARK (Within the CLOCKCE zip) [DOES send, but NOT correctly. the theta is changed into another symbol]

files that don't work:

Won't let me 8XK Files

I've tried sending all kinds of different 8XK files, like Doors CS7, or ION, but they all say "The file you have selected does not seem to be a valid calculator file".

Not all file types can be sent

The issue

People report all kinds of issues with not being able to send certain kinds of files. The reported problems seem to fall into three categories:

  1. The file picker does not allow the user to select the file, because there's a check on file extension (currently limited to .8xp,.8xg,.8xv,.83p,.83g,.82p,.82g)
  2. ticalc.link does not allow sending the file, with the message "The file you have selected does not seem to be a valid calculator file" (tifiles.isValid(file) returns false)
  3. The file seems to send, but gives an error or doesn't show up on the device

Category 1 and 2 exist to prevent category 3. So the ones in category 3 are bugs, the ones in category 1 and 2 are technically "by design" because the library doesn't support each and every file. But I understand that both are pretty annoying.

Please note that Texas Instruments' file types are not really documented anywhere, so much of this is a dark art. The current file parser code is largely a port of tilibs (https://github.com/debrouxl/tilibs). Fixing exotic parsing issues or adding new file types is therefore not as easy as I'd want it to be.

This issue is here to at least document the different types of problems, collect ideas to solve them and maybe inspire someone (or myself) to fix them πŸ˜‰

Related issues

Thank you all for sending these in!

Solution to category 1 problems

Some file extensions are supported by the parser, but not allowed by the file picker. These can easily be fixed. I do however feel like we need to test each type before we allow them. If you can run ticalc.link locally, you can easily change the list of allowed file types here, and test to see if the file then sends correctly:

input.accept = '.8xp,.8xg,.8xv,.83p,.83g,.82p,.82g';

I suspect we can probably parse these files (but need to test):

  • .8xs
  • .8ca

Other file extensions are not supported by the file parser, so those are basically category 2 problems that are caught in an earlier stage. For those we need additional work on the file parsing (see below).

I suspect these files can't currently be parsed:

  • .8ek
  • .b84
  • .8xk

Solution to category 2 problems

Here's the check that says files are valid or not:

Screenshot 2022-04-15 at 20 21 43
https://github.com/Timendus/ticalc-usb/blob/2a0f5e4bae433f5e411faacdd8d6c31d964fb864/src/tifiles.js#L36

If there are program (.8?p), group (.8?g) or variable (.8?v) files that ticalc-usb says are invalid, but are really valid files for supported calculators, then we probably have a bug in this or related code.

The code that parses files currently (probably) doesn't support files other than program, group or variable files. So the fix for being able to send other files is adding parsing support for additional file types. This would need to be written by someone, and I'm open to contributions πŸ™‚

Solution to category 3 problems

These are almost always bugs. A file should not be loaded and parsed correctly, but not sent properly. I'm not entirely sure how people manage to end up in these states πŸ˜„ If people have example files or steps to reproduce the issue, please share them below.

One of these weird issues may be with sending .8xv files (#26). This could be a good place to start work on this category.

An error with index.js

I get an error in the console every time that I try to send a file, the file doesn't even arrive.
I'm using a TI-84+ CE.
The website and the calculator are reacting to each other though
Screenshot_20201129_143143

Can't install OS and apps bundle

When I try to select the TI84CEBundle-5.8.0.22.b84 file (downloaded from here), it says it's invalid. I know people usually only transfer 8x* files, but I have to reinstall my OS because my RAM was almost full. Using TI 84 Plus CE on Samsung Chromebook 3. I was able to transfer a couple programs, so it's not the computer's fault.

unable to select calculator after new chrome OS update

I recently got a TI-84 Plus CE, and as a chromebook user, I do not have many options to add files to my calculator. However, this website was great, and I have been using it for several days.
Unfortunately, after installing a new chrome OS update, I can no longer see my calculator in the "select calculator" stage. I have tried to see if it is an issue on my calculator; resetting RAM, checking for anything weird, etc. I have been using the same cable (I tried to use a different cable at one point to see if that was the issue), and my calculator OS shouldn't be too high of a version to make it harder to add files (OS version 5.4.0034). After updating, my chrome OS version is now version 114.0.5707.0 (Official Build) dev (32-bit).

Can't send .8xs files

^title^

It either does nothing when I press "send it" or it says "something went wrong."

.8xv files will not transfer to TI-84 Plus CE

Hey there,

I'm currently on Chrome OS (Version 94.0.4606.124) and when I try to send a .8xv file to ticalc.link, it says it has been successfully sent, yet I cannot find the file on my Calculator. Another issue I'd like to bring up is that when trying to open the file, I have to go to "All Files". This should show with the other selected files.

Thank you for your time and effort on this project.

Select Calculator not working

I am using Chrome Beta (Version 112.0.5615.49 (Official Build) beta (64-bit)) on Ubuntu 20.04.4 LTS, and I have a Ti-84 Plus CE. Chrome detects the calculator as a Serial Port, but for some reason, ticalc.link doesn't show that it's connected to a calculator, but Chrome says that it's paired. Here is me having the problem.

Unable to Connect to TI 84 Plus or CE

I have tried to connect to both of my models in the 84 family, but neither have shown in the list of devices to connect to. Anyone have any idea what is going on? I am on a Windows 10 PC running Chrome.
EDIT: I can however connect on Chromebook, but sending a C file sends it as an empty TI-BASIC file.

Issues with calculator selection

I have been using this website for sending files to my ti84 plus ce and it's worked great! Just recently though I would select my calculator and it would show up with the beta warning but when I click 'Okay' the page will crash with error code SIGILL.

Unable to Progress Past Step 1

OS: Windows 10 Home 20H2
Browser: Edge Version 89.0.774.76 (Official build) (64-bit)
Calculator: TI-84 Plus CE Revision M with OS 5.3.0

Issue: I cannot get the first step to be marked as completed. When I opened ticalc.link, the 'Select Calculator' was in blue. I clicked it, selected my calculator, and clicked 'Connect'. However, step 1 did not turn into a green check mark nor did I get any warning about the TI-84 Plus CE's support still being in beta. If I click on step 1 again, Edge will show that my calculator is currently paired.

Although step 2 was greyed out, I could still click on it and select a file. Step 2 would turn into a green check mark but step 1 would stay the same blue color.

Step 3 is greyed out and I cannot interact with it no matter what file I select (ASM or Basic) in step 2.

The only error in the console is

DOMException: Access denied.
o @ index.js:1

Which takes me to this function. The error is the ".error(e)" on the last line. e is undefined.


            e && "Calculator model not supported" == e.message ? l("Sorry!", "It looks like your device is not yet supported. Would you like to submit it for consideration?").then((()=>function(e) {
                document.querySelector("#flow").innerHTML = `\n    <h1>Device info to submit</h1>\n    <p>Please <a href='https://github.com/Timendus/ticalc-usb/issues/new?assignees=&labels=device+support+request&template=calculator-support-request.md&title=Calculator+support+request' target="_blank">file a support request on Github</a> with the following information:</p>\n    <pre>${JSON.stringify({
                    deviceClass: e.deviceClass,
                    deviceProtocol: e.deviceProtocol,
                    deviceSubclass: e.deviceSubclass,
                    deviceVersionMajor: e.deviceVersionMajor,
                    deviceVersionMinor: e.deviceVersionMinor,
                    deviceVersionSubminor: e.deviceVersionSubminor,
                    manufacturerName: e.manufacturerName,
                    productId: e.productId,
                    productName: e.productName,
                    serialNumber: e.serialNumber,
                    usbVersionMajor: e.usbVersionMajor,
                    usbVersionMinor: e.usbVersionMinor,
                    usbVersionSubminor: e.usbVersionSubminor,
                    vendorId: e.vendorId
                }, null, 2)}</pre>\n  `
            }(e.device))).catch((()=>{}
            )) : console.error(e)

8xl files can't be sent :(

I used to use TI Connect CE, but when I found this, I started only using it because it was much easier and it was in HTML5, which meant I could use it on my school computer. Eventually my PC broke, and I was forced to use this site. It's wonderful, but surprising to me that after all this time TI 84 Plus CE is still in beta; I would imagine it's what the majority of ticalc.link users use it for. Over the past 4 months or so I've been really interested in Brainfuck and how it's so complicated to do simple things like the Fibonacci sequence. So I tried to install Brainfoo for the CE. But it has necessary 8xl files, which unfortunately cannot be sent on ticalc.link. I started work on my own brainfuck interpreter, but eventually dropped it, being much harder than I thought. I've came back to it a few times, but I doubt I'll ever finish it with the knowledge that a better one already exists, but I just can't install it. Eventually I decided to come here and make this issue to ask if support for CE files like .8xl will come any time soon. I hope I get a response :) I've checked and made sure this isn't a copy of another. At least, it's not mentioned in this issue.

TL;DR, I'd love to know when (or if) support for more obscure CE file extensions will come, as they're sometimes (albeit rarely) necessary.

Can't send .8ek, .8ca, or .b84 files

My calc: TI-84+ CE Python (H/W revision S)
OS version: 5.7.0

.8ek files are TI-84+CE applications, .8ca files are pictures for the CE, and .b84 files are bundles (basically a fancy .zip). I'm unable to move these to my calculator using ticalc.link. It just says that it isn't a valid calculator file. Could you please add support for these?

can't multi select files

in chrome os, you can multi-select files so it takes forever to put some programs on to the calculator

84PSE gets stuck during file transfer

On Windows using Chrome, I'm able to connect to my 84+SE with OS 2.55MP, but something seems to get stuck during the transfer such that I need to unplug USB from the calculator for it to come back and the file doesn't actually end up on the calculator.

Debug logs on the console look like this:

index.js:1 πŸ–₯β†’πŸ“± Sent:     00000004 01 00,00,04,00
index.js:1 πŸ–₯β†πŸ“± Received: 00000004 02 00,00,00,FA
index.js:1 πŸ–₯β†’πŸ“± Sent:     00000010 04 0000000A 0001 00,03,00,01,00,00,00,00,07,D0
index.js:1 πŸ–₯β†πŸ“± Received: 00000002 05 E0,00
index.js:1 πŸ–₯β†πŸ“± Received: 0000000A 04 00000004 0012 00,00,07,D0
index.js:1 πŸ–₯β†’πŸ“± Sent:     00000002 05 E0,00
index.js:1 {calcType: 'TI-84 Plus', size: 2188, comments: 'BinPac8x (c)2010 Cemetech.net&Kerm Martian', entries: Array(1), debug: {…}}
index.js:1 πŸ–₯β†’πŸ“± Sent:     0000000C 04 00000006 0007 00,02,00,0E,00,11
index.js:1 πŸ–₯β†πŸ“± Received: 00000002 05 E0,00
index.js:1 πŸ–₯β†πŸ“± Received: 0000000A 04 00000004 BB00 00,01,D4,C0
index.js:1 πŸ–₯β†’πŸ“± Sent:     00000002 05 E0,00
index.js:1 πŸ–₯β†πŸ“± Received: 00000022 04 0000001C 0008 00,02,00,0E,00,00,08,00,00,00,00,00,00,5D,AB,00,11,00,00,08,00,00,00,00,00,14,DC,D1
index.js:1 πŸ–₯β†’πŸ“± Sent:     00000002 05 E0,00
index.js:1 πŸ–₯β†’πŸ“± Sent:     00000029 04 00000023 000B 00,04,43,48,41,54,00,00,00,08,7B,01,00,03,00,02,00,04,F0,07,00,06,00,03,00,01,00,00,08,00,04,00,00,00,00

It looks like the last chunk of data is expected to elicit a response from the calculator, but the calculator still seems to be waiting for something so the transfer gets wedged.

Can't Connect to a Renamed Calculator. Add Manual Override?

ticalc.link appears to determine what calculator is connected by checking its name. Unfortunately, this means that people such as reesericci and I cannot use our TI-84 Plus CE calculators with ticalc.link because we've renamed them to something other than the default 'TI-84 Plus CE' using CERMASTR.

Is there another way to identify what calculator is connected such as the OS version? Could there be an 'advanced' tab that lets the user manually select what calculator they are using?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.