Skip to content

xboxoneresearch/ASPECT2-PCB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

123 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 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