Я интересовался электроникой и микроконтроллерами. Я всю жизнь хотел разработать маленькое компактное устройство, и таким устройством стал программируемый калькулятор на микроконтроллере Arduino.
Аккумулятор от нокии.
Затем я перешёл на МК STM32, поскольку не хватало мощностей ардуины.
Корпус очень долгое время был из картона, потому что под рукой ничего больше не было.
Далее я перешёл на ESP32, потому что захотелось ещё прикрутить Wi-Fi. К тому моменту я уже обзавёлся 3D принтером.
Мне хотелось сделать устройство максимально компактным, поэтому я разработал и заказал печать платы, чтобы можно было аккуратно и компактно разместить все детали калькулятора. Получилось не сразу – с 5 раза. Я научился красиво паять SMD компоненты вручную. SMD компоненты – это чип-компоненты электронной схемы, нанесённые на печатную плату с использованием технологии монтирования на поверхность.
Я очень хотел написать аналог операционной системы. Поскольку в моих калькуляторах используется микроконтроллер ESP32 без защиты памяти на не слишком известной архитектуре Xtensa, я принял решение написать интерпретатор команд процессора ARM. Я изучил ассемблер ARM и написал виртуальную машину, способную исполнять команды ARM, изучил структуру файлов формата ELF, написал загрузчик и линковщик. Теперь можно было разрабатывать программы для калькулятора не только на процедурном динамически типизированном модульном языке с автоматическим управлением памятью Lua, но и на любом языке, способном компилироваться в исполняемый файл. Благодаря этому на калькуляторе получилось запустить интерпретатор языка программирования Python, просто скачав его сборку под linux-arm.
Также написан эмулятор калькулятора для Windows, что позволяет ещё проще разрабатывать приложения.
Я также написал небольшой мануал пользователя, в котором очень подробно расписано про устройство, операционную систему и разработку программ под калькулятор.