Skip to content

A multi-platform portable app for querying and controlling a Robo C2 or R2 printer made by Robo 3D.

License

Notifications You must be signed in to change notification settings

OutsourcedGuru/Robo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robo app

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.

c2-r2-header

Overview

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).

Installation

There are two paths for serving up the app, depending upon how much pain you're willing to endure.

Build and Publish

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.

Host Locally and Use Browser

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.

Progress

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.

To-do

  • 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? info@robo.fyi

Screenshots

Here is the latest collection of screenshots from the running app.

robo-home

robo-home-webcam

robo-leftpanel

robo-videos

robo-motors

robo-temperature

robo-filament

robo-webcam-on

robo-webcam-off

robo-files

robo-printer-help

robo-addprinter

robo-addprinter-help

robo-appsettings

robo-reportissue

robo-about

Donate Cryptocurrency
eth-receive btc-receive
Ethereum Bitcoin