Skip to content

xboxoneresearch/ASPECT2-PCB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Functionality Description Tested / Working Notes
SPI Reading eMMC flash Could also support reading SPI NOR on series-family
POST POST-Code display STM32 renders codes to OLED display
JTAG Southbridge JTAG Devkit exclusive
I2C SMBus communication Requires bitbanging driver @ libaspect2 (TODO)
SWO ARM Single-Wire-Output No success, Devkit exclusive (?)
UART (KRNL) Kernel Debugging Devkit 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 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