Forgive the noobishness of this post, but the last time I was actively programming for calculators (or anything really) was 2004: I was in college and the TI-89T was the latest model. So I'm only really up to date on (TI-)BASIC, C, JS, and a functional understanding of ASM. Without detail, I'm at a place where I'd now like to learn more up-to-date languages.

The obvious starting point seems like Python, but I'm having a difficult time figuring out what does and does not support Python, since a lot of that seems to be in flux at present, most notably on the HP Prime. It also looks like TI has ended official support for assembly?!?!

I was hoping someone could drill down the current state of the calculator landscape:
1.) Which devices from TI, HP, and Casio—with color displays—currently support Python, either natively or through user-developed methods?
2.) Which implementation of Python is used on those devices (CircuitPy, MicroPy, etc.)?
3.) Which of those devices officially support ASM?
4.) What additional programming languages (beyond BASIC or similar) is available for those devices?
5.) Is there any indication (official, rumor, whatever) that the Casio FX-CG500 will natively support Python by the end of Q1 2022?

I'm also hoping someone could point me in the direction of a run-down on exactly how ICE works with TI calcs.

Thanks in advance for any help!!
1. I can't speak for HP or Casio calculators, but the TI-84 Plus CE Python Edition, TI-83 Premium CE Edition Python, TI-82 Advanced Edition Python and TI-Nspire CX II all support Python natively. Additionally, I believe that the TI-Nspire CX can run Python using Ndless. It's worth noting that on the non-Nspire calculators, Python has so little memory as to make it useless for non-trivial applications; also, they fail to provide basic interface functionality like performing a non-blocking read of the keypad or storing non-numeric data persistently.
2. The non-Nspire TI calculators use an outdated version of CircuitPython, while the Nspire CX II uses an outdated version of MicroPython.
3. Officially, none of them do. TI seems to at least tolerate it on the TI-84 Plus CE and TI-83 Premium CE, however, and given how insecure the CEs are, it seems extremely unlikely that they'd be able to get rid of it.
4. The CE calculators have an unofficial toolchain for C and C++, and you could also probably get other languages that compile to LLVM bytecode to run on it with some work. The Nspire line of calculators support Lua, and there's also an unofficial C/C++ toolchain for them as well.
5. No idea
6. ICE is a programming language for the CE calculators that compiles from a TI-BASIC-like language into eZ80 assembly. It's third-party, not supported by TI, and it's also no longer being developed. In my opinion it's really only useful if you want to write performant code for a CE without access to a computer, as there are better options available on a computer.
The calculator that works for me the best due to its screen and storage size is Casio FX-CG50:
1) native and other ways via add-ins like Khicas
2) microPy I believe
3) asm is not blocked in any way outside of exam mode
4) c/c++ unofficial sdks partially based on Casio’s official c sdk; also Lua, PicoC scripts (via add-in interpreters)
5) I would not get fx-cg500 as it is too hard to make it run 3rd party add-ins - something fx-cg50 as well as fx-cg10 and 20 models support out of the box perfectly

In practice fx-cg50 development is most rewarding in C/C++ and in my opinion if you want to learn Python the calculators (ti, hp and casio) will only offer quite limiting experience.
Wow, thanks for the fast and detailed info!

To clarify commandblockguy's response: So the CX II line allows non-blocking key input and/or persistent storage of non-numerical data, but not CE models? Or none of the current TI Python devices have such support?

And per amazonka's response: The reason I hadn't really been considering the FX-CG50 is because I've never used Casio Graphing Calcs and was hoping that staying in an ecosystem with which I'm already familiar would be preferable. But the more research I do, the less it seems that TI lets its current devices do relative to those from 20 years ago. Sad But based on your comments, the CG50 is now on the list of potential devices.

And to your final comment: I'm actually looking for a limiting experience! I have ADHD and find it very difficult not to get ahead of myself (i.e. I want to do everything and now). I was hoping a calculator would in fact limit the expansiveness of my ideas and help me focus on simply getting used to the general Python syntax and methodology. Then I was planning to jump out to an Arduino board, then RaPi.

But if there's a better starting place that will still initially limit my capabilities to help keep me focused, I'm all for it! Tutorials/lessons are also helpful at keeping me focused, but only as long as they don't start with the basics of programming (no need to review concepts like variables and subroutines).

Again, thank you for reading and caring enough to respond! I always appreciate when I come some place new and don't get ripped to shreds for asking rudimentary or pedantic questions. Good Idea
DKqwerty wrote:
And per amazonka's response: The reason I hadn't really been considering the FX-CG50 is because I've never used Casio Graphing Calcs and was hoping that staying in an ecosystem…

And just remembering: FX-CG50 doesn't have CAS, which is also why it wasn't on the list. You don't find it crippling not to be able to do algebraic expressions with variables?
For CAS I used Eigenmath on older fx-cg20/10 models and more recently Khicas add-in on fx-cg50. I assume TI CE models have something similar but I am not sure. Another calculator with Python is Numworks but I never tried it, only used TI and Casio calculator and I personally prefer Casio interface but many people prefer TI.

I hope you will have fun with whichever you get
The nspire has unofficial ASM support, and it runs on an ARM core so it's basically unlimited in its possibilities (and your patience of waiting for the next frame)
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum