CalcVox: Bridging The Gap in Mathematics

Week 19

Software

  • Put finishing touches on project.
  • Work on presentation.

Hardware

  • Work on presentation.
  • Fully assemble prototype.

Week 18.

Software

  • Work on presentation.
  • Work on journal 5.

Hardware

  • Work on presentation.
  • Work on journal 5.

Week 17

Software

  • Add repeat key functionality, and reorganize/optimize code.
  • Work on presentation.

Hardware

  • Figure out Presentation organization
  • Finish up the case

Week 16

Software

  • Polish up the new input layer code, and start intigrating menus.
  • Write a complete history system, complete with searching, indexing, and using modern C++.
  • Start on a project wiki, to document all aspects of the project.

Hardware

  • Finish button surfaces.
  • Print out Test.
  • Start on Presentation.

Week 15

Software

  • Rewrite input layer to allow for more modular code, and more systems.
  • Majorly clean up the code and attack some nasty technical debt.

Hardware

  • Continue to work on case. Completed
  • Assembly PCB and get it working. Completed

Week 14

Software

  • Fix more bugs, primarily related to decimals crashing the calculator when used in exponents and when missing trailing zeros.
  • Research how to intigrate menu code into main Arduino loop() function.
  • Work on Journal 4.

Hardware

  • Work on battery case and research buttons textures
  • Meet and order PCB.
  • Work on journal

Week 13

Software

  • Fix a few remaining bugs in Evox, the expression evaluator.
  • Research CAS (Computer Algebra Systems).

Hardware

  • Export 3D Model from KiCAD and Import into Fusion
  • Learn how to design a snap fit case.

Week 12

Software

  • Meet with advisor.
  • Work more on core calculator components.

Hardware

  • Finish Video
  • Meet with advisor

Week 11

Software

  • Write a basic outline of a menu system.
  • Fix a few bugs in the expression evaluator.

Hardware

  • Begin designing the PCB. Completed
  • Finish and document PCB.

Week 10

Software

  • Write super basic expression evaluator that supports the basic mathematical functions in C++. Completed
  • Build more components for the higher-level calculator interface (e.g. menus, history, etc.).
  • Work on next journal.

Hardware Goals

  • Fix code for rotary encoder. Completed
  • Create Schematic of breadboard design. Completed.
  • Test Speakers on breadboard. Completed.

Week 9.5

Hardware

  • Build Prototype on Breadboard and update code accordingly. Completed
  • Research powering ESP off of Teensy. Completed

Software

Week 9

Hardware

  • Create Socketed ESP32 TTS prototype on protoboard. Did Not Complete.
  • Work on mid-year project presentation. Completed.

Software

  • Begin making the speech chip's protocol conform to the protocol of the Doubletalk LT, a hardware speech synthesizer commonly used by many other blind people.
  • Work on mid-year presentations.

Week 8

Hardware

  • Research Cheaper ESP devices. Completed
  • Get ESP TTS working with serial between Teensy and ESP. Completed

Software

  • Port the prototype code to use Talkie. Goal changed, now using standalone speech chip.
  • Assist with firmware of deticated speech chip. Completed

Week 7

Hardware

  • Have meeting with advisors on Monday. Completed
  • Help with switch to Flite tts provider on Wednesday
  • Work on Journal 2 on Friday

Software

  • Meet with advisors in-person on Monday. Completed
  • Port the software to use Flite as a text-to-speech provider by the end of Wednesday. Completed
  • Work on Journal 2 and debug hardware problems by the end of Friday.

Week 6

Hardware

  • Debug new H1 hardware. Incomplete
  • Continue modeling buttons. Deferred

Software

  • Implement different audio stream types for different versions of the hardware.
  • Debug the software on our new H1 hardware.

Week 5

Hardware

  • Test speakers by end of Monday. Completed
  • Finish digitizing sketch of calculator by end of Monday. Completed
  • Continue PCB Design and get button layout by end of Wednesday. Completed
  • Polish PCB Design by end of Friday. Completed

Software

  • Round the tinyexpr result to two decimal places using C++ streams by the end of Monday. Completed
  • Implement support for multiple pin layouts using #define statements by the end of Monday. Completed
  • Implement clearing the entire equation with a button press by the end of Wednesday. Completed
  • Implement deletion by character by the end of Friday. Completed

Week 4

Hardware

  • Begin planning button layout in google sheets and confirm with Ty by end of Tuesday. Completed
  • Research closed loop audio jacks and microcontroller configuration by end of Thursday. Completed
  • Begin KiCAD tutorial and start PCB design by end of Thursday. Completed

Software

  • Fix loads of driver problems and upgrade development environment. Completed
  • Convert the character speaking function to use a map of strings to chars. Completed
  • Implement basic expression evaluation using Tinyexpr. Completed

Week 3

Hardware

  • Test dedicated audio hardware and ensure stereo output by end of Monday. Completed on Wednesday.
    • Struggled with getting a clean sine wave out of the I2S DAC through the ESP32
    • Determined that the issue was a bad ground and made a designated prototype to fix that issue
    • Set the logging level from "INFO" to "WARNING" which helped releave the issue
    • More detail is in this video
  • Begin planning button layout in google sheets and confirm with Ty by end of Wednesday. Deferred to next week
  • Begin KiCAD tutorial and start PCB design by end of Friday. Deferred to next week

Software

  • Map all the buttons to actual functions. Completed
  • Store the current equation and history. Completed
  • Implement a function that converts mathematical symbols into English equivalents. Completed

Week 2

Hardware

  • Ensure prototype can use matrix input and audio output by end of Tuesday. Completed
  • Begin researching external audio hardware to be used with Espeak. Completed

Software

  • Fix any build errors with submodules and make the build scripts platform-agnostic by the end of Tuesday. Completed
  • Begin writing speech handler class by the end of Thursday. Diverted
    • This class just caused include path problems, and Espeak's API is actually nice. I wrapped Espeak init into a function, and now it works quite nicely.
    • I'll have to wrap it eventually for asynchronous speech and interrupts, but an entire class was overkill.

Week 1

Hardware

  • Test to ensure ePulse Feather ESP32 modules work by end of Monday. Completed
  • Research audio out on ESP32 using Arduino Audio Tools by Wednesday. Completed
  • Get functioning audio working by end of Friday. Completed

Software

  • Install and configure the PlatformIO CLI, as well as CMake and a few other C++ build tools. Completed.
  • Initialize the project. Completed
  • Bootstrap the GitHub repository. Completed