Skip to content

Latest commit

 

History

History
37 lines (31 loc) · 2.9 KB

File metadata and controls

37 lines (31 loc) · 2.9 KB

What is this?

An android app for interactive remote control of a DeskCNC milling machine.

photo5213088685657011537 photo5325937843257846616 photo5213088685657011565

Features

  • Automatic network configuration and connection setup between android phone and CNC device host, local IP adress is transfered to the phone via QR code.
  • Works offline, without internet connection
  • Arbitrary G-Code commands can be entered directly on the phone, they are executed by the CNC device
  • Remote control mode with GUI, buttons on the phone are used to move the milling tool manually
  • Tilt control mode, where the gravity sensor of your smartphone determines the movements of the machine
  • Interactive graphical mode where you draw on your touchscreen, and the CNC machine moves the tool accordingly
t_video5323737462336390102.mp4

Limitations

  • This in in an early alpha state and highly unstable

Installation and Usage

  • Install app-release.apk on your phone
  • On the milling host machine you need Python 3; required modules: pip install pyqrcode
  • Install deskcnc_serial
  • If deskcnc_serial.py is not in the same folder, do export PYTHONPATH=$PYTHONPATH:path-to-deskcnc_serial
  • Connect the CNC device to the host machine and run hofalapp_cncserver.py (e.g. python hofalapp_cncserver.py [your-ip] 1337 COM1) to start the server
  • On Linux you can use start_hofalapp_cncserver.sh to detect your own local IP automatically
  • For a debug mode (to test the app without a CNC device), simply do ./hofalapp_cncserver.py [your-ip] 1337 none
  • Make sure that your phone is in the same wifi / local network / VPN as the host machine, and that no firewall blocks direct connections to the host
  • Start the app on the phone (username does not matter), scan the QR code displayed on the host
  • Use buttons or draw mode to control the machine (in debug mode the G-Code commands which would be executed are printed to the terminal on the host machine)

Usage Hints

  • The coordinate plane in which you draw movements (XY-plane, or XZ or YZ) has to be defined before entering draw mode.
  • Very important: The third coordinate / the position of the tool in the dimension in which you do not draw (for instance the Y position of the XZ drawing plane), has to be defined (by positioning the tool there) also BEFORE entering draw more.