Introduction: Add Bluetooth to a Creality Ender 2 3D Printer
I have been using my Ender-2 for almost two years and I have to say I have a love-hate relationship with it. There are many things that could be improved, but overall, I think it's a solid 3D printer.
One of the most annoying things it's the lack of Wifi/Bluetooth communication, that in my opinion in 2020 must be mandatory on every 3D printer.
I came across a youtube video from Chris Riley, which shows how to add Bluetooth on a RAMPS board, so I decided to give it a try.
I already had an HC-06 Bluetooth board lying around, but the layout of the stock motherboard of the Ender-2 is very minimalistic: although it is using an ATMEGA1284p, which has two UART, none of its UART ports is accessible on the motherboard via pads or connectors.
The only way to access those RX0 and TX0 pins (respectively pin9 and pin10) is to solder straight to the MCU chip.
As I wanted to get rid of that USB cable at all costs, I decided to risk everything and I did it (more details in the pictures).
To my surprise, this worked very well! I have been printing via Bluetooth for 3 weeks and I have not had a failed print because of a lost connection yet.
- Original Creality Ender2 with Marlin firmware previously installed (not sure it will work with stock firmware too)
- FTDI USB to serial converter or Arduino Uno;
- Bluetooth serial communication board (HC-06 or similar);
- Soldering iron;
- Tin and flux;
- Magnifier or microscope;
- Female Dupont connectors;
- thin gauge copper wire;
- 1K resistor;
- 680 Ohm resistor;
Step 1: Setting Up the Bluetooth Module
- Connect the HC-06 module to a USB to serial converter (FTDI) or an Arduino using female to female jumpers;
- Only the following pins must be connected VCC>VCC GND>GND TX>RX RX>TX;
- The RX pin of the HC-06 supports 3.3V logic, so, make sure your FTDI board it's switchable to 3.3V otherwise, you may damage the module. If that is not the case, connect a resistor divider to drop 5V from the TX pin of the serial converter to 3.3V (Using a 680Ohm and a 1K resistor worked for me);
- Plug it into a USB port of your PC and open the Arduino IDE serial monitor as we need to change BAUD rate to 115200k, password and name
- AT Commands (No space between name and command)
- AT : check the connection (should get OK as answer)
- AT+NAME: Change name
- AT+BAUD8 change from9600(default baud rate to 115200)
- AT+PIN: change pin, 1234 is the default pairing pin
Step 2: Soldering to the MCU
- As it is quite risky to perform this mod, do it at your own risk.
- We have to solder our TX (green wire) and RX (light blue wire) of the HC-06 respectively to pin9 (RXD0) and pin10 (TXD0) of the ATMEGA1284p chip.
- I find easier to solder the green wire o the FTDI chip (to minimize risks of shorting TX RX together);
- We need a resistor divider to reduce the 5V of the Atmega TX pin, to the 3.3V supported by the RX pin of the HC-06 (I have used a 680 Ohm and a 1K resistor as in wiring diagram).
- You can get 5V and GND from programming pins on the motherboard.
- I have used the thinnest stranded copper wire I had available and plenty of flux although the best would be using magnet wire;
- It helps to secure the wire using some tape onto the chip during soldering.
- Always check for bridges before connecting power.
- I have added a switch to the 5V pin so I can power the Bluetooth module off, if not needed.
Step 3: Pairing Module With Your PC and Print
- Power ON the 3D printer (you should see blinking red LED if BT module is ON, a good sign).
- Just add a new Bluetooth device from Windows settings and pair to your Bluetooth device;
- A new virtual COM port will be created (open device manager to find out to which COM port we need to connect to in Repetier or Pronterface);
- Open your 3D printing host and change COM port accordingly;
- Now you should be able to control the printer via Bluetooth!
- If you can't see your device try to enable Bluetooth in Marlin config file
- Happy wireless printing!