You can send commands from your Raspberry Pi (or any other computed) to Printoid, if your phone (or your tablet) is plugged on it over USB.
The interface is called ADB: Android Debug Bridge.
SETUP YOUR DEVICES |
The Premium version of Printoid can be piloted by using the Android Debug Bridge (ADB).
Discover ADB →
Controlling Printoid through ADB is a bit more difficult than from a physical keyboard since it’s not plug-n-play. But this is also more powerful, since you are able to send extra values with some commands. Typically, this is the solution I use to control Printoid with physical keys & buttons: my actuators are connected to the GPIO ports of my Raspberry Pi, then I perform a simple conversion from “GPIO action” to “Printoid command”.
You have to ensure first that ADB is properly installed on your Raspberry Pi. Then, you have to activate the developer options on your device and activate ADB.
Install ADB on a Raspberry Pi →
Activate the developer options →
The first time you’ll plug your device to the Raspberry, execute the adb devices
command to check if your device is properly recognized. May you will have to accept the debug bridge from the device (don’t forget to check to “remember” box)
Once you’re able to communicate with the device, here’s how to communicate with Printoid. First start the application manually, or by sending the following command:
am start -n fr.yochi76.printoid.phones.premium/fr.yochi376.octodroid.HomeActivity
Then, each control commands should be executed while the app is in the foreground, with the following schemes:
adb shell am broadcast -a PRINTOID_COMMAND --es PRINTOID_ACTION XXXX
or by passing a float value as argument (when the command requests a float value):
adb shell am broadcast -a PRINTOID_COMMAND --es PRINTOID_ACTION XXXX --ef PRINTOID_VALUE YY.YY
or by passing a string value as argument (when the command requests a string value):
adb shell am broadcast -a PRINTOID_COMMAND --es PRINTOID_ACTION XXXX --ez PRINTOID_VALUE YY.YY
Where you have to replace the XXXX by one of the following action, and when available you can complete the command with an optional value (so you have to replace YY.YY by your own float value, as for example 1.0, 5.2, 12.9…)
AVAILABLE COMMANDS |
Function | Action key | Parameter (unit) [type] |
Toggle printer connection | CONNECT | ❌ (no param) |
Toggle feature fullscreen | FULLSCREEN | ❌ (no param) |
Toggle streaming | STREAMING | ❌ (no param) |
Toggle commands | COMMANDS | ❌ (no param) |
Toggle OctoPrint web-app | WEBAPP | ❌ (no param) |
Toggle the files | FILES | ❌ (no param) |
Toggle timelapses | TIMELAPSES | ❌ (no param) |
Toggle Printoid web-site | WEBSITE | ❌ (no param) |
Toggle printer profiles | PRINTER_PROFILES | ❌ (no param) |
Toggle app settings | SETTINGS | ❌ (no param) |
Toggle app infos | INFOS | ❌ (no param) |
Move X axis to left | X_LEFT | ✅ distance (mm) [float] |
Move X axis to right | X_RIGHT | ✅ distance (mm) [float] |
Move Y axis to back | Y_TOP | ✅ distance (mm) [float] |
Move Y axis to front | Y_BOTTOM | ✅ distance (mm) [float] |
Move Z axis to top | Z_UP | ✅ distance (mm) [float] |
Move Z axis to bottom | Z_DOWN | ✅ distance (mm) [float] |
Set XY home | XY_HOME | ❌ (no param) |
Set Z home | Z_HOME | ❌ (no param) |
Extrusion | EXTRUSION | ✅ length (mm) [float] |
Retraction | RETRACTION | ✅ length (mm) [float] |
Increment fan speed | INC_FAN | ✅ delta [float] |
Decrement fan speed | DEC_FAN | ✅ delta [float] |
Increment extruder 1 temp. | INC_EXT1 | ✅ delta (°) [float] |
Decrement extruder 1 temp. | DEC_EXT1 | ✅ delta (°) [float] |
Increment extruder 2 temp. | INC_EXT2 | ✅ delta (°) [float] |
Decrement extruder 2 temp. | DEC_EXT2 | ✅ delta (°) [float] |
Increment extruder 3 temp. | INC_EXT3 | ✅ delta (°) [float] |
Decrement extruder 3 temp. | DEC_EXT3 | ✅ delta (°) [float] |
Increment extruder 4 temp. | INC_EXT4 | ✅ delta (°) [float] |
Decrement extruder 4 temp. | DEC_EXT4 | ✅ delta (°) [float] |
Increment extruder 5 temp. | INC_EXT5 | ✅ delta (°) [float] |
Decrement extruder 5 temp. | DEC_EXT5 | ✅ delta (°) [float] |
Increment extruder 6 temp. | INC_EXT6 | ✅ delta (°) [float] |
Decrement extruder 6 temp. | DEC_EXT6 | ✅ delta (°) [float] |
Increment extruder 7 temp. | INC_EXT7 | ✅ delta (°) [float] |
Decrement extruder 7 temp. | DEC_EXT7 | ✅ delta (°) [float] |
Increment extruder 8 temp. | INC_EXT8 | ✅ delta (°) [float] |
Decrement extruder 8 temp. | DEC_EXT8 | ✅ delta (°) [float] |
Increment extruder 9 temp. | INC_EXT9 | ✅ delta (°) [float] |
Decrement extruder 9 temp. | DEC_EXT9 | ✅ delta (°) [float] |
Increment extruder 10 temp. | INC_EXT10 | ✅ delta (°) [float] |
Decrement extruder 10 temp. | DEC_EXT10 | ✅ delta (°) [float] |
Increment bed temp. | INC_BED | ✅ delta (°) [float] |
Decrement bed temp. | DEC_BED | ✅ delta (°) [float] |
Increment chamber temp. | INC_CHAMB | ✅ delta (°) [float] |
Decrement chamber temp. | DEC_CHAMB | ✅ delta (°) [float] |
Select a tool (printer head) | SELECT_TOOL | ✅ tool index (0->9) [float] |
Print selected file | ❌ (no param) | |
Pause print | PAUSE | ❌ (no param) |
Stop print | STOP | ❌ (no param) |
Send GCODE command(s) | GCODE | ✅ GCODE command(s) [string] |
For the GCODE command, you can send multiple commands at the same time (a batch of GCODE commands). Simply separate all your commands by a comma (for example: M106 S255, G0 X0 Y0 Z0, M110 S210)