Hacking Your LEGO Mindstorms EV3 Kit: Connections
Mindstorms’ components consist of modules linked together. The motors connect to the Intelligent Brick but not directly—they use wires to link the power and data of both modules together. Those linkages are themselves fascinating. This chapter explores what’s up with those Mindstorms wires and demonstrates how to hack them into different configurations. Then, I describe some of the common methods Mindstorms hackers employ to control and connect components without using wires.
Mindstorms Wires Explained
Let’s begin by exploring all the nitty-gritty details of the standard Mindstorms wire. LEGO uses semiproprietary wires in its Mindstorms variants. I call them semiproprietary because they’re just a standard configuration (known in the business as RJ12) but with the tab off to one side, as shown in Figure 3.1. You literally could use RJ12s if those tabs were off-center. Since LEGO has seen fit to do it this way, however, we have to use our creativity to overcome this inconvenience.
FIGURE 3.1 Mindstorms cables’ off-center tabs are all that differentiate them from RJ12s.
First, however, let’s check out what you get in the EV3 set:
So to recap, the EV3 set includes four short cords, one long cord, and two in the middle. The cords can be swapped end-to-end and can be used with everything from motors to sensors. They’re truly universal in the Mindstorms world, meaning you only have to worry about length when you grab a wire.
Not surprisingly, these three sizes aren’t good for everyone, so some established suppliers have come up with different wire sets:
- HiTechnic’s NXT Extended Connector Cable Set (P/M NWS1000) includes six cables, ranging in length from 120mm (4.7-inch) to 900mm (35.4-inch). You can buy the set at hitechnic.com.
- Mindsensors’ Flexi-Cable pack (P/N FLEX-Nx) includes four cables: 200mm, 350mm, and 500mm just like regular LEGO cables. However, Mindsensors’ cables have thinner and more flexible insulation, allowing them to move around and bend more readily than LEGO’s stiffer wires. You can buy the Flexi-Cables at mindsensors.com.
Inside the Mindstorms Wire
So, what’s going on inside that black plastic insulation? It turns out there are six smaller wires inside, as shown in Figure 3.2.
- The blue wire is the SDA (serial data) wire, one-half of a two-wire data transfer protocol called I^2C. EV3 can transmit sensor data and commands through the I^2C bus.
- Yellow is the SCL (serial clock) wire, the other half of the protocol.
- Green is power, typically delivering either 3.3 or 5V from the EV3’s battery pack. You can use this wire to power electronic circuitry and add-on modules.
- Red is ground. Creating a circuit with the power pin and this ground yields 5V.
- Black is also ground. A circuit with this ground and the power pin yields 3.3V.
White is analog, transmitting analog sensor signals back to the EV3 Intelligent Brick.
FIGURE 3.2 The Mindstorms wire actually consists of six smaller wires.
Knowing the purpose of each wire helps you hack them, and it never hurts to understand what’s going on under the insulation.
Hacking Mindstorms Wires
Not unexpectedly, LEGO hackers have explored the wires and created their own variants to suit the needs of their projects. The following are a sampling of techniques you could employ.
Changing the Length of a Mindstorms Wire
This is an obvious one. How do you change the length of a Mindstorms wire? The following takes you through the steps, with Figure 3.3 guiding you along the process.
- Make a shorter wire: Cut the plug off one end, making sure to leave yourself a couple of inches of wire, and trim the remaining length down to the size you want. To make a longer wire, cut an end off two wires, so that their combined length equals the size you want.
- Carefully remove the outer black insulation and pull apart the six inner wires.
- Solder together each wire to its same-colored mate on the other side. (If you need to polish up your soldering skills, there’s a helpful how-to here: http://mightyohm.com/files/soldercomic/FullSolderComic_EN.pdf.)
- Insulate the individual wires with heat-shrink tubing, such as SparkFun P/N 9353. Then the combined wires should get a larger piece of tubing to keep them in check.
FIGURE 3.3 To alter a Mindstorms wire, just cut it apart and solder it back together.
Using a Breakout Board
Another way to access the inner workings of a Mindstorms wire is to use a breakout board. These are little circuit boards with Mindstorms-compatible plugs on them, allowing you to break out the six inner wires as separate pins.
A couple of variants are floating around; I like the Bricktronics Breakout Board, selling for only $4 from wayneandlayne.com. In Figure 3.4 I demonstrate how to light up an LED, connecting from the power pin to the red ground (5V) with a 470-ohm resistor protecting the LED from too much voltage.
FIGURE 3.4 To access the inner wires individually, use a breakout board.
Breadboard-to-PF Hybrid Wire
PF refers to Power Functions, a mostly compatible motorized set put out by LEGO and marketed alongside Mindstorms. In fact, the beams and other building elements in the EV3 set are identical to the parts sold with PF sets, making the two remarkably compatible. Not completely, however, because there is no way to control PF’s awesome DC motors using your EV3 brick. Two of PF’s four wires are 9V and GND, and the other two control the speed of the motor.
You still need a way to trigger the voltage—the 9V the Power Functions motors are expecting is more than the EV3 brick can handle. In Chapter 5, “Hacking LEGO II: Alternate Microcontrollers,” I show you how to use an Arduino microcontroller that not only can control those great PF motors, but also Mindstorms servos as well.
In the meantime, here’s how to make your own hybrid wire:
- Cut off one end of a Power Functions extension cable (LEGO P/N 8886). It has a male end and a female end, with the male end looking like a regular 2x2 LEGO brick, and the female end looking like the underside of a similar brick, allowing you to attach them together just like they were regular bricks.
Strip the four individual wires on the female end. They consist of Power, Control 1, Control 2, and Ground. Solder each wire to a male header pin (SparkFun P/N 12693) or a Molex plug like you see in Figure 3.5, which you can crimp on yourself, or buy a pigtail such as the SparkFun P/N 9920. Use heat shrink to cover all conductive surfaces.
FIGURE 3.5 A cable that connects LEGO’s proprietary PF connector to a breadboard.