[WIP] Related repository:
- Arduino CLI fork, ported to run on android with this application providing a native interface.
- esptool fork, ported to run on android with this application providing a native interface.
- arduino-esp32 (esp32 core) fork, portING to android to run with ArduinoBuddy providing a native interface.
The arduino-cli provides compatibility to many different boards. Older applications in the past made to code arduino on android have made the mistake of not using it, and therefore each board has to be developed manually and hardcoded, and so has a very limited range. Said application was also closed-source and went obsolete quickly as it was not updated to newer android versions.
- Porting arduino-cli to android. This is done using gomobile bind, and a patched interface is added for sending serial back to the application to be handled natively.
- Native serial. The plan is to use this library for native serial, which supports many boards serial interface.
- Cores. Cores manage the boards themselves, avrdude for arduino/boards utilizing avr and esptool for esp32.
- esptool is in progress. It is in theory finished, however the native kotlin-side interface needs to be finished and tested.
- avr-dude has not been ported yet. Have not thought about this one just yet. C can run on pretty much anything though, and can be included as a .so similar to arduino-cli with some patches.
- The actual cores still haven't been started.
Android compilation should in theory be one of the easier parts, due to compilers being mostly logic, and C being able to run on practically anything. Compilers like gcc or Clang can easily be compiled to run on android as a shared library, the hardest part would be simply debugging it when it inevitably breaks down on the low processing power. However, not many patches should be needed as it is mostly (if not all) processing and logic. I take that back. It's going to take years to get a compiler to work. Termux?