Build Instruction: Wire Map - ISS-Mimic/Mimic GitHub Wiki

Mimic Wire Map

We have most of the wiring included in our Fusion 360 CAD model, with labels, which is much easier to follow here: Fusion Public Link. Unfortunately Fusion free license doesn't let us share a downloadable link. If you want a downloadable copy of the model, ask us on discord, or through email and we will find a way. Eventually we will host the model somewhere, it is the High Fidelity model though and still in work and only 50% finished or so.

Mimic uses three microcontrollers to drive the 12 motors on the ISS model. Each of the 8 solar arrays are connected to the truss by a motor called the Beta Gimbal Assembly (BGA) which turns the array to track the sun. The entire outboard truss (each side has 4 arrays attached) is rotated by a motor called the Solar Alpha Rotary Joint (SARJ). The inboard radiators rotate about a joint called the Thermal Radiator Rotary Joint (TRRJ).

A fourth microcontroller is used to control any LEDs on the model (used on the IEAs in our version).

All of the microcontrollers connect to a raspberry Pi which sends all the data they need to control the model.

In our project, we use DC motors for all of the BGAs and SARJs and servo motors for the TRRJs. Each DC motor requires 6 connections: motor +/-, encoder +/-, and encoder data 1/2. The servos require 3 connections: power, ground, signal.

We typically use custom made printed circuit boards (PCBs) to reduce the number of wires involved in the model, making it look cleaner and reduce bad/loose connections which can affect performance.

Our HDMI shield circuit boards plug directly on top of the microcontrollers and route each signal to an HDMI cable which terminates at a custom HDMI breakout board before the slip ring:

After the slip ring, the wires are connected to another PCB called the Integrated Equipment Assembly (IEA) PCB , which has places to solder LEDs to and a connector space for attaching the motors.

Refer to the Bill of Materials and How to Order PCBs to order our custom PCBs.

None of these PCBs are strictly required for the project, but they really help ease the construction process and reduce potential electrical problems. The zip files linked are gerber files, which can be uploaded to a PCB "fab shop" who will produce and ship the circuit boards. There are tons of fab shops available, the ones we use most frequently are All PCB, JLCPCB, Seeedstudio, and Oshpark.

Regardless of using our custom PCBs, some motor shields will be required for all of the DC motors (one shield per microcontroller).

Solar Array Naming Convention

Alright guys first we need to have a little convo about how the ISS Solar Arrays are named. It's... not the best naming scheme in the world. I've been working the ISS program for 10 years and I still can't get the names right. But here we go...

The port (left side if you are behind the ISS facing the front) arrays all have even numbers (2 and 4). The starboard (right side if facing forward) arrays all have odd numbers (1 and 3). "Inboard" arrays (the arrays that are closer to the middle of the ISS) are labelled "A" and the "outboard" arrays (arrays that are on the opposite side from the inboard arrays) are labelled "B". Keep in mind that even though there are inboard and outboard arrays, they are all located on the "outboard truss". The entire part of the truss that rotates (P4,P5,P6 & S4,S5,S6) is considered the outboard truss. So array 2A is one of the port side inboard arrays. But it doesn't stop there, the 2 and 4 switch places on the same side of the truss. So 4A is the port, inboard, forward array and 4B is the port, outboard, aft facing array. Got it? No? Okay good you are one of us now.

The forward-facing side of the truss on the port side (array IDs are in red)

The aft-facing side of the truss on the port side

The forward-facing side of the truss on the starboard side

The aft-facing side of the truss on the starboard side

And here is the full diagram of rotating stuff and their angle conventions

Okay now that you are an expert on the solar array naming IDs you should know that we will use those IDs a lot. They will refer not only to the solar array but also the motor (BGA) that drives the array and the IEA board (circuit board that the motor connects to).

A basic overview of the wiring connections is shown below:

Mimic Wire Map

Mimic Wiring Model

And here is the overall wiring schematic:

image

And here is the Port and Starboard BGA controller wiring diagram (same on each side):

image

The diagram shows all the data connections, but if you use the Mimic Shield you only need to install the 8 wires between the Mimic Shield and the Motor Shield (shown at top of diagram), the two wires coming off the Mimic Shield to the Neopixel Controller, and the 4 external cables (two HDMI cables, one micro USB cable to the Metro M0, power cable to the Motor Shield)

The SARJ/TRRJ motor controller is the same and the BGA controllers except no Neopixel/Ground wires and fewer connections to the Motor Shield:

image

At the top of the model and inside the outboard truss, these are the wiring connections for the Port Outboard Truss:

image

And on the Starboard Outboard Truss (no difference between Port and Starboard wiring):

image

Here is a link to the wiring diagram.

Wire Connection List - (rely more on the above diagrams, the following connections may be outdated)

"inner" and "outer" motor pins refer to pin location on the motor shield, inner pins are nearer the center of the board.

Port BGA Controller

Note on IEA Connections

The IEA boards maintain color consistency throughout the build.

So 4A, 4B, 3A, and 3B will all have the same colors in the same pin connections. (Light Blue, Orange, Red Jumper, Black Jumper, Brown, Purple).

2A, 2B, 1A, and 1B will also have the same colors in the same pin connections. (Yellow, Dark Blue, Red, Black, Salmon, Grey).

The white slip ring wire is never used. The green slip ring wire is only used on the inboard connections. Three or four jumpers are needed on each pair of IEA PCBs

Inboard Slip Ring

2A

This image is from beneath the truss facing up (zenith in the ISS coordinate system). The screw terminal blocks on the IEA PCB should be "up" away from the radiator. So we are viewing these connections from the radiator side of the truss. The IEA PCB at the top of the image is the 4A IEA PCB and the bottom one is the 2A IEA PCB. In this image, I have hidden to the 4A connections from the slip ring for clarity.

So from the port SARJ slip ring, we will be making these connections:

Yellow => 2A IEA PCB Pin 1 [Motor 2 power inner]

Dark Blue => 2A IEA PCB Pin 2 [Motor 2 power outer]

Red => 2A IEA PCB Pin 3 [3.3V encoder power] (jumper to 4A Pin 3)

Black => 2A IEA PCB Pin 4 [Encoder ground] (jumper to 4A Pin 4)

Salmon => 2A IEA PCB Pin 5 [encoder 1 D3]

Grey => 2A IEA PCB Pin 6 [encoder 2 D2]

The white cable from the slip ring is not used and can be cut short or just left unconnected.

Additional connections:

So there are a few extra connections we need to make. Both 2A and 4A PCBs share the 3.3V and Ground lines, so you will need to twist an extra length of cable (jumper) to the same Pin 3 and Pin 4 connections on the 4A PCB. We also need to connect the 2A Pin 7 to 4A Pin 8 (neopixel data flows into 4A and then out into 2A and then out into 4B and then out into 2B).

Jumper => 2A IEA PCB Pin 7 [neopixel data jumper] (jumper to 4A Pin 8)

Jumper => 2A IEA PCB Pin 8 [neopixel data jumper] (jumper to 4B Pin 7) this cable will need to go all the way to the P6 truss IEA PCBs

4A

This image is the same from the 2A section but the 2A board and wires are hidden for clarity.

!VERY IMPORTANT! -> The pins will be oppositely numbered from the 2A board, so pin 1 is on the left in this view.

Again from the port SARJ slip ring, the remaining wires will be making these connections:

Light Blue => 4A IEA PCB Pin 1 [Motor 1 power inner]

Orange => 4A IEA PCB Pin 2 [Motor 1 power outer]

Brown => 4A IEA PCB Pin 5 [encoder 1 D1]

Purple => 4A IEA PCB Pin 6 [encoder 2 D0]

Green => 4A IEA PCB Pin 7 [neopixel data in]

Additional (non slip ring) connections:

Jumper => 4A IEA PCB Pin 3 [3.3V encoder power] (jumper to 2A Pin 3)

Jumper => 4A IEA PCB Pin 4 [Encoder ground] (jumper to 2A Pin 4)

Jumper => 4A IEA PCB Pin 8 [Neopixel data out] (jumper to 2A Pin 7)

Outboard Slip Ring

2B

From the port outboard slip ring, we will be making these connections:

Yellow => 2B IEA PCB Pin 1 [Motor 4 power inner]

Dark Blue => 2B IEA PCB Pin 2 [Motor 4 power outer]

Red => 2B IEA PCB Pin 3 [3.3V encoder power] (jumper to 4B Pin 3)

Black => 2B IEA PCB Pin 4 [Encoder ground] (jumper to 4B Pin 4)

Salmon => 2B IEA PCB Pin 5 [encoder 1 D12]

Grey => 2B IEA PCB Pin 6 [encoder 2 D11]

Additional (non slip ring) connections:

Jumper => 2B IEA PCB Pin 3 [3.3V encoder power] (jumper to 4B Pin 3)

Jumper => 2B IEA PCB Pin 4 [Encoder ground] (jumper to 4B Pin 4)

Jumper => 2B IEA PCB Pin 7 [Neopixel data out] (jumper to 4B Pin 8)

4B

Again from the port outboard slip ring, the remaining wires will be making these connections:

Light Blue => 4B IEA PCB Pin 1 [Motor 3 power inner]

Orange => 4B IEA PCB Pin 2 [Motor 3 power outer]

Brown => 4B IEA PCB Pin 5 [encoder 1 D7]

Purple => 4B IEA PCB Pin 6 [encoder 2 D8]

Additional (non slip ring) connections:

Jumper => 4B IEA PCB Pin 3 [3.3V encoder power] (jumper to 2B Pin 3)

Jumper => 4B IEA PCB Pin 4 [Encoder ground] (jumper to 2B Pin 4)

Jumper => 4B IEA PCB Pin 7 [Neopixel data out] (jumper to 2A Pin 8) long jumper from P4

Jumper => 4B IEA PCB Pin 8 [Neopixel data out] (jumper to 2B Pin 7)

HDMI Breakout Boards

Every single HDMI Breakout Board for the BGAs has the exact same connections, show below:

Facing the board, every HDMI Breakout Board should have the following connections:

Right side, starting from bottom: Light Blue, Orange, Purple, Brown, Black, Red

Left side, starting from bottom: Yellow, Dark Blue, Grey, Salmon, Green, White (white is never actually used, and green is only used on the inboard side, but no harm in connecting them anyway)

Stbd BGA Controller

Inboard Slip Ring

1A

M1 pwr inner => 1A IEA PCB Pin 1 [motor power] (light blue)

M1 pwr outer => 1A IEA PCB Pin 2 [motor power] (yellow)

3.3V => 1A IEA PCB Pin 3 [encoder power] (red)

Ground => 1A IEA PCB Pin 4 [encoder gnd] (black)

Pin D3 => 1A IEA PCB Pin 5 [encoder 1] (brown)

Pin D2 => 1A IEA PCB Pin 6 [encoder 2] (orange)

1A (previously labeled 3A) PCB Pin 8 => 3A (previously labeled 1A) IEA PCB Pin 7 [neopixel data]

3A Pin 8 (neopixel) => 3B IEA PCB Pin 7 (neopixel input). *** Note: Would prefer 3A Pin8 to 1B Pin 7, for cleaner wiring on the truss ***

3A

M2 pwr inner => 3A IEA PCB Pin 1 [motor power] (dark blue)

M2 pwr outer => 3A IEA PCB Pin 2 [motor power] (salmon)

To reduce wires needed, both motor boards should share the same encoder power lines, so connect the IEA PCBs together at these pins:

1A PCB Pin 3 => 3A IEA PCB Pin 3 [encoder power] (red)

1A PCB Pin 4 => 3A IEA PCB Pin 4 [encoder gnd] (black)

Pin D1 => 3A IEA PCB Pin 5 [encoder 1] (purple)

Pin D0 => 3A IEA PCB Pin 6 [encoder 2] (green)

LED Data => 3A IEA PCB Pin 7 [neopixel data] (grey)

Outboard Slip Ring

1B

M4 pwr inner => 1B IEA PCB Pin 1 [motor power] (dark blue)

M4 pwr outer => 1B IEA PCB Pin 2 [motor power] (yellow)

3.3V => 1B IEA PCB Pin 3 [encoder power] (red)

Ground => 1B IEA PCB Pin 4 [encoder gnd] (black)

Pin D8 => 1B IEA PCB Pin 5 [encoder 1] (grey)

Pin D7 => 1B IEA PCB Pin 6 [encoder 2] (salmon)

1A PCB Pin 8 => 1B IEA PCB Pin 7 [neopixel data] (this will cross between the outboard and inboard IEAs)

3B

M3 pwr inner => 3B IEA PCB Pin 1 [motor power] (light blue)

M3 pwr outer => 3B IEA PCB Pin 2 [motor power] (orange)

To reduce wires needed, both motor boards should share the same encoder power lines, so connect the IEA PCBs together at these pins:

3B PCB Pin 3 => 3B IEA PCB Pin 3 [encoder power] (red)

3B PCB Pin 4 => 3B IEA PCB Pin 4 [encoder gnd] (black)

Pin D12 => 3B IEA PCB Pin 5 [encoder 1] (purple)

Pin D11 => 3B IEA PCB Pin 6 [encoder 2] (green)

1B PCB Pin 8 => 3B IEA PCB Pin 7 [neopixel data]

SARJ/TRRJ Controller

PSARJ

M1 pwr inner => [motor power]

M1 pwr outer => [motor power]

3.3V => [encoder power]

Ground => [encoder gnd]

Pin D3 => [encoder 1]

Pin D2 => [encoder 2]

SSARJ

M2 pwr inner => [motor power]

M2 pwr outer => [motor power]

3.3V => [encoder power]

Ground => [encoder gnd]

Pin D8 => [encoder 1]

Pin D7 => [encoder 2]

PTRRJ

5V => [motor power]

Ground => [motor power]

D9 => [motor data]

STRRJ

5V => [motor power]

Ground => [motor power]

D10 => [motor data]

Neopixel Controller

Since the circuits are connected to each, we need to make sure they are all at the same ground voltage potential, so connect ground pins between the Port BGA, Stbd BGA, and Neopixel Controllers.

Ground => Port BGA Controller Ground

Ground => Stbd BGA Controller Ground

Now for the neopixel data:

Neopixel 1 => Port BGA Controller Neopixel Input Pin (if using our shield, otherwise Pin 7 on the IEA PCB)

Neopixel 2 => Stbd BGA Controller Neopixel Input Pin (if using our shield, otherwise Pin 7 on the IEA PCB)