The week began with a productive meeting with my mentor Aman Asrani and Prof. Gargi Khanna, who joined us to review the progress. We showcased the previously added components — Shift Register, Comparator, and Pull Resistor — and received valuable feedback from her, particularly around usability. Her insights were encouraging and helped validate the component design choices, ensuring they align well with educational objectives.
With the tauri-plugin-serialplugin
already integrated into the Tauri-based desktop app, this week focused on designing a Serial Port component that works seamlessly across both web and desktop environments.
We designed and implemented the Serial Port component such that it works uniformly across both web and desktop platforms. Internally, it checks the runtime environment (browser or Tauri) and invokes the appropriate serial communication APIs accordingly. This component allows users to send and receive data from devices such as Arduino boards in real time, acting as a bridge between digital circuits in the simulator and real-world hardware.
With this, hardware interaction via serial ports is now fully supported and tested across both platforms — a key milestone for the project.
Bit Extender Component
In addition to the Serial Port interface, we introduced a new core component this week: the Bit Extender.
The Bit Extender is a combinational digital circuit component that extends an input binary value to a specified larger bit width. It supports multiple extension strategies:
- Zero-extension
- Sign-extension
- One-extension
- Custom input-based extension
This component is especially useful in arithmetic and logical designs that require uniform bit widths. A user-friendly interface is provided via the PROPERTIES panel, where users can configure the extension method, bit widths, and direction of extension.
Looking Ahead
In the coming week, we plan to:
- Finalize and test the Serial Port component with various Arduino circuits.
- Begin writing documentation for the Serial Port and Bit Extender components.
- Continue internal testing and prepare for raising PRs.
- Perform UI polish and address remaining review comments.
Thanks for reading.