1. Home
  2. /
  3. Projects
  4. /
  5. Graphing Calculator Development
Integra Sources home button.

GET IN TOUCH

Graphing Calculator Development

Desktop application development Embedded hardware development Firmware development

Backstory

A graphing calculator is a device that has advanced functions compared to ordinary calculators. It allows users to build graphs, work with tables, evaluate integrals, calculate logarithms and derivatives, code, and much more. It’s an irreplaceable tool for advanced math and science high school and college courses.

Schools provide graphing calculators for students to use in classrooms, but many learners also choose to have their own at home. Students can write simple programs or create logic for results based on complex formulas.

A professor can connect graphing calculators to classroom computers, link them into a single network to check results, or broadcast images from his/her device to students' calculators.
According to statistics from Verified Market Research, the graphing calculator market is going through challenging times and is currently showing negative growth.

Based on the market situation, the primary task of manufacturing companies is to create ever faster and more advanced devices that have something to surprise students and professors.

A photo of two graphing calculators and printed circuit boards.

Request

A company engaged in building educational electronic devices came up with the idea of ​​creating a smart calculator that provides end users with advanced functionality. 

There are several existing models on the market, so the main task is to take the best features from them and create a completely new device.

The project's key aim is to implement a calculator with advanced capabilities, including working with statistical functions, matrices, and other math areas.

This calculator should have a graphical interface, natural input, and built-in programming languages: MicroPython and IS Basic, which is the own development of Integra Sources.

The customer plans to distribute this device to high schools, colleges, universities, scientists, and students.

The task of the Integra Sources specialists was as follows:

  • R&D part:

- to collect functional and hardware requirements, 

- to conduct a thorough study of competitors’ existing models, 

- to conduct a comprehensive assessment;

  • Hardware development;
  • Firmware development (with account taken of mathematical input, natural input, a graphical interface, the IS Basic, and MicroPython programming languages);
  • Cross-platform desktop app development for device management;
  • Windows emulator development.

The point was also to create a device with no learning curve compared to its biggest competitor.

Initially, our device had an STM32F4 series MCU with a Cortex-M4. The COVID-19 pandemic made adjustments to electronic component production and logistics, so we decided to use the GD32F470ZKT6 microprocessor, which has similar characteristics to the STM32 MCU.

The device size is 190x80x12 mm, the screen size is 320x240 pixels (2.8" diagonal), and the screen resolution is 140 DPI.

Powered by a lithium polymer rechargeable battery, the calculator can operate for a long time on a single charge.

The hardware architecture of the device is shown below.

The graphing calculator hardware architecture.
The hardware block diagram of the graphing calculator.

The calculator does not have Bluetooth, Wi-Fi, Internet access, games, or anything else that can distract students from learning.

It has a special exam mode that limits certain functions. The mode can be turned off through the teacher’s computer. This feature allows schools and colleges to use the graphing calculators for classes and exams.

Our device supports natural input: expressions, symbols, and fractions are displayed as you write them.

The display has dark and light modes. Switching modes allow users to choose a screen view that is comfortable for their eyes, reduce eyestrain in low-light conditions, and save battery power. 

Our calculator supports the MicroPython programming language. The Integra team's programmers also developed a custom language – IS Basic.

The device can receive programs written in MicroPython and IS Basic from an external PC via a USB cable and save them to the internal Flash memory.

Students can write custom programs using the internal editor. They can learn to code in MicroPython and IS Basic using our Getting Started guide.

Users also have a Windows calculator emulator program at their disposal, with which they can perform the necessary calculations without having a physical device at hand. 

The emulator program was also helpful for developers, as it allowed us to quickly and conveniently create the software part for the device.
We have created a cross-platform desktop application for Windows, Linux, and macOS using the C++ language and the Qt framework. The app allows students to extract files from the calculator, upload their own software written in MicroPython and IS Basic, and update the firmware.

Major Issues Resolved

The inner structure of the graphing calculator.
The graphing calculator from the inside.

The main challenge of the project was to build plenty of graphical structures associated with the natural input function. It was a labor-intensive task, requiring excellent knowledge of advanced math. Our specialists have done a respectable job.

Working on the project, we had to replace the STM32F4 microcontroller with a similar GD32F4. We had never worked with GD32F4 before, so it took extra time to study the documentation.

Complex, multi-component work involving vastly different operations requires careful testing. The calculator is a device for educational purposes, so errors in its functionality are unacceptable.

We used the unit testing approach to conduct qualitative firmware checks.
Another challenge was to develop a new programming language, IS Basic. We created a flexible language for writing any program within the calculator functionality.

The Scope of Work

  • Schematic and PCB design
  • PCB assembly, testing, and fixing
  • Firmware development
  • Desktop app development

Technologies Used

  • We used Altium Designer for schematics and PCB design.
  • Custom firmware is written in C++ using the Visual Studio IDE, CMake cross-platform tool, and GCC compiler.
  • The GD32F4 series MCU, powered by the Arm® Cortex®-M4 core with a processor frequency of up to 240 MHz, is used for this project.
  • The FatFs filesystem module for small embedded systems is used for firmware development.
  • The device is powered by a LiPo battery (3.7V 2000mAh).
  • We used the LVGL embedded graphics library to create UIs.
  • The cross-platform desktop app for device management was created in C++ using the Qt framework.
  • The calculator has an 8 MB Flash ROM memory for data archive and app storage.

Result

Our engineers have designed a graphical calculator with excellent characteristics. In some respects, such as processor power and memory capacity, our device is superior to its analogs. 

The customer distributed a pilot batch of graphing calculators to educational institutions. Mass production is expected soon.

That is what the customer found most impressive about the Integra Sources team:

“I’m impressed by how much knowledge they have. This is my first big project, so I don’t really know everything that I need to know. Integra Sources has been great at helping me learn along the way and making sure that I understand the key parts. I never felt in the dark about why things were happening.”

For our part, we would merely like to add that graphing calculator development was fascinating, challenging, and calling for a lot of knowledge. Having such a project in the portfolio is the dream of any hardware and software development company. We are grateful to our customer for his confidence. We hope that the new device fully meets his expectations.