BoardRepo electronics project sharing
100%
Open file
aspect2-pcb 7seg_display view

Imported from GitHub: xboxoneresearch/ASPECT2-PCB · commit 8519e05

Description

Facet2 FabA PCB Clone

README

Build PCBs Build firmware GitHub Tag

ASPECT2 PCB

Development board for Xbox One / Xbox Series consoles, based mostly on blurry PCB images.

Allows for POST-Code monitoring (via I2C) and reading flash via SPI.

On some development kits, there are more features available.

See Functionality for more infos

PCB - front PCB - front PCB - front

This repo contains:

Functionality

FunctionalityDescriptionTested / WorkingNotes
SPIReading eMMC flashCould also support reading SPI NOR on series-family
POSTPOST-Code displaySTM32 renders codes to OLED display
JTAGSouthbridge JTAGDevkit exclusive
I2CSMBus communicationRequires bitbanging driver @ libaspect2 (TODO)
SWOARM Single-Wire-OutputNo success, Devkit exclusive (?)
UART (KRNL)Kernel DebuggingDevkit exclusive
UART (SMC)SMC/SB Debugging (?)No success, likely Devkit exclusive

Software

There are two main repos with support software for this board.

  • dsmc-rs - A windows x64 tool that makes use of a proprietary DLL to read flash via SPI. Also supports reading Expected1SMCBLDigest from flash controller.
  • libaspect2 - Attempt at an open source library

Directory structure

|- Main Aspect2 PCB
├── eeprom
│   ├── Greybull_FabD+.xml - FT Prog template (official on-board FACET)
│   └── Facet2_fabA+.xml - FT Prog template (derived from onboard FTDI dump)
├── firmware - STM32 firmware
├── lib - additional KiCad symbols / footprints

Manufacturing / Development

PCB Stackup

  • 4 Layer board (for impedance control) - 1.6mm thickness
  • Stackup:
    • F.Cu: Signal
    • In1.Cu: Power (GND)
    • In2.Cu: Power (GND)
    • B.Cu: Signal

This PCB was designed with the target stackup of JLC04161H-3313 (JLCPCB). See JLCPCB - Impedance.

Manufacturing files

Generally, Github Pages hosts the most up-to-date manufacturing files. These are also available for download on the Releases-page.

Here is a list of the most important ones.

We recommend JLCPCB, due to the specific Layer-Stackup that was used.

JLCPCB MFG files

Software / plugins

Module bring-up

Before being able to communicate with the device, programming eeprom or regular usage, drivers need to be installed!

Programming the eeprom

  • Download & install drivers
  • Download & open FT Prog
  • Connect Aspect2 board
  • Click "Scan & Parse" to enumerate connected device (Magnifying glass icon or "Devices -> Scan & Parse")
  • Right-click on the found device, hit Apply template
  • Click Program (Lightning bolt icon or "Devices -> Program")
  • Click Program-button in the dialog box
  • Click Close-button, close FT Prog tool
  • Re-plug Aspect2 board

Programming the STM32 (POST Code display)

See firmware/ for detailed build & flash instructions.

Thanks

@emoose @OGXHarcroft @cactusduper @TorusHyperV @ShadowLAG @billy @craftbenmine @DonyPS3 @flynnyfoo @jacksomness @Pheeeenoom and everybody else helping and testing along the way

References