Though the recent news of the Nspire CX-II's discovery and subsequent announcement has put this in shadow, TI-Python is still something that the (lazy) engineers down in Texas are working on. To those unfamiliar, TI-Python is TI's Python editor designed to compete with the Python implementations made available on competing calculators such as the Numworks (who started the trend) or the Casio fx-CG50. Confirmed by TI-Planet in May, Texas Instruments later confirmed it on their site. TI also made us aware of their poor excuse of a Python implementation that they call the TI-Python adapter but I prefer to call it the "cube".



This adapter actually runs the Python interpreter while the TI-83 Premium CE, the French equivalent of the 84+ CE (because France is the most competitive market and that's why they are rolling it out in the first place), using an application called PyAdaptr, acts as a sort of thin client that shows the interpreter's REPL. For all calculators with Python before the TI-83PCE, Micropython, an open-source Python interpreter built for microcontrollers, was used. It was speculated that TI was unable to get Micropython running on the eZ80 CPU used by the 83PCE (and, by extension, the 84PCE) because of the lack of sufficient C compiler for the platform. As such, Texas Instruments was left with the choice of either writing their own compatible Python interpreter or, rather lazily, bodging it with an adapter like the "cube".



The specs of the cube have been known for a while now: an Atmel SAMD21E18A-U inside serving as the Python processor. This chip, in Atmel's increasingly popular SAMD21 range has 32 pins, 256KB of Flash memory, and 32KB of RAM. These specs are perfect for the adapter, offering enough space for Micropython and its modules, enough RAM for writing more complex programs, and 32 pins is fine for this closed off adapter (though it wouldn't have hurt to add some external pins, TI). More importantly than these specs, however, is the existence of solid toolchains for both the Atmel SAM chips and ARM microcontrollers in general, allowing them to easily compile Micropython.

Recently, however, Adafruit, corroborating a post from TI planet has confirmed that their Python interpreter, CircuitPython, is running on the TI-Python adapter. CircuitPython is a fork of MicroPython designed by Adafruit to be more hobbyist-oriented, working to provide better libraries for all sorts of peripherals (many of which they carry in their store Wink). This information was found when someone who had received a TI-Python cube imported the sys module, which contains various details about the interpreter and system, and saw that the implementation field was listed as running CircuitPython 3.0.0. Soon after this was found by the folks at TI-Planet, Adafruit caught wind of its use as well as the general existence of the TI-Python adapter and made a quick blog post mostly filled with images of the module. All of this culminates in Adafruit's latest video in their Python on hardware! series, where Adafruit's Founder, Limor Fried (better known as "ladyada") mentions that they were surprised about the use of the CircuitPython in the adapter. Unfortunately, Adafruit seems to misunderstand what the adapter really means, stating that it makes it so that they aren't stuck with a calculator that's "harder to update" or that it would help it work with peripherals. Ultimately, we won't know why TI picked CircuitPython rather than MicroPython (maybe they thought the name was cooler or saw the tagline that said it was meant for "teaching coding") but it appears that Texas Instruments has not contributed to the open-source CircuitPython project in any capacity or communicated with Adafruit in any way.

TL;DR: Following the discovery of the TI-Python adapter's usage of Adafruit's fork of Micropython known as CircuitPython, Adafruit, in both blog post and video, confirm it and show their surprise. While it's unknown why TI chose CircuitPython instead of the more popular MicroPython, Adafruit also confirms that they have had no contact with TI and there is no evidence of TI contributing to the CircuitPython project.
The usage of single-precision floating point numbers, as is the default for CircuitPython on the ATSAMD21, makes the TI-Python adapter (with its current official firmware, at least) unusable for some reasonable, realistic high school math problems.
critor listed several examples, starting at https://ti-pla.net/p239459 .

It is unofficially possible to make a DPFP-based build of CircuitPython which provides more Python modules, and more functions, than TI's official firmware does... but the underpowered hardware equipped with such a low amount of Flash memory as 256 KB (only 184 KB usable - the first 8 KB are used by the bootloader, and 64 KB are used for other purposes) leaves little wiggle room.
They should just make a calculator that can actually do something useful and go beyond the classroom. It wouldn't kill their profits that much to add an ARM processor in their TI-80 series product line with an interface similar to the TI-84's. I would buy it in a heartbeat.
UDXS wrote:
TI-Python is still something that the (lazy) engineers down in Texas are working on.
[...]
Texas Instruments was left with the choice of either writing their own compatible Python interpreter or, rather lazily, bodging it with an adapter like the "cube".
[...]
Ultimately, we won't know why TI picked CircuitPython rather than MicroPython

My opinion on all that (and I guess of a few others on TI-Planet) is that it's not laziness (not quite fair to call engineers names like that without proof Razz) but rather what those engineers had to come up with having probably an extremely low target BoM for the board etc, because all this is a "quick" (and extremely probably temporary) reaction to try not to lose market share rather stupidly by being the only ones left in early 2019 in the calculator market (in France anyway) not having Python on their main calculator.
It's completely unthinkable that the next version/model (which would logically come out for the next back-to-school season in France) would still require an external module in order to be on par python-wise with the competitors, especially since such external modules could be forbidden at exams.

So... in the meantime (and for as long as there are students having the current 83PCE and need Python), they had to have a Python solution working on the current calc...
Considering they gave away more than 70 000 (yes) TI-Python modules for free (gone in a week!), I bet management had said that this temporary solution must be as cheap as possible - so they figured that micropython had a fork for even smaller chips, CircuitPython, and they went with that.

Now, we can only hope that the long(er)-term solution (whatever a new calc would have inside to correctly run Python) fixes the issues brought by having to choose such a cheap chip.
Good job Debrouxl! your pull request got approved by Adafruit. Hopefully, TI will pull it in for the next software update. It was mentioned in Adafruit's latest Python on hardware!.
Quote:
Hopefully, TI will pull it in for the next software update.

The TI-Python Adapter firmware is probably a fork of the 3.0.0 release of CircuitPython, which is from July 2018. If they rebase their work on CircuitPython 4.0.0, they should get my optimizations, indeed.

Quote:
It was mentioned in Adafruit's latest Python on hardware!

Is there a text version of that thing ? Call me old-fashioned, but videos are basically an instant showstopper for me Smile
Unfortunately, there is no text version of it. Here is a link to the exact time code if you'd like. The clip is like 10 seconds long.
Thanks Smile
Status update on my two unofficial TI-Python Adapter firmware images (with different characteristics depending on whether you want good long integers or "os" + "storage" additional modules - you've got to make a choice, or find a way to save 3 KB): I've updated, and started translating to English, the text mostly written by critor at https://ti-pla.net/t22328 .
EDIT a day later: translation complete Smile
Until today, the longest section, which described the accuracy issues with TI's firmware, was only summarized.
From videos about the TI-Python Adapter posted yesterday, it looks like newer, post-initial public availability versions of the TI-Python Adapter firmware do use DPFP values, fixing the unusability of this solution for high school math usage: https://ti-pla.net/t22382 (in French).
However, no cmath, at least. The videos don't provide information on improvement, or lack thereof, on the other functional holes relevant to high school math usage, which are fixed in my unofficial firmware images.

Oh, and the topic with the next ID, https://ti-pla.net/t22383 , notes that right in the introduction of one of the videos ( http://www.youtube.com/watch?v=6YIKl09fs2U ), about updating the TI-Python Adapter firmware using the 83PCE, the presenter says something which translates to ~
Quote:
Warning, the installation of the Python application is, today, only suitable for the TI-83 Premium CE, not the Python Edition version
.
It brings the question of whatever the "Python Edition" version can be, with a number of possible answers, ranging from separate 83PCE + TI-Python Adapter bundled into the same distribution package, to new hardware revisions of the 83PCE integrating stuff inside the 83P(P)E's casing...
Very exciting, thanks for sharing! I'm not hopeful that we'll learn anything about TI's Python efforts here at T^3, but you never know. This idea of a "Python Edition" is particularly intriguing.
Ooo another blog post from Adafruit here about TI Planet's recent efforts on getting Adafruit's boards to spoof the TI Python cube.
  
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

 

Advertisement