Project S2: RIOT as an RPython Module

Hello,

I am Aashish Regmi. I am doing undergraduate in computer Science at Texas Tech University, USA. I am doing research with professor Sunho Lim in embedded system. This semester I am working on Intel Galileo Gen 1 and Seeedstudio Grove Starter kit Plus. I am using Arduino for coding. We are using different sensors from Grove to input manipulate data using different libraries and codes and display using different kit like LCD and buzzers.

I am interested in Project S2: RIOT as an Python module because this project is related to my research and also python is my favorite programing language. I am also taking Concepts of Programing Language class this semester, in which we are learning how to make compiler, interpreter, analyzing semantic and syntax. Therefore, this project will help me to implement my knowledge programing language and move forward in understanding embedded system and will also makes my research easier.

I was wondering if you could provide more information about the project so that I can get a clear understanding about the project and about how to get started with project.

Thank you so much!

Sincerely,

Aashish Regmi

Undergraduate Researcher

Department of Computer Science

Texas Tech University

Hi AAshish,

Thanks for your interest!

I was wondering if you could provide more information about the project so that I can get a clear understanding about the project and about how to get started with project.

Well, some of us think that it would be nice to be able to write RIOT applications in a language different than C.

RPython would be one way, as it allows compiling Python code to plain C, which could be linked to RIOT.

Another way would be to port e.g., micropython[1], to RIOT as a package.

Any "print("Hello World!")" written in python but running on a RIOT node would probably an awesome outcome of this project.

While this needs some understanding of programming languages in general, it is more a project requiring knowledge about how to integrate and adapt a python interpreter or runtime into the ressource-constrained RIOT environment, with the involved challenges around memory management, linking, ...

If you are still interested, the next step for you would be to prepare a short application [1][2]. The main part of the application consists of your proposed (high-level) project plan. Maybe have also a look at our last dev-meeting minutes [3] for some more information.

Furthermore we would like to see some first involvement with RIOT by contributing a (simple) pull request to RIOT. The purpose of this is to get you an idea of how the community works and what RIOT development is about. Have a look at our development procedures [4] and contributing guidelines [5]. The easiest way to get involved is by looking at issues marked as 'Newbie-Task-Candidate' and to fix one (or more) of them.

Let us know if you have more specific questions!

Cheers, Kaspar