Rupertwriter Firmware Version 2.0.0 for the Zerowriter
🖋️ Zerowriter: Rupert Edition v2.0.0
"The Ultimate Hardware-Level Typing Experience"
🌍 Physical Layout Remapping (Firmware-Level)
Rupert Edition v2.0.0 solves the structural limitations of the original firmware. We have remapped the input matrix so that the machine behaves as a native device. Swap your physical keycaps, and the firmware follows.
(To select your keyboard, go to submenu(System Set) and select your language at the Latin section.
French (AZERTY) - Specialized Mapping
Full native AZERTY physical matrix mapping. Exact placements for é, è, ç, à, ù and all localized punctuation marks.
| Row | Key Layout |
|---|---|
| 1 | ² & é " ' ( - è _ ç à ) = |
| 2 | A Z E R T Y U I O P ^ $ * |
| 3 | Q S D F G H J K L M ù |
| 4 | W X C V B N , ; : ! |
German (QWERTZ) - Standard Precision
True 1:1 hardware mapping. Automatically swaps Z and Y. Natively supports ä, ö, ü, ß on their exact local key positions.
| Row | Key Layout |
|---|---|
| 1 | ^ 1 2 3 4 5 6 7 8 9 0 ß ´ |
| 2 | Q W E R T Z U I O P Ü + # |
| 3 | A S D F G H J K L Ö Ä |
| 4 | Y X C V B N M , . - |
Turkish (Turkish-Q) - Native Implementation
Hardware-level remapping for dedicated Turkish keys: ğ, ü, ş, i, ı, ö, ç.
| Row | Key Layout |
|---|---|
| 1 | " 1 2 3 4 5 6 7 8 9 0 * - |
| 2 | Q W E R T Y U I O P Ğ Ü , |
| 3 | A S D F G H J K L Ş İ |
| 4 | < Z X C V B N M Ö Ç . |
Montenegrin (QWERTZ) - Balkan Layout
Native Balkan QWERTZ mapping with direct physical key support for š, đ, č, ć, ž.
| Row | Key Layout |
|---|---|
| 1 | ' 1 2 3 4 5 6 7 8 9 0 + |
| 2 | Q W E R T Z U I O P Š Đ Ž |
| 3 | A S D F G H J K L Č Ć |
| 4 | < Y X C V B N M , . - |
🇪🇺 Universal Europe Mode (For Standard QWERTY Users)
If you prefer to keep your standard US QWERTY physical keycaps, use my built-in EU Cycle Mode.
Within 3 seconds of typing a base character, press Alt repeatedly to seamlessly cycle through its accent variations:
a/A: á, à, â, ä, ã, æ, ae/E: é, è, ê, ë, ei/I: í, ì, î, ï, ı, io/O: ó, ò, ô, ö, õ, œ, ou/U: ú, ù, û, ü, uc/C: ç, ć, č, cn/N: ñ, ns/S: ß, š, ś, ş, sd/D: đ, dz/Z: ž, ź, zg/G: ğ, g
🚀 Technical Breakouts
1. 2-Byte Encoding Integration
Original Zerowriter layouts were limited by 1-byte encoding, making many European characters impossible to process. We have implemented a full UTF-8 compatible engine, ensuring every special character is processed natively without glitches.
2. Asynchronous Dual-Core Processing
- Core 1: High-priority keyboard interrupts & 1-bit E-ink rendering.
- Core 0: Real-time character/word count background processing.
- Experience zero latency even when working on book-length manuscripts.
3. Standalone Wireless File Server (No Cables Needed)
Rupert Edition completely frees you from cables. The device operates as its own WiFi Access Point (192.168.4.1 or rupertwriter.local). Simply connect your phone or PC to the device's network, open a web browser, and you can instantly download or delete your .txt drafts through a clean web interface.
4. Universal BLE Text Dumping
Need your text on another device instantly? Connect RupertWriter as a standard Bluetooth Keyboard to your smartphone or laptop. With the 'Safe BLE Transfer' function, the device will automatically "type out" your entire manuscript directly into any app (Notepad, Word, Email). We've even implemented a micro-delay for specific symbols (/ \ - =) to ensure 100% typo-free transmission across different operating systems.
5. Intelligent Dual-Font Typography Engine
Rendering different languages perfectly on a low-refresh E-ink screen is notoriously difficult. My custom engine parses characters byte-by-byte in real time. It applies a rigid monospaced 16px Typewriter font for 3-byte characters (Korean), while seamlessly swapping to a byte-adaptive Unifont for 1-to-2-byte characters (Latin, Symbols, Accents). The result? Flawless layout and alignment, no matter how many languages you mix in a single sentence.
6. E-ink Optimized Visual Search
Press Ctrl + F to open the built-in search bar. When navigating through search results, the engine physically calculates the exact hardware matrix position of the target word on the E-ink screen. It then renders an inverted black box with white text directly over the word, providing a crystal-clear visual highlight without forcing a full screen refresh.
7. Hardware-Level Battery Protection & Persistent NVS
All your preferences (Keyboard Layout, Sleep Timers, Caps Lock status) are saved to Non-Volatile Storage (NVS) and survive reboots. To protect your battery life, if the voltage drops below 3.5V, the system flashes a hardware warning and enters a deep-sleep protection mode. It can only be awakened via a direct ext0 hardware interrupt from the physical keyboard matrix.
🛠️ Maintenance & Safety (OTA)
Updates are delivered over-the-air with Signature Verification. The device only accepts firmware containing the official RUPERT_OFFICIAL_KOR signature to prevent system corruption.
⌨️ Hotkeys (Hardware Mapped)
Rupert Edition uses intuitive shortcuts mapped directly to your mechanical keyboard to keep your writing flow uninterrupted.
| Function | Shortcut | Description |
|---|---|---|
| New Document | Ctrl + N | Opens a clean, new document (doc_X.txt). |
| Save | Ctrl + S | Safely saves the current draft to internal storage. |
| Copy / Paste | Ctrl + C / V | Copies the entire text to the clipboard and pastes it. |
| Search (Find) | Ctrl + F | Opens the search bar. Press Enter to jump to the next word. |
| Force Sleep | Ctrl + L | Instantly locks the screen and enters deep sleep mode. |
| Hard Refresh | Ctrl + R | Clears E-ink ghosting and refreshes the screen manually. |
| Language Toggle | Ctrl + Space | Toggles between Korean and English input modes. |
| Open Menu | Menu Key | Opens the file list and system settings menu. |
| Exit Network | Ctrl + Menu Key | Instantly turns off WiFi/Bluetooth and returns to typing. |
| Word / Para Jump | Ctrl + Arrows | Quickly navigate through words or jump to the end/beginning. |
💾 Installation
The Easiest Way (Binary Flashing):
- Navigate to the [Releases] tab.
- Download the latest
rupertwriter.binfile. - Open the device case and disconnect the keyboard cable connected behind the display.
- Flash the
.binfile using an ESP32 Web Flasher tool or your device's existing OTA feature.
⚠️ Note on Special Characters
Due to current font glyph limitations, certain currency symbols (e.g., €, ₺) may temporarily render as blanks. Full multilingual font implementation is planned for future updates. Contributions and Pull Requests are always welcome!