Framework7 is a Mobile UI framework that can be used to build hybrid apps with PhoneGap. This app is written in PhoneGap (Cordova) using Framework7.
Robo 3D is a company in San Diego which makes 3D printers for the consumer market. This app is designed for their printers, specifically the C2 and R2 models.
OctoPrint is the underlying programming interface which is being exercised here under the hood of the printer. It's the product of the talented Gina Häußge.
The original Robo beta app provided by Robo 3D was written for the iOS platform and works reasonably well. Although some work has been put into porting this to other smartphones, no app has yet been released.
For this reason, I decided to re-write the entire portable application using a platform which is more conducive to cross-platform development, Adobe PhoneGap (Cordova).
There are two paths for serving up the app, depending upon how much pain you're willing to endure.
The first option would be to create an Adobe ID and to use their online Build platform to generate the code. This will create app versions for the various mobile platforms.
This requires that you first get developer IDs from Apple [$99/year], Google [$25 setup fee] and Microsoft [$19 setup fee] and then to upload your collection of certificates to Adobe's website.
Once done, you may then build these platform-specific versions.
The easier method is to simply install the necessary dependencies and to serve up the app locally. You'd then use your browser on your mobile, for example, to visit this hosted site.
$ npm install -g phonegap@latest
$ mkdir ~/sites && cd ~/sites
$ git clone https://github.com/OutsourcedGuru/Robo
$ cd Robo
$ npm install
$ npm start
Then, on your mobile phone or your workstation, visit the indicated website in your browser.
For my own printer, I intend to serve up this app with a $10 Raspberry Pi Zero W single board computer inside the bottom of my printer's case (rather than potentially polluting the OctoPrint installation on the main Pi). It will be powered via microUSB cable from the main Pi computer.
The app looks great so far. I've managed to reasonably mimic the original look and feel after the port to PhoneGap/Framework7.
I'm now pulling data by querying the underlying OctoPrint API which is running in the printer's computer. Work is progressing at a rapid pace and I anticipate that it will be completed soon.
In it's current version (v1.2.2), it is a usable app for anyone with a Robo C2 with a single extruder.
- CSS styling
- X (left panel)
- Dashboard (left panel)
- Add a Printer with local storage (home and left panel)
- Info page for Add a Printer
- App Settings with profile deletion (left panel)
- Getting Started Videos with sub-menu navigation (left panel)
- User Manual (left panel)
- Report an App Issue contact page (left panel)
- Store (left panel)
- About with callouts to github projects (left panel)
- Landing page for first printer profile (home page)
- Info page for first printer profile
- Styled motor/extruder buttons, temperature and files
- Remove browsing for the IP address of the printer since it doesn't significantly add value
- Remove support for navigating into folders since it doesn't significantly add value
- Remove support for Settings tab for landing page since it doesn't significantly add value
- Remove support for Cloud Storage (left panel) since it doesn't significantly add value
- Jog motor/extruder via API interface
- Initiate job from interface
- Start video feed (landing page) and show (home page)
- Save the currently-selected filament type in local storage
- Add buttons for other tools (2nd extruder/bed)
- Add safety mechanism for jogging the extruder versus the temperature
- Add safety mechanism to prevent raising bed too high
- Pre-heat and cool-down buttons
- Filament wizard
- Change filament wizard
- Add support for more than one printer profile
- Test with IP address for hostName
- Testing with iOS, Android and Microsoft Phone mobile platforms as well as OS X, Windows 10 and Ubuntu 16.04 LTS workstations.
- Update @media queries for iPhone/iPad
- Consider adding system command buttons for shutting down and/or restarting OctoPrint
Comments/questions? [email protected]
Here is the latest collection of screenshots from the running app.
Donate | Cryptocurrency | |
---|---|---|
Ethereum | Bitcoin |