
Multifunctional Expansion Board
After getting fed up with having to re-level the printer bed after every couple of prints, I decided to bite the bullet & purchase a BLTouch smart 3.1 auto bed levelling sensor from Antclabs inc.
It arrived & I done what any excited little boy would do with a new toy, quickly installed it by rigging a bunch of cables (In the most safest manner of course!) from the mainboard to the BLTouch on the printhead... BOOM!!!! it works & has been working for a good 12 months.
​
Long story short, I got fed up with having to reconnect the unit every time a cable came loose & the run of the extra 5 cables from the main board through the gantry to the printhead was a disaster waiting to happen. They would sometimes tangle when moving, causing the printer to skip steps or jam with horrific noises.
​
So its 2023 & I decided "enough! lets fix the mess of cables!". I done some poking & probing around my spare printer to discover that there were several unused pins on the IDC connector from the main board to the print head. I decided to design a new expansion board (with some extra features), removing the need for any extra cables.

So lets get down to it. Here's how it was made, my thoughts & how to install it...
Sorry all, it's got to be done. The WARNING & Legal bit at the bottom.
-------------------------------------------------------------------------------
I am not affiliated, associated, authorised or endorsed directly / indirectly with the following company's [Wanhao], [DWIN Technology], [Marlin], [ADVi3++], [EasyEDA LLC], [Balco Brands LTD] or [Antclabs inc].
This is my own work for my own purpose (I am developing Hardware modifications for the WDi3P v5.4 3D printer). I AM NOT responsible for any damage done to your printer or hardware when attempting using this modification,
USE CAREFULLY AT YOUR OWN RISK.
-------------------------------------------------------------------------------
​
This PCB has been designed & manufactured for any persons who owns the popular but old Wanhao duplicator i3 Plus MK II v5.4 3D printer. This PCB will need to be used alongside a custom firmware like advi3++ by Sebastien Andrivet & will integrate the popular auto bed levelling sensor, bltouch by antclabs inc.
​
This PCB will require the user to replace the existing expansion board & compile or download custom firmware for your printer. If you are interested in alternative firmware, I recommend advi3++ by Sebastien Andrivet.
​
NOTE – Precompiled binaries are for supporting patreons of advi3++ by Sebastien Andrivet only.
I WILL NOT be posting or supplying any links to precompiled binary's.
​
Link to ADVi3++ - Community Forum | Source Code | Patreon Support
​
-------------------------------------------------------------------------------
The Printer
​
My printer is a Balco Touch v5.4. Although this is a clone it is still manufactured by Wanhao who seems to make printers for many brands. Therefore, I have decided to start referring to this printer as a Wanhao machine, in the hopes that others who have various rebranded printers will be able to get the help they need.
​

The Plan
​
-
Design a board in EasyEDA
-
Get it manufactured
-
Install
-
PROFIT !
Yeah, that what I thought too! But it's never that simple, I hit a few bumps in the design process along the way.
​
Communication to the Expansion board & peripherals on the printhead is done through the use of a 20 pin IDC connector on the mainboard underneath the printer. It acts as a bridge between the mainboard & expansion board, allowing for all the necessary data / electrical signals to be sent or received by the mainboard. I had to figure out which of the pins corresponds to the sensors, motors, & heater cartridge on the expansion board with the IDC pins.
​

After digging around online I found several sources indicating what the pins are used for; but for safety I did my own probing of the 20 pin IDC connector on the mainboard & ran through several software steps to confirm my findings.
I have discovered / confirmed the following pinout...

Wanhao Duplicator i3-Plus Mainboard v5.4

20 Pin IDC Connector
1 – 4 - GRAY - 0v Print head heater
5 – 8 - RED - +24v Print head heater
9 - BROWN - Extruder step motor 2B
10 - BROWN - Extruder step motor 2A
11 - BROWN - Extruder step motor 1A
12 - BROWN - Extruder step motor 1B
13 – YELLOW - +24v PWM fan Signal
14/16 - GREEN - GND Rail
15 – BLUE - Temp Sensor Signal
17 – PURPLE - X-axis end-stop signal
18 – ORANGE - +5v Supply
19 – PINK - Disconnected Labelled BL
20 – LIME - Z-Probe Signal

Original Expansion board
Using the information above, I can put a plan together determining which pins would be best suited for the BLTouch integration.
14/16 - GREEN - BLT brown & black
18 - ORANGE - BLT red cable
19 - PINK - BLT orange cable
20 - LIME - BLT White Cable
GND
+5v
Servo
X-Probe
The Design & Builds
Now armed with all the information above, I set out with designing the replacement expansion board. There are many PCB design / referencing tools out in the wild, but for ease I used the free EasyEDA software by EasyEDA LLC. EasyEDA does not need to be installed, although they have an optional installer package. It can be run straight from the web browser but I reccomend installing it, the software integrates directly with a manufacture allowing for quick & easy prototyping. My designs are all based off of 4 layer PCBs allowing for the maximum use of the small area.

EasyEDA Web portal
The first PCB
This design was more of a "lets see how it goes", as I was not to sure how big I needed to make the traces, the spacing between them or if there would be any interference between them. Revision 1.0 of the PCB works, but had a Fatal flaw causing the PCB to burn from the inside out, I only made one set of traces for the heater package on the internal layer & discovered they were to thin, which acted more like a fuse & ultimately could not handle the current required for the heating package.
Rev 1.0


The second PCB
After a rethink & redesign, Revision 2.0 repaired the issue with the heater package lines. Modifying the traces by adding them across all 4 layers & increasing their size, spreading the current of the heater package across all layers.
​
The Third PCB
Another redesign of the traces. Revision 3.0 removed a couple of vias & moved the traces away from the edge of the board & the screw holes to help shorten them. I had issues with the BLTouch connector though & I could not find any of the connectors I had planned on using, & soldering the cables directly to the through holes just was not stable as the cables would snap due to being so thin.
​
Rev 2.0


The Forth PCB
This was a complete redesign of the board. Moving the connectors around to a more suited position, & removing the need for PCB vias. Revision 4.0 fixed the BLTouch issue by completely redesigning the connector with a standard 2.54mm pitch connector. This meant that if I could not get my desired connector I can use standard header pins. All traces, except the heater package, were shrunk to an acceptable size & rerouted correctly over the 4 layers.
​
The Fifth PCB
This is the final design, available for purchase in my store. Revision 5.0 improves the trace routes, adds the addition of an extra PWM Cooling fan connector, & the optional 24v auxiliary connector. The extra PWM is linked with the first allowing for double the cooling power if needed. The auxiliary 24v connector had been linked with the ground planes to keep it permanently active. I found this useful for adding a light to the print head assembly.
Rev 3.0


Rev 5.0


Rev 4.0


Install & final Thoughts
​
Equipped with my trusty soldering iron, I set the heat to around 270c - 280c so as not to damage or melt any of the connectors & then soldered the components to the PCB using low temperature solder. The JST XHP & PCB to cable connectors can withstand small amounts of heat (Just enough for soldering).
​
During the install I found that I had managed to make a mistake in the sizing of the expansion board. It was a couple mm bigger than the original, this meant it would not fit in its original place on the print head. I reassembled the original board, 3D printed some standoffs & found some longer screws to fit.
​
So my final thoughts of this project! It's been a daunting, frustrating, but fun little project. Learning more about the communications of my WDi3P 3D printer & PCB design / manufacturing. For those of you who are adventurous, I would recommend attempting this modification to the WDi3P 3D printer yourself, as it will allow for an easy clean install of Bed levelling, cooling & lighting to the printhead.

1
2
PURPLE - Main 20 pin IDC
RED 1 - Heater Cartage
RED 2 - Heater Cartage Fan
YELLOW - PWM Cooling fans
ORANGE - Auxiliary 24v
BLACK - Temperature Sensor
BLUE - X - Minimum switch
WHITE - Extruder Motor
GREEN - BLTouch Sensor


-------------------------------------------------------------------------------
All of the plans / schematics are available freely for use or modification under the GNU Licence & available on the following platforms:
Link to Mr.S.J.D.Developments - EasyEDA OSHWLabls | GitHub
​
If you are interested in custom firmware for the WDi3P 3D printer, I have made a compile & install guide set below
Link to Mr.S.J.D.Developments - Custom ADVi3++ Firmware Compile & Install
-------------------------------------------------------------------------------
Copyright
ADVi3++
-
Copyright © 2017-2023 Sebastien Andrivet Link To GitHub Page
-
Copyright © 2016-2023 Link to Marlin GitHub
-
Based on Sprinter & grbl. Copyright © 2011 Camiel Gubbels / Erik van der Zalm
-------------------------------------------------------------------------------
Licences
- WANHAO DUPLICATOR I3 MKII v5.4 - EXPANSION BOARD
This design is free, you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This design is distributed in the hope that it will be useful to people with the Wanhao Duplicator i3 Plus v5.4 3D Printer, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see Link to GNU Licence.
- ADVi3++ Firmware
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see Link to GNU Licence.
- Marlin 3D Printer Firmware
Marlin is published under the Link to Marlin GPL license because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork.
​
While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own.
-------------------------------------------------------------------------------
As mentioned above I DO NOT offer any warrantee or guarantee with this modification, every care has been taken to make the modification is safe & compatible as possible with the Wanhao Duplicator i3 Plus v5.4 3d Printer using ADVi3++ firmware.
-------------------------------------------------------------------------------