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 get the STL https://www.thingiverse.com/thing:5825237
(if you get 404 not found by clicking the link above, try https://www.thingiverse.com/mareklew/designs and look on the list of my creations, if this also fails, open manually Thingiverse.com first and then re-click the link)
PrĂźfe Deine Mails 😉
Great job! Could you please send me files too?
Thanks 🙂
Check your mail.
Nice job! I’d like to have the file too… 🙂
Yes, it still exists
Check your mail.
Check your mail.
Check your mail.
Check your mail.
Check your mail.
Check your mail.
Check your mail.
Ich heiĂe Lewandowski, wäre nett aufzupassen, wenn man schon etwas haben mĂśchte, nicht wahr?
Check your mail. I don’t share the CAD files.
Check your mail. I don’t share the CAD files.
Heel mooi artikel. Kan ik het stel bestand ontvangen?
Bart
Hi,
nicely done, I have some prewired LPF2 plugs to open ended cables, so i will try to work out how to make a terminal connector that motors can plug onto.
From what you have said here, making the LPF2 hub think this is a dumb motor is as simple as making the connections with the resistors.
What is the case for sensors? Specifically I would like to be able to make cheap touch sensors, on/off, as the force sensor is more sophisticated than I need and I think adapting existing Lego touch sensors should be possible within the paage (NXT/EV2 at least).
However, I don’t know how to make the hub ‘see’ a touch sensor (well force sensor I guess but only returning min/max values). I presume it is not as easy as resistance connectors. Do you know?
Thanks
sensors need to communicate with the hub over serial connection. There’s no ‘dumb sensor mode’ on the LPF2 system.
Hi, your adapter is exactly what I need. Can you please share the circuit diagram?
Thanks
Google Philo Hurbain website, all schematics are there
Nice work! I want to build my own PF to Powered Up adapter, could you please send me files too?
Link to Thingiverse is in the article.
have you a link to print the he Powered Up connector
thanks\
George
Link to Thingiverse is in the article.
Dear Marek,
Great job!
Which type of printer have you use to print the connector?
It looks /seems to be/ very accurate.
Could you please share the stl file?
TIA,
Link to Thingiverse is in the article.
The printer is Prusa i3MK2.5, but the crux is in the design taking print limitations into consideration
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
Link to Thingiverse is in the article.
My name is spelt Lewandowski.
Good day,
unfortunately the link is not working
Ĺ tefan JiĹĂ
It works here… 🙂
link is dead (404). Could you reupload it
It is online, itâs just Thingiverse serving you 404 for a random reason.
Visit thingiverse.com manually and THEN follow the link, it should work.
Instead of using a resistor, you can instead connect pin 6 to pin 4 to make the motor identify as a train motor. This makes wiring simpler and still works mostly the same with connected apps.
Yes, with the accent on ‘mostly’. For example WeDo hub will reject such a motor.
Also, it will behave differently with a remote: with the resistor it’s press-on release-off control, with config as train motor the motor stays on.
Hi Marek
I’ve got an 80’s TEKNIK kit plus recent motors, and want to use them on an AZrduino based car.
I see your stl file for the plug is available but do you have a STL file for the socket
Sockets can be had for cheap from AliExpress etc.
Making them requires procuring spring contacts which isn’t easy thing to do.
Hello, can I connect the “Buggy Motor” this way?
If i remember correctly, the buggy motor is a rather powerful beast. The lpf2 system generally is built for 500mA per per port MAX. I’d say the buggy motor is likely to blow through that limit mercilessly. Original lpf2 motors have a polyfuse in line to protect the hubs. You could put a 500mA polyfuse in series with the buggy motor and see, how far can you get with this solution.
Hello. May you send the CAD files if possible?
Thanks!
Samir Mistry
Sorry, but no, I don’t intend to share the original CAD files.