Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add atopile / KiCAD version of the electronics #61

Merged
merged 90 commits into from
Jun 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
9376250
WIP testing adding ato project for electronics
finger563 Mar 3, 2024
d74fc24
add generics module and update gitignore to ignore .ato folder
finger563 Mar 3, 2024
dbefd3c
added dependencies for parts in schematic to jlcpcb components
finger563 Mar 3, 2024
47a4aa7
feat(atopile): added header pins from jlcpcb
finger563 Mar 3, 2024
a4a5934
add esp32s3 mini 1 n4r2 from jlcpcb and add usb connectors and tps bu…
finger563 Mar 3, 2024
852d999
feat(atopile): WIP importing modules
finger563 Mar 3, 2024
09e23a2
fleshing out interfaces, components, and wiring
finger563 Mar 4, 2024
51673a4
felshing it out and trying to get power supply and battery measuremen…
finger563 Mar 4, 2024
d00afbb
continuing to flesh out ato
finger563 Mar 4, 2024
bec203a
wip: fleshing out ecad in atopile for fun
finger563 Mar 5, 2024
9158162
playing with kicad layout for esp-box-emu board. added pmod headers
finger563 Mar 5, 2024
4cadea1
fleshing out more wiring and reworked pmod into separate module
finger563 Mar 5, 2024
caa435c
test atopile github ci
finger563 Mar 5, 2024
82cddc2
fleshing out uSD card
finger563 Mar 5, 2024
aff577e
test other action
finger563 Mar 5, 2024
f98ce99
update case of file names
finger563 Mar 5, 2024
c000f43
update action to only run once on each pr commit instead of twice. al…
finger563 Mar 5, 2024
abe5e51
wip: fleshing out voltage ranges and adding led
finger563 Mar 7, 2024
55afe7f
undo change to espp
finger563 Mar 8, 2024
5e45722
remove lock
finger563 Apr 6, 2024
2f1cfac
add power and fix order
finger563 Jun 13, 2024
66936c5
update to support sd spi; flesh out pmod wiring
finger563 Jun 15, 2024
222b54f
flesh out pmod more and wire up i2c to it
finger563 Jun 15, 2024
dfd8e39
update charger to run off vbus (correctly) and to have programming re…
finger563 Jun 15, 2024
560e3fd
add comment
finger563 Jun 15, 2024
6b1db1b
comment update
finger563 Jun 15, 2024
16258d9
working on layout and ci
finger563 Jun 15, 2024
8a3f85f
Merge branch 'main' into feature/atopile-test
finger563 Jun 15, 2024
7085b99
working on buttons
finger563 Jun 16, 2024
5228e0b
WIP updating how buttons are setup and adding layouts for gbc start/s…
finger563 Jun 17, 2024
6365e53
udpate layout to have properly positioned buttons
finger563 Jun 17, 2024
5c94300
update layout
finger563 Jun 17, 2024
cdf1385
minor update
finger563 Jun 17, 2024
3eb3ee2
update headers (box) and layout
finger563 Jun 17, 2024
6e40b0d
update pcb some more
finger563 Jun 17, 2024
e59e2b4
WIP setting up project hierarchy for both box and box 3 and creating …
finger563 Jun 18, 2024
bd5d7d9
WIP fleshing out and redoing some of the design to add some footprint…
finger563 Jun 21, 2024
9b7e3d3
working on updated box emu designs
finger563 Jun 21, 2024
a12be43
adding layout files
finger563 Jun 21, 2024
e8ac317
copied + updated footprints
finger563 Jun 21, 2024
47ec4eb
minor updates
finger563 Jun 21, 2024
fbd622d
replace tabs with spaces (damn you vscode) and add missing B18 pin; a…
finger563 Jun 21, 2024
4d7ed3c
fixed wiring
finger563 Jun 21, 2024
04690d1
WIP fleshing out
finger563 Jun 21, 2024
32bef87
minor refactor
finger563 Jun 21, 2024
bbfce36
refactor connectors out of box and box-3 to enable better layout reuse
finger563 Jun 21, 2024
ca61b1c
remove and ignore kicad_prl files
finger563 Jun 21, 2024
cea651d
fix ato file so multiple entry points do not point to the same module
finger563 Jun 21, 2024
dde2de1
remove default and start fleshing out layouts. fixed issue with fab e…
finger563 Jun 22, 2024
dabbfc5
minor update
finger563 Jun 22, 2024
5e2c819
feat(ecad): flesh out routing in base pcb
finger563 Jun 22, 2024
5f44924
added membrane 3d to footprints
finger563 Jun 22, 2024
9fb430f
update so 3d models are configured correctly
finger563 Jun 23, 2024
f886186
update footprints to point to 3d model
finger563 Jun 23, 2024
65eddca
added config support for address to aw9523
finger563 Jun 23, 2024
725a64d
fix improper pin assignment / order that was copied from easyeda (whi…
finger563 Jun 23, 2024
251e754
configure the address of the aw9523
finger563 Jun 23, 2024
1708d1a
update layouts to use latest footprints and fixed volume buttons and …
finger563 Jun 23, 2024
8198c9b
update box-emu and box-3-emu borads
finger563 Jun 23, 2024
96847d5
removed comment since USBCConn has cc resistors
finger563 Jun 23, 2024
a2cb590
added pcie (box-3) and jst-ph (battery) connectors from jlcpcb
finger563 Jun 23, 2024
46bde69
add jst-ph 2 pin battery connector
finger563 Jun 23, 2024
c836f31
update gh deps
finger563 Jun 24, 2024
c6dd2ba
updated footprints for the pmod headers and moved step files into .3d…
finger563 Jun 24, 2024
5bb1d81
fix bug in drv which didnt have the right pin assignments
finger563 Jun 24, 2024
07594ea
WIP fleshing out more of the design
finger563 Jun 24, 2024
1960f41
cleanup a bunch of extra files
finger563 Jun 24, 2024
35c949f
added diode from vbus to 5v rail; added qwiic connector for easier de…
finger563 Jun 24, 2024
0f17ad9
update layouts
finger563 Jun 24, 2024
4fd5919
Revert "cleanup a bunch of extra files"
finger563 Jun 24, 2024
a8b24c5
re-did cleanup change which inadvertently erased start-select layout.…
finger563 Jun 24, 2024
bc0709e
fleshing out
finger563 Jun 24, 2024
0c10872
change drv2605 to tssop and update box-3 connector. flesh out impleme…
finger563 Jun 26, 2024
d34b972
fix box-3 connector pin configuration (lcsc / easyeda model was wrong…
finger563 Jun 26, 2024
5227a5b
fix volume button so that shield can be connected
finger563 Jun 26, 2024
559919f
fix orientation of 3d model to match footprint correctly
finger563 Jun 26, 2024
e859ab5
WIP layout
finger563 Jun 26, 2024
02949b3
fleshing out routing for base, box, and box-3
finger563 Jun 26, 2024
3e1080f
fix dpad and a/b button footprints to have mask and paste on pads
finger563 Jun 26, 2024
6c5550e
add step
finger563 Jun 27, 2024
cc64a11
wip layout
finger563 Jun 27, 2024
8307fef
fix led ato pin configuration; add some wiring for CTG / external pad…
finger563 Jun 28, 2024
f6b0dc7
update layout so vias take automatic net assignments (not sure why so…
finger563 Jun 29, 2024
83310c6
routed bypass caps
finger563 Jun 29, 2024
3189797
add some comments
finger563 Jun 29, 2024
5fccbf2
udpate dependent modules with latest base layout
finger563 Jun 29, 2024
3b142e1
add some step versions of footprints
finger563 Jun 29, 2024
3755975
updated layout to position silkscreens nicely
finger563 Jun 29, 2024
26e024d
revert unintentional change on this branch
finger563 Jun 29, 2024
b68a96e
update readme some
finger563 Jun 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/atopile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
on:
pull_request:
branches: [main]
push:
branches: [main]
release:
types: [published]
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:

- name: Checkout code
uses: actions/checkout@v4

- name: Build atopile project
uses: sethfischer/atopile-action@main
with:
path: 'ecad/' # atopile project directory

- name: Upload Combined Artifacts
uses: actions/upload-artifact@v4
with:
name: ecad_build
path: 'ecad/build' # atopile build directory

- name: Attach files to release
uses: softprops/action-gh-release@v2
if: ${{ github.event.release && github.event.action == 'published' }}
with:
files: |
ecad/build/*
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
submodules: 'recursive'

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/package_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
submodules: 'recursive'

Expand All @@ -27,7 +27,7 @@ jobs:
command: './patches.sh && idf.py build'

- name: Upload Build Outputs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: |
Expand All @@ -37,7 +37,7 @@ jobs:
build/flash_args

- name: Attach files to release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
if: ${{ github.event.release && github.event.action == 'published' }}
with:
files: |
Expand Down
5 changes: 5 additions & 0 deletions ecad/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
env/
.ato
fp-info-cache
*.kicad_prl
*.lck
53 changes: 53 additions & 0 deletions ecad/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,56 @@ The ESP-BOX-EMU contains a single circuit board with the following components:
These features are supported in two different versions of the electronics, targeting:
- ESP32-S3-Box
- ESP32-S3-Box-3

## Setup

``` sh
# one time steps on your machine
pipx install atopile
ato configure

# one time steps in this folder
ato install
```

## Build

``` sh
# build everything
ato build -t all

# build for ESP32-S3-BOX
ato build -b box-emu -t all

# build for ESP32-S3-BOX-3
ato build -b box-3-emu -t all
```

Note: if you make changes to the electronics design (.ato files), you'll likely
need to update the `box-emu-base` layout (or other affected layouts). After
updating the affected layouts, make sure you import them into their parent
modules. The tree is listed here:

* box-3-emu
* box-3-connector
* box-emu-base
* gbc-dpad
* gbc-start-select
* gbc-a-b-x-y
* gbc-a-b
* box-emu
* box-connector
* box-emu-base
* gbc-dpad
* gbc-start-select
* gbc-a-b-x-y
* gbc-a-b


## View

``` sh
ato view -b box-emu
# or
ato view -b box-3-emu
```
79 changes: 79 additions & 0 deletions ecad/ato-lock.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
poses:
schematic:
1215c762:
mirror_x: false
mirror_y: false
position:
x: 59.5
y: -127.0
rotation: 0
1a7d69e4:
mirror_x: false
mirror_y: false
position:
x: -1.0
y: -60.5
rotation: 0
259590ee:
mirror_x: false
mirror_y: false
position:
x: -1.5
y: -88.0
rotation: 0
345c82a9:
mirror_x: false
mirror_y: false
position:
x: 89.0
y: -0.5
rotation: 0
427607c7:
mirror_x: false
mirror_y: false
position:
x: 93.5
y: -30.0
rotation: 0
60c31b5b:
mirror_x: false
mirror_y: false
position:
x: -3.0
y: 31.5
rotation: 0
6e4b337c:
mirror_x: false
mirror_y: false
position:
x: 2.0
y: 107.0
rotation: 0
734fb737:
mirror_x: false
mirror_y: false
position:
x: 14.0
y: -29.5
rotation: 0
95025a74:
mirror_x: false
mirror_y: false
position:
x: -2.0
y: -398.8
rotation: 0
978a53d6:
mirror_x: false
mirror_y: false
position:
x: -1.0
y: 60.5
rotation: 0
b21f4dba:
mirror_x: false
mirror_y: false
position:
x: 56.0
y: -168.5
rotation: 0
28 changes: 28 additions & 0 deletions ecad/ato.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
ato-version: ^0.2.0
builds:
gbc-dpad:
entry: elec/src/gbc-dpad.ato:GbcDpad
gbc-start-select:
entry: elec/src/gbc-start-select.ato:GbcStartSelect
gbc-a-b:
entry: elec/src/gbc-a-b.ato:GbcAB
gbc-a-b-x-y:
entry: elec/src/gbc-a-b-x-y.ato:GbcABXY
box-emu-base:
entry: elec/src/box-emu-base.ato:BoxEmuBase
box-3-emu:
entry: elec/src/box-3-emu.ato:Box3Emu
box-emu:
entry: elec/src/box-emu.ato:BoxEmu
box-connector:
entry: elec/src/box-connector.ato:BoxConnector
box-3-connector:
entry: elec/src/box-3-connector.ato:Box3Connector
dependencies:
- generics ^v3.0.0
- tps63020dsjr ^v0.0.1
- usb-connectors ^v2.0.2
- name: qwiic-connectors
version_spec:
link_broken: true
path: elec/src/qwiic-connectors
Loading
Loading