Git Product home page Git Product logo

ohand / 3dprinterstatus Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 2.31 MB

small android app to get the status of a 3D printer for e.g. Bresser Rex or Flashforge Adventurer or similar - currently in an early stage

License: Apache License 2.0

JavaScript 65.62% CSS 18.81% HTML 15.57%
3d-printer 3d-printer-controller android app flashforge-adventurer remote-state bresser-rex cordova-build-environment flashforge

3dprinterstatus's Introduction

3DPrinterStatus

description

pre notice

project is based on cordova build environment and so written in NodeJS and cordova specific plugins - currently only builds for android available

contribution to this project is likely welcome

original purpose for the app

Give an alternative way to reach 3D printer e.g. 'Bresser Rex' or 'Flashforge Adventurer III' directly in an app for getting the current state of print job and watching the live video stream from internal webcam. Futher there are thougts to use that information to gather some statistics for visualization and use the state changes of printer for further switching of external IFTTT devices. If you have other cool ideas please raise a feature request

features

you can find already given and described content features here

GitHub closed issues by-label

and UX marked features here

GitHub closed issues by-label

downloads

get latest release

you can reach the latest release here

GitHub all releases

get latest debug build

goto the last (green) workflow run and find the .apk file in the artifact section below

develop - Build Android debug app

development status

you can raise a feture or bug reqest here and also use this information

GitHub issues by-label GitHub issues GitHub closed issues

screenshots

features planned/ done

  • open content the app recognized the finish state of the current job. This state could trigger a smart plug with MQTT or IFTTT. So it is maybe possible to integrate with a specific call on an url or direct MQTT integration.
  • open content prevent connection with default values or inform user about the try to connect with default values
  • done UX animation of changed values from printer, to recognize easily the changed value
  • open UX button connect should be according to the current session state (currently: state info with butto color and button text without a direct understandable connection)
  • done UX IP of printer should be directly take over for the webcam or at least offered
  • open content also offer modeling tools e.g. freeCAD oder tinkerCAD
  • open content offer temperature graph
  • open content idea -> visualize current layer of printing with the XYZ data (why? Don't know! ;-) )
  • open UX darkmode: invert colors to get dark environment
  • open UX darkmode: switch darkmode with systemsettings
  • open UX notification: local push notification, if printer job is done
  • open UX notification: local push notification, if printer stopped before done, e.g. filament error (empty)
  • open UX notification: progess should be optionally shown as an notification
  • open content searching for printer in the local network, present result and give the option to take over to the printer connection
  • open content show the video stream of webcam directly inside the app
  • done UX notification: local push notification with progress as a permanent info during printing
  • open UX notification: should be switchable on/off in settings
  • done content stablize session to the printer - re-connect if connection lost, but the user still required an open connection (connect button -> not manually disconnected)
  • done content notification: local single push notification every 10% during printing

info

  • current usage (at least until 0.0.1.0172) of connect/ disconnect button colors -> orange = is initialized / green = is connected / red = error occured (check debug log, e.g. BLOCKED means PC has already active connection to printer)/ blue = session releasing or finished
  • "Bresser REX" offer itself as a "Flashforge Adventurer III"

licenses

creating local build environment

installing on linux

(almost same on windows)

node js

sudo apt install nodejs npm

cordova

sudo npm install -g cordova

java 11

sudo apt-get install openjdk-11-jdk

android sdk commandline

see also https://cordova.apache.org/docs/en/11.x/guide/platforms/android/index.html#requirements-and-support

cd /usr/share

sudo mkdir android_sdk

goto the download page for cmd line tools https://developer.android.com/studio/index.html#command-line-tools-only

unzip download to /usr/share/android_sdk

sudo unzip commandlinetools-linux-9477386_latest.zip -d /usr/share/android_sdk

cd /usr/share/android_sdk

sudo mkdir latest

cd /usr/share/android_sdk/cmdline-tools

sudo mv * ../latest

cd /usr/share/android_sdk/

sudo mv latest /usr/share/android_sdk/cmdline-tools

edit your ~/.bash_profile or ~/.profile

export ANDROID_SDK_ROOT=/usr/share/android_sdk export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/ export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/ export PATH=$PATH:$ANDROID_SDK_ROOT/emulator/

reload terminal pathes

source ~/.profile

now e.g. for checking

sdkmanager --list

sdkmanager --list_installed

walking through the list for all the possible downloads/ installer

install needed build-tools

sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "build-tools;30.0.3"

install platform with api level 30

sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-30"

gradle

cd ~

wget https://services.gradle.org/distributions/gradle-8.0.2-bin.zip

sudo unzip gradle-8.0.2-bin.zip -d /usr/share

export PATH=$PATH:/usr/share/gradle-8.0.2/bin

preparing project

goto to your project folder (clone of git repo)

npm install

cordova platform add android

finally check with

goto to your cordova project folder

cordova requirements

build

cordova build

3dprinterstatus's People

Contributors

ohand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

3dprinterstatus's Issues

BUG: wrong link to release page in settings

In setring

To Reproduce
Steps to reproduce the behavior:

  1. Go to settings
  2. Scroll down to info section
  3. Click on releases
  4. See wrong redirect to old page

Expected behavior
Link should redirect to releases in the github project

[FEATURE] give user info if printer connection is blocked

The printer can only handle one connection at the time. If for e. g. your PC/Mac with the slicing software is already connected, then app can not get control. This case should be visualized. And also present useful measure and hints to the user.

trigger external IFTTT, if printer job is done

the app recognized the finish state of the current job. This state could trigger a smart plug with MQTT or IFTTT. So it is maybe possible to integrate with a specific call on an url or direct MQTT integration.

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.