All Projects → probonopd → Wirelessprinting

probonopd / Wirelessprinting

Print wirelessly from Cura, PrusaSlicer or Slic3r to your 3D printer connected to an ESP8266 (in the future also ESP32) module

Projects that are alternatives of or similar to Wirelessprinting

Firebase Esp8266
ESP8266 Firebase RTDB Arduino Library
Stars: ✭ 228 (-0.44%)
Mutual labels:  arduino, esp8266
Wifi keylogger
DIY Arduino Wi-Fi Keylogger (Proof of Concept)
Stars: ✭ 218 (-4.8%)
Mutual labels:  arduino, esp8266
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-96.51%)
Mutual labels:  arduino, esp8266
Awesome Esp
📶 A curated list of awesome ESP8266/32 projects and code
Stars: ✭ 212 (-7.42%)
Mutual labels:  arduino, esp8266
Dsckeybusinterface
An Arduino/esp8266/esp32 library to directly interface with DSC security systems.
Stars: ✭ 202 (-11.79%)
Mutual labels:  arduino, esp8266
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+953.71%)
Mutual labels:  arduino, esp8266
Onewirehub
OneWire slave device emulator
Stars: ✭ 195 (-14.85%)
Mutual labels:  arduino, esp8266
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (-22.71%)
Mutual labels:  arduino, esp8266
Awot
Arduino web server library.
Stars: ✭ 200 (-12.66%)
Mutual labels:  arduino, esp8266
Blog
A set of various projects based on ESP8266, ESP32, ATtiny13, ATtiny85, ATtiny2313, ATmega8, ATmega328, ATmega32, STM32 and more.
Stars: ✭ 198 (-13.54%)
Mutual labels:  arduino, esp8266
Arduinowebsockets
A library for writing modern websockets applications with Arduino (ESP8266 and ESP32)
Stars: ✭ 213 (-6.99%)
Mutual labels:  arduino, esp8266
Platform Espressif8266
Espressif 8266: development platform for PlatformIO
Stars: ✭ 206 (-10.04%)
Mutual labels:  arduino, esp8266
Skylift
Wi-Fi Geolocation Spoofing with the ESP8266
Stars: ✭ 223 (-2.62%)
Mutual labels:  arduino, esp8266
Easybutton
Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
Stars: ✭ 187 (-18.34%)
Mutual labels:  arduino, esp8266
Wirehome.core
Wirehome.Core is a home automation system written in C# targeting .NET Core. It runs on Linux, Windows and macOS.
Stars: ✭ 180 (-21.4%)
Mutual labels:  arduino, esp8266
Advi3pp
ADVi3++, an alternative and better firmware for Wanhao i3 Plus printers and clones. Fork of Marlin Firmware.
Stars: ✭ 192 (-16.16%)
Mutual labels:  arduino, 3d-printing
Socket.io Client
A socket.io-client implementation for ESP8266 and Arduino
Stars: ✭ 170 (-25.76%)
Mutual labels:  arduino, esp8266
Opengarage Firmware
OpenGarage: open-source WiFi-enabled garage door opener
Stars: ✭ 175 (-23.58%)
Mutual labels:  arduino, esp8266
Jled
Non-blocking LED controlling library for Arduino and friends.
Stars: ✭ 197 (-13.97%)
Mutual labels:  arduino, esp8266
Logic Analyzer
Logic Analyzer, for Arduino, AVR, ESP8266 and STM32 with a very nice working processing interface, you could run it also on any Android device.
Stars: ✭ 203 (-11.35%)
Mutual labels:  arduino, esp8266

WirelessPrinting Build Status

Print wirelessly from Cura, PrusaControl, or Slic3r PE to your 3D printer connected to an ESP8266 module.

UNDER DEVELOPMENT. See Issues. Pull requests welcome!

Comparison with other printer hosts

Printer SD card slot OctoPrint WirelessPrint
Instant Booting can take minutes Booting takes seconds
Need to plug SD card into computer and then into printer for each print Ethernet and wireless Wireless
No cost (comes with many printers) High cost (Raspberry Pi, Power supply, SD card) Inexpensive
No clutter on desktop Clutter on desktop (Raspberry Pi, cable) No clutter (can be placed inside printer electronics box)
No set-up needed Set-up needed (full Linux operating system, hundreds of megabytes) Only quick wireless network setup needed
No maintenance needed (other than replacing broken SD card slots) High maintenance needed (OS updates) Low maintenance needed (Firmware updates for bugfixes and new features)
No extra power consumption 2.5 W power consumption Under 1 W power consumption
No webcam Webcam can be attached ESP32 module with built-in camera (may be supported in the future)
No notifications Notifications, e.g., "print ready" Notifications possible (send pull requests)
Cumbersome for print farms (sneakernet) Suitable for print farms (can be managed centrally) Suitable for print farms (can be managed centrally, OctoPrint compatible protocol subset)

Hardware

WEMOS D1 mini modules can be used. Also, ESP32 modules can be used (e.g., TTGO-T1 with built-in microSD card slot).

The WEMOS D1 mini module is connected with your 3D printer via the serial connection and to a SD card (acting as a cache during printing). You need to connect

  • TX, RX from your 3D printer to the WEMOS D1 mini module (AUX-1 header on RAMPS boards). Note: For ESP32, use GPIO32 = RX, GPIO33 = TX
  • Power and GND from your 3D printer to the WEMOS D1 mini module (attention, the AUX-1 header on RAMPS boards has 5V while the ESP8266 needs 3.3V but the WEMOS D1 mini has a voltage regulator)
  • Optional: SD card shield to the WEMOS D1 mini module (a capacitor across the power pins of the SD card; SD shields have this). Using a SanDisk 2 GB card formatted with mkfs.vfat on Linux seems to work for me. If no SD card is connected, then the internal SPIFFS memory (3 MB) is used. For TTGO-T1, the built-in microSD card slot is used if a card is inserted.
  • A matching case for a WEMOS D1 mini module and microSD shield can be found at http://www.thingiverse.com/thing:2287618

esp8266/Arduino sketch

The esp8266/Arduino sketch ESP8266WirelessPrintAsync.ino is uploaded to a ESP8266 module. See .travis.yml for how this is compiled on Travis CI.

Building

Pre-built binaries are available for download on GitHub Releases.

The following build procedure works on Linux:

# Get PlatformIO (the toolchain we use for compiling)
git clone https://github.com/probonopd/WirelessPrinting
cd WirelessPrinting
wget -c https://downloads.egenix.com/python/install-pyrun
bash install-pyrun --python=3.5 pyrun/
pyrun/bin/pip3 install -U platformio==4.2.1

# Build the firmware (it downloads the needed libraries)
pyrun/bin/platformio run
find . -name "*firmware.bin"

Flashing from Linux

Can be flashed via USB or (subsequently) over the air. You can use PlatformIO to upload to either OTA and flash via any known flash method. See e.g., https://docs.platformio.org/en/latest/platforms/espressif8266.html#over-the-air-ota-update, https://docs.platformio.org/en/latest/platforms/espressif32.html#packages.

If you are not using PlatformIO (e.g., because you are just interested in uploading our pre-built firmware as quickly as possible) you may use the following instructions.

ESP8266

# USB
sudo chmod a+rwx /dev/ttyUSB0 ; /tmp/.mount_*/usr/bin/hardware/esp8266/esp8266/tools/esptool/esptool -vv -cd nodemcu -cb 921600 -cp /dev/ttyUSB0 -ca 0x00000 -cf ESP8266WirelessPrint*.bin

# Wireless
wget -c "https://raw.githubusercontent.com/esp8266/Arduino/master/tools/espota.py"
python espota.py -i 192.168.0.27 -p 8266 --auth= -f ESP8266WirelessPrint*.bin
ESP32
# USB
sudo apt install python-serial
sudo chmod a+rwx /dev/ttyUSB0 ; python $HOME/.arduino15/packages/esp32/tools/esptool_py/2.6.0/esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash 0x10000 ESP8266WirelessPrintAsync_esp32_*.bin

# Wireless
python $HOME/.arduino15/packages/esp32/hardware/esp32/1.0.1/tools/espota.py -i 192.168.0.16 -p 3232 --auth= -f ESP8266WirelessPrintAsync_esp32_*.bin

After the initial flashing, you can upload new versions of this firmware from the web interface without any further tools.

Initial WiFi Configuration

Following the instrucions in https://github.com/alanswx/ESPAsyncWiFiManager/ :

The first time the sketch is uploaded the ESP will enter in Access Point mode, so you have to open the wifi manager of your system and connect to wifi "AutoConnectAP", then open your browser and type http://192.168.4.1/, there you will see a menu, select "Configure WiFi", press scan and wait until the device scans available networks and select yours, enter the the password and click save. It will try to connect to your network, if it's successfull you will see a message on your 3D printer (or in a serial monitor if conected to your computer) with the new device IP, write down this IP if you wish to connect via browser.

Wireless printing with Cura

Cura 2.6 and later come with a bundled plugin which discovers OctoPrint instances using Zeroconf and enables printing directly to them. In newer versions of Cura, you need to install the Cura OctoPrint Plugin from the "Toolbox" menu. To use it,

  • In Cura, add a Printer matching the 3D printer you have connected to WirelessPrint
  • Select "Connect to OctoPrint" on the Manage Printers page
  • Select your OctoPrint instance from the list
  • Enter an API key (for now a random one is sufficient)
  • Click "Connect", then click "Close" From this point on, the print monitor should be functional and you should see a "Print with OctoPrint" button on the bottom of the sidebar. Use this button to print wirelessly.

Wireless printing with PrusaControl

Currently a custom fork, PrusaControlWireless, is required. This may change in the future.

Wireless printing with Slic3r PE

Slic3r PE 1.36.0 and later discovers OctoPrint instances using Zeroconf and enables printing directly to them. No further software needs to be installed. To use it,

  • In Slic3r PE, add the corresponding profile for your printer
  • Select the "Printer Settings" tab
  • Under "OctoPrint upload", enter the IP address of your WirelessPrinting device (in the future, it may be discoverable by Bonjour)
  • Click "Test" From this point on, you should see a "Send to printer" button on the "Plater" tab. Use this button to print wirelessly.

Wireless printing using a browser or the command line

To print, just open http://the-ip-address/ and upload a G-Code file using the form:

Upload

Ycan also print from the command line using curl:

curl -F "[email protected]/path/to/some.gcode" -F "print=true" http://the-ip-address/print
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].