by Frédéric "mr womp womp" Desautels, Christopher "KermMartian" Mitchell, and Ryan "iPhoenix" Pitasky
It’s not every day that a brand new graphing calculator manufacturer enters the scene. Casio created the first graphing calculator, the fx-7000G, in 1985, quickly followed by the HP-28C in 1987 and the TI-81 in 1990. In the 33 years since, the only major new graphing calculator has been the Numworks N0100 in 2017. At last, we are able to announce a new contender on the scene: Zero Calculators. For close to two years, members of Cemetech, TI-Planet, and the graphing calculator community have been testing and providing feedback on this company’s first calculator. And today, we’re revealing our in-depth look at the ZGC3, a third and significantly iterated prototype.
The Zero Calculators ZGC3 graphing calculator
The reviewers who created this article received free prototypes from Zero Calculators, but no other considerations from Zero Calculators. The opinions in this article have not been edited or audited by Zero Calculators.
Overview of the Zero Calculators ZGC3
Who’s it for? The best answer to this question comes from the look and feel of the ZGC1 and ZGC2 prototypes, and the OS of the current prototype, which offers near keypress-identical compatibility with the TI-84 Plus CE. It’s aimed squarely at the same high school and college classrooms and standardized tests as TI’s well-used, sometimes well-loved TI-83 Plus/TI-84 Plus family of calculators. It offers functionality for arithmetic, trigonometry, statistics, probability, geometry, graphing, and some calculus and programming. Like the TI-84 Plus calculators and Casio’s equivalent, the fx-CG50 / Prizm, it does not offer a computer algebra system, or CAS, and therefore won’t be solving symbolic equations or doing symbolic integration and differentiation for you.
The TI-84 Plus CE, ZGC1, ZGC2, and at right, the current ZGC3.
The calculator is slim and light, a few millimeters shorter and thinner than the TI-84 Plus CE, also with a hard plastic case, and the front also laid out with a screen covered in a protective clear plastic above an array of keys. Unlike the TI-84 Plus CE, it has a rubbery ring covering the thin edge of the calculator, a protective boon if you drop it on a corner, and instead of slightly concave, flat, rectangular keys, the ZGC3 prototype has introduced hard, clear, nearly M&M-shaped domed keys. In bright light, the reflective keys and newly protective faceplate of the calculator are hard to read, and the tips of the hard domed keys are somewhat uncomfortable for extended calculating or programming sessions.
Like equivalent calculators, each key types a character of string, enters a menu, or invokes a calculator function, and most have alternate functions activated by pressing the [2nd] or [ALPHA] keys before the key. Lowercase letters are available from the outset on the ZGC3; on TI’s calculators, you need to use an assembly program to unlock the built-in lowercase letters.
The font is smaller, lighter, and allows more to fit on the homescreen - when programming, you can put 12 rows and 32 columns of characters on the screen, compared to the 10 by 26 of the TI-84 Plus CE. Those smaller characters are also harder to read. In fact, this pattern persists throughout the calculator’s interface: small, light text that is hard to read, whether you’re in menus, the graph table, or the program editor. Take a look at the apparent contrast of the ZGC3 and the TI-84 Plus CE in the graph table:
Keypresses and menus generally feel sluggish, and we often found ourselves having to press keys multiple times or slow down our typing in order to make them register.
First and foremost, a graphing calculator is a calculator, and must first be therefore judged on its merits as a calculator. In class, on the SATs, and sitting on desks around the world, users pick up their calculators to do simple arithmetic, trigonometry, statistics, maybe even a bit of calculus. If it was originally aimed at being an everyday classroom calculator (but better), then the ZGC3 should have similar features and accuracy to the TI-84 Plus CE, the Casio fx-CG50 (Prizm) and other staples of the modern high school classroom. Features it has; accuracy it lacks.
Arithmetic & Trigonometry
Essentially every function you would expect on a TI-84 Plus CE is present on the Zero Calculators ZGC3, with the same name and the same arguments - but not necessarily the same answer. The buttons have the same names and functions as their TI-84 Plus CE equivalents (with a minor rearrangement of the keys from the ZGC2 to the ZGC3), and any student or teacher familiar with existing graphing technology will find functionality where they expect it.
As we’ll soon discuss, a current critical problem with the ZGC3 is its use of an internal representation that makes similar compromises to the decimal numbers widely used in computers but translate poorly to a calculator.
In fact, the calculator sometimes performs invisible and misleading rounding on results:
remainder(13.716,4.572) prints 4.572 - because it rounded 4.5719999999999 (the correct answer is 0). Another way to show this same problem:
remainder(13.716,4.572)-4.572 should print -4.572 in a mathematically perfect world, 0 if the ZGC3 is telling the truth about the value of 4.572 - but actually prints -8.881784197E-16.
Statistics & Probability
Barring current bugs with Lists, the Zero offers the exact same statistics functions as the TI-84 Plus CE (List editor, significance tests, regression models, confidence intervals, etc.) but currently lacks a probability simulation app. Accuracy problems rear their head again, for example with the probability function
randInt() (random integer). Entering 1,000,000,000 and 9,999,999,999 in the
randInt() wizard pastes
randInt(1000000000,2147483647,1) on the homescreen (2147483647 is the maximum signed 32-bit integer value). The STATS menu is virtually identical to its TI equivalent, the only notable difference being the clrAllLists() command which is accessible directly from the STATS menu.
Here are some examples of the stats functions on both the CE and Zero:
Matrices & Lists
Matrices work as expected to solve systems of equations. Besides a minor visual bug, the matrix editor is essentially the same as on the CE. You can multiply a matrix by a complex number (as below), which is something the TI-84 Plus CE series does not support, but you cannot raise a matrix to a power, which the TI-84 Plus CE series does support. Generally, the Zero will give you the results you expect when you use the different features “the intended way”, but does not provide adequate safeguards to prevent users from entering whatever they want, causing the calculator to act in unexpected ways. This seems to be a common theme across the entire Zero OS.
That being said, we noted several issues/bugs:
- The matrix editor will not allow you to enter complex numbers despite the fact that the data type supports it.
- The standard way to programmatically set a matrix’s dimensions doesn’t work.
- Matrices can be created seemingly unboundedly large-- an advantage over the CE-- but bigger matrices crash.
- Implicitly multiplying a list by a variable returns 0, as below.
Graphing on the ZGC3
Like most of its competitors, the ZGC3 has a Y= screen where you can enter up to 10 equations in the form of Y=f(X), choose the shading style (for example, shading above or below the function), and then view a graph of the function(s). The powerful CPU of the ZGC3 shines while performing graphing: graphed functions appear instantly, and even complex shaded functions render in a fraction of a second. Graphed functions appear as accurate as is necessary for inspection, including vertical asymptote detection for functions like
tan(X). We could nitpick inconsistencies in the apparent widths of graphed functions, but overall graphing is an area where the ZGC3 feels most close to classroom-ready.
The calculator offers the same tools for inspecting graphs as other calculators like the TI-84 Plus CE, such as finding local minima, maxima, and zeros, tracing along functions, and viewing a table of X and Y values. Just like that calculator, there’s a WINDOW menu for changing the extents of the graph, a FORMAT menu to change the appearance (notably, lacking options to turn off the axes, change the color of the axes or background, or set a picture as the background to graph over), a ZOOM menu, and a TBL SETUP menu to configure the table of X/Y values.
y=2sin(x) on a TI-84 Plus CE (left) and Zero Calculators ZGC3
The [MODE] screen is very much like its TI-84 Plus CE equivalent, allowing users to modify settings such as angle mode, date and time and notation mode. Tucked away in the window format menu is the setting for dark mode. Because of the somewhat inferior contrast and rather strong backlight, this mode isn't much rest on users’ eyes, but it is distinctive theming, and a nice touch. Interestingly, there is a “Natural display mode”, equivalent to TI’s MathPrint™, which is trademarked. Clearly they were careful to avoid stepping on TI’s toes with the name.
The ZGC3 also has an exam mode, USB MSD mode, two apps (Poly Root Finder and Simultaneous EQN solver), a simulator and ZeroConnect (similar to TIConnect with a built-in ZeroBasic editor, offered for Windows, Mac and Linux); future Cemetech news might cover these, or just refer to your favorite TI-84 Plus CE tutorial/book/wiki and substitute the ZGC3 keys. Almost all of them will be relevant in the context of the ZGC3.
What Happened to the Numbers?
So why is the accuracy of the math features so uneven? The problem is rooted in core incompatibilities between how humans and computers (and calculators, which are small computers) do math. Humans can essentially do infinite-precision math, given enough paper and patience, whereas computers are limited by memory and speed. In fact, almost every modern computer uses special representations of decimal numbers packed into either 4-byte or 8-byte containers, under the glamorous name of IEEE-754. The 4-byte (“single-precision” or “float”) and 8-byte (“double-precision” or “double”) versions both make necessary compromises to jam all the information you might have in a decimal number into a few bits of memory: a sign, an integer part in front of the decimal point, and a fraction part after the decimal point. Most computer scientists or programmers who work with low-level languages know all about the many problems with IEEE-754 numbers - sometimes the answer is “use a double instead of a float”, and other times the number you want to represent or operation you want to encode is simply not possible without switching to a different implementation of number storage. We believe that the Zero Calculator may use a different floating-point storage format in at least some places in the OS, but it remains one plagued with accuracy problems.
While the Zero Calculator is blazingly fast, this numerical inaccuracy handicaps it as a reliable calculator. Simple tests reveal a preponderance of single-precision floats, integers in weird places, and rather odd overflow and underflow bugs. This alone is enough to dismiss the calculator, at least for now; it reveals a lack of understanding by the developers about what people require in a calculator (something that TI has thought a great deal about, to pick a single example). After all, if you cannot trust your device to do grade school addition and subtraction, as demonstrated by the canonical example of
(0.1+0.2)-0.3 revealing telling float artifacts, it’s hard to trust the more complex capabilities. Some digging by members "LogicalJoe" and "Adriweb" found that the developers comically boasted about their choice of floats over doubles, both of which are terrible solutions for a device where numerical precision over a broad range of scales is necessary.
ZGC3 ships with their own Zero BASIC language, and continuing with the trend of modern calculators coming with “real” programming languages, Python.
The Zero BASIC is similar to the language that the community and now TI themselves call TI-BASIC. Just like TI-BASIC, it consists of human-readable commands (if, then, else, while, do, end), math functions from elsewhere in the calculators capabilities (e.g.
ClrDraw). Unlike TI-BASIC, you can type it character-by-character on the calculator, and we believe a pre-execution tokenization and syntax-checking pass is performed. Like TI-BASIC, it appears to be an interpreted language, and is notably faster than TI-BASIC on a TI-84 Plus CE. In fact, if you don’t write to the screen, it is blazingly fast - a 30,000-iteration loop with a simple math operation in the loop completes in 7 seconds (12 seconds on the ZGC2).
Here’s a similar basic, BASIC SNAKE game running on a TI-84 Plus CE and a ZGC3, and a sample section of the Zero BASIC (left) and TI-BASIC code (right).
Running a simple BASIC Snake game on a TI-84 Plus CE and Zero Calculators ZGC3
Like the rest of the calculator, the programming capabilities are almost there, but feel like they haven’t been tested or fleshed out enough. The display dims during programs as if the calculator thinks no keys are being pressed, there’s no way to scroll down quickly in programs, you can’t type lists (e.g. L1) or even Ans in the program editor, the dim() command doesn’t work, and so on. The language syntax itself isn’t bad, but it could be improved. There are seemingly unnecessary additional keywords required (it’s illegal to omit the “then” in if/then or the “do” in “while/do”), and the convenience (if inefficiency) of label/goto-style execution flow is missing. A double-equals (==) is required for equality testing, even though assignment doesn’t use a single-equals, and that key optimization trick of TI-BASIC, omitting closing punctuation, isn’t allowed even though you can unambiguously only have one statement per line.
Python is provided by micropython, an implementation designed for memory-constrained embedded systems with similar specs to graphing calculators. This implementation is clearly not quite yet production-ready; important characters in Python such as
> and even the newline are completely untypable, and the interface is clearly a proof-of-concept REPL rather than anything meant for actual program-writing. Our testing encountered several crashes of the entire calculator while running short, limited code snippets, and pressing keys with no obvious meaning in the Python environment like ON or MATH rather curiously types the character “w”.
The Hardware of the Zero Calculators ZGC3
Under the Hood
The new design of the Zero graphing calculator (ZGC3) features an updated MCU over its predecessor the ZGC2. This new MCU (GD32F470ZK released in Jan 2023) offers much faster speeds (200MHz as opposed to the original STM32F413VG clocked at just 100MHz; discussion comparing the two SoCs). It also contains more internal flash memory (3mB, instead of 2mB) and 256kB of SRAM instead of the 320kB found in the ZGC2, however, this is more than made up for by the external SRAM which got a massive 16x boost in capacity (from just 512kB to a whopping 8mB).
The 2200mAH Li-Ion battery in the ZGC3 remains unchanged from the ZGC2 and offers nearly double the capacity of the CE-series (1200mAH). This brings the ZGC3's performance closer to higher end models such as the HP Prime and TI-Nspire CX II series, leaving the Casio fx-CG50 and TI-84 Plus CE series in the dust.
|Model||Zero ZGC2||Zero ZGC3||TI-84 Plus CE Python||Casio fx-CG50 PRIZM|
1 mB Flash, 320 kB SRAM, 32-Bit Arm7 Cortex-M4 @ 100 MHz
3 mB Flash, 256 kB SRAM, 32-Bit Arm7 Cortex-M4 @ 200 MHz
256 kB SRAM, 24-bit ez80 @ 48 MHz
Python coprocessor: ATSAMD21E18
32-bit Arm Cortex M0 @ 48MHz, 256 kB Flash, 32 kB SRAM
32-bit RISC @ 118 MHz
512 kB SRAM (256K x 16)
8 mB SDRAM
8 mB SDRAM
4mB Serial Flash
8mB Serial Flash
4mB Serial Flash
32 mB Flash ROM
|LCD||320x240 2.8"||320x240 2.8"||320x240 2.8"||384x216|
|Battery||2,200mAH Li-Ion rechargeable||2,200mAH Li-Ion rechargeable||1,200mAH Li-Ion rechargeable||4x AAA|
|Connectivity||USB-C||USB-C||Mini USB OTG||Mini USB OTG + 2.5mm serial I/O|
When it comes to the physical design, the Zero calculator obviously draws inspiration from the TI-84 Plus CE series of calculators. Initially, with the ZGC1 and ZGC2, the entire layout was a direct copy of the CE. However, in a formal complaint, TI raised the issue that consumers may confuse a Zero with a TI product due to the striking resemblance. With the ZGC3, Zero has updated the design to a glossy finish, rounded buttons and a new keyboard layout. These changes help distinguish the appearance from the CE series and hopefully avoid further problems. Unfortunately, these changes also introduce new challenges to the usability of the calculator. We noted the following potential issues:
- The new glossy faceplate looks great out of the box but collects fingerprints. Additionally, it is difficult to clean between the buttons. A more matte finish is more appropriate for things that people touch. Perhaps if they want to keep the glossy faceplate, changing to a lighter color may help reduce the appearance of fingerprints.
- The actuation force of the buttons is quite high and the spherical buttons dig into the fingers, making it uncomfortable to use for extended periods of time.
- The slidecase does not slide properly onto the front of the case. (We were told this is a known issue and they are looking into fixing this)
- The button labels can be difficult to read, particularly in non-ideal lighting conditions.
The ZGC1 had major issues with screen alignment. These were fixed in the second revision, but we are sad to report that they have returned. Additionally, some beta testers have noticed permanent physical damage to the LCD in just a couple of days of everyday use.
We are very divided by Zero. The company appears to have exactly the right motivations: creating a better calculator, one designed to bring something new to the stable, dare we say stagnant, world of graphing calculators. The execution is a different story: the third prototype feels quite far from a production-ready device, riddled with software problems, un-calculator design choices, and hardware usability issues.
One defining characteristic is the choice to try to adhere to the software and hardware design of the TI-84 Plus CE as closely as possible. Zero has never told us that that's the goal, but the first and second prototypes were perfect matches in keyboard layout, and all of the models have software which feels, without putting too fine a point on it, like a knockoff of the TI-84 Plus family OS.
There are notable standouts where the intent of a better calculator shines through: a fast, modern ARM SoC, graphs that cover the entire screen, a fast new BASIC-like language, Python built into every model (not just the expensive, hard-to-find ones). Free from the legacy of years of z80-powered calculators, this could be a revolutionary calculator, but the business goal of making it a drop-in replacement for teachers accustomed to TI's calculators and allowed on exams has, perhaps necessarily, handicapped it.
Perhaps if this calculator had a TI-84 Plus CE compatibility mode, but could break out into a more powerful OS, we'd be over the moon about it. Perhaps if the OS was polished and bug-free, and the hardware was comfortable to use, we'd be thrilled at a new calculator with more potential. Or perhaps if the functionality was similar to TI's calculators but was priced around $60, a price point that would surely still leave Zero plenty of profit margin, we'd applaud even an unpolished calculator accessible to students at more income levels.
As it stands now, the Zero Calculators ZGC3 represents potential rather than fulfillment, a calculator that could be polished and evolved into a better, more powerful bar for calculators. We'll be eagerly waiting to see that potential fulfilled.
- TI-Planet (French): https://tiplanet.org/forum/article.php?t=26386
- Video from TheLastMillennial on Youtube Video from KermMartian on Youtube coming soon
Another month, already? It's only a day since our May 2022 post, but we have to get back up to date somehow! There were a lot of projects worked on this month: let's get right into them.
- Calculator Street Racing: A drag racing game for 84+/CE: Oxiti8 is nearing completion of the color version of their racing game. There are few details but they shared this preview!
- Citadel: A TI-84+ Roguelike [Axe]: kilo has come back swinging with a huge update! They updated the graphics and discussed, in great detail, procedurally creating a map with dungeons and corridors. It's no small feat to create working, completely random worlds so go check out the screenshots of their development process!
- Elimination: An RPG inspired by Earthbound / Pokemon: Hot_Dog gave their amazing RPG a great feature bump in v1.2. Attacking now has cool visual effects, a character has gained a new, sweet tool, as well as some game play bugs. These updates might warrant a new play through even if you've gone through the campaign already!
- Folders: If you've felt that Cesium and the TI program menu could use some folders, then Frederik has you covered! This month they updated the code to work with the latest C libraries. Be sure to update to avoid a crash!
- Friday Night Funkin on the CE (Previously Guitar hero): New user Msplats has created their first project in ICE! Similar to guitar hero, you press the top 5 buttons of the calculator as the notes fall down the screen! There's a pre-release you can try out in the thread!
- Lua port for the CE: commandblockguy casually started porting the programming language Lua to the CE. They're working on a way to allow running stored programs. Go check it out!
- S.A.M.M. - A Metroid-vania for TI-84 Plus CE: Captain Calc just released their amazing looking platformer. With amazing graphics, over 100 rooms, and an entire website with a deep backstory, it's worth trying out!
- [C] CEdit editor for the TI 84 plus CE: Michael0x18 is continuing work on their text editor for the TI-84 Plus CE. This month they've added custom fonts and colors as well as modifier keys!
- [C] Endless Mazes on the CE: If you love mazes then you'll love matkeller19's maze generation program! It quickly generates mazes that can take up nearly the entire screen!
That's all for this month! Since S.A.M.M. was the only completed project this month it automatically moves on to PoTY. See you next time!
Welcome back to the PotM series! We're still trying to catch up on these, so this time around, we'll be going over the best projects of May 2022. Let's get started!
- Calculator Street Racing: A drag racing game for 84+/CE: Oxiti8 restarted development on CSRacing Deluxe this month. This involved a fairly significant amount of work, as all of the coordinates will have to be changed from the monochrome versions to get things to look correct on the CE's larger screen--not to mention the fact that everything will now be in color. Check it out on Github and give Oxiti8 some feedback!
- CE C Toolchain and Libraries for the TI84+CE/TI83PCE: MateoConLechuga and the rest of the toolchain team released toolchain v10.0 this month, adding 64-bit math support, ellipse functions, improved optimization, bugfixes, and much more. Get the latest release on Github and give the creators some kudos!
- Clash of Clans for the CE: Therad2 made some great improvements to this Clash of Clans clone for the CE, including adding map printing, levels, some basic animations, and some bugfixes. Go check out the thread and show your support!
- Commas: commandblockguy created a neat tool this month--a hook that adds commas to separate large numbers on the homescreen. If you've ever been confused by a long string of numbers on your calculator before, this is the program for you. Give it a download now!
- Elimination: An RPG inspired by Earthbound / Pokemon: Hot_Dog added some neat effects for weapons in this massive RPG this month--animations, screen shakes, and much more. They look like they'll make a big impact on the feel of combat in the game. Check out the thread and give Hot_Dog some feedback!
- Emu8-z80: A CASIO fx-ES PLUS calculator emulator for TI-83+: LifeEmu rewrote the savestate code and made some optimizations to this Casio fx-ES PLUS emulator this month. The project looks to be a great programming exercise and could hold some appeal for people who grew up with this series as LifeEmu did. Read through the thread and give your support.
- macOS Monterey 12.0 COMING TO TI–84 PLUS CE: ProgrammerBobSmith announced a new shell this month, which is inspired by macOS Monterey. It will feature a cursor-based interface (based on the appearance of MacOS, clearly) and a variety of helpful utilities, as well as some basic shell functionality. Be sure to give ProgrammerBobSmith some support if you're looking for a new shell to try.
- new! 1-bit sound engine! fancy this time! (still for SEs): fghsgh continued work on a very impressive sound engine for the SE calculators, which is a full rewrite of a somewhat similar previous engine. This one features 5 channels, the ability to perform many neat effects, stereo playback, and much more. Check out the thread and give fghsgh some support!
- Planning a USB C mod for the CE.: TheLastMillennial continued planning a mod that would replace the mini-B USB port on the TI-84 + CE with a USB Type-C port that would allow both charging and data transfer at the same time. TheLastMillenial consulted a friend (an electrical engineer) for help, and determined that it possibly could be done with the aid of some pin-to-pin connections. If you know anything about how this conversion could be done, go to the thread and give some advice!
- S.A.M.M. - A Metroid-vania for TI-84 Plus CE: Captain Calc continued progress on S.A.M.M. this month, which is a 2D platformer inspired by the Metroid series. The additions included moving platforms, save stations, TNT barrels, and much more. Be sure to take a look at the thread if you're interested in a new platformer for your CE.
- Unit Tool: commandblockguy started a neat project this month, which allows users to convert between different units for weight, volume, length, energy, and much more. This could be a very powerful tool for educational purposes--be sure to look at the Github and the project thread and give commandblockguy some feedback and support!
- X-Wing 2.1 - Revival: Oxiti8 did some basic planning to port this game to the CE using CEPORT. Check out the thread give Oxiti8 some encouragement if you'd like to see this nice first-person shooter on your CE!
That's all for this month. Since Commas was the only completed project, it will win by default. See you in the next PotM!
When did you last lay eyes on a graphing calculator made by a company you've never even heard of before? In a few days, we'll go in-depth with a new calculator made by Zero Calculators, joining the cohort of calculators made by Texas Instruments, Casio, HP, or newcomer NumWorks. Members of the community have been testing prototypes from this new company for almost two years, and it's a pleasure to finally be able to share a hands-on look at the latest version, currently called the "ZGC3".
The new Zero Calculators offering is aimed squarely at the TI-84 Plus CE user: while the current prototype no longer perfectly matches the keypad layout of Texas Instruments' popular calculator, it doesn't stray far, and navigating the operating system will be simple for the seasoned Texas Instruments calculator user. The calculator does many things right, including the speed of its graphing and programming language, while a lot of unpolished hardware corners and software bugs remain in this prototype. In a few days, we'll bring you a deep dive into this new calculator and give you the chance to judge for yourself if it's a calculator you want to include in your own classroom or collection.