Inspiration

I run an electronics club at Los Altos High School and we have been using the Raspberry Pi Pico (W) microcontroller. Most members can't compile their code; some members have chromebooks and simply can't install the compiler while others on Windows or Mac don't have the experience to follow the video or written installation instructions. We wanted to make a web app to which they could upload code and which would return the compiled result file to lower the skill barrier to these embedded systems.

What it does

My web app takes Micropython or C(++) input as text, along with file names. The user can press a compile button at any time which uploads the code to a server which compiles it. Immediately thereafter, the compiled result is sent back to the web app. If compilation is successful, the user can then click a download button for the compiled result; if not successful, the failure text from the server is posted to a log on the bottom of the app and the download button does not appear.

How I built it

I registered a .tech domain through Domains.com. Then set the nameservers to a Linode compute node hosting an Ubuntu server installation. This server runs the node.js interpreter and therein the express.js framework . Express.js is a back-end framework which enables HTTP requests to the server. The webapp is requested via HTTP GET and microcontroller code is uploaded via HTTP POST--with the result coming in the POST's response.

The server also runs nginx (reverse-proxy), ufw (firewall), pm2 (process manager for node.js).

Challenges I ran into

I'm a single person; there were no experienced people at this hackathon who came didn't already have a group. I had to learn linux and HTTP requests and node.js and linode, on my own.

Accomplishments that we're proud of

This was the first project that I made utilizing headless linux, HTTP requests, cloud, or node.js. I'm satisfied that I was able to identify that I had enough background knowledge to pursue this project.

What we learned

I learned headless linux and HTTP requests and node.js and linode and domain registrars and name servers and firewalls and domain certificates and github, none of which I had ever used before.

What's next for Compyle - embedded systems compiler webapp Micropython and C:

Safety for the platform by making systems preventing spam attacks.

Built With

Share this project:

Updates