Android app to control a pen plotter via Bluetooth using GRBL firmware.
- Authentification with Firebase (Login & Signup)
- Connects to Arduino pen plotter over Bluetooth (HC-06)
- Converts G-code files for pen plotting
- Real-time terminal output and progress
- Calibrates stepper motors (28BYJ-48)
- Arduino Uno with GRBL firmware (for our project we used: https://github.com/TGit-Tech/GRBL-28byj-48)
- 3x 28BYJ-48 stepper motors (X, Y, Z axes)
- HC-06 Bluetooth module
- Pen lifting mechanism
- 3D Printed parts found here: https://www.thingiverse.com/thing:4579436
- Install the APK on your Android phone
- Pair with HC-06 Bluetooth module
- Connect in the app
- Upload G-code file or write commands
- Press Send to start drawing
(Go to Settings to configure motors:)
- Steps per mm: 65.0 (for 28BYJ-48)
- Max speed: 800 mm/min
- Acceleration: 10 mm/sec²
The app automatically converts generated G-code from https://sameer.github.io/svg2gcode/:
G0 X10 Y20 → G1 X10 Y20 Z1 (pen up)
G1 X30 Y40 → G1 X30 Y40 Z0 (pen down)
G0 X0 Y0 ; Move to origin (pen up) G1 X10 Y0 ; Draw right side (pen down) G1 X10 Y10 ; Draw top side G1 X0 Y10 ; Draw left side G1 X0 Y0 ; Draw bottom side G0 X0 Y0 ; Return to origin (pen up)
- Clone this repo
- Open in Android Studio
- Build and install
BluetoothTerminalActivity
- Core G-code processing and real-time execution
- Terminal interface
- Progress tracking and time estimation (very rough)
BluetoothHelper
- Low-level Bluetooth communication
- Connection management and error recovery
- Message parsing and command queuing
SettingsActivity
- GRBL parameter configuration
- Motor calibration interface
- Profile Deletion
- Additional G-code format support
- UI/UX improvements and accessibility features
- Performance optimizations and memory management
- Hardware compatibility testing
- David Levi (HWR Berlin)
- Lasse Schulz (HWR Berlin)
MIT