Comma 3 Teardown, Inside The Comma Three Devkit

7 minute read

This thing is mad expensive… so I was a bit hesitant of opening it up and finding out that I broke something in the process of putting it back together. But, as EEVBlog’s own Dave Jones always says: “don’t turn it on, tear it apart!" So, I turned it on, used it a few times, drove 100+ miles with it, then carely powered it off and then tore it apart (gently…).

Opening The Comma 3

Back View: Closed up

–Turns out, this thing actually crazy simple to open up, it’s held together by 7 hex screws: 5 on the outer (connects the screen to the back plate) and 2 towards the middle-center (connects the backplate to the logic board) of the back case. Once you’ve taken out the screws DO NOT just yank the screen or the back plate off: you’ll risk damaging the ribbon cable that connects the screen from the logic board.

Screw heads required:

  • 3.5 mm hex: inner screws
  • 4 mm hex: outer screw
  • 6 mm phillips: heatsink (on logic board)
Screws Pulled OutTool

Screws Holding It Together

3.5mm screw (inner)

Instead, prop up the the screen just slightly from the side that isn’t glued and take some plastic tweazers and gently remove the ribbon cable from the logic board.

Display Connector to Logic Board

OLED Display

FrontBack

OLED Display

Ribbon Cable

There is no indication on what brand of OLED display the Comma 3 uses. It enclosed in a custom plastic case. Although, it seems to use a standard ribbon cable to connect to the display to the logic board. According to @geohot and his team, each Comma 3 is color-calibrated to the same white point. Whether these calibrations values are stored within the display’s firmware or the device itself is unknown, but you could actually buy these from comma.ai from their parts shop.

Display Specs

  • Resolution: 2160x1080 OLED

ABS Injection-Molded Plastic Enclosure

BackInside

Enclosure / Back Case

Inside: NFC Tag

The plastic backplate has an RFID NFC tag attached to the inside. The brand of the tag appears to be a version of the SMARTRAC Circus NFC tag. Scanning the tag with a generic NFC reader app will display the device’s serial number and other properties. This is probably used to identify the device during the building process.

NFC Scan

The Logic Board / Motherboard

The Logic Board: Back (https://comma.ai/shop/parts)

This device is comma.ai’s first fully customized device for the sole purpose of self-driving / autonomous driving. The mainboard is custom-built around the SOC and cameras on the board.

Specs

Sys Dump

  1comma@tici:/data/openpilot$ lscpu
  2Architecture:         aarch64
  3CPU op-mode(s):       32-bit, 64-bit
  4Byte Order:           Little Endian
  5CPU(s):               8
  6On-line CPU(s) list:  0-4
  7Off-line CPU(s) list: 5-7
  8Thread(s) per core:   1
  9Core(s) per socket:   2
 10Socket(s):            2
 11Vendor ID:            Qualcomm
 12Model:                12
 13Stepping:             0x7
 14CPU max MHz:          1689.6000
 15CPU min MHz:          300.0000
 16BogoMIPS:             38.40
 17L1d cache:            160 KiB
 18L1i cache:            160 KiB
 19L2 cache:             640 KiB
 20L3 cache:             2 MiB
 21Flags:                fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
 22
 23comma@tici:/data/openpilot$ mmcli -m 0
 24  -----------------------------------
 25  General  |                    path: /org/freedesktop/ModemManager1/Modem/0
 26           |               device id: ######################################
 27  -----------------------------------
 28  Hardware |            manufacturer: QUALCOMM INCORPORATED
 29           |                   model: QUECTEL Mobile Broadband Module
 30           |       firmware revision: EG25GGBR07A08M2G
 31           |          carrier config: Commercial-TMO_VoLTE
 32           | carrier config revision: 05010505
 33           |            h/w revision: 10000
 34           |               supported: gsm-umts, lte
 35           |                 current: gsm-umts, lte
 36           |            equipment id: #################
 37  -----------------------------------
 38  System   |                  device: /sys/devices/platform/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.1
 39           |                 drivers: option, qmi_wwan
 40           |                  plugin: quectel
 41           |            primary port: cdc-wdm0
 42           |                   ports: cdc-wdm0 (qmi), ttyUSB0 (qcdm), ttyUSB1 (gps),
 43           |                          ttyUSB2 (at), ttyUSB3 (at), wwan0 (net)
 44  -----------------------------------
 45  Numbers  |                     own: ##############
 46  -----------------------------------
 47  Status   |                    lock: sim-pin2
 48           |          unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (10), sim-puk2 (10)
 49           |                   state: connected
 50           |             power state: on
 51           |             access tech: lte
 52           |          signal quality: 63% (cached)
 53  -----------------------------------
 54  Modes    |               supported: allowed: 2g; preferred: none
 55           |                          allowed: 3g; preferred: none
 56           |                          allowed: 4g; preferred: none
 57           |                          allowed: 2g, 3g; preferred: 3g
 58           |                          allowed: 2g, 3g; preferred: 2g
 59           |                          allowed: 2g, 4g; preferred: 4g
 60           |                          allowed: 2g, 4g; preferred: 2g
 61           |                          allowed: 3g, 4g; preferred: 4g
 62           |                          allowed: 3g, 4g; preferred: 3g
 63           |                          allowed: 2g, 3g, 4g; preferred: 4g
 64           |                          allowed: 2g, 3g, 4g; preferred: 3g
 65           |                          allowed: 2g, 3g, 4g; preferred: 2g
 66           |                 current: allowed: 2g, 3g, 4g; preferred: 4g
 67  -----------------------------------
 68  Bands    |               supported: egsm, dcs, pcs, g850, utran-1, utran-4, utran-6, utran-5,
 69           |                          utran-8, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
 70           |                          eutran-7, eutran-8, eutran-12, eutran-13, eutran-18, eutran-19,
 71           |                          eutran-20, eutran-25, eutran-26, eutran-28, eutran-38, eutran-39,
 72           |                          eutran-40, eutran-41, utran-19
 73           |                 current: egsm, dcs, pcs, g850, utran-1, utran-4, utran-6, utran-5,
 74           |                          utran-8, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
 75           |                          eutran-7, eutran-8, eutran-12, eutran-13, eutran-18, eutran-19,
 76           |                          eutran-20, eutran-25, eutran-26, eutran-28, eutran-38, eutran-39,
 77           |                          eutran-40, eutran-41, utran-19
 78  -----------------------------------
 79  IP       |               supported: ipv4, ipv6, ipv4v6
 80  -----------------------------------
 81  3GPP     |                    imei: #################
 82           |           enabled locks: fixed-dialing
 83           |             operator id: 310260
 84           |           operator name: T-Mobile
 85           |            registration: home
 86  -----------------------------------
 87  3GPP EPS |    ue mode of operation: csps-1
 88           |     initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
 89           |      initial bearer apn: fast.t-mobile.com
 90           |  initial bearer ip type: ipv4v6
 91  -----------------------------------
 92  SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0
 93  -----------------------------------
 94  Bearer   |                   paths: /org/freedesktop/ModemManager1/Bearer/1
 95
 96comma@tici:/data/openpilot$ lsusb
 97Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 98Bus 001 Device 005: ID bbaa:ddcc
 99Bus 001 Device 004: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
100Bus 001 Device 002: ID 0000:0000
101Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The Front

The Motherboard: Front

It’s hard to distinguish what exactly the components are, but here are my guesses on what’s on this side of the board:

  • COTS M.2 NVMe Drive
  • WiFi Modem
  • Driver-monitoring camera + IR LEDs
  • STM32 MCU for the on-board Panda
  • MAXIM Audio Codec Chip
  • SMSC USB Controller + FTDI Chip
  • Various Voltage Regulatros
  • USIM Card Tray

The Back

The Logic Board: Back

The back of the board shows the custom heatsink, the two cameras, the large speaker, x2 WiFi antennas, and two USB-C ports. The OBD-C port is the one exposed through the heatsink.

  • 1 comma.ai’s custom OBD-C standard port
  • 1 USB-C 3.1 Gen 2 port

The orange PCB is actually a WiFi/Bluetooth antenna

Beneath the large speaker is anyone’s guess… Maybe a piezo speaker? Or a tweeter?

There are two a very thick PCB-looking part to the left and right of the board. Upon closer inspection they appear to be cellular antennas.

Right Side: Cellular Antenna

Left Side: Antenna + Speaker

The left antenna is under the speaker, so it’s difficult to distinguish what part number this is without removing it.

comma.ai wastes no space on this board. If you peek a little closer, sandwiched between the speaker and PCB, and right above the SIM card tray, there is the cellular module (in an RF enclosure). This is my guess, at least. Not entirely sure why comma.ai doesn’t just use the SOC’s LTE modem?

Quectel E-G25G LTE Modem

The Top

The Logic Board: Top

The comma 3 is hand-built for sure. From this angle you could see a few of probably many standoffs holding up various components, including the camera PCBs. You could also clearly see the GPS antenna. Oddly, it’s held up by 2 custom 3D-printed pieces (held up by more standoffs lol). I wonder how much they spend for standoffs?

Beneath

The Logic Board: Below

From the text on the orange PCB board, glued to the fan, is the shorter dual-band WiFi antenna.

The USB-C 3.1 Gen 2 connector is also clearly exposed from this angle. As well as more neat standoffs to hold up and angle the driver-monitoring camera.

Functional Results

source: https://comma.ai/

That’s it! Not too complicated of a device. A developer, or electronics enthusiast, would probably have tons of fun utilizing all aspects of the device. AND, the camera quality is pretty good. I’ve already driven with this thing over 400+ miles and can say it is a bliss to use. Will post some road-cam results in a separate post here!