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.

Math Capabilities
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 (top) and Zero (bottom):

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.

Graphing <code>y=2sin(x)</code> on a TI-84 Plus CE (left) and Zero Calculators ZGC3

Changing Modes
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.

Other Features
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 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.

Programming Tools
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. randInt(), sin(), transpose(), 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 of the Zero BASIC (left) and TI-BASIC (right) code.

while 0==U
if 0≠[A](V,U)
then 0->U
If 0≠X
Output(Y,X," ")

Repeat U
if not([A](V,U
Delvar UElse
If not(X

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.

ModelZero ZGC2Zero ZGC3TI-84 Plus CE PythonCasio 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
Renesas SH4
32-bit RISC @ 118 MHz
External RAMIS61WV25616EDBLL-10TLI
512 kB SRAM (256K x 16)
IS42S16400J-6TLI<br />8 mB SDRAMN/AM12L64164A
External FlashMX25L3206EZNI<br />4mB Serial Flash25Q64JVSIQ
8mB Serial Flash
4mB Serial Flash
32 mB Flash ROM
LCD320x240 2.8"320x240 2.8"320x240 2.8"384x216
Battery2,200mAH Li-Ion rechargeable2,200mAH Li-Ion rechargeable1,200mAH Li-Ion rechargeable4x AAA
ConnectivityUSB-CUSB-CMini USB OTGMini 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:
  1. 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.
  2. 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.
  3. 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)
  4. 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.

The Verdict
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.

Other Reviews:
I'm thrilled about the Zero ZGC3 but I'm being patient about the firmware eventually becoming free of mostly important bugs, although I was kinda surprised that it still seemed so buggy, according to the TI-Planet article. Did they halt development temporarily at one point after TI's complaint causing fewer changes and fixes to appear in the current firmware?

Regarding how a small portion of the keyboard layout is still identical to a 84+CE (the bottom with the numpad doesn't count, because the side keys are not aligned with the numpad on the CE), I guess I could recommend maybe switching a few group of keys around like moving trig to a different row if TI sends more complaints, but if the current layout still draws complaints from TI then that means hundreds, if not thousands of dollar store and pharmacy calculator models would have to be recalled as well if Casio or Sharp complained about those.
I am not a lawyer, and the following is my personal nonprofessional opinion. It's not just the key layout of the top row and bottom six rows: the set of keys is exactly the same, every single one has exactly the same [2nd] and [ALPHA] functions, and most open identical menus. I'm personally slightly surprised that the degree of similarity that remains is still acceptable.
Great job to everyone who worked on the article! It was really interesting to read, and seeing all the specs laid out was really nice.

Looking at the keypad, it's interesting to see that they're keeping separate "apps" and "programs" like TI, I wonder what the difference is? Are apps specifically for native code, while programs are only BASIC / Python?

Also, I don't really mind the font as much, but I could see how it might be harder to read. I suppose it depends on the brightness of the display as well.
[joke]I think TI won't bother sending any more complaints because nothing will happen when Zero's sales multiply.[/joke]

Anyways, this was a great overview of the Zero's in-beta review. The only annoying part for me was the possible usage of floats instead of doubles.
TIny_Hacker wrote:
Looking at the keypad, it's interesting to see that they're keeping separate "apps" and "programs" like TI, I wonder what the difference is? Are apps specifically for native code, while programs are only BASIC / Python?

In terms of apps, it is a bit like the 82AEP (or the finance app on the CE). All the apps are part of the OS and cannot be moved around. The Zero doesn't offer any way to run your own native code.
Conversely, the "programs" are individual files that you can send / edit (both python and zerobasic are in that menu)
Questions that everybody wants to know
Is the clock better than the TI 84's?
Is it able to run ASM, C, TI Basic or at least to be jail broken to do so?
Is this going to break a copyright law? Everything looks like somebody sped up and changed the font on a 84
Is the Brightness able to be more flexible than a 84?
  • Clock: The clock functionality is identical to the TI-84 Plus family's. I haven't tested enough to know how accurately it keeps time.
  • Languages: It's likely we'll be able to find a way to run native programs. (C, ARM ASM if you really care to do so). Per the article, it runs Zero BASIC programs, which aren't the same as TI-BASIC. Someone would have to write an interpreter to make that happen.
  • Copyright law: Very good question. That remains to be seen.
  • The brightness range is similar, except there are apparently several brightness levels that are just "off", and it's tough to tell if you're there. I suspect we're going to have quite a few users who think their calculators are broken, but they're just turned several levels into low brightness.
When will Zero Calculators update their homepage? It has been stuck at the 'Coming Soon' message for a while, and a few pages, like the Contact page, still remain unaccessible. I know this was originally due to TI threatened to take legal action against Zero, but it makes no sense why they haven't updated it since.
EDIT: Changed 'C&D letter' to 'threatened to take legal action against Zero'
My guess would be that it's unrelated to any C&D letter, and is merely a common appearance of a company that is still in "stealth" mode. I'd expect they're waiting to officially announce the calculator before they reveal (and maybe build) their full website.
I love the look of versions 1/2, really reminds me of the 82. The buggy software/OS and laggy button response is a bit of a bummer, but that's software-side so we'll just have to wait and see if it'll get updates or if the door to native code gets opened. The hardware looks pretty sound so i'm still excited to see how it turns out (though i'm hoping they settle on another button shape and move the D-pad from the middle). It definitely has potential to be a fun platform.

Also, it'd be weird having a graph show up instantaneously, that was half of the fun of graphing on TI's z80 series!
Great to see you, chickendude! It's been a while. Agreed, I was much more fond of the keyboard layout and feel of the buttons on versions 1/2; I hope they can find something else that isn't copying the TI-84 Plus family but that's also pleasant to use. The hardware is pretty solid, and I hope there's a lot we can do with it.
Minor joke “divided by zero”
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