The first debugging was closer to practicing how to use the software than to debugging. Since I had never used Arduino itself before, everything was unfamiliar to me, starting with the software menus. I even had to set which hardware the code I was making would run on. I had thought of the Inkplate only as something for the display, so it did not make sense to me that I had to choose Inkplate, or that in order to choose it, I first had to download the corresponding library one by one. Not only in software, but in fact in almost every field whose background I have never experienced, there are many things one has no choice but to memorize first under the name of “that is just how it is.” Even so, as someone whose only brief encounters with dedicated software had been the iPhone and Android development environments, it felt a little strange that something called general-purpose would still have a dedicated development tool. But even then, if I had pushed a little harder and said I would do it in Visual Studio Code, Gemini would probably have explained it to me. Instead, perhaps because I simply thought, “I guess that is how it is,” I floundered around and wandered through this menu and that menu as practice.
After work, I would come home and describe the function I wanted to make. Gemini would turn that function into code, and I would paste it in again, modify variables, build it, upload it, and test it. I repeated that process.
The conclusion was that the screen turning partly black on the first day had happened because I had selected the wrong hardware. Gemini searched the internet on its own and brought back the hardware specifications, but detailed specifications, especially the kind that have to be found through experience, only dragged things out and did not solve anything. Still, that level of search speed itself was a performance I had not imagined, so at first I was very satisfied.
The simple function of using Korean alone was actually completed in four days. I made it possible to use both English and Korean and posted it on Reddit, and the response was fairly good. I do not know whether it was really good, but to me it was a response I had not expected at all, and I think that made me wonder whether I should go a little further.
If I had changed my mind then and said, since I was going to use it alone anyway, that this was only for Koreans who might otherwise throw away the machine because Korean did not work for them, and that they should at least use it this way, then the conclusion might have been bland but clean. The Control-Space function for switching between Korean and English was fine, and the fact that text files were saved to the SD card was similar to the original ZeroWriter firmware anyway. The reason I ran around for two months - or, to be precise, about one month and ten days, roughly thirty-eight days - was mainly that after expanding the languages and preparing to show it off, I finally began noticing the bugs that had to be fixed.
Honestly, even after implementing Korean, the device was usable for writing. The typing speed was acceptable, and I bought switches and keycaps and replaced them. But because it had happened faster than expected, I did not realize that I had greatly overestimated Gemini. On top of that, the process of receiving code in the chat window, copying and using it, then copying the terminal window back into the chat when an error occurred and waiting for the result was inefficient. And although I did not know it then, taking nearly five minutes to compile and upload does not make sense. Was it really only five minutes? Still, with a Korean-only device there was not much to think about, and even when compiled as firmware, most of the size was taken up by the font, so perhaps it did not take quite that long back then.
At first, I became just a little more ambitious from there. I decided to implement five languages with their local keyboard layouts: English, German, French, Turkish, Montenegrin, and Korean. I also wanted to emphasize Montenegrin, so I asked Gemini to suggest a good word in Montenegrin. After a brief internet search, Gemini suggested Ize, saying it meant “wisdom” in Montenegrin. That was how the firmware name became Ize.
I expanded it to five languages and made all the code public on GitHub. Around that time, the ZeroWriter team put my GitHub link on the crowdfunding page and introduced it as an example of the kind of open source ecosystem they had intended to create from the beginning by going open source. I already thought the response had been better than expected, and once they introduced it, of course I could not be satisfied with just those five languages. The next step, naturally enough, could only be to move from a machine I used alone toward firmware for everyone outside the English-speaking world, could it not?
Korean original: 첫 도구 첫 디버깅