# Fixing the Unitree A1 Robot Dog Ethernet Port

So the two Ethernet ports on our A1 robot are broken when running some unstable RL algorithm experiments. And I was asked to fix them.

<figure><img src="/files/fC80rEvf1AiCrjLBSRHG" alt=""><figcaption><p>The dog. Note that the Ethernet ports are crippled</p></figcaption></figure>

## Disassembly

A1 is a bit more complicated compared to MIT Mini Cheetah. In order to take the top shell off, we need to remove:

* Screws on the top of the body
* Screws on the bottom side of the body
* Top half of the screws mounting the motor

I accidentally removed all of the screws mounting the rear motors, so the rear legs fall off.

<figure><img src="/files/5anUJfqaXXmxJtOHtZPn" alt=""><figcaption></figcaption></figure>

The signal cables are not very long, and thus I ripped off the connector. Fortunately, the signal pads and connector itself are not damaged, so I was able to solder it back.

<figure><img src="/files/EKwTUsgbaoPvdYvHXF5L" alt=""><figcaption></figcaption></figure>

## Components

<figure><img src="/files/ADMnQ0MzCooqjUdCSFVu" alt=""><figcaption><p>top shell taken off</p></figcaption></figure>

<figure><img src="/files/orDWzNk3oqbcz7jLZQsC" alt=""><figcaption><p>High level controller board</p></figcaption></figure>

<figure><img src="/files/Bz63rWVUwJgWU8VYfyuD" alt=""><figcaption><p>Power distribution board</p></figcaption></figure>

<figure><img src="/files/hAPacx7agjaGjJRTB5f8" alt=""><figcaption><p>Not sure what this board is for</p></figcaption></figure>

<figure><img src="/files/ZNLMtLwUP3XAz2jhzecH" alt=""><figcaption><p>Low level controller board</p></figcaption></figure>

To desolder and resolder the Ethernet port, we need to take the board out. In order to know which wire connects to where, I marked each connector with a unique marking with a Sharpie.

<figure><img src="/files/Kpkqypbc4wx990XjhE1C" alt=""><figcaption></figcaption></figure>

It's interesting to see that they conformal coated the entire board to make it waterproof.

<figure><img src="/files/GyzdjmPwDfj220JMvYFj" alt=""><figcaption><p>High level controller board taken out</p></figcaption></figure>

<figure><img src="/files/8nDI5ZshAzwHi2VCqT35" alt=""><figcaption><p>High level controller board, back side</p></figcaption></figure>

When taking out the low level controller board, pay special attention to the WiFi MHF4 connector. It is very fragile and easy to tear the pad off.

<figure><img src="/files/jhWlQQErlyYnOxdvpU1M" alt=""><figcaption><p>MHF4 connector</p></figcaption></figure>

<figure><img src="/files/zB15qsPWVPS6ogVl45kz" alt=""><figcaption><p>Similar marking on the low level controller board</p></figcaption></figure>

<figure><img src="/files/nljrMMy7wGjGlZ7IdJZH" alt=""><figcaption><p>Low level controller board taken out</p></figcaption></figure>

<figure><img src="/files/IYHyaOBHuNSoIubjmTEY" alt=""><figcaption><p>Low level controller board, back side</p></figcaption></figure>

## The Ethernet Jack

Unfortunately, our lab bought the wrong replacement Ethernet jack.

<figure><img src="/files/WHQZsJ5mg0WGRFfumvfx" alt=""><figcaption></figcaption></figure>

Found a similar enough Ethernet jack:

{% embed url="<https://www.digikey.com/en/products/detail/te-connectivity-amp-connectors/1734795-4/5264486>" %}

We still need to make a small modification to this part. Because the housing pin is wider and smaller on the A1 board footprint, we need to straighten the housing pin on the connector, and fold it.

<figure><img src="/files/oaxc4dyPtUM0hEY3cTDs" alt=""><figcaption><p>left side: before modification; right side: after modification</p></figcaption></figure>

<figure><img src="/files/b9yS1h1QdmnIYe3V2oQE" alt=""><figcaption><p>After modification it fits the footprint</p></figcaption></figure>

<figure><img src="/files/3NaB2cchdpY8Ov81J96q" alt=""><figcaption><p>Soldered and assebled</p></figcaption></figure>

## It worked

(at least I did not damage the rest of the components...)

<figure><img src="/files/dZw8j4iib6X5if7HhGfs" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tk233.gitbook.io/notes/mechanical/dog-stuff/fixing-the-unitree-a1-robot-dog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
