Recently (years, not decades) LEGO introduced a new family of motors, sensors and control system – it was and is a bit confusing, but whether you think of LEGO WeDo, Control+, Powered Up, Spike Prime or the new Mindstorms 51515 it is all based around common backbone and, especially, a common connector – a 6-pole non-stackable plug.
Which, by sheer coincidence naturally, is completely incompatible with the old Power Functions connector from LEGO, who also claimed not to intend to manufacture an adapter cable because reasons.
Before someone jumps at me: I do understand WHY. And no, I don’t mean ‘to sell all motors again’. There is a technical reason not to make an adapter cable. You see, when the Power Functions system was designed, the main source of power was a dumb battery box. Even equipped with a cheaply made switch, a 6AA battery box can withstand all the power draw that stacked multiple motors can realistically take and it is the batteries that will fade before the box melts. With PoweredUp the world is a bit different. The basic box is a remote control receiver, so its outputs are electronically controlled. They have limited output power and for that reason it is necessary to limit the amount of power drains (motors) that can be connected to a channel. So they decided to limit it to one. I’d expect the lights to have a stackable plug though, as the LED lights take minimal power, but that’s a different story.
Okay, so what about that connector, or why am I writing this post?
The PoweredUp family has several very interesting motors with speed and position feedback, but at the same time it can power a simple motor like the old Power Functions M-Motor, with smooth power control even if without actual speed regulation. So it would be great to be able to just replace the PowerFunctions battery box with, say, Powered Up Technic Hub and gain smooth remote control of your existing creations, isn’t it? How about not needing to buy all motors over again? Sounds good? So why don’t we buy a few Powered Up connectors… wait, what, not available?
They are proprietary.
There has been some reverse-engineering going about and the most important findings can be read on the famous Philippe “Philo” Hurbain’s website, specifically here: https://www.philohome.com/wedo2reverse/connect.htm
What’s important for us is:
- The Powered Up system does not provide constant 9V output (so goodbye IR receivers and PF servos, you need the 9V supply!)
- The brick has direct motor output on pins 1 and 2 – we just need to connect the motor somehow
- To enable ‘dumb motor’ mode pin 3 (logic ground) needs to be connected directly to pin 6 and through 2.2kΩ resistor to pin 5 (‘WeDo 2.0 motor’)
Funny enough, even the dumb motors (like the WeDo 2.0 motor) have all 6 wires going to the motor and only there the identification wiring is done. In my case I opted to put all the components within the plug and lead out only the two power wires of the motor.
So I went ahead and designed a 3D-printable connector that is compatible with the Powered-Up sockets.
The size is exactly that of a LEGO connector, with one limitation: the LEGO connector has a cutout to let a folded cable leave the connector upwards making the depth when plugged exactly 1 stud. Since this connector needs to be soldered (LEGOs is crimped), it needs a tiny bit more space inside, so I opted to provide two exits for the motor cable: straight out or at 90° angle, you choose which way to build it depending on your preference and integration concept.
To make this connector you will need a very well calibrated and accurate 3D printer. The tolerances are tight and if the dimensions are even a bit off you will not be able to get the contact pins in.
This is how it looks like when printed. There’s a slot on the underside the purpose of which will be clear in a moment.
The electrical contacts are made out of pins pulled from a standard goldpin connector (0.6mm square pins). They are inserted from behind (from above in the picture) and need to be pushed in until they reach their stops. The ground pin does not have a stop, it should reach the front edge of the plug – ground shall make connection before other pins do.
Now the slot is there to put a drop of thin cyanoacrylate glue to secure pins in place. This is not a very strong fix, but will help pins from lifting. Don’t glue them just yet, as soldering will destroy the bond.
Now comes the hard part – and I do mean it’s really tricky to get it all soldered up. It’s tight. If you are not very proficient at it, it may be better to clip the back wall of the plug out.
From left to right: Motor A, Motor B, Ground, VCC (unused), ID1 (connected over 2.2kΩ to Ground), ID2 (connected directly to Ground). If you want your motor to act as if it was a train motor, connect ID1 to VCC directly, save the resistor.
Since the place is so scarce, I opted against some sort of a lid and instead sealed the plug with UV resin. This way there’s protection against shorts within the plug and the whole thing becomes more mechanically stable. And let’s face it: it’s easier to reprint the plug than to disassemble it without melting the plastic in the process.
Whether you replace a PF connector on a motor or – like I did – cut a chinese clone extension cable in half to make an PUP-PF adapter, you need to use the two middle wires. The outer wires carry 9V constant power, which is not available with PoweredUp control bricks.
If you splice this plug into an PF extension cable, best keep the polarity like in the photo above. This way a PF M-Motor will behave exactly like the WeDo 2.0 motor does (spin direction wise).
Voila. Now your WeDo / Technic / City hub will see your PF motor as a simple WeDo motor and you will be able to control it with your phone app or (City Hub) with a hand-held radio remote.
If you wish to try this yourself, just drop me a message.