Skip to content

Commit

Permalink
Merge pull request #7 from gaasedelen/master
Browse files Browse the repository at this point in the history
Adds USB-C based Xbox Serial USB Adapter (Rev D)
  • Loading branch information
Ernegien authored Aug 30, 2023
2 parents dbceafb + e947f1d commit e2a7b4c
Show file tree
Hide file tree
Showing 17 changed files with 54,377 additions and 17,042 deletions.
50 changes: 25 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@

# Original Xbox Serial USB Adapter

### Overview

This device allows for serial communication with an original Xbox and is primarily used for kernel debugging.

![Xbox Serial USB Adapter Image](images/adapter.png?raw=true "Xbox Serial USB Adapter")
For questions or support, contact xbox7887 in the [XboxDev on Discord](https://discord.gg/WxJPPyz).

![Xbox Serial USB Adapter Image, REV A](images/adapter.png?raw=true "Xbox Serial USB Adapter, REV A")

### Requirements
## Requirements

##### Hardware
### Hardware

Any original Xbox of any version (although versions 1.3-1.5 require LFRAME# reconnect and version 1.6 requires full LPC port rebuild, including LFRAME#).
Debug and development kits will work without modification, however, retail boxes need to use a hacked kernel (X2 5035 or iND 5004 for example) that initializes superio as well as have a 2x8 2.54mm pin header soldered to the LPC port.

##### Software
### Software

A Windows OS capable of running WinDbg; versions 4.0.0018.0 (XDK) or [6.12.0002.633](http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools/dbg_x86.msi) have been tested successfully.

[KiCad](http://kicad-pcb.org/download/) to work with the project files if needed.
Optionally, [KiCad 7.0](http://kicad-pcb.org/download/) if you need to work with the PCB project files.

### Usage
## Usage

Connect a micro USB cable from your PC to the serial adapter, then the IDC cable ends into the serial adapter and Xbox LPC port pin headers respectively, ensuring the correct alignment and orientation as shown in the image above. **Incorrect orientation may result in damage to the adapter and/or your Xbox, you have been warned!**
Connect a USB-C cable from your PC to the serial adapter, then the IDC cable ends into the serial adapter and Xbox LPC port pin headers respectively, ensuring the correct alignment and orientation as shown in the image above. **Incorrect orientation may result in damage to the adapter and/or your Xbox, you have been warned!**

Within WinDbg press `CTRL+K` to bring up the connection dialog and enter `115200` for the baud rate along with the `COM#` port as detected by your computer in device manager.

Expand All @@ -34,41 +33,42 @@ The adapter's blue RX LED indicates signals sent from the PC and the green TX LE

![WinDbg Runtime Image](images/windbg-runtime.png?raw=true "WinDbg Runtime")

### Components
## Components

Bold designators are the bare minimum required for basic functionality but stability may be questionable. The entire UART to USB circuit and/or LED output is optional and can be replaced with an external 3.3V UART to USB cable jumpered to J2 instead.

| Count | Part/Value | Description | Designators | Notes |
| - | - | - | - | - |
| 1 | 2x8 2.54mm | Pin Header | **JP1** | |
| 1 | 1x4 2.54mm | Pin Header | J2 | |
| 1 | 1x2 2.54mm | Pin Header | J3 | |
| 1 | Wuerth_629105150521 | USB Micro-B Connector | **J1** | |
| 1 | Stewart SS-52400-003 | USB-C Connector | **J1** | |
| 1 | 1x3 2.54mm | Pin Header | J2 | Optional UART breakout |
| 1 | SG5032CAN | 14.318MHz 5032 Crystal Oscillator | **Y1** | |
| 1 | LPC47M192 | SuperIO | **U1** | The LPC47M157 is also compatible |
| 1 | FT231XS | UART to USB | **U2** | |
| 2 | 27R | 0603 SMD Resistor | **R1**, **R3** | Filtering |
| 2 | 10k | 0603 SMD Resistor | **R2**, **R4** | Configuration pull-ups/downs |
| 1 | 470R | 0603 SMD Resistor | R5 | LED power dissipation |
| 1 | 1.2k | 0603 SMD Resistor | R6 | LED power dissipation |
| 2 | 10k | 0603 SMD Resistor | **R2**, **R4** | Configuration pull-ups/downs |
| 2 | 5.1k | 0603 SMD Resistor | **R7**, **R8** | USB-C Configuration pull-downs |
| 2 | 100R | 4x0603 SMD Resistor Network | **RN1**, **RN2** | Terminating resistors for longer LPC ribbons (10+ inches) |
| 1 | 33 Ohm | 0603 Ferrite Bead | **FB1** | Filtering, can be substituted with a 0 ohm resistor or solder bridge |
| 3 | 47pF | 0603 SMD Capacitor | C4, C6, C7 | Filtering |
| 3 | 47pF | 0603 SMD Capacitor | C6, C7 | Filtering |
| 6 | 10nF | 0603 SMD Capacitor | C3, **C8**, C9, **C10**, C12, C13 | Decoupling |
| 2 | 100nF | 0603 SMD Capacitor | C2, C11 | Decoupling |
| 1 | 4.7uF | 0603 SMD Capacitor | C1 | Bulk |
| 1 | 10uF | 0603 SMD Capacitor | C5 | Bulk |
| 1 | Green | 0603 SMD LED | D1 | |
| 1 | Blue | 0603 SMD LED | D2 | |

##### External Components
### External Components

| Count | Part/Value | Description | Designators | Notes |
| - | - | - | - | - |
| 1 | 2x8 2.54mm | Pin Header | N/A | Retail Xbox LPC Connector |
| 1 | 16 Wire 2.54mm | Female to Female IDC Ribbon Cable | N/A | Keep length under 18 inches for best results |
| 1 | Micro USB Cable | Cable | N/A | |
| 1 | USB-C Cable | Cable | N/A | |

### Retailers
### Component Retailers

* [Mouser](https://www.mouser.com/)
* [Digi-Key](https://www.digikey.com/)
Expand All @@ -77,11 +77,7 @@ Bold designators are the bare minimum required for basic functionality but stabi
* [AliExpress](https://www.aliexpress.com/)
* [JLCPCB](https://jlcpcb.com/)

### Support

Contact xbox7887 in [XboxDev on Discord](https://discord.gg/WxJPPyz).

### Reference
## Reference

![Schematic Image](images/schematic.png?raw=true "Schematic Runtime")

Expand All @@ -91,7 +87,11 @@ Contact xbox7887 in [XboxDev on Discord](https://discord.gg/WxJPPyz).

![PCB Bottom Image](images/pcb-bottom.png?raw=true "PCB Bottom Runtime")

### Copyright
![PCB Render](images/pcb-render.png?raw=true "PCB Render")

![Assembled PCBs](images/assembled.jpg?raw=true "Assembled PCBs")

## Copyright

Copyright Mike Davis 2019.

Expand Down
4 changes: 4 additions & 0 deletions fp-lib-table
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
(fp_lib_table
(version 7)
(lib (name "Library")(type "KiCad")(uri "${KIPRJMOD}/libraries/Library.pretty")(options "")(descr ""))
)
Binary file added gerbers/serial-usb-adapter-rev-d.zip
Binary file not shown.
Binary file added images/assembled.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/pcb-bottom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/pcb-copper.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/pcb-render.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/pcb-top.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/schematic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
101 changes: 101 additions & 0 deletions libraries/Library.pretty/SS-52400-003.kicad_mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
(footprint "SS-52400-003" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(property "Sheetfile" "serial-usb-adapter.kicad_sch")
(property "Sheetname" "")
(attr through_hole)
(fp_text reference "J1" (at -3.95 -7.7) (layer "F.SilkS")
(effects (font (size 0.8 0.8) (thickness 0.12)))
(tstamp 9a5c3bf7-12b9-43c1-b5e9-27c9f78a96fc)
)
(fp_text value "USB-C" (at 0 6.05) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d44ade64-bf4d-4e97-8e4b-a718162a5678)
)
(fp_text user "PCB EDGE" (at 5.3 3.3) (layer "F.Fab")
(effects (font (size 0.24 0.24) (thickness 0.06)))
(tstamp 21e6b84b-c154-48a0-af4d-03f041a26110)
)
(fp_text user "${REFERENCE}" (at 0 0 -180) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.1)))
(tstamp 67d0337d-f8db-445d-b6fc-fe09e3b302f8)
)
(fp_line (start -4.37 -6.8) (end -4.37 -6.1)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp ee105dc8-0f59-4748-bb8c-7f1bd6a9b033))
(fp_line (start -4.37 1.37) (end -4.37 3.45)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp e423e192-d014-465e-962e-8772e4af829b))
(fp_line (start -4.37 3.45) (end 4.37 3.45)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp 2f4e40ce-91ae-454c-af67-e46596190b1f))
(fp_line (start -3.22 -6.8) (end -4.37 -6.8)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp 7d63f127-21af-467d-9cba-12c183e86ff5))
(fp_line (start 3.22 -6.8) (end 4.37 -6.8)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp 5ba6ddb0-974e-40d1-9e80-4d6a4d04d6ca))
(fp_line (start 4.37 -6.8) (end 4.37 -6.1)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp 3c442427-c90d-48c4-80d1-45ef1308a845))
(fp_line (start 4.37 3.45) (end 4.37 1.37)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp ffaeaf5e-0fa3-4ca3-8b45-14bdc8642d87))
(fp_line (start -5.045 -7.05) (end -5.045 4.65)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4716023a-112e-441e-a03e-a9d6fa463af4))
(fp_line (start -5.045 4.65) (end 5.045 4.65)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 761efb20-7a4b-4b50-a5a1-576d93f2214c))
(fp_line (start -3.1 -7.98) (end -3.1 -7.05)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3d813582-7630-417e-8f1a-f05eda48c8ed))
(fp_line (start -3.1 -7.05) (end -5.045 -7.05)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 22873153-c4f1-4b98-a387-d4943b3598c4))
(fp_line (start 3.1 -7.98) (end -3.1 -7.98)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 361db689-3ad2-41e5-9531-f7d17b8ebf80))
(fp_line (start 3.1 -7.05) (end 3.1 -7.98)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2feb9a04-194a-41a7-9af6-548e0c9164e1))
(fp_line (start 5.045 -7.05) (end 3.1 -7.05)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7c5d3dd9-d193-412f-b710-bc710c3506e6))
(fp_line (start 5.045 4.65) (end 5.045 -7.05)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 619e8d00-bfad-4892-a1f8-d2bd4f811911))
(fp_line (start -4.37 -6.8) (end 4.37 -6.8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 496c0161-910e-496a-8934-245699e40bb8))
(fp_line (start -4.37 3.45) (end -4.37 -6.8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 8160f276-e5b9-4bef-aa07-bf6729eb93e7))
(fp_line (start -4.37 3.45) (end 7.5 3.45)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 98c97a5e-6b57-454c-8f09-fa0d7e939540))
(fp_line (start -4.37 4.4) (end -4.37 3.45)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp cb80d895-affa-4b20-bdb8-b6236e29870d))
(fp_line (start 4.37 -6.8) (end 4.37 4.4)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 8476f60b-2b3a-4f62-bdc2-a9e3a75eb12e))
(fp_line (start 4.37 4.4) (end -4.37 4.4)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 2683cdb0-53ff-46e7-b62c-a05c56e5e574))
(pad "A1" smd rect (at -2.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b1446148-0000-483e-805e-67b45886e662))
(pad "A2" smd rect (at -2.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 86631851-04ca-4262-b210-61d2a57492e3))
(pad "A3" smd rect (at -1.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0b94dfa6-720e-4df5-b085-f20c0a6bf1ac))
(pad "A4" smd rect (at -1.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c6f503bd-6f1c-45d5-b44b-9d102052e08b))
(pad "A5" smd rect (at -0.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 555d73f6-fa46-4260-a9d2-cfe1deabd0fb))
(pad "A6" smd rect (at -0.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 02c7607b-71b0-473b-aec0-6cf9a7b0992e))
(pad "A7" smd rect (at 0.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 091b4679-8064-400d-8076-7ce3e7d46fa3))
(pad "A8" smd rect (at 0.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0e0ead1e-0848-434c-8710-046672d52967))
(pad "A9" smd rect (at 1.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ffb44b5b-2e73-4544-978b-67908d65eac4))
(pad "A10" smd rect (at 1.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 57bf977b-965d-4d37-9d8e-720d1dd5f1e7))
(pad "A11" smd rect (at 2.25 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 770f763d-adef-47e4-835b-6b0bd8f6e2a2))
(pad "A12" smd rect (at 2.75 -7.13) (size 0.3 1.2) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 209a4998-fc44-4276-a6bb-ff39deec441c))
(pad "B1" thru_hole circle (at 2.8 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp e8cccfb8-b714-4f85-b614-7b990756aab2))
(pad "B2" thru_hole circle (at 2.4 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 52452f05-b7a3-4434-beca-74588bf73038))
(pad "B3" thru_hole circle (at 1.6 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp af85d14e-7d47-4408-af42-ea8b21a84644))
(pad "B4" thru_hole circle (at 1.2 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 63c77af3-b5cd-4701-852b-9d30d7c24780))
(pad "B5" thru_hole circle (at 0.8 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 5ab94afc-97be-47d9-b028-db58d2176602))
(pad "B6" thru_hole circle (at 0.4 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 12b4c5f5-9e8c-4ffb-af45-c514ee9f19a1))
(pad "B7" thru_hole circle (at -0.4 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp af59c45d-74c2-4287-bfad-b9ad37dcd0b3))
(pad "B8" thru_hole circle (at -0.8 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp bc18abee-0b23-4f82-bb80-deda5f53f62c))
(pad "B9" thru_hole circle (at -1.2 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp ea62590a-31ab-40d2-8ca3-f061dab8f734))
(pad "B10" thru_hole circle (at -1.6 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 1d45eebb-539f-4368-8dd3-0df9333f4ed1))
(pad "B11" thru_hole circle (at -2.4 -5.17) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp e1ddc295-1efd-4426-8d1d-9f161a1de04a))
(pad "B12" thru_hole circle (at -2.8 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp adc8bd74-3800-4d1a-879b-b67daff94a20))
(pad "G1" thru_hole circle (at 2 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp dd47fe38-a44b-4aa3-aadb-67e4982b7e8f))
(pad "G2" thru_hole circle (at -2 -5.88) (size 0.5 0.5) (drill 0.3) (layers "*.Cu" "*.Mask") (tstamp 7936d92b-f087-40f0-98fd-3070ef53f741))
(pad "G3" smd rect (at 0 -2.55) (size 0.2 1) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp e225a094-40ec-4f6b-9d81-7591bf1e4de8))
(pad "G4" smd rect (at 0 0.55) (size 0.2 1) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 25ed96a2-ed76-4675-aade-fcf521c5802f))
(pad "S1" thru_hole oval (at -4.27 -4.73) (size 1.05 2.1) (drill oval 0.65 1.25) (layers "*.Cu" "*.Mask") (tstamp 571517a0-c3f5-49cc-9bfe-0e18902e5bc3))
(pad "S2" thru_hole oval (at 4.27 -4.73) (size 1.05 2.1) (drill oval 0.65 1.25) (layers "*.Cu" "*.Mask") (tstamp 22ab36d1-a1b3-4a28-b900-852eb15bd6a7))
(pad "S3" thru_hole oval (at -4.27 0) (size 1.05 2.1) (drill oval 0.65 1.25) (layers "*.Cu" "*.Mask") (tstamp c518b798-4f40-4be3-b387-bf97b7b78d2f))
(pad "S4" thru_hole oval (at 4.27 0) (size 1.05 2.1) (drill oval 0.65 1.25) (layers "*.Cu" "*.Mask") (tstamp cb190cf2-0366-42c0-bde8-1f8cb622ea9b))
(model "${KIPRJMOD}/libraries/models/SS-52400-003/SS-52400-003.step"
(offset (xyz 0 1.5 0))
(scale (xyz 1 1 1))
(rotate (xyz -90 0 0))
)
)
24 changes: 24 additions & 0 deletions libraries/Library.pretty/SS-52400-003/License.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
BY ACCESSING OR USING THESE SYMBOLS & FOOTPRINTS ("MODELS"), YOU ARE ACKNOWLEDGING THAT YOU HAVE READ, FULLY UNDERSTAND AND AGREE TO THESE TERMS AND CONDITIONS (the "Agreement"), WHICH CONSTITUTE A BINDING AGREEMENT BETWEEN YOU AND SNAPEDA, INC., ENTERED INTO ON THE DATE OF SUCH OCCURRENCE (the "Effective Date"). IF YOU ARE ACCESSING OR USING THESE FILES ON BEHALF OF AN ENTITY, YOU REPRESENT THAT YOU HAVE THE RIGHT, AUTHORITY, AND CAPACITY TO BIND SUCH ENTITY TO THIS AGREEMENT AND HEREBY DO SO. IF YOU DO NOT AGREE WITH ANY OF THE TERMS OR CONDITIONS OF THIS AGREEMENT, YOU MUST NOT USE ANY PART OF THESE MODELS.

1. Design License

You and your sub-licensees are hereby licensed to design, manufacture, use and distribute, circuit board designs and circuit boards formed by combining Models provided by SnapEDA with other circuit elements of your choosing. You may then convey such combinations under licensing terms of your choice. 

Individual Models remain the intellectual property of SnapEDA, Inc. You shall not (and shall not permit or encourage any third party to) to do any of the following :

(a) sell, assign, lease, lend, rent, issue, sublicense, make available, or otherwise distribute to any third party, or publicly perform, display or communicate, the Models (for example, by uploading Models to another website or software application);

(b) remove, alter, or conceal, any copyright, trademark, or other proprietary rights notice or legend displayed or contained in the individual Models.

For further clarity, once integrated into a schematic design or PCB layout, Models may be modified freely for the purpose of designing a circuit board. 


2. Limitation of Liability

IN NO EVENT WILL SNAPEDA OR OUR SUBSIDIARIES, AGENTS, SUCCESSORS, THIRD PARTY PROVIDERS, AND/OR ANY OF THE FOREGOING ENTITIES' RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, REPRESENTATIVES, CUSTOMERS, SUPPLIERS, OR LICENSORS BE RESPONSIBLE OR LIABLE UNDER, OR OTHERWISE IN CONNECTION WITH THIS AGREEMENT, FOR:

(a) ANY CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES;
(b) ANY LOSS OF PROFITS, LOSS OF BUSINESS, LOSS OF REVENUE, OR LOSS OF ANTICIPATED SAVINGS;
(c) ANY LOSS OF, OR DAMAGE TO, DATA, REPUTATION, OR GOODWILL; AND/OR
(d) THE COST OF PROCURING ANY SUBSTITUTE GOODS OR SERVICES.

THE COMBINED AGGREGATE LIABILITY OF SNAPEDA AND ALL SNAPEDA CONTENT AFFILIATES UNDER, OR OTHERWISE IN CONNECTION WITH, THIS AGREEMENT SHALL NOT EXCEED THE TOTAL AMOUNT OF FEES RECEIVED BY SNAPEDA FROM YOU IN THE PREVIOUS TWELVE (12) MONTHS. THE FOREGOING EXCLUSIONS AND LIMITATIONS SHALL APPLY: (a) EVEN IF SNAPEDA OR ANY SNAPEDA CONTENT AFFILIATE HAS BEEN ADVISED, OR SHOULD HAVE BEEN AWARE, OF THE POSSIBILITY OF LOSSES, DAMAGES, OR COSTS; (b) EVEN IF ANY REMEDY IN THIS AGREEMENT FAILS OF ITS ESSENTIAL PURPOSE; AND (c) REGARDLESS OF THE THEORY OR BASIS OF LIABILITY (INCLUDING WITHOUT LIMITATION BREACH OF CONTRACT, TORT, NEGLIGENCE, AND STRICT LIABILITY).
Loading

0 comments on commit e2a7b4c

Please sign in to comment.