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.
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 | |
Vento Li | |
Adrian Mu�oz | |
Samuel Sun |
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 |