Inside the TI 84 Python Edition Calculator!

Ғылым және технология

TI added Python to their calculators a while back. The rumor was this was done by adding a co-processor. I've been dying to look into this and I finally found one at Staples! Join me on a quest of discovery!

Пікірлер: 414

  • @PresJPolk
    @PresJPolk2 жыл бұрын

    I'm picturing Ben giggling madly as he blurs a different subset of his desktop icons in every camera shot of his computer screen.

  • @BenHeckHacks

    @BenHeckHacks

    2 жыл бұрын

    That is exactly what happened. I am the Uber troll.

  • @FriggOff361

    @FriggOff361

    2 жыл бұрын

    @@BenHeckHacks Uber drunk ide say haha

  • @ToTheGAMES

    @ToTheGAMES

    2 жыл бұрын

    @@BenHeckHacks I knew it from the moment I saw different icons blurred. Great troll!

  • @АВС123

    @АВС123

    4 ай бұрын

    @@BenHeckHacksby the way, the FX-CP400 is a calculator can do better, yes, better calculations and has better functions!

  • @commandblockguy
    @commandblockguy2 жыл бұрын

    Hi! I'm one of the contributors to the third-party C toolchain for the CE. I was working on a patch for the Python app a while back before giving up because there was so little RAM that it couldn't hold all the functions for the main processor's graphics API, even though the Python code was all just like one line per function since it was literally doing all the work on the other processor. As a software guy, I hadn't really messed around with test points much, beyond dumping the ARM's ROM, so it's good that someone's documented some of those. I've previously worked out what most of the escape sequences the calculator uses do - of the 7 they've implemented, 2 are entirely custom, and the remaining 5 use the same final character as an ANSI sequence that does about the same thing, but annoyingly none of them are actually standard-compliant. For example, ESC [ m is Set Graphics Rendition, which sets the text color, but it uses entirely different numbers for each color than regular terminals do. As you speculated, there's also an SPI connection between the two processors, which is used when transferring the firmware, programs, TI-OS lists, certain graphics data, etc. I still haven't entirely figured out how that works, either in terms of protocol, which test points it's using, or what system calls it uses. As for why the keyboard is doing that - the OS has a complicated system of scan codes and key codes and tokens that it uses, none of which are ASCII, and the keyboard inputs get translated into key codes. The Python app listens for key codes using the OS's functions, then translates them into ASCII strings, and probably wasn't designed with an external keyboard in mind, which is why it's so jank. eZ80acclaim! is the name of one of Zilog's single chip computers, while the CE uses a different custom ASIC that implements the same eZ80 ISA. And yeah, a lot of the code has been completely untouched for decades - when writing assembly code for it I still find myself primarily referencing SDK documentation for the TI-83 that's nearly as old as I am. There are also several other TI calculators that have worse names than this one, somehow - there's the TI-83 Premium CE Edition Python, which is exactly the same thing but in French but cheaper and with slightly more software features, and the TI-82 Advanced Edition Python, which is exactly the same thing but in the old style of case and with a different OS.

  • @Willow1w
    @Willow1w10 ай бұрын

    Why are all electrical engineers so unhinged

  • @bloviatingbeluga8553

    @bloviatingbeluga8553

    7 ай бұрын

    Its the playing with magic, it messes with the brain

  • @oldguy9051
    @oldguy90512 жыл бұрын

    "A $130 calculator, while still overpriced, has a removable battery but your $1000 cellphone doesn't!" Cue X-Files title music...

  • @MrNoahTall
    @MrNoahTall5 ай бұрын

    You’re insane, in the best possible way. I laughed, I cried, I learned. But I probably won’t open up my TI 84 CE Python since I learned all I need to know. Aside: I learned to program in BASIC on the RadShack Model 100, and I too would much rather play with Python on one of my Pis.

  • @R.B.
    @R.B.2 жыл бұрын

    I don't know that I'd call this solution janky. They've effectively grafted in an embedded Python subsystem with minimal changes needed to be made to the existing calculator design. Doing so, they don't need to recompile Python to run on the Z80 and none of the calculations running on Python use the Z80. This is a pretty elegant way to introduce a modern programming environment while keeping the rest of the calculator largely unaltered. Contrast this with the WinCE update added to HP Prime and the overhead is almost nothing. What's perhaps more interesting is because the Python module is just a serial connection, you could replace it with anything else which uses a serial connection, not just limiting yourself to Python.

  • @notabagel
    @notabagel2 жыл бұрын

    also, it would be pretty great to replace the little chip with literally anything else to add additional functionality, as the calculator is basically just a terminal

  • @dj68k
    @dj68k2 жыл бұрын

    This is the weird kind of tech stuff I love from this channel. This, general conversation and talking through a discovery in real time, Bud, singing, more Bud, a can of beer near the end of the video, soldering, and singing. Oh, and just general conversation and talking through a discovery in real time. BTW, don't forget Bud.

  • @RT-qd8yl
    @RT-qd8yl2 жыл бұрын

    This is the first video I've seen from Ben, and I think it's fkn hilarious! This is awesome, you just gained a subscriber!

  • @Zeal8bit
    @Zeal8bit2 жыл бұрын

    Great video! It's great to see that our beloved Z80 is not dead! I would guess they chose UART protocol because it is asynchronous, which corresponds to the nature of the transfers happening: the Z80 sends data to the ARM core, this one will process them and send the response later. With SPI on the other hand, transfers are all synchronous and initiated by the master (Z80) but the Z80 doesn't know when the ARM core has finished processing the data. In practice they could have added a ready line between both cores with a GPIO, but from what I see, they didn't want to bother with the software. I would have loved to see the how the data were transferred with a graphical/plotting Python example.

  • @transfo47
    @transfo472 жыл бұрын

    First time watching this channel, thought it was going to be a much more rudimentary video. Did not expect a sufficiently advanced level of EE knowledge. Very interesting.

  • @skesinis
    @skesinis2 жыл бұрын

    Great video! The first escape sequence that you’ve got on the oscilloscope “1B 5B 46” was the equivalent of pressing the END key on the keyboard, to move the cursor to the end of the line, followed by pressing the ENTER key (the 0D at the end).

  • @andreagarbin1726
    @andreagarbin17262 жыл бұрын

    It should be interesting to see what is coming out of the serial while graphs plotting....

  • @AJMansfield1
    @AJMansfield12 жыл бұрын

    24:30 The part you want is an "Analog Switch" like a 74LVC1G315, they're super useful for making mods like this. You can connect the 'gate' input of the switch to the FTDI chip's 'TX activity' pin (normally used for enabling a RS485 output driver and/or blinking the TX activity LED), and just otherwise have the appropriate pullup/pulldown resistor to keep the line connected normally whenever the FTDI is not actively sending a byte (or indeed, when it's disconnected). (I've used that exact chip for modding in one of those bluetooth wireless serial modules into a USB serial device, worked like a charm!)

  • @layton3503
    @layton35032 жыл бұрын

    Great video! Loved the Bud Cameo and the duality of it all.

  • @Pete292323
    @Pete2923232 жыл бұрын

    The HP Prime graphing calculator, like the Numworks, also runs Python natively. It uses a beast of processor though, an ARM Cortex A7 @528 Mhz, with 256 Mb of RAM and 512 Mb of flash.

  • @BenHeckHacks

    @BenHeckHacks

    2 жыл бұрын

    That's one beefy Beefasaurus Rex! (tm)

  • @CallousCoder

    @CallousCoder

    2 жыл бұрын

    Help me out here… is this a calculator or a mid 90s super computer?

  • @DavidSprings
    @DavidSprings2 жыл бұрын

    Wow, I have 2 TI 84s on my desk right now, and up pops your video. Good timing!

  • @Jimfowler82
    @Jimfowler822 жыл бұрын

    Always feel a warm happy nerdy feeling watching Ben 👍🥰.

  • @JernD
    @JernD2 жыл бұрын

    I always wondered how these damn python calculators worked, loved the deep dive!

  • @dl8cy
    @dl8cy2 жыл бұрын

    What a great job - thanks for sharing your fun with us!

  • @elonmusk420
    @elonmusk4202 жыл бұрын

    That was very educational and fun, thank you Ben, a true master of hecks!

  • @teh_supar_hackr
    @teh_supar_hackr2 жыл бұрын

    This is such an odd combination that also works at the same time.

  • @kazriko
    @kazriko2 жыл бұрын

    I saw the [F and said... ANSI! I looked it up and ESC-[F is a "cursor previous line".

  • @DouglasFish
    @DouglasFish2 жыл бұрын

    This has to be one of my favorite videos so far of random wtf

  • @jameswyma9849
    @jameswyma98492 жыл бұрын

    its always a good day when Ben posts a new video of him doing a teardown on something

  • @ckape
    @ckape2 жыл бұрын

    MicroPython and CircuitPython both expose a REPL interface on the UART interface by default, so that's probably why they just used that instead of SPI

  • @WilliamZwicky
    @WilliamZwicky2 жыл бұрын

    Ben: LETS HACK PYTHON! Ben 40 minutes later: .. I do not know how to program in Python .. 🤭

  • @jasminegorman9871
    @jasminegorman98712 жыл бұрын

    But... Can it play doom?

  • @parrottm76262
    @parrottm762622 жыл бұрын

    I can't tell you how much I enjoyed this.

  • @UKSonicBoomBoy
    @UKSonicBoomBoy2 жыл бұрын

    Another amazing vid yet again, Ben! The highlight of the video was the keyboard being "Washable". Brilliant, place that inside a washing machine set to 30c. It will make a great video. :)

  • @keyboard_g
    @keyboard_g2 жыл бұрын

    Yes, there is a Python chip dongle for older models. Its hilarious but also super cool.

  • @bepstein111
    @bepstein1112 жыл бұрын

    "Imagine trying to type all those things..." he said as I laughed about my numberous hundred-plus line ti-84 "programs" i made in math+chemistry while I was trying to look like i was doing work....

  • @autumnrain7626

    @autumnrain7626

    2 жыл бұрын

    Relatable as fuck

  • @EPeters208
    @EPeters2082 жыл бұрын

    you should do an episode on the Numworks. It's 100 bucks, around 240mhz, runs micropython, and has a great community of modders.

  • @BenHeckHacks

    @BenHeckHacks

    2 жыл бұрын

    Tell ya what, when this video has paid for the TI-84 Plus CE Python I will! Been eyeing it, can't lie.

  • @arnoldcp11
    @arnoldcp112 жыл бұрын

    I have to imagine that, because the new car was mentioned and remained unnamed, there will be a video doing a teardown. Ben is a master of foreshadowing. I await this video with great anticipation.

  • @erikberg7891
    @erikberg78912 жыл бұрын

    Ben needs to add an “X-Ray” function that explains the references that he constantly drops… or maybe we need a drinking game (drink whenever you don’t get one?). Keep up the good / hilarious work, Ben!

  • @mr-meek
    @mr-meek2 жыл бұрын

    This ought to be fun! I bought one a couple days before you asked on twitter if anyone knew what was inside it- I was going to crack it open for you, but, life has been hectic... now I don't have to =)

  • @yjk_ch
    @yjk_ch2 жыл бұрын

    In theory you could replace the slow Python microprocessor with a 100x faster Raspberry Pi. And also watch Linux boot process running inside the Python mode!

  • @I_wish_I_knew_something
    @I_wish_I_knew_something2 жыл бұрын

    I have no idea of what you are talking about. But, I love your songs and references.

  • @swirlingabyss
    @swirlingabyss2 жыл бұрын

    I saw one of these at walmart the other day and was super tempted to buy one.

  • @xotmatrix
    @xotmatrix2 жыл бұрын

    Really neat hack, Ben.

  • @ccoder4953
    @ccoder49532 жыл бұрын

    I can see not wanting to rewrite all their Z80 stuff to work on an ARM. It works and porting it would probably only add bugs. Wonder why they don't do like HP did on the HP49/HP50 and run an emulator of their older CPU. For those not in the know, the HP 48 ran a (very slow) custom CPU called a Saturn: en.wikipedia.org/wiki/HP_Saturn . When HP did an updated version of that calculator, that CPU was very, very old and could no longer be manufactured, so they built an emulator for the old CPU and ran it on a Samsung ARM.

  • @richhandler2621
    @richhandler26212 жыл бұрын

    I like your videos. Thank you for making them.

  • @jakobfindlay4136
    @jakobfindlay41362 жыл бұрын

    The monitor blurring is funny Every time the camera moves the position changes, some times we can see the files some times we can't xD

  • @TheAmmoniacal
    @TheAmmoniacal2 жыл бұрын

    Awesome vid! Just a tip for the future, on your Windows desktop; right click -> View -> Show desktop icons (this will hide or show desktop icons).

  • @byronwheeler
    @byronwheeler2 жыл бұрын

    Thanks. We really enjoyed this.

  • @perseverance8
    @perseverance8 Жыл бұрын

    Remember the python module? It was a small external module that connected to the non-Python T84PCE's USB mini port, it was equipped with tbe virtually same Atmel SAMD21 MCU & communicated via USB as a terminal.

  • @donpalmera
    @donpalmera2 жыл бұрын

    I'm surprised it doesn't have "dual core power!!!" written all over the packaging.

  • @moosemaimer

    @moosemaimer

    2 жыл бұрын

    Atari would've called it "40bit!"

  • @henrikkliebhan4874
    @henrikkliebhan48747 ай бұрын

    Cool comments on an interesting hardware !!

  • @WillOnSomething
    @WillOnSomething2 жыл бұрын

    I love how TI's packaging hasn't changed in at least 20 years

  • @HobkinBoi
    @HobkinBoi2 жыл бұрын

    it's still ridiculous how much they charge for these things. yes, i get it, most districts use them because they want something standardized, but i still hate how they jack the price so high for something that literally any device could do nowadays

  • @keyboard_g
    @keyboard_g2 жыл бұрын

    Numworks crippled themselves by blocking custom OS builds, ruining their open source community.

  • @rager1969
    @rager19692 жыл бұрын

    Great video!

  • @avidrandomer
    @avidrandomer2 жыл бұрын

    FYI the header labelled T46 is almost certainly the Arm Serial Wire Debug port. Could have a lot of fun with that unless the chip has the debug disabled.

  • @Lion_McLionhead
    @Lion_McLionhead2 жыл бұрын

    Would have been nice to see how the ARM emits drawing commands. Since raspberry pi's ceased production years ago, there is a market for a crummy 115200 python console now.

  • @therealchayd
    @therealchayd2 жыл бұрын

    This is sooo freakin' cool!

  • @HelloNotMe9999
    @HelloNotMe99992 жыл бұрын

    How has nobody built a new graphing calculator using a RP2040 and new code at this point?

  • @idahobob
    @idahobob2 жыл бұрын

    Instead of a switch, a 100K to 1M pullup on the TX pin would have been better.

  • @deeperlook3234

    @deeperlook3234

    2 жыл бұрын

    Came for this

  • @justinnamilee
    @justinnamilee2 жыл бұрын

    "Why am I doing this?" -> For something to do as an excuse to drink beer, oh and it's fun to watch. Not enough singing though.

  • @NickT6630
    @NickT66302 жыл бұрын

    I did a similar thing to this setup on my home brew Z180 computer with a Pi Pico running micropython. The Z180 sends and receives serial ASCII chars as python commands to the Pico and the Pico runs the python code. A second Z180 serial port connects to putty terminal for keyboard input and display output.

  • @deusprogrammer_thekingofspace
    @deusprogrammer_thekingofspace2 жыл бұрын

    Nice Impossible Mission reference.

  • @michaelditto
    @michaelditto2 жыл бұрын

    Fantastic hack. You don't need the switch, just a pull-up to 3V3 would make it "automatic".

  • @LesNewell

    @LesNewell

    2 жыл бұрын

    That was my first thought. You may also get away with two diodes and a pullup resistor instead of that and gate.

  • @hdofu
    @hdofu Жыл бұрын

    The TI-82 truly is the graphic calculator line that refuses to die.

  • @mountainmanmcbeachfront5296

    @mountainmanmcbeachfront5296

    Жыл бұрын

    I have a 82 right in front of me but I can’t find out what cord/program to use to install programs on it. I’ve searched but most the info is from the 90s but even with using Mac Os9 I still can’t get my graph link cable to work

  • @willrandship

    @willrandship

    Жыл бұрын

    ​@@mountainmanmcbeachfront5296 Have you tried using TiLP? If you have one of the clear plastic USB->2.55mm cables (referred to as "silverlink" by the community), that's as good as it gets cable wise. The serial graphlink cables are a huge pain to work with.

  • @Barnaclebeard
    @Barnaclebeard2 жыл бұрын

    It is too early in the morning to deal with whatever is going on with Ben. I will be back.

  • @Wallee580
    @Wallee5802 жыл бұрын

    Wow a Ben Heck Hacks video on a graphing calculator, 2 of my favorite things in one place :p

  • @hrofty
    @hrofty2 жыл бұрын

    You did all that work and haven't tried using that calculator as a junky terminal to control something?! Oh, Ben!

  • @beaseac
    @beaseac2 жыл бұрын

    Awesome stuff!

  • @tysonhimself
    @tysonhimself2 жыл бұрын

    really enjoyed this

  • @MK-of7qw
    @MK-of7qw2 жыл бұрын

    The TI calculators. Overpriced for what little they do, but classic. I still get happy when i find an old TI graphic calculator at goodwill for 5 bucks.

  • @Vamptonius
    @Vamptonius2 жыл бұрын

    The way you corrected that '0' is the same mannerism I use to do it. I thought it was just me.

  • @berndeckenfels
    @berndeckenfels2 жыл бұрын

    What does it send in graph mode.. more escapes or does it use the other (filesystem?) connection?

  • @crusaderanimation6967
    @crusaderanimation69672 жыл бұрын

    31:02 Or just downloading Python interpreter on desktop, or online interpreter, or something on mobile phone... pretty much ANYTHING other that this XD

  • @stianhusemoen6789
    @stianhusemoen67892 жыл бұрын

    that was amazingly fun to watch! more hacks like that please :)

  • @Cambeast123
    @Cambeast1232 жыл бұрын

    You are hilarious, very entertaining video.

  • @panpaletkalg2550
    @panpaletkalg25502 жыл бұрын

    much luxury, such fancy, wow

  • @motherboardbroken2305
    @motherboardbroken23052 жыл бұрын

    Really love the movie and TV show references.

  • @Dong_Harvey

    @Dong_Harvey

    2 жыл бұрын

    Yeah, Frank never got gud at pressing the dann button

  • @motherboardbroken2305

    @motherboardbroken2305

    2 жыл бұрын

    @@Dong_Harvey ahahahah

  • @davidmcgill1000
    @davidmcgill10002 жыл бұрын

    Well now we gotta see a TI calculator connected to a TI terminal from the 70's.

  • @CoolFire666
    @CoolFire6662 жыл бұрын

    Might also be fun to try and make it work the other way around and have a portable serial interface.

  • @mrkosmos9421
    @mrkosmos94212 жыл бұрын

    Honestly surprised TI even still uses a qfn main cpu instead of an smd one. Also imagine having a backwards-compatible calculator and not letting the users run older programs... Why though? It should fit on the screen

  • @anderdnar

    @anderdnar

    2 жыл бұрын

    Version 1 of TI's ASIC was a small BGA chip. They switched to QFN for the second major iteration (there was a minor revision that eliminated custom interrupt service routine support, just because they're dicks). My guess is that QFN packaging is slightly cheaper than BGA, and they needed BGA for the first version because it used a parallel flash, requiring 32 pins (22 address, eight data, two control) just for the flash interface; they're now using a QSPI flash.

  • @escgoogle3865
    @escgoogle38652 жыл бұрын

    Wow, this popped up whilst working on a 3d surface plot in python from a csv file. Yeah I'm your age and decided to learn python on the fly. All the cool kids are doing it. PS: Long live the Casio FX 7000g.

  • @Jeff-ss6qt
    @Jeff-ss6qt2 жыл бұрын

    Now, try using quit() to see if you drop to a shell. It could be interesting to see if you can flash the ARM chip with different things and see if you could use it with the calculator. Like a mini Linux session or emulator running alongside zOS. You could always capture what's being programmed to the ARM chip (Or possibly SRAM) on the initialization of Python.

  • @benjamincrall8065
    @benjamincrall80652 жыл бұрын

    I have one of these. Python performance isn't bad for computation, but graphing is very slow. Still nicer to use than TI-Basic, and as far as I can tell, it's about the same speed. I know they had an add on you could use on the older 84+CE that did something similar over USB to run Python

  • @kratafila
    @kratafila2 жыл бұрын

    I love the fact that it contains a little Zilog80 :)

  • @TiagoTiagoT
    @TiagoTiagoT2 жыл бұрын

    Is there enough room inside the shell to fit a PiZero and hook it up via the terminal wire?

  • @timothystevenhoward
    @timothystevenhoward2 жыл бұрын

    much like Ben's bad puns, my TI-85 will never die. the thing is a tank!

  • @Kylefassbinderful
    @Kylefassbinderful2 жыл бұрын

    There needs to be an animated series where Ben does like half or all the voices.

  • @BenHeckHacks

    @BenHeckHacks

    2 жыл бұрын

    Justin Roiland has such a show

  • @aswells3
    @aswells32 жыл бұрын

    Jank m'stank immediately improved my day

  • @mobluse
    @mobluse2 жыл бұрын

    Can you upgrade the CircuitPython version or change it to MicroPython? If you can you could also change to other programming languages that are supported by the same Atmel ARM-chip.

  • @johnbucki5567
    @johnbucki55672 жыл бұрын

    There is a dock, I don't know if there are single docks but my school used 3 docks that could charge 12 each.

  • @danosdotnl
    @danosdotnl2 жыл бұрын

    props for the cyberdeck reference...come on, just do the dishes in a while!

  • @kstringer24
    @kstringer242 жыл бұрын

    4:53 Dude! You almost pronounced 'peripherals' perfectly this time!

  • @sonic2000gr
    @sonic2000gr2 жыл бұрын

    This is as bizarre an architecture as the original TI-99/4A from 1981...

  • @foxxify1
    @foxxify12 жыл бұрын

    Welcome to today's episode of "Why the Heck am I Making my Own Custom Silicon?" - Limited Heck edition

  • @dannyarnold9823
    @dannyarnold98232 жыл бұрын

    LOL - Ben you are brilliant. thank you.

  • @dennisespinoza4502
    @dennisespinoza450211 ай бұрын

    You are awesome. Ive got to watch ninja turtles again now.

  • @EngineeringVignettes
    @EngineeringVignettes2 жыл бұрын

    Why the switch? Wouldn't a pull-up resistor on the external TX work? Curious as to the reason.

  • @rager1969
    @rager19692 жыл бұрын

    It would be funny if the said 1 jigawatt, to honor Doc Brown.

  • @KRYPTOS_K5
    @KRYPTOS_K5 Жыл бұрын

    And the Casio CG50 Python? Spy bus co processir or interpreteur too?

  • @stopbuyingstuff5522
    @stopbuyingstuff55222 жыл бұрын

    Only Ben would create a mod chip so to speak for the ti calc

  • @LasseHuhtala
    @LasseHuhtala2 жыл бұрын

    The power of Python compels you!

  • @quassin443
    @quassin4432 жыл бұрын

    Wouldn't that ARM chip be actually faster doing calculator things than that Z80?

  • @BenHeckHacks

    @BenHeckHacks

    2 жыл бұрын

    The Z80 Acclaim MCU can clock I wanna say 180MHz? Vs 48 for those M0's

  • @quassin443

    @quassin443

    2 жыл бұрын

    @@BenHeckHacks ohh, i thought it runs at like 16 or 30mhz

Келесі