The $35 CAD Computer – Onshape on A RaspBerry Pi
The release of Onshape, a fully browser based CAD system, had me wondering what was required to run a design system. Since I needed an excuse to play with a Raspberry Pi it seemed like the perfect challenge. The Raspberry Pi 3 is around $35.99 and carries all the necessary specs to make this happen. So with the goal to build a <$50 CAD system, a full $1300 less than what I spent the last time I got a new rig for Solidworks, I set out on an adventure.
Materials:
First I bought all of the components for a rasberry pi. Thanks to years of random tech ownership some of this stuff was just lying around.
- Raspberry Pi 3
- LoverRPi 32GB Micro USB $17.99 – if you have an extra microUSB from a camera/goPro etc. you can just format it.
- HDMI>VGI Cable – I had one lying around with the monitor
- Old Monitor – I have a few extra. Can also hook up to a TV if necessary.
- Old keyboard – Again can be borrowed or picked up at a random parts store
- Amazon basics wireless mouse ($10.99) but any old mouse will do
- Case for pi ($5.4optional)
With this setup it’s easy to get rolling, especially if you purchase a pre-formatted MicroUSB all that is required is to plug it all in.
WebGL Browser Compatibility on Raspberry Pi
The installed web browser for raspberry Pi doesn’t have webGL. There are a few recommended solutions around this but I choose to go for Chromium, which is the linux version of Chrome. Mostly this was selected since I run other google products, but the Onshape forums basically state that Firefox or Chrome are the preferred browsers. I found a way to install it, which involved some fun with the command line. The details are thanks to Tech Republic’s post.
http://www.techrepublic.com/article/five-tips-for-getting-the-most-out-of-a-raspberry-pi-3-as-a-pc/
So I tried Chromium and I am able to sign into Onshape but then it fails. Basically we went into a very long hang and a hard reset of the whole computer was required. Certainly this could be due to the limitations of the Pi.
Iceweasel, the Pi version of Firefox, faired slightly better.
Screen Shots on a Raspberry Pi to Document and Troubleshoot
It was at this point I needed to document what I was seeing. I wanted screenshots for the Raspberry Pi. It’s worth noting this is fairly easy to do, installing and taking them just followed an online instruction. http://www.instructables.com/id/Raspberry-Pi-Screenshots/
Again this was a bit of fun with the command line but it was obvious that running multiple things at once, especially when trying to load Onshape in WebGL, was going to be limiting.
Onshape Performance in Chromium on Raspberry Pi
Getting to the site was no problem. The main file navigator can be accessed as soon as you get WebGL, ie. once you bypass the pre-installed browser for Chromium. Once that was crossed I was able to access the login page and get to the main area for Onshape files. These are all my test accounts public and private files. Note that in there is the .stl for the Raspberry Pi I am running, in a bit of a meta game my goal was to create an enclosure for the setup as my first model.
There are a handful of things that can be done once you are in the file navigator. It was easy enough to upload files to my documents. Of course where those files came from is another story, since as yet I can not create anything on the Pi setup.
I also tried editing the permissions and documents settings. This was also fairly straight forward.
The issue of course came when trying to access and edit a file. No surprise that the rendering, display and editing of a model is the most resource intensive part of things. I was able to access a “New” file but then went into an endless hang that required a hard reset.
Admittedly the second time I crashed things I was trying to take screenshots. The one thing to remember is that given the resource constraints, eliminating any other processes is helpful. I tried closing all tabs, terminals, etc. and avoided doing anything else and tried again.
Because Onshape logs everything though even the file that crashed actually showed up in my navigator window. That means that the action of creating the file was accepted but the display of the rendering window was where it failed.
For now I have been unable to troubleshoot a reasonable solution since endless hang, users running WebGL games on similar setups, and ability to at least create a file made me think that it was possible.
Onshape Performance in Iceweasel on Raspberry Pi
I grabbed Iceweasel next as it also supports WebGL. This got me slightly further but still failed to successfully edit a file. I was able to open a new file, click the sketch button, and then close the tab without things crashing. That being said trying to select a plane, or to open a file with any data in it caused issues of hanging and hard resets.
Summary (or TLDR Version):
The Raspberry Pi 3, running Chromium browser with WebGL can access Onshape, edit files attributes and sharing, but fails to edit anything before crashing.
Iceweasel running on the Raspberry Pi 3 can access Onshape and open files. Editing in the design window causes significant lags though and though it’s possible to access features nothing relevant can be done.
Any thoughts on what to try next. Maybe it’s possible to run things lighter by digging into the code? Happy to hear them in the comments.
Great article – I got all excited when I started reading because I pre-ordered my Pi3 back in March after my previous Chromebook experiment http://bit.ly/2bwjnLF – however I got the same results as you.
Shame it doesn’t work. All the heavy lifting is done server side *except* the graphics handling which as you saw, even with the Chromium hack, the Pi3 is just not powerful enough. I’m not convinced it is all about resources since you can play WebGL games (and mobile browsers like Safari on iPhone don’t run Onshape either), so I’m hoping that someone will provide another hack that will work.
Pingback: CAD In The Cloud – New Product Development
Pingback: 2D CAD Tools For a Raspberry Pi 3 with Raspbian – New Product Development
I might try on the Rpi4 today