Coder Social home page Coder Social logo

outsourcedguru / robo Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 2.19 MB

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

License: MIT License

JavaScript 44.45% Batchfile 0.17% CSS 45.22% HTML 2.21% Objective-C 5.41% Shell 0.03% C++ 0.14% C# 0.45% Java 1.85% QML 0.05%
robo-c2-printer robo-c2 robo-r2-printer robo-r1-printer robo3d phonegap phonegap-application phonegap-app framework7 3d-printer

robo's Introduction

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? [email protected]

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

robo's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

robo's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.