LaTeX Speed Typing Keyboard - cmubuild18/Build18 GitHub Wiki

LaTeX Speed Typing Keyboard

Revolutionize LaTeX typesetting with our specialized keyboard, designed to streamline equation input and minimize keystrokes. Experience effortless equation rendering, as our keyboard seamlessly translates your inputs into LaTeX code for optimal efficiency.

Thumbnail Image

LaTeX is always hard and unintuitive to typeset. In constrast, entering equations on TI-nspire and similar graphing calculators is much more straightforward. So, why not build a keyboard that is only for LaTeX and make typesetting in LaTeX as simple as entering equations on TI-nspire?

The tasks of our project is 2-fold. There is a hardward component and a software component. The hardware is a simple 8x8 keyboard that is smaller than an iPhone. It sends data through the serial port to a PC. The software component is a web UI that receives keyboard events from the keyboard and renders them into LaTeX in real time. The web UI should support features including moving the cursor and backspacing.

Details:

The keyboard is a customized PCB integrating 8x8 buttons and connecting the signal wires to a ESP32 MCU. The ESP32 is purchased externally and plugged into the socket on the PCB. ESP32 constantly scans for keyboard events using pull-down input GPIOs ports, and sends the index of the key pressed to the PC using the UART port.

The web UI implements a LaTeX editor in Javascript, using a tree data structure to store the symbols. This is the most non-trivial part of the project, as implementing the data structure is challenging. For debugging purposes, a 8x8 button grid is also displayed in the UI, and the user can either click on the virtual keyboard or use the real keyboard. The equation typed into the UI is rendered in real-time, and its corresponding raw LaTeX is displayed.

Team Members

Team Member Photo
Melody Huang Team Member Photo
Vento Li Team Member Photo
Adrian Mu�oz Team Member Photo
Samuel Sun Team Member Photo

Photos

https://drive.google.com/drive/folders/1SvM4AQvHQD-xDPbtO2pt9ZdzQWoWUjbE?usp=sharing

Parts

Part Unit Price(rmb) Quantity Cost(rmb) Transaction Receipt Needs to be Ordered through Build18? (Y/N)
PCB(testing board) 54.78 1 54.78 # Y
PCB(Final Version) 576.88 1 576.88 # Y
LaTeX_PCB 40.16 1 40.16 # Y
TS-F004 Buttons 4.7 1 4.7 # Y
Multimeter 16.28 1 16.28 # Y
Solder Paste 13.61 1 13.61 # Y
LaTeX_PCB(version2) 81 1 81 # Y
wire 8.48 1 8.48 # Y
pin headers 2.05 1 2.05 # Y
silicone rubber remote control buttons 18 1 18 # Y
TS-F004 Buttons x2 4.7 1 4.7 # Y
3D Printing Case $38.50 1 $38.50 from school Y
Total Cost: 859.14
Total Cost in US dollars: 117
Remaining Budget:(out of $300) 183