I’ve previously mentioned that I use a Chromebook for CompSci classes at my local community college. Thanks to Project Crostini, which installs a full Debian Linux distro, I can use the Linux versions of various developer tools. They work great on my Pixel Slate, but I did recently purchase a higher-end Chromebook with 16 GB of RAM to speed up the coding process.
Unfortunately one of my two classes this semester requires that we use an Arduino microcontroller. This small device connects to a computer over USB to send my apps to the device. At some point, this will work in Crostini, but as of today with the Stable Channel of Chrome OS 76, the only USB devices supported in Crostini are Android phones. Even using the flag to allow unsupported USB devices doesn’t work with my Arduino.
So I set out to see what other options I have and turns out there are several. Some are free and some have a monthly charge, but all of them work directly with Chrome OS in the browser; no Linux needed!
Here’s a very short demo of uploading a sketch – that’s an Arduino program – to my device using one of these solutions.
This online Arduino development environment (shown in the video) is the official web version of the downloadable Arduino IDE. You create your sketch in the browser and it’s stored in the cloud. When you’re ready to run your sketch, you click a button to have the server compile your code and then push it to your USB-connected device.
This service is free to try for one month but has some limitations in terms of server time allowed for compiling, the number of supported devices, no custom libraries, etc… For more features and fewer limitations, you can purchase a subscription for $6.99 a month. Committing to a yearly subscription saves you $12 annually.
Chromeduino 2 is a Chrome Web Extension that also provides the Arduino IDE. However, since the extension itself can’t compile sketches, you have to rely on an external Chromeduino server.
I only mention this because I don’t know who runs the servers – I saw three available when using Chromeduino 2 – and while I wouldn’t suspect anything nefarious, I generally don’t trust servers run by people or companies I don’t know.
However, the code for Chromeduino 2 is publicly available for review and that includes the server code. I could use that on my own server and resolve any security concerns. In fact, I’m wondering if I can run a Chromeduino 2 server in my Chromebook’s Linux container to have everything run locally. This would actually let me work on Arduino sketches completely offline. Hmmm….
Regardless, this is a free solution to consider.
Last up is Codebender, which is another online Arduino IDE for use in a browser. This option has a few interesting features. The main one that caught my attention is that you can embed Codebender in web pages to share your sketches with others so they can edit or send them to an Arduino board of their own:
However, this is the priciest of the bunch at $10 a month or $100 a year. For educators, there are some bulk options that are relatively inexpensive if you want a whole class to program on Arduinos though.
Once Linux on Chromebooks officially supports more USB devices, all of these options will be moot, of course. Until then, I can continue using a Chromebook in my Computer Architecture class, even if it costs me a few bucks a month. Happy coding!
8 thoughts on “How to code an Arduino with a Chromebook”
I’m running a later version of Chrome OS and I’ve got good news and bad news…
The good news is the Arduino IDE works just fine for “official” Arduinos! The bad news is any MCUs using the ch340 serial/USB chipset are out of luck. Since most inexpensive clones use that chipset its a big limitation…
If Chromeduino server is in a container, you could run it in Google cloud – you could probably teach several classes just on your free trial allowance!
I have converted 3 Chromebooks to Gallium OS [https://galliumos.org/] which only works for Chromebooks with Intel processors; but it provides so much freedom to run the wide spectrum of Linux apps. It does completely blow out the Chrome OS. Another option would be to SSH or RealVNC into a Raspberry Pi and have the Pi run the Arduino IDE. If Chromebooks ever make it easier to run popular development tools like the Arduino IDE natively then I would have no hesitation to make it my ‘go-to’ device; but it is currently a real pain in the neck and a risky technical exercise. I do not like the Web IDEs; they are always too limiting and years behind in libraries; especially concerning the ESP8266 and ESP32.
Maybe instead of Arduino and C++ you might consider Circuit Python? It lets you code in any editor and just drop the file into the microcontroller board which simply looks like a RAM stick memory.
adafruit industries @adafruit · 2h
Plug in any CircuitPython board and it “just works” … shows up as a USB drive, use any IDE or code editor, even a text editor! Get blinking in seconds https://adafruit.com/circuitpython
Looks like a nice maker option but unfortunately, not for me. My CS class requires Arduino usage. 😉
I cannot get Arduino Create to work with my Google Pixelbook… you can code, but not upload to the device. Is this the same for everyone?
I haven’t had any luck getting my son’s Acer Spin 13 to recognize the arduino when I connect it to USB (though I can get it to load the arduino IDE). Isn’t that recognition a prerequisite for any of your listed solutions?
If you have any tips on getting it to work, I’d love the help. We are using a version of Arduino Uno sold to us by creationcrate.com
Hey, as one of the current developers of chromeduino, I’d like to thank the mention. I sure hope there’s nothing nefarious on my personal dev servers! I am currently working on containerising the server with all the libraries, making them all available to use. Watch the GitHub 😉