Arang Framework dev intro
What is Arang Framework
Arang Framework is an abbreviation of Advance, Realtime, Accelerated, New-Generation framework for mBot. It is developed to help SMK Jalan Arang Robotics Club member. Arang Framework is also successor of Felix Framework which is older version framework and not open source.
The previous version of framework
flowchart LR
A["Felix Framework v1 (2020)"] --> B["Felix Framework v2 (2021)"] --> C["Arang Framework (2022)"]
Why I started this project?
There is a brand of Arduino based robot called mBot and it is the most commonly used robot in my school robotics club. The mBot give us quite decent hardware and sensor. However, its official IDE called mBlock is mainly using the drag-drop programming language like scratch. This causes a lot of complicated functions that can not be achieved such as access program memory and EEPROM. My school crappy mouse will greatly affect the coding speed. Due to these limitation, the development progress of mBot is relatively slow compared to other brands of robot in robotics competitions. Other than that, mBlock will also be lagging in school potato computers.
To solve these problems, a new coding toolchain is required. The solution I create is a code editor such as vim with the combination of Arang Framework. It replaces the drag-drop visual programming style and allows us to program directly using C. The development of unofficial hardware will also become easier and the driver code will be more modular and easy to implement. Back in 2020, I started the development of Felix Framework v1 and it greatly accelerate the progress of mBot development. However, the code is badly designed and the performance is worse than the mBlock generated code. After that, Felix Framework v2 which has better performance was developed. After a year of using it, I realize that the code is all clumped together and difficult to differentiate the user program and the kernel code.
Hence, I start the development of Arang Framework.
What news
- The kernel will be programmed using C and assembly language.
- Multitasking feature will be added
- Specialized machine learning feature will be added
- EEPROM based virtual memory will be implement
- Dynamic driver module feature will be implement
If possible:
- mBot virtual simulation will be added
- Inter-mCore communication will be added