mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-10 14:51:02 -08:00
Compare commits
131 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbe6d0196b | ||
|
|
6ab706c848 | ||
|
|
999dd77643 | ||
|
|
99210984e4 | ||
|
|
9ae60eeecf | ||
|
|
6ff61f4991 | ||
|
|
f4486ec191 | ||
|
|
ce6a40e554 | ||
|
|
09615832b3 | ||
|
|
0a9fc2a485 | ||
|
|
d555031b54 | ||
|
|
8efa79a407 | ||
|
|
59739b331d | ||
|
|
9f181d73a6 | ||
|
|
37788fe1a9 | ||
|
|
db6d23f3e4 | ||
|
|
6c8e77cba2 | ||
|
|
accd8f5730 | ||
|
|
7661b47a42 | ||
|
|
3e16378993 | ||
|
|
b51df45dec | ||
|
|
93bb2c6a85 | ||
|
|
5da426de99 | ||
|
|
07d5e8787e | ||
|
|
7a6a880cb9 | ||
|
|
1546fad676 | ||
|
|
785545c185 | ||
|
|
3f5bcd106a | ||
|
|
633a38d257 | ||
|
|
f044df2647 | ||
|
|
7eecf35eed | ||
|
|
b8df6e2598 | ||
|
|
e028c39470 | ||
|
|
592b7f68e8 | ||
|
|
99ef926fb7 | ||
|
|
5e9e096631 | ||
|
|
ab5c65f525 | ||
|
|
2b324eaaf2 | ||
|
|
ed41954f5a | ||
|
|
f79e0591df | ||
|
|
59a037925f | ||
|
|
6a6c8d8ff3 | ||
|
|
8c3f1890b2 | ||
|
|
eb69eb1454 | ||
|
|
4e76cfd154 | ||
|
|
752a65570f | ||
|
|
f8379f9e4b | ||
|
|
e7f2060886 | ||
|
|
5103426354 | ||
|
|
4285eefe62 | ||
|
|
02ac34ed3d | ||
|
|
5187c11395 | ||
|
|
169e858752 | ||
|
|
6760d1dc54 | ||
|
|
0fdfeb0f85 | ||
|
|
a30c74f494 | ||
|
|
c62f5a8cd9 | ||
|
|
653f7b6534 | ||
|
|
9b99f3d391 | ||
|
|
385d627a93 | ||
|
|
e7f37e2608 | ||
|
|
c3f5bbc93a | ||
|
|
ae12f5f9a5 | ||
|
|
73ba7747eb | ||
|
|
c76718b21e | ||
|
|
6c6e0aa5c3 | ||
|
|
7d64840128 | ||
|
|
e54e291bfd | ||
|
|
8a204162ae | ||
|
|
a153661457 | ||
|
|
efbeb549ee | ||
|
|
52c44d69c2 | ||
|
|
3375672ab5 | ||
|
|
a7efc0218d | ||
|
|
4bde27ba5c | ||
|
|
d7863ee7d0 | ||
|
|
9132a2891b | ||
|
|
9764d7dd52 | ||
|
|
3ef85f8d68 | ||
|
|
9f6df790aa | ||
|
|
6921c0f41d | ||
|
|
92541eb1f3 | ||
|
|
5543e1b4b1 | ||
|
|
58a8ba971c | ||
|
|
5b515d8767 | ||
|
|
17dc195b0d | ||
|
|
b651def518 | ||
|
|
e0b13fd9b3 | ||
|
|
22c4c7d860 | ||
|
|
9913d058fb | ||
|
|
182c988f3c | ||
|
|
34b2496030 | ||
|
|
74fa39faf3 | ||
|
|
23dc23cceb | ||
|
|
657d37a30a | ||
|
|
94bc2163ac | ||
|
|
9bf54f065b | ||
|
|
0186f0a45c | ||
|
|
2598eae1df | ||
|
|
aa601e1bee | ||
|
|
b136ad20e0 | ||
|
|
3e900e75a9 | ||
|
|
4ae4d62a64 | ||
|
|
fdd9ade442 | ||
|
|
3d58f29231 | ||
|
|
985ac8ac81 | ||
|
|
af389a7aa2 | ||
|
|
5723ca09c0 | ||
|
|
f6c77beeb3 | ||
|
|
0e44b2d4fa | ||
|
|
e52ae0c505 | ||
|
|
bf9f2fee66 | ||
|
|
9f9cbc313d | ||
|
|
e7bdaa5d44 | ||
|
|
157ae7a3c8 | ||
|
|
e456f032a0 | ||
|
|
748123d525 | ||
|
|
58882a4468 | ||
|
|
8024fe8d80 | ||
|
|
fb415a49c3 | ||
|
|
68d3e40966 | ||
|
|
53601dd48a | ||
|
|
84f01dfca8 | ||
|
|
449183a4da | ||
|
|
96a344d214 | ||
|
|
83f61faea6 | ||
|
|
4b3967dd18 | ||
|
|
5a4aedd5a7 | ||
|
|
c3f7b8d455 | ||
|
|
e9f21c5e79 | ||
|
|
15b091fb1e |
192
.github/workflows/build_push.yml
vendored
192
.github/workflows/build_push.yml
vendored
@@ -2,6 +2,8 @@ name: Build and Push
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
types: [opened, reopened]
|
||||
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
@@ -96,20 +98,24 @@ jobs:
|
||||
with:
|
||||
sketch-names: MarauderOTA.ino
|
||||
arduino-board-fqbn: esp32:esp32:esp32s2
|
||||
platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.3/package_esp32_dev_index.json
|
||||
|
||||
- name: Replace SD lib
|
||||
run: |
|
||||
rm -rf /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.0-rc1/libraries/SD
|
||||
cp -R /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32/libraries/SD /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.0-rc1/libraries/SD
|
||||
ls -la /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.0-rc1/libraries/SD
|
||||
rm -rf /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/SD
|
||||
cp -R /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32/libraries/SD /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/SD
|
||||
ls -la /home/runner/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/SD
|
||||
|
||||
- name: Modify platform.txt
|
||||
run: |
|
||||
echo "Chicken"
|
||||
for i in $(find /home/runner/.arduino15/packages/esp32/hardware/esp32/ -name "platform.txt"); do
|
||||
sed -i 's/compiler.c.elf.libs.esp32c3=/compiler.c.elf.libs.esp32c3=-zmuldefs /' "$i"
|
||||
sed -i 's/compiler.c.elf.libs.esp32s3=/compiler.c.elf.libs.esp32s3=-zmuldefs /' "$i"
|
||||
sed -i 's/compiler.c.elf.libs.esp32s2=/compiler.c.elf.libs.esp32s2=-zmuldefs /' "$i"
|
||||
sed -i 's/compiler.c.elf.libs.esp32=/compiler.c.elf.libs.esp32=-zmuldefs /' "$i"
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32c3
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32s3
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32s2
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32
|
||||
done
|
||||
@@ -118,15 +124,45 @@ jobs:
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=16M,PSRAM=enabled
|
||||
#platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
arduino-board-fqbn: esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
#extra-arduino-lib-install-args: "-zmuldefs"
|
||||
|
||||
- name: Rename Marauder Flipper bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
|
||||
|
||||
- name: Configure SD Serial for Flipper Zero SD Serial
|
||||
run: |
|
||||
pwd
|
||||
sed -i 's/^ \/\/#define WRITE_PACKETS_SERIAL/ #define WRITE_PACKETS_SERIAL/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder SD Serial for Flipper Zero WiFi Dev Board
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename Marauder Flipper SD Serial bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper_sd_serial.bin
|
||||
|
||||
- name: Remove SD Serial
|
||||
run: |
|
||||
pwd
|
||||
sed -i 's/^ #define WRITE_PACKETS_SERIAL/ \/\/#define WRITE_PACKETS_SERIAL/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Flipper Zero Multi Board
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=8M,PSRAM=enabled
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename Marauder Multi Board bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.esp32s3/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.esp32s3/esp32_marauder.multiboardS3.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for OG Marauder
|
||||
run: |
|
||||
pwd
|
||||
@@ -139,15 +175,15 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for OG Marauder
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
#platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
#extra-arduino-lib-install-args: "-zmuldefs"
|
||||
|
||||
- name: Rename OG Marauder bin
|
||||
run: |
|
||||
@@ -163,15 +199,15 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for v6 Marauder
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
#platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
#extra-arduino-lib-install-args: "-zmuldefs"
|
||||
|
||||
- name: Rename v6 Marauder bin
|
||||
run: |
|
||||
@@ -187,15 +223,15 @@ jobs:
|
||||
sed -i 's/^ \/\/#define MARAUDER_KIT/ #define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Marauder Kit
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
#platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
#extra-arduino-lib-install-args: "-zmuldefs"
|
||||
|
||||
- name: Rename Marauder Kit bin
|
||||
run: |
|
||||
@@ -211,19 +247,63 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Marauder Mini
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
#platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
#extra-arduino-lib-install-args: "-zmuldefs"
|
||||
|
||||
- name: Rename Marauder Mini bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for ESP32 LDDB
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define ESP32_LDDB/ #define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for ESP32 LDDB
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename Marauder ESP32 LDDB bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.esp32_lddb.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder Dev Board Pro
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_DEV_BOARD_PRO/ #define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Marauder Dev Board Pro
|
||||
uses: ArminJo/arduino-test-compile@v3.2.0
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename Marauder for Marauder Dev Board Pro
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.marauder_dev_board_pro.bin
|
||||
|
||||
- name: Display finished bins
|
||||
run: |
|
||||
@@ -236,6 +316,20 @@ jobs:
|
||||
path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload Flipper SD Serial Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.flipper_sd_serial.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper_sd_serial.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload MultiboardS3 Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.multiboardS3.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.esp32s3/esp32_marauder.multiboardS3.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload OG Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
@@ -264,6 +358,20 @@ jobs:
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload ESP32 LDDB Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.mini.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.esp32_lddb.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload Marauder Dev Board Pro Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.marauder_dev_board_pro.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.marauder_dev_board_pro.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
@@ -274,6 +382,7 @@ jobs:
|
||||
release_name: Release ${{ github.ref }}
|
||||
draft: true
|
||||
prerelease: false
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Flipper Asset
|
||||
id: upload-flipper-release-asset
|
||||
@@ -285,6 +394,31 @@ jobs:
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
|
||||
asset_name: esp32_marauder.flipper.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Flipper SD Serial Asset
|
||||
id: upload-flipper-sd-serial-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper_sd_serial.bin
|
||||
asset_name: esp32_marauder.flipper_sd_serial.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload MultiboardS3 Asset
|
||||
id: upload-mutliboardS3-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.esp32s3/esp32_marauder.multiboardS3.bin
|
||||
asset_name: esp32_marauder.mutliboardS3.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload OG Asset
|
||||
id: upload-og-release-asset
|
||||
@@ -296,6 +430,7 @@ jobs:
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.og.bin
|
||||
asset_name: esp32_marauder.og.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload v6 Asset
|
||||
id: upload-v6-release-asset
|
||||
@@ -307,6 +442,7 @@ jobs:
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
|
||||
asset_name: esp32_marauder.v6.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Kit Asset
|
||||
id: upload-kit-release-asset
|
||||
@@ -318,6 +454,7 @@ jobs:
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.kit.bin
|
||||
asset_name: esp32_marauder.kit.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Mini Asset
|
||||
id: upload-mini-release-asset
|
||||
@@ -329,3 +466,28 @@ jobs:
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
|
||||
asset_name: esp32_marauder.mini.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload ESP32 LDDB Asset
|
||||
id: upload-esp32-lddb-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.esp32_lddb.bin
|
||||
asset_name: esp32_marauder.esp32_lddb.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Marauder Dev Board Pro Asset
|
||||
id: upload-marauder-dev-board-pro-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.marauder_dev_board_pro.bin
|
||||
asset_name: esp32_marauder.marauder_dev_board_pro.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
|
||||
.vscode/arduino.json
|
||||
.vscode/c_cpp_properties.json
|
||||
esp32_marauder/.vscode/settings.json
|
||||
|
||||
24
.gitmodules
vendored
Normal file
24
.gitmodules
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
[submodule "esp32_marauder/libraries/lv_arduino"]
|
||||
path = esp32_marauder/libraries/lv_arduino
|
||||
url = git@github.com:lvgl/lv_arduino.git
|
||||
[submodule "esp32_marauder/libraries/LinkedList"]
|
||||
path = esp32_marauder/libraries/LinkedList
|
||||
url = git@github.com:ivanseidel/LinkedList.git
|
||||
[submodule "esp32_marauder/libraries/TFT_eSPI"]
|
||||
path = esp32_marauder/libraries/TFT_eSPI
|
||||
url = git@github.com:justcallmekoko/TFT_eSPI.git
|
||||
[submodule "esp32_marauder/libraries/JPEGDecoder"]
|
||||
path = esp32_marauder/libraries/JPEGDecoder
|
||||
url = git@github.com:Bodmer/JPEGDecoder.git
|
||||
[submodule "esp32_marauder/libraries/NimBLE-Arduino"]
|
||||
path = esp32_marauder/libraries/NimBLE-Arduino
|
||||
url = git@github.com:h2zero/NimBLE-Arduino.git
|
||||
[submodule "esp32_marauder/libraries/Adafruit_NeoPixel"]
|
||||
path = esp32_marauder/libraries/Adafruit_NeoPixel
|
||||
url = git@github.com:adafruit/Adafruit_NeoPixel.git
|
||||
[submodule "esp32_marauder/libraries/ArduinoJson"]
|
||||
path = esp32_marauder/libraries/ArduinoJson
|
||||
url = git@github.com:bblanchon/ArduinoJson.git
|
||||
[submodule "esp32_marauder/libraries/SwitchLib"]
|
||||
path = esp32_marauder/libraries/SwitchLib
|
||||
url = git@github.com:justcallmekoko/SwitchLib.git
|
||||
BIN
FlashFiles/FlipperZeroDevBoard/boot_app0.bin
Normal file
BIN
FlashFiles/FlipperZeroDevBoard/boot_app0.bin
Normal file
Binary file not shown.
BIN
FlashFiles/FlipperZeroDevBoard/esp32_marauder.ino.bootloader.bin
Normal file
BIN
FlashFiles/FlipperZeroDevBoard/esp32_marauder.ino.bootloader.bin
Normal file
Binary file not shown.
BIN
FlashFiles/FlipperZeroDevBoard/esp32_marauder.ino.partitions.bin
Normal file
BIN
FlashFiles/FlipperZeroDevBoard/esp32_marauder.ino.partitions.bin
Normal file
Binary file not shown.
BIN
FlashFiles/FlipperZeroMultiBoardS3/boot_app0.bin
Normal file
BIN
FlashFiles/FlipperZeroMultiBoardS3/boot_app0.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
PCBs/FlipperZero/WiFi-Devboard-Pro/BOM.ods
Normal file
BIN
PCBs/FlipperZero/WiFi-Devboard-Pro/BOM.ods
Normal file
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model 3220-10-0300-00
|
||||
#/13184465/987070/2.49/10/3/Connector
|
||||
DEF 3220-10-0300-00 J 0 30 Y Y 1 F N
|
||||
F0 "J" 750 300 50 H V L CNN
|
||||
F1 "3220-10-0300-00" 750 200 50 H V L CNN
|
||||
F2 "322010030000" 750 100 50 H I L CNN
|
||||
F3 "http://www.cnctech.us/pdfs/3220-XX-0300-00-TR_.PDF" 750 0 50 H I L CNN
|
||||
F4 "Conn Shrouded Header (4 Sides) HDR 10 POS 1.27mm Solder ST SMD" 750 -100 50 H I L CNN "Description"
|
||||
F5 "5.45" 750 -200 50 H I L CNN "Height"
|
||||
F6 "CNC Tech" 750 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "3220-10-0300-00" 750 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "" 750 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "" 750 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "3220-10-0300-00" 750 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/3220-10-0300-00/cnc-tech-llc?region=nac" 750 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 750 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 750 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X 1 1 0 0 200 R 50 50 0 0 P
|
||||
X 2 2 900 0 200 L 50 50 0 0 P
|
||||
X 3 3 0 -100 200 R 50 50 0 0 P
|
||||
X 4 4 900 -100 200 L 50 50 0 0 P
|
||||
X 5 5 0 -200 200 R 50 50 0 0 P
|
||||
X 6 6 900 -200 200 L 50 50 0 0 P
|
||||
X 7 7 0 -300 200 R 50 50 0 0 P
|
||||
X 8 8 900 -300 200 L 50 50 0 0 P
|
||||
X 9 9 0 -400 200 R 50 50 0 0 P
|
||||
X 10 10 900 -400 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 700 100 700 -500 200 -500 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,47 @@
|
||||
(module "322010030000" (layer F.Cu)
|
||||
(descr "3220-10-0300-00-1")
|
||||
(tags "Connector")
|
||||
(attr smd)
|
||||
(fp_text reference J** (at 0.000 -0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0.000 -0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "322010030000" (at 0.000 -0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -6.35 -2.5) (end 6.35 -2.5) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 6.35 -2.5) (end 6.35 2.5) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 6.35 2.5) (end -6.35 2.5) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -6.35 2.5) (end -6.35 -2.5) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -7.35 -4.15) (end 7.35 -4.15) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 7.35 -4.15) (end 7.35 4.15) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 7.35 4.15) (end -7.35 4.15) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -7.35 4.15) (end -7.35 -4.15) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -3.4 -2.5) (end -6.35 -2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -6.35 -2.5) (end -6.35 2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -6.35 2.5) (end -3.4 2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -2.6 3.6) (end -2.6 3.6) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -2.5 3.6) (end -2.5 3.6) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start 3.4 -2.5) (end 6.35 -2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 6.35 -2.5) (end 6.35 2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 6.35 2.5) (end 3.4 2.5) (layer F.SilkS) (width 0.2))
|
||||
(fp_arc (start -2.55 3.6) (end -2.600 3.6) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(fp_arc (start -2.55 3.6) (end -2.500 3.6) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(pad 1 smd rect (at -2.540 1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -2.540 -1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -1.270 1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at -1.270 -1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 5 smd rect (at 0.000 1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 6 smd rect (at 0.000 -1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 7 smd rect (at 1.270 1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at 1.270 -1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 9 smd rect (at 2.540 1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 10 smd rect (at 2.540 -1.765 0) (size 0.650 2.770) (layers F.Cu F.Paste F.Mask))
|
||||
(model 3220-10-0300-00.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,51 @@
|
||||
(module "503398-1892" (layer F.Cu)
|
||||
(descr "503398-1892")
|
||||
(tags "Connector")
|
||||
(attr smd)
|
||||
(fp_text reference J** (at 5.996 8.167) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 5.996 8.167) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "503398-1892" (at 5.996 8.167) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start 0 0) (end 0 14.05) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 0 14.05) (end 13.1 14.05) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 13.1 14.05) (end 13.1 0) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 0 0) (end 2.849 0) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 13.1 0) (end 12.474 0) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 12.474 0) (end 12.474 2.42) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 12.474 2.42) (end 3.554 2.42) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 2.849 0) (end 3.554 2.42) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 0 0) (end 2.849 0) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 2.849 0) (end 3.554 2.42) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 3.554 2.42) (end 12.109 2.42) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 13.1 3.65) (end 13.1 10.65) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 0 2.65) (end 0 10.648) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 13.1 0) (end 12.474 0) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 7.5 14.05) (end 12.3 14.05) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 3.15 14.05) (end 5.8 14.05) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 0.74 14.05) (end 1.6 14.05) (layer F.SilkS) (width 0.2))
|
||||
(fp_circle (center 4.116 0.356) (end 4.116 0.41057) (layer F.SilkS) (width 0.2))
|
||||
(pad 1 smd rect (at 4.17 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 5.27 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at 6.37 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at 7.47 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 5 smd rect (at 8.57 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 6 smd rect (at 9.67 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 7 smd rect (at 10.77 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at 11.87 1.4 0) (size 0.7 1.1) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 9 smd rect (at 2.38 13.865 0) (size 0.9 0.93) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 10 smd rect (at 6.645 13.94 90) (size 0.78 1.05) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 11 smd rect (at 13.03 12.665 0) (size 0.7 3.33) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 12 smd rect (at 12.95 1.9 0) (size 0.86 2.8) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 13 smd rect (at 0.29 1.415 0) (size 1.14 1.83) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 14 smd rect (at 0.07 12.665 0) (size 0.7 3.33) (layers F.Cu F.Paste F.Mask))
|
||||
(model 503398-1892.stp
|
||||
(at (xyz 0.25787402325728 -0.31968503486453 0.02362204818275))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
35
PCBs/FlipperZero/WiFi-Devboard-Pro/Libraries/503398-1892.lib
Normal file
35
PCBs/FlipperZero/WiFi-Devboard-Pro/Libraries/503398-1892.lib
Normal file
@@ -0,0 +1,35 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model 503398-1892
|
||||
#/269057/987070/2.49/10/4/Connector
|
||||
DEF 503398-1892 J 0 30 Y Y 1 F N
|
||||
F0 "J" 1550 300 50 H V L CNN
|
||||
F1 "503398-1892" 1550 200 50 H V L CNN
|
||||
F2 "503398-1892" 1550 100 50 H I L CNN
|
||||
F3 "http://www.molex.com/webdocs/datasheets/pdf/en-us//5033981892_MEMORY_CARD_SOCKET.pdf" 1550 0 50 H I L CNN
|
||||
F4 "MicroSD SMT Push-Push 1.28mm height MicroSD SMT Push-Push 1.28mm height" 1550 -100 50 H I L CNN "Description"
|
||||
F5 "" 1550 -200 50 H I L CNN "Height"
|
||||
F6 "Molex" 1550 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "503398-1892" 1550 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "538-503398-1892" 1550 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/Molex/503398-1892?qs=b0v8CoHHvSMxV%252BW12iKaSg%3D%3D" 1550 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 1550 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 1550 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 1550 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 1550 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X DAT2 1 0 0 200 R 50 50 0 0 P
|
||||
X CD/DAT3 2 0 -100 200 R 50 50 0 0 P
|
||||
X CMD 3 0 -200 200 R 50 50 0 0 P
|
||||
X VDD 4 0 -300 200 R 50 50 0 0 P
|
||||
X CLK 5 0 -400 200 R 50 50 0 0 P
|
||||
X VSS 6 1700 0 200 L 50 50 0 0 P
|
||||
X DAT0 7 1700 -100 200 L 50 50 0 0 P
|
||||
X DAT1 8 1700 -200 200 L 50 50 0 0 P
|
||||
X DETECT_LEVER 9 1700 -300 200 L 50 50 0 0 P
|
||||
X DETECT_SWITCH 10 1700 -400 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 1500 100 1500 -500 200 -500 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,29 @@
|
||||
(module "CAPC1005X55N" (layer F.Cu)
|
||||
(descr "CC0402")
|
||||
(tags "Capacitor")
|
||||
(attr smd)
|
||||
(fp_text reference C** (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "CAPC1005X55N" (at 0 0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -0.91 -0.46) (end 0.91 -0.46) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 0.91 -0.46) (end 0.91 0.46) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 0.91 0.46) (end -0.91 0.46) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.91 0.46) (end -0.91 -0.46) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(pad 1 smd rect (at -0.46 0 0) (size 0.6 0.62) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 0.46 0 0) (size 0.6 0.62) (layers F.Cu F.Paste F.Mask))
|
||||
(model CC0402KRX7R7BB104.stp
|
||||
(at (xyz -0.020472440193957 -0.011023622094177 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz -90 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,29 @@
|
||||
(module "CAPC1005X60N" (layer F.Cu)
|
||||
(descr "CL05A105KA5NQNC")
|
||||
(tags "Capacitor")
|
||||
(attr smd)
|
||||
(fp_text reference C** (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "CAPC1005X60N" (at 0 0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -0.92 -0.47) (end 0.92 -0.47) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 0.92 -0.47) (end 0.92 0.47) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 0.92 0.47) (end -0.92 0.47) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.92 0.47) (end -0.92 -0.47) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(pad 1 smd rect (at -0.46 0 0) (size 0.62 0.64) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 0.46 0 0) (size 0.62 0.64) (layers F.Cu F.Paste F.Mask))
|
||||
(model CL05A105KA5NQNC.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,30 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model CC0402KRX7R7BB104
|
||||
#/319043/987070/2.49/2/4/Capacitor
|
||||
DEF CC0402KRX7R7BB104 C 0 30 Y Y 1 F N
|
||||
F0 "C" 350 250 50 H V L CNN
|
||||
F1 "CC0402KRX7R7BB104" 350 150 50 H V L CNN
|
||||
F2 "CAPC1005X55N" 350 50 50 H I L CNN
|
||||
F3 "http://www.datasheets360.com/pdf/-5354154806277341459" 350 -50 50 H I L CNN
|
||||
F4 "Cap 100nF 16V 0402 SMD 10% X7R Phycomp 100nF Multilayer Ceramic Capacitor (MLCC) 16 V dc +/-10% X7R dielectric Standard max op. temp. +125C" 350 -150 50 H I L CNN "Description"
|
||||
F5 "0.55" 350 -250 50 H I L CNN "Height"
|
||||
F6 "KEMET" 350 -350 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "CC0402KRX7R7BB104" 350 -450 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "603-CC402KRX7R7BB104" 350 -550 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/YAGEO/CC0402KRX7R7BB104?qs=AgBp2OyFlx%252BSOyhfyS7hpw%3D%3D" 350 -650 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "CC0402KRX7R7BB104" 350 -750 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/cc0402krx7r7bb104/yageo?region=nac" 350 -850 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 350 -950 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 350 -1050 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X ~ 1 0 0 200 R 50 50 0 0 P
|
||||
X ~ 2 500 0 200 L 50 50 0 0 P
|
||||
P 2 0 1 6 220 100 220 -100 N
|
||||
P 2 0 1 6 280 100 280 -100 N
|
||||
P 2 0 1 6 200 0 220 0 N
|
||||
P 2 0 1 6 280 0 300 0 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,30 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model CL05A105KA5NQNC
|
||||
#/1601150/987070/2.49/2/3/Capacitor
|
||||
DEF CL05A105KA5NQNC C 0 30 Y Y 1 F N
|
||||
F0 "C" 350 250 50 H V L CNN
|
||||
F1 "CL05A105KA5NQNC" 350 150 50 H V L CNN
|
||||
F2 "CAPC1005X60N" 350 50 50 H I L CNN
|
||||
F3 "https://www.arrow.com/en/products/cl05a105ka5nqnc/samsung-electro-mechanics" 350 -50 50 H I L CNN
|
||||
F4 "Cap Ceramic 1uF 25V X5R 10% Pad SMD 0402 85C T/R" 350 -150 50 H I L CNN "Description"
|
||||
F5 "0.6" 350 -250 50 H I L CNN "Height"
|
||||
F6 "Samsung Electro-Mechanics" 350 -350 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "CL05A105KA5NQNC" 350 -450 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "187-CL05A105KA5NQNC" 350 -550 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/Samsung-Electro-Mechanics/CL05A105KA5NQNC?qs=X6jEic%2FHinDIeFgZnm60Lw%3D%3D" 350 -650 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "CL05A105KA5NQNC" 350 -750 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/cl05a105ka5nqnc/samsung-electro-mechanics?region=europe" 350 -850 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 350 -950 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 350 -1050 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X ~ 1 0 0 200 R 50 50 0 0 P
|
||||
X ~ 2 500 0 200 L 50 50 0 0 P
|
||||
P 2 0 1 6 220 100 220 -100 N
|
||||
P 2 0 1 6 280 100 280 -100 N
|
||||
P 2 0 1 6 200 0 220 0 N
|
||||
P 2 0 1 6 280 0 300 0 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,30 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model CL05B104KO5NNNC
|
||||
#/563787/987070/2.49/2/3/Capacitor
|
||||
DEF CL05B104KO5NNNC C 0 30 Y Y 1 F N
|
||||
F0 "C" 350 250 50 H V L CNN
|
||||
F1 "CL05B104KO5NNNC" 350 150 50 H V L CNN
|
||||
F2 "CAPC1005X55N" 350 50 50 H I L CNN
|
||||
F3 "https://datasheet.datasheetarchive.com/originals/distributors/Datasheets-DGA10/2408147.pdf" 350 -50 50 H I L CNN
|
||||
F4 "Samsung Electro-Mechanics CL05B104KO5NNNC 100nF Multilayer Ceramic Capacitor MLCC 16V dc +/-10% Tolerance SMD" 350 -150 50 H I L CNN "Description"
|
||||
F5 "0.55" 350 -250 50 H I L CNN "Height"
|
||||
F6 "Samsung Electro-Mechanics" 350 -350 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "CL05B104KO5NNNC" 350 -450 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "187-CL05B104KO5NNNC" 350 -550 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/Samsung-Electro-Mechanics/CL05B104KO5NNNC?qs=hqM3L16%252BxlfT2SKOuAUq6Q%3D%3D" 350 -650 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "CL05B104KO5NNNC" 350 -750 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/cl05b104ko5nnnc/samsung-electro-mechanics?region=europe" 350 -850 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 350 -950 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 350 -1050 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X ~ 1 0 0 200 R 50 50 0 0 P
|
||||
X ~ 2 500 0 200 L 50 50 0 0 P
|
||||
P 2 0 1 6 220 100 220 -100 N
|
||||
P 2 0 1 6 280 100 280 -100 N
|
||||
P 2 0 1 6 200 0 220 0 N
|
||||
P 2 0 1 6 280 0 300 0 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,35 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model DZ254S-11-10-48
|
||||
#/17126707/987070/2.49/10/0/Connector
|
||||
DEF DZ254S-11-10-48 J 0 30 Y Y 1 F N
|
||||
F0 "J" 750 300 50 H V L CNN
|
||||
F1 "DZ254S-11-10-48" 750 200 50 H V L CNN
|
||||
F2 "HUSRSP10W66P254_2500X250X850P" 750 100 50 H I L CNN
|
||||
F3 "https://datasheet.lcsc.com/lcsc/2209141730_DEALON-DZ254S-11-10-48_C5160793.pdf" 750 0 50 H I L CNN
|
||||
F4 "Brick nogging Square Pins 1 10 2.54mm 1x10P SMD,P=2.54mm() Pin Headers ROHS" 750 -100 50 H I L CNN "Description"
|
||||
F5 "" 750 -200 50 H I L CNN "Height"
|
||||
F6 "DEALON" 750 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "DZ254S-11-10-48" 750 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "" 750 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "" 750 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 750 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 750 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 750 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 750 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X 1 1 0 0 200 R 50 50 0 0 P
|
||||
X 2 2 0 -100 200 R 50 50 0 0 P
|
||||
X 3 3 0 -200 200 R 50 50 0 0 P
|
||||
X 4 4 0 -300 200 R 50 50 0 0 P
|
||||
X 5 5 0 -400 200 R 50 50 0 0 P
|
||||
X 6 6 900 0 200 L 50 50 0 0 P
|
||||
X 7 7 900 -100 200 L 50 50 0 0 P
|
||||
X 8 8 900 -200 200 L 50 50 0 0 P
|
||||
X 9 9 900 -300 200 L 50 50 0 0 P
|
||||
X 10 10 900 -400 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 700 100 700 -500 200 -500 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,72 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model ESP32-WROOM-32E-N4
|
||||
#/15884694/987070/2.49/47/4/Integrated Circuit
|
||||
DEF ESP32-WROOM-32E-N4 IC 0 30 Y Y 1 F N
|
||||
F0 "IC" 1350 300 50 H V L CNN
|
||||
F1 "ESP32-WROOM-32E-N4" 1350 200 50 H V L CNN
|
||||
F2 "ESP32WROOM32EN4" 1350 100 50 H I L CNN
|
||||
F3 "https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf" 1350 0 50 H I L CNN
|
||||
F4 "RX TXRX MOD WIFI TRACE ANT SMD" 1350 -100 50 H I L CNN "Description"
|
||||
F5 "3.25" 1350 -200 50 H I L CNN "Height"
|
||||
F6 "Espressif Systems" 1350 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "ESP32-WROOM-32E-N4" 1350 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "356-ESP32WRM32E132PH" 1350 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/Espressif-Systems/ESP32-WROOM-32E-N4?qs=Li%252BoUPsLEnsPzTWsi%252BRMgQ%3D%3D" 1350 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 1350 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 1350 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 1350 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 1350 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X GND_1 1 0 0 200 R 50 50 0 0 P
|
||||
X 3V3 2 0 -100 200 R 50 50 0 0 P
|
||||
X EN 3 0 -200 200 R 50 50 0 0 P
|
||||
X SENSOR_VP 4 0 -300 200 R 50 50 0 0 P
|
||||
X SENSOR_VN 5 0 -400 200 R 50 50 0 0 P
|
||||
X IO34 6 0 -500 200 R 50 50 0 0 P
|
||||
X IO35 7 0 -600 200 R 50 50 0 0 P
|
||||
X IO32 8 0 -700 200 R 50 50 0 0 P
|
||||
X IO33 9 0 -800 200 R 50 50 0 0 P
|
||||
X IO25 10 0 -900 200 R 50 50 0 0 P
|
||||
X IO26 11 0 -1000 200 R 50 50 0 0 P
|
||||
X IO27 12 0 -1100 200 R 50 50 0 0 P
|
||||
X IO14 13 0 -1200 200 R 50 50 0 0 P
|
||||
X IO12 14 0 -1300 200 R 50 50 0 0 P
|
||||
X GND_2 15 0 -1400 200 R 50 50 0 0 P
|
||||
X IO13 16 0 -1500 200 R 50 50 0 0 P
|
||||
X NC_1 17 0 -1600 200 R 50 50 0 0 P
|
||||
X NC_2 18 0 -1700 200 R 50 50 0 0 P
|
||||
X NC_3 19 0 -1800 200 R 50 50 0 0 P
|
||||
X NC_4 20 0 -1900 200 R 50 50 0 0 P
|
||||
X NC_5 21 0 -2000 200 R 50 50 0 0 P
|
||||
X NC_6 22 0 -2100 200 R 50 50 0 0 P
|
||||
X IO15 23 0 -2200 200 R 50 50 0 0 P
|
||||
X IO2 24 0 -2300 200 R 50 50 0 0 P
|
||||
X IO0 25 1500 0 200 L 50 50 0 0 P
|
||||
X IO4 26 1500 -100 200 L 50 50 0 0 P
|
||||
X IO16 27 1500 -200 200 L 50 50 0 0 P
|
||||
X IO17 28 1500 -300 200 L 50 50 0 0 P
|
||||
X IO5 29 1500 -400 200 L 50 50 0 0 P
|
||||
X IO18 30 1500 -500 200 L 50 50 0 0 P
|
||||
X IO19 31 1500 -600 200 L 50 50 0 0 P
|
||||
X NC_7 32 1500 -700 200 L 50 50 0 0 P
|
||||
X IO21 33 1500 -800 200 L 50 50 0 0 P
|
||||
X RXD0 34 1500 -900 200 L 50 50 0 0 P
|
||||
X TXD0 35 1500 -1000 200 L 50 50 0 0 P
|
||||
X IO22 36 1500 -1100 200 L 50 50 0 0 P
|
||||
X IO23 37 1500 -1200 200 L 50 50 0 0 P
|
||||
X GND_3 38 1500 -1300 200 L 50 50 0 0 P
|
||||
X GND_4 39 1500 -1400 200 L 50 50 0 0 P
|
||||
X GND_5 40 1500 -1500 200 L 50 50 0 0 P
|
||||
X GND_6 41 1500 -1600 200 L 50 50 0 0 P
|
||||
X GND_7 42 1500 -1700 200 L 50 50 0 0 P
|
||||
X GND_8 43 1500 -1800 200 L 50 50 0 0 P
|
||||
X GND_9 44 1500 -1900 200 L 50 50 0 0 P
|
||||
X GND_10 45 1500 -2000 200 L 50 50 0 0 P
|
||||
X GND_11 46 1500 -2100 200 L 50 50 0 0 P
|
||||
X GND_12 47 1500 -2200 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 1300 100 1300 -2400 200 -2400 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,85 @@
|
||||
(module "ESP32WROOM32EN4" (layer F.Cu)
|
||||
(descr "ESP32-WROOM-32E-N4-1")
|
||||
(tags "Integrated Circuit")
|
||||
(attr smd)
|
||||
(fp_text reference IC** (at 0.000 0.25) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0.000 0.25) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "ESP32WROOM32EN4" (at 0.000 0.25) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -9 12.75) (end 9 12.75) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 9 12.75) (end 9 -12.75) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 9 -12.75) (end -9 -12.75) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -9 -12.75) (end -9 12.75) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -10.5 -13.75) (end 10.5 -13.75) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 10.5 -13.75) (end 10.5 14.25) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 10.5 14.25) (end -10.5 14.25) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -10.5 14.25) (end -10.5 -13.75) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -9 -6) (end -9 -12.75) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -9 -12.75) (end 9 -12.75) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 9 -12.75) (end 9 -6) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 9 12) (end 9 12.75) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 9 12.75) (end 6.5 12.75) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -6.5 12.75) (end -9 12.75) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -9 12.75) (end -9 12) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -10.1 -5.26) (end -10.1 -5.26) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -10 -5.26) (end -10 -5.26) (layer F.SilkS) (width 0.1))
|
||||
(fp_arc (start -10.05 -5.26) (end -10.100 -5.26) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(fp_arc (start -10.05 -5.26) (end -10.000 -5.26) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(pad 1 smd rect (at -8.750 -5.26 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -8.750 -3.99 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -8.750 -2.72 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at -8.750 -1.45 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 5 smd rect (at -8.750 -0.18 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 6 smd rect (at -8.750 1.09 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 7 smd rect (at -8.750 2.36 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at -8.750 3.63 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 9 smd rect (at -8.750 4.9 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 10 smd rect (at -8.750 6.17 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 11 smd rect (at -8.750 7.44 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 12 smd rect (at -8.750 8.71 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 13 smd rect (at -8.750 9.98 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 14 smd rect (at -8.750 11.25 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 15 smd rect (at -5.715 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 16 smd rect (at -4.445 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 17 smd rect (at -3.175 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 18 smd rect (at -1.905 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 19 smd rect (at -0.635 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 20 smd rect (at 0.635 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 21 smd rect (at 1.905 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 22 smd rect (at 3.175 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 23 smd rect (at 4.445 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 24 smd rect (at 5.715 12.5 0) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 25 smd rect (at 8.750 11.25 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 26 smd rect (at 8.750 9.98 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 27 smd rect (at 8.750 8.71 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 28 smd rect (at 8.750 7.44 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 29 smd rect (at 8.750 6.17 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 30 smd rect (at 8.750 4.9 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 31 smd rect (at 8.750 3.63 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 32 smd rect (at 8.750 2.36 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 33 smd rect (at 8.750 1.09 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 34 smd rect (at 8.750 -0.18 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 35 smd rect (at 8.750 -1.45 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 36 smd rect (at 8.750 -2.72 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 37 smd rect (at 8.750 -3.99 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 38 smd rect (at 8.750 -5.26 90) (size 0.900 1.500) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 39 smd rect (at -2.900 1.06 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 40 smd rect (at -2.900 2.46 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 41 smd rect (at -2.900 3.86 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 42 smd rect (at -1.500 3.86 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 43 smd rect (at -0.100 3.86 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 44 smd rect (at -0.100 2.46 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 45 smd rect (at -0.100 1.06 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 46 smd rect (at -1.500 1.06 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 47 smd rect (at -1.500 2.46 90) (size 0.900 0.900) (layers F.Cu F.Paste F.Mask))
|
||||
(model ESP32-WROOM-32E-N4.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,39 @@
|
||||
(module "HUSRSP10W66P254_2500X250X850P" (layer F.Cu)
|
||||
(descr "DZ254S-11-10-48")
|
||||
(tags "Connector")
|
||||
(attr smd)
|
||||
(fp_text reference J** (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "HUSRSP10W66P254_2500X250X850P" (at 0 0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -12.75 -4.01) (end 12.75 -4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 12.75 -4.01) (end 12.75 4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 12.75 4.01) (end -12.75 4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -12.75 4.01) (end -12.75 -4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -12.5 -1.25) (end 12.5 -1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 12.5 -1.25) (end 12.5 1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 12.5 1.25) (end -12.5 1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -12.5 1.25) (end -12.5 -1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -12.5 1.25) (end -12.5 -3.76) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 12.5 1.25) (end 12.5 -1.25) (layer F.SilkS) (width 0.2))
|
||||
(pad 1 smd rect (at -11.43 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -8.89 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -6.35 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at -3.81 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 5 smd rect (at -1.27 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 6 smd rect (at 1.27 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 7 smd rect (at 3.81 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at 6.35 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 9 smd rect (at 8.89 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 10 smd rect (at 11.43 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(model DZ254S-11-10-48.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,37 @@
|
||||
(module "HUSRSP8W66P254_2000X250X850P" (layer F.Cu)
|
||||
(descr "X6511WVS-08H-C60D48R2")
|
||||
(tags "Connector")
|
||||
(attr smd)
|
||||
(fp_text reference J** (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "HUSRSP8W66P254_2000X250X850P" (at 0 0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -10.25 -4.01) (end 10.25 -4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 10.25 -4.01) (end 10.25 4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 10.25 4.01) (end -10.25 4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -10.25 4.01) (end -10.25 -4.01) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -10 -1.25) (end 10 -1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 10 -1.25) (end 10 1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 10 1.25) (end -10 1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -10 1.25) (end -10 -1.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -10 1.25) (end -10 -3.76) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start 10 1.25) (end 10 -1.25) (layer F.SilkS) (width 0.2))
|
||||
(pad 1 smd rect (at -8.89 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at -6.35 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -3.81 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at -1.27 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 5 smd rect (at 1.27 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 6 smd rect (at 3.81 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 7 smd rect (at 6.35 -1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 8 smd rect (at 8.89 1.04 0) (size 0.96 5.44) (layers F.Cu F.Paste F.Mask))
|
||||
(model X6511WVS-08H-C60D48R2.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,27 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model RC0402FR-0710KL
|
||||
#/541505/987070/2.49/2/3/Resistor
|
||||
DEF RC0402FR-0710KL R 0 30 Y Y 1 F N
|
||||
F0 "R" 550 250 50 H V L CNN
|
||||
F1 "RC0402FR-0710KL" 550 150 50 H V L CNN
|
||||
F2 "RESC1005X40N" 550 50 50 H I L CNN
|
||||
F3 "https://datasheet.datasheetarchive.com/originals/distributors/Datasheets_SAMA/902f9e387b938f871d31120f5fc1d65e.pdf" 550 -50 50 H I L CNN
|
||||
F4 "YAGEO (PHYCOMP) - RC0402FR-0710KL. - RES, THICK FILM, 10K, 1%, 0.0625W, 0402" 550 -150 50 H I L CNN "Description"
|
||||
F5 "0.4" 550 -250 50 H I L CNN "Height"
|
||||
F6 "KEMET" 550 -350 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "RC0402FR-0710KL" 550 -450 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "603-RC0402FR-0710KL" 550 -550 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/YAGEO/RC0402FR-0710KL?qs=I1mnnYJTTsxUoNwrUsQExA%3D%3D" 550 -650 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "RC0402FR-0710KL" 550 -750 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/rc0402fr-0710kl/yageo?region=europe" 550 -850 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 550 -950 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 550 -1050 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X ~ 1 0 0 200 R 50 50 0 0 P
|
||||
X ~ 2 700 0 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 50 500 50 500 -50 200 -50 200 50 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,27 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model RC0402FR-07220RL
|
||||
#/349197/987070/2.49/2/5/Resistor
|
||||
DEF RC0402FR-07220RL R 0 30 Y Y 1 F N
|
||||
F0 "R" 550 250 50 H V L CNN
|
||||
F1 "RC0402FR-07220RL" 550 150 50 H V L CNN
|
||||
F2 "RESC1005X40N" 550 50 50 H I L CNN
|
||||
F3 "https://datasheet.datasheetarchive.com/originals/distributors/Datasheets_SAMA/902f9e387b938f871d31120f5fc1d65e.pdf" 550 -50 50 H I L CNN
|
||||
F4 "YAGEO (PHYCOMP) - RC0402FR-07220RL - RES, THICK FILM, 220R, 1%, 0.063W, 0402" 550 -150 50 H I L CNN "Description"
|
||||
F5 "0.4" 550 -250 50 H I L CNN "Height"
|
||||
F6 "KEMET" 550 -350 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "RC0402FR-07220RL" 550 -450 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "603-RC0402FR-07220RL" 550 -550 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/YAGEO/RC0402FR-07220RL?qs=UOUeRUa%252B8Wkw9iNOZEwgHw%3D%3D" 550 -650 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "RC0402FR-07220RL" 550 -750 50 H I L CNN "Arrow Part Number"
|
||||
F11 "https://www.arrow.com/en/products/rc0402fr-07220rl/yageo?region=nac" 550 -850 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 550 -950 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 550 -1050 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X ~ 1 0 0 200 R 50 50 0 0 P
|
||||
X ~ 2 700 0 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 50 500 50 500 -50 200 -50 200 50 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,29 @@
|
||||
(module "RESC1005X40N" (layer F.Cu)
|
||||
(descr "RC0402")
|
||||
(tags "Resistor")
|
||||
(attr smd)
|
||||
(fp_text reference R** (at 0 0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "RESC1005X40N" (at 0 0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -1.175 -0.55) (end 1.175 -0.55) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.175 -0.55) (end 1.175 0.55) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.175 0.55) (end -1.175 0.55) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.175 0.55) (end -1.175 -0.55) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.1))
|
||||
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.1))
|
||||
(pad 1 smd rect (at -0.55 0 90) (size 0.6 0.75) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 0.55 0 90) (size 0.6 0.75) (layers F.Cu F.Paste F.Mask))
|
||||
(model RC0402FR-07220RL.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,40 @@
|
||||
(module "SKRPABE010" (layer F.Cu)
|
||||
(descr "SKRPABE010-1")
|
||||
(tags "Switch")
|
||||
(attr smd)
|
||||
(fp_text reference S** (at 0.000 -0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0.000 -0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "SKRPABE010" (at 0.000 -0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -2.1 -1.6) (end 2.1 -1.6) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 2.1 -1.6) (end 2.1 1.6) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 2.1 1.6) (end -2.1 1.6) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start -2.1 1.6) (end -2.1 -1.6) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start -3.6 -2.6) (end 3.6 -2.6) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 3.6 -2.6) (end 3.6 2.6) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 3.6 2.6) (end -3.6 2.6) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -3.6 2.6) (end -3.6 -2.6) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -1.2 -1.6) (end 1.2 -1.6) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -1.2 1.6) (end 1.2 1.6) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -2.1 -0.4) (end -2.1 0.4) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start 2.1 -0.4) (end 2.1 0.4) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -3 -1) (end -3 -1) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start -3 -1) (end -3 -1) (layer F.SilkS) (width 0.2))
|
||||
(fp_line (start -3.2 -1) (end -3.2 -1) (layer F.SilkS) (width 0.2))
|
||||
(fp_arc (start -3.1 -1) (end -3.000 -1) (angle -180) (layer F.SilkS) (width 0.2))
|
||||
(fp_arc (start -3.1 -1) (end -3.200 -1) (angle -180) (layer F.SilkS) (width 0.2))
|
||||
(pad 1 smd rect (at -2.075 -1.075 90) (size 0.650 1.050) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 2.075 -1.075 90) (size 0.650 1.050) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -2.075 1.075 90) (size 0.650 1.050) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at 2.075 1.075 90) (size 0.650 1.050) (layers F.Cu F.Paste F.Mask))
|
||||
(model SKRPABE010.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
29
PCBs/FlipperZero/WiFi-Devboard-Pro/Libraries/SKRPABE010.lib
Normal file
29
PCBs/FlipperZero/WiFi-Devboard-Pro/Libraries/SKRPABE010.lib
Normal file
@@ -0,0 +1,29 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model SKRPABE010
|
||||
#/13010270/987070/2.49/4/0/Switch
|
||||
DEF SKRPABE010 S 0 30 Y Y 1 F N
|
||||
F0 "S" 950 300 50 H V L CNN
|
||||
F1 "SKRPABE010" 950 200 50 H V L CNN
|
||||
F2 "SKRPABE010" 950 100 50 H I L CNN
|
||||
F3 "https://datasheet.lcsc.com/szlcsc/ALPS-Electric-SKRPABE010_C115360.pdf" 950 0 50 H I L CNN
|
||||
F4 "Switch Tactile N.O. SPST Button J-Bend 0.05A 16VDC 1.57N SMD Automotive T/R" 950 -100 50 H I L CNN "Description"
|
||||
F5 "2.5" 950 -200 50 H I L CNN "Height"
|
||||
F6 "ALPS Electric" 950 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "SKRPABE010" 950 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "688-SKRPAB" 950 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "https://www.mouser.co.uk/ProductDetail/Alps-Alpine/SKRPABE010?qs=m0BA540hBPe1GpcSf%2FZ5Yw%3D%3D" 950 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 950 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 950 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 950 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 950 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X NO_1 1 0 0 200 R 50 50 0 0 P
|
||||
X NO_2 2 1100 0 200 L 50 50 0 0 P
|
||||
X NO_3 3 0 -100 200 R 50 50 0 0 P
|
||||
X NO_4 4 1100 -100 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 900 100 900 -200 200 -200 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,29 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model WS2812B-2020
|
||||
#/13449884/987070/2.49/4/4/LED (Multiple)
|
||||
DEF WS2812B-2020 LED 0 30 Y Y 1 F N
|
||||
F0 "LED" 850 300 50 H V L CNN
|
||||
F1 "WS2812B-2020" 850 200 50 H V L CNN
|
||||
F2 "WS2812B2020" 850 100 50 H I L CNN
|
||||
F3 "https://www.alldatasheet.com/datasheet-pdf/pdf/1134522/WORLDSEMI/WS2812B-2020.html" 850 0 50 H I L CNN
|
||||
F4 "LED; SMD; 2020; RGB; 2x2x0.84mm; 3.75.3V; Lens: transparent; 2kHz" 850 -100 50 H I L CNN "Description"
|
||||
F5 "0.84" 850 -200 50 H I L CNN "Height"
|
||||
F6 "Worldsemi" 850 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "WS2812B-2020" 850 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "" 850 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "" 850 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 850 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 850 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 850 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 850 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X DO 1 1000 -100 200 L 50 50 0 0 P
|
||||
X GND 2 1000 0 200 L 50 50 0 0 P
|
||||
X DI 3 0 0 200 R 50 50 0 0 P
|
||||
X VDD 4 0 -100 200 R 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 800 100 800 -200 200 -200 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
@@ -0,0 +1,35 @@
|
||||
(module "WS2812B2020" (layer F.Cu)
|
||||
(descr "WS2812B-2020-2")
|
||||
(tags "LED (Multiple)")
|
||||
(attr smd)
|
||||
(fp_text reference LED** (at 0.000 -0) (layer F.SilkS)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text user %R (at 0.000 -0) (layer F.Fab)
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_text value "WS2812B2020" (at 0.000 -0) (layer F.SilkS) hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.254)))
|
||||
)
|
||||
(fp_line (start -1.1 -1) (end 1.1 -1) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 1.1 -1) (end 1.1 1) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start 1.1 1) (end -1.1 1) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start -1.1 1) (end -1.1 -1) (layer F.Fab) (width 0.2))
|
||||
(fp_line (start -2.265 -2) (end 2.265 -2) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 2.265 -2) (end 2.265 2) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 2.265 2) (end -2.265 2) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start -2.265 2) (end -2.265 -2) (layer F.CrtYd) (width 0.1))
|
||||
(fp_line (start 1.4 1.4) (end 1.4 1.4) (layer F.SilkS) (width 0.1))
|
||||
(fp_line (start 1.4 1.3) (end 1.4 1.3) (layer F.SilkS) (width 0.1))
|
||||
(fp_arc (start 1.4 1.35) (end 1.400 1.4) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(fp_arc (start 1.4 1.35) (end 1.400 1.3) (angle -180) (layer F.SilkS) (width 0.1))
|
||||
(pad 1 smd rect (at 0.915 0.55 90) (size 0.700 0.700) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 2 smd rect (at 0.915 -0.55 90) (size 0.700 0.700) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 3 smd rect (at -0.915 -0.55 90) (size 0.700 0.700) (layers F.Cu F.Paste F.Mask))
|
||||
(pad 4 smd rect (at -0.915 0.55 90) (size 0.700 0.700) (layers F.Cu F.Paste F.Mask))
|
||||
(model WS2812B-2020.stp
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,33 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#SamacSys ECAD Model X6511WVS-08H-C60D48R2
|
||||
#/17126700/987070/2.49/8/0/Connector
|
||||
DEF X6511WVS-08H-C60D48R2 J 0 30 Y Y 1 F N
|
||||
F0 "J" 650 300 50 H V L CNN
|
||||
F1 "X6511WVS-08H-C60D48R2" 650 200 50 H V L CNN
|
||||
F2 "HUSRSP8W66P254_2000X250X850P" 650 100 50 H I L CNN
|
||||
F3 "https://datasheet.lcsc.com/lcsc/2110100430_XKB-Connectivity-X6511WVS-08H-C60D48R2_C2883765.pdf" 650 0 50 H I L CNN
|
||||
F4 "Gold 250V 3A Brick nogging Square Pins 2.5mm 260 6mm -40~ 105 1 8 2.54mm Black Brass 1x8P SMD,P=2.54mm() Pin Headers ROHS" 650 -100 50 H I L CNN "Description"
|
||||
F5 "" 650 -200 50 H I L CNN "Height"
|
||||
F6 "XKB Connectivity" 650 -300 50 H I L CNN "Manufacturer_Name"
|
||||
F7 "X6511WVS-08H-C60D48R2" 650 -400 50 H I L CNN "Manufacturer_Part_Number"
|
||||
F8 "" 650 -500 50 H I L CNN "Mouser Part Number"
|
||||
F9 "" 650 -600 50 H I L CNN "Mouser Price/Stock"
|
||||
F10 "" 650 -700 50 H I L CNN "Arrow Part Number"
|
||||
F11 "" 650 -800 50 H I L CNN "Arrow Price/Stock"
|
||||
F12 "" 650 -900 50 H I L CNN "Mouser Testing Part Number"
|
||||
F13 "" 650 -1000 50 H I L CNN "Mouser Testing Price/Stock"
|
||||
DRAW
|
||||
X 1 1 0 0 200 R 50 50 0 0 P
|
||||
X 2 2 0 -100 200 R 50 50 0 0 P
|
||||
X 3 3 0 -200 200 R 50 50 0 0 P
|
||||
X 4 4 0 -300 200 R 50 50 0 0 P
|
||||
X 5 5 800 0 200 L 50 50 0 0 P
|
||||
X 6 6 800 -100 200 L 50 50 0 0 P
|
||||
X 7 7 800 -200 200 L 50 50 0 0 P
|
||||
X 8 8 800 -300 200 L 50 50 0 0 P
|
||||
P 5 0 1 6 200 100 600 100 600 -400 200 -400 200 100 N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,76 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Soldermask,Bot*%
|
||||
%TF.FilePolarity,Negative*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,1.700000*%
|
||||
%ADD11O,1.700000X1.700000*%
|
||||
%ADD12C,2.200000*%
|
||||
%ADD13R,0.960000X5.440000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,J4*%
|
||||
X129370000Y-109940000D03*
|
||||
D11*
|
||||
X131910000Y-109940000D03*
|
||||
X134450000Y-109940000D03*
|
||||
X136990000Y-109940000D03*
|
||||
X139530000Y-109940000D03*
|
||||
X142070000Y-109940000D03*
|
||||
X144610000Y-109940000D03*
|
||||
X147150000Y-109940000D03*
|
||||
X149690000Y-109940000D03*
|
||||
X152230000Y-109940000D03*
|
||||
X154770000Y-109940000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,*%
|
||||
X187100000Y-99900000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,J5*%
|
||||
X129370000Y-89840000D03*
|
||||
D11*
|
||||
X131910000Y-89840000D03*
|
||||
X134450000Y-89840000D03*
|
||||
X136990000Y-89840000D03*
|
||||
X139530000Y-89840000D03*
|
||||
X142070000Y-89840000D03*
|
||||
X144610000Y-89840000D03*
|
||||
X147150000Y-89840000D03*
|
||||
X149690000Y-89840000D03*
|
||||
X152230000Y-89840000D03*
|
||||
X154770000Y-89840000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,J3*%
|
||||
X153970000Y-103140000D03*
|
||||
X156510000Y-101060000D03*
|
||||
X159050000Y-103140000D03*
|
||||
X161590000Y-101060000D03*
|
||||
X164130000Y-103140000D03*
|
||||
X166670000Y-101060000D03*
|
||||
X169210000Y-103140000D03*
|
||||
X171750000Y-101060000D03*
|
||||
X174290000Y-103140000D03*
|
||||
X176830000Y-101060000D03*
|
||||
%TD*%
|
||||
%TO.C,J2*%
|
||||
X118410000Y-103140000D03*
|
||||
X120950000Y-101060000D03*
|
||||
X123490000Y-103140000D03*
|
||||
X126030000Y-101060000D03*
|
||||
X128570000Y-103140000D03*
|
||||
X131110000Y-101060000D03*
|
||||
X133650000Y-103140000D03*
|
||||
X136190000Y-101060000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,39 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Paste,Bot*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10R,0.960000X5.440000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,J3*%
|
||||
X153970000Y-103140000D03*
|
||||
X156510000Y-101060000D03*
|
||||
X159050000Y-103140000D03*
|
||||
X161590000Y-101060000D03*
|
||||
X164130000Y-103140000D03*
|
||||
X166670000Y-101060000D03*
|
||||
X169210000Y-103140000D03*
|
||||
X171750000Y-101060000D03*
|
||||
X174290000Y-103140000D03*
|
||||
X176830000Y-101060000D03*
|
||||
%TD*%
|
||||
%TO.C,J2*%
|
||||
X118410000Y-103140000D03*
|
||||
X120950000Y-101060000D03*
|
||||
X123490000Y-103140000D03*
|
||||
X126030000Y-101060000D03*
|
||||
X128570000Y-103140000D03*
|
||||
X131110000Y-101060000D03*
|
||||
X133650000Y-103140000D03*
|
||||
X136190000Y-101060000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,647 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Legend,Bot*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.100000*%
|
||||
%ADD11C,0.200000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
X183027857Y-91754857D02*
|
||||
X183294523Y-91754857D01*
|
||||
X183294523Y-92173904D02*
|
||||
X183294523Y-91373904D01*
|
||||
X182913571Y-91373904D01*
|
||||
X182494523Y-92173904D02*
|
||||
X182570714Y-92135809D01*
|
||||
X182608809Y-92059619D01*
|
||||
X182608809Y-91373904D01*
|
||||
X182189761Y-92173904D02*
|
||||
X182189761Y-91640571D01*
|
||||
X182189761Y-91373904D02*
|
||||
X182227857Y-91412000D01*
|
||||
X182189761Y-91450095D01*
|
||||
X182151666Y-91412000D01*
|
||||
X182189761Y-91373904D01*
|
||||
X182189761Y-91450095D01*
|
||||
X181808809Y-91640571D02*
|
||||
X181808809Y-92440571D01*
|
||||
X181808809Y-91678666D02*
|
||||
X181732619Y-91640571D01*
|
||||
X181580238Y-91640571D01*
|
||||
X181504047Y-91678666D01*
|
||||
X181465952Y-91716761D01*
|
||||
X181427857Y-91792952D01*
|
||||
X181427857Y-92021523D01*
|
||||
X181465952Y-92097714D01*
|
||||
X181504047Y-92135809D01*
|
||||
X181580238Y-92173904D01*
|
||||
X181732619Y-92173904D01*
|
||||
X181808809Y-92135809D01*
|
||||
X181085000Y-91640571D02*
|
||||
X181085000Y-92440571D01*
|
||||
X181085000Y-91678666D02*
|
||||
X181008809Y-91640571D01*
|
||||
X180856428Y-91640571D01*
|
||||
X180780238Y-91678666D01*
|
||||
X180742142Y-91716761D01*
|
||||
X180704047Y-91792952D01*
|
||||
X180704047Y-92021523D01*
|
||||
X180742142Y-92097714D01*
|
||||
X180780238Y-92135809D01*
|
||||
X180856428Y-92173904D01*
|
||||
X181008809Y-92173904D01*
|
||||
X181085000Y-92135809D01*
|
||||
X180056428Y-92135809D02*
|
||||
X180132619Y-92173904D01*
|
||||
X180285000Y-92173904D01*
|
||||
X180361190Y-92135809D01*
|
||||
X180399285Y-92059619D01*
|
||||
X180399285Y-91754857D01*
|
||||
X180361190Y-91678666D01*
|
||||
X180285000Y-91640571D01*
|
||||
X180132619Y-91640571D01*
|
||||
X180056428Y-91678666D01*
|
||||
X180018333Y-91754857D01*
|
||||
X180018333Y-91831047D01*
|
||||
X180399285Y-91907238D01*
|
||||
X179675476Y-92173904D02*
|
||||
X179675476Y-91640571D01*
|
||||
X179675476Y-91792952D02*
|
||||
X179637380Y-91716761D01*
|
||||
X179599285Y-91678666D01*
|
||||
X179523095Y-91640571D01*
|
||||
X179446904Y-91640571D01*
|
||||
X178646904Y-91373904D02*
|
||||
X178113571Y-91373904D01*
|
||||
X178646904Y-92173904D01*
|
||||
X178113571Y-92173904D01*
|
||||
X177504047Y-92135809D02*
|
||||
X177580238Y-92173904D01*
|
||||
X177732619Y-92173904D01*
|
||||
X177808809Y-92135809D01*
|
||||
X177846904Y-92059619D01*
|
||||
X177846904Y-91754857D01*
|
||||
X177808809Y-91678666D01*
|
||||
X177732619Y-91640571D01*
|
||||
X177580238Y-91640571D01*
|
||||
X177504047Y-91678666D01*
|
||||
X177465952Y-91754857D01*
|
||||
X177465952Y-91831047D01*
|
||||
X177846904Y-91907238D01*
|
||||
X177123095Y-92173904D02*
|
||||
X177123095Y-91640571D01*
|
||||
X177123095Y-91792952D02*
|
||||
X177085000Y-91716761D01*
|
||||
X177046904Y-91678666D01*
|
||||
X176970714Y-91640571D01*
|
||||
X176894523Y-91640571D01*
|
||||
X176513571Y-92173904D02*
|
||||
X176589761Y-92135809D01*
|
||||
X176627857Y-92097714D01*
|
||||
X176665952Y-92021523D01*
|
||||
X176665952Y-91792952D01*
|
||||
X176627857Y-91716761D01*
|
||||
X176589761Y-91678666D01*
|
||||
X176513571Y-91640571D01*
|
||||
X176399285Y-91640571D01*
|
||||
X176323095Y-91678666D01*
|
||||
X176285000Y-91716761D01*
|
||||
X176246904Y-91792952D01*
|
||||
X176246904Y-92021523D01*
|
||||
X176285000Y-92097714D01*
|
||||
X176323095Y-92135809D01*
|
||||
X176399285Y-92173904D01*
|
||||
X176513571Y-92173904D01*
|
||||
X175370714Y-91373904D02*
|
||||
X175180238Y-92173904D01*
|
||||
X175027857Y-91602476D01*
|
||||
X174875476Y-92173904D01*
|
||||
X174685000Y-91373904D01*
|
||||
X174380238Y-92173904D02*
|
||||
X174380238Y-91640571D01*
|
||||
X174380238Y-91373904D02*
|
||||
X174418333Y-91412000D01*
|
||||
X174380238Y-91450095D01*
|
||||
X174342142Y-91412000D01*
|
||||
X174380238Y-91373904D01*
|
||||
X174380238Y-91450095D01*
|
||||
X173732619Y-91754857D02*
|
||||
X173999285Y-91754857D01*
|
||||
X173999285Y-92173904D02*
|
||||
X173999285Y-91373904D01*
|
||||
X173618333Y-91373904D01*
|
||||
X173313571Y-92173904D02*
|
||||
X173313571Y-91640571D01*
|
||||
X173313571Y-91373904D02*
|
||||
X173351666Y-91412000D01*
|
||||
X173313571Y-91450095D01*
|
||||
X173275476Y-91412000D01*
|
||||
X173313571Y-91373904D01*
|
||||
X173313571Y-91450095D01*
|
||||
X172323095Y-92173904D02*
|
||||
X172323095Y-91373904D01*
|
||||
X172132619Y-91373904D01*
|
||||
X172018333Y-91412000D01*
|
||||
X171942142Y-91488190D01*
|
||||
X171904047Y-91564380D01*
|
||||
X171865952Y-91716761D01*
|
||||
X171865952Y-91831047D01*
|
||||
X171904047Y-91983428D01*
|
||||
X171942142Y-92059619D01*
|
||||
X172018333Y-92135809D01*
|
||||
X172132619Y-92173904D01*
|
||||
X172323095Y-92173904D01*
|
||||
X171218333Y-92135809D02*
|
||||
X171294523Y-92173904D01*
|
||||
X171446904Y-92173904D01*
|
||||
X171523095Y-92135809D01*
|
||||
X171561190Y-92059619D01*
|
||||
X171561190Y-91754857D01*
|
||||
X171523095Y-91678666D01*
|
||||
X171446904Y-91640571D01*
|
||||
X171294523Y-91640571D01*
|
||||
X171218333Y-91678666D01*
|
||||
X171180238Y-91754857D01*
|
||||
X171180238Y-91831047D01*
|
||||
X171561190Y-91907238D01*
|
||||
X170913571Y-91640571D02*
|
||||
X170723095Y-92173904D01*
|
||||
X170532619Y-91640571D01*
|
||||
X170227857Y-92173904D02*
|
||||
X170227857Y-91373904D01*
|
||||
X170227857Y-91678666D02*
|
||||
X170151666Y-91640571D01*
|
||||
X169999285Y-91640571D01*
|
||||
X169923095Y-91678666D01*
|
||||
X169885000Y-91716761D01*
|
||||
X169846904Y-91792952D01*
|
||||
X169846904Y-92021523D01*
|
||||
X169885000Y-92097714D01*
|
||||
X169923095Y-92135809D01*
|
||||
X169999285Y-92173904D01*
|
||||
X170151666Y-92173904D01*
|
||||
X170227857Y-92135809D01*
|
||||
X169389761Y-92173904D02*
|
||||
X169465952Y-92135809D01*
|
||||
X169504047Y-92097714D01*
|
||||
X169542142Y-92021523D01*
|
||||
X169542142Y-91792952D01*
|
||||
X169504047Y-91716761D01*
|
||||
X169465952Y-91678666D01*
|
||||
X169389761Y-91640571D01*
|
||||
X169275476Y-91640571D01*
|
||||
X169199285Y-91678666D01*
|
||||
X169161190Y-91716761D01*
|
||||
X169123095Y-91792952D01*
|
||||
X169123095Y-92021523D01*
|
||||
X169161190Y-92097714D01*
|
||||
X169199285Y-92135809D01*
|
||||
X169275476Y-92173904D01*
|
||||
X169389761Y-92173904D01*
|
||||
X168437380Y-92173904D02*
|
||||
X168437380Y-91754857D01*
|
||||
X168475476Y-91678666D01*
|
||||
X168551666Y-91640571D01*
|
||||
X168704047Y-91640571D01*
|
||||
X168780238Y-91678666D01*
|
||||
X168437380Y-92135809D02*
|
||||
X168513571Y-92173904D01*
|
||||
X168704047Y-92173904D01*
|
||||
X168780238Y-92135809D01*
|
||||
X168818333Y-92059619D01*
|
||||
X168818333Y-91983428D01*
|
||||
X168780238Y-91907238D01*
|
||||
X168704047Y-91869142D01*
|
||||
X168513571Y-91869142D01*
|
||||
X168437380Y-91831047D01*
|
||||
X168056428Y-92173904D02*
|
||||
X168056428Y-91640571D01*
|
||||
X168056428Y-91792952D02*
|
||||
X168018333Y-91716761D01*
|
||||
X167980238Y-91678666D01*
|
||||
X167904047Y-91640571D01*
|
||||
X167827857Y-91640571D01*
|
||||
X167218333Y-92173904D02*
|
||||
X167218333Y-91373904D01*
|
||||
X167218333Y-92135809D02*
|
||||
X167294523Y-92173904D01*
|
||||
X167446904Y-92173904D01*
|
||||
X167523095Y-92135809D01*
|
||||
X167561190Y-92097714D01*
|
||||
X167599285Y-92021523D01*
|
||||
X167599285Y-91792952D01*
|
||||
X167561190Y-91716761D01*
|
||||
X167523095Y-91678666D01*
|
||||
X167446904Y-91640571D01*
|
||||
X167294523Y-91640571D01*
|
||||
X167218333Y-91678666D01*
|
||||
X166227857Y-92173904D02*
|
||||
X166227857Y-91373904D01*
|
||||
X165923095Y-91373904D01*
|
||||
X165846904Y-91412000D01*
|
||||
X165808809Y-91450095D01*
|
||||
X165770714Y-91526285D01*
|
||||
X165770714Y-91640571D01*
|
||||
X165808809Y-91716761D01*
|
||||
X165846904Y-91754857D01*
|
||||
X165923095Y-91792952D01*
|
||||
X166227857Y-91792952D01*
|
||||
X165427857Y-92173904D02*
|
||||
X165427857Y-91640571D01*
|
||||
X165427857Y-91792952D02*
|
||||
X165389761Y-91716761D01*
|
||||
X165351666Y-91678666D01*
|
||||
X165275476Y-91640571D01*
|
||||
X165199285Y-91640571D01*
|
||||
X164818333Y-92173904D02*
|
||||
X164894523Y-92135809D01*
|
||||
X164932619Y-92097714D01*
|
||||
X164970714Y-92021523D01*
|
||||
X164970714Y-91792952D01*
|
||||
X164932619Y-91716761D01*
|
||||
X164894523Y-91678666D01*
|
||||
X164818333Y-91640571D01*
|
||||
X164704047Y-91640571D01*
|
||||
X164627857Y-91678666D01*
|
||||
X164589761Y-91716761D01*
|
||||
X164551666Y-91792952D01*
|
||||
X164551666Y-92021523D01*
|
||||
X164589761Y-92097714D01*
|
||||
X164627857Y-92135809D01*
|
||||
X164704047Y-92173904D01*
|
||||
X164818333Y-92173904D01*
|
||||
X182837380Y-93461904D02*
|
||||
X183104047Y-93080952D01*
|
||||
X183294523Y-93461904D02*
|
||||
X183294523Y-92661904D01*
|
||||
X182989761Y-92661904D01*
|
||||
X182913571Y-92700000D01*
|
||||
X182875476Y-92738095D01*
|
||||
X182837380Y-92814285D01*
|
||||
X182837380Y-92928571D01*
|
||||
X182875476Y-93004761D01*
|
||||
X182913571Y-93042857D01*
|
||||
X182989761Y-93080952D01*
|
||||
X183294523Y-93080952D01*
|
||||
X182189761Y-93423809D02*
|
||||
X182265952Y-93461904D01*
|
||||
X182418333Y-93461904D01*
|
||||
X182494523Y-93423809D01*
|
||||
X182532619Y-93347619D01*
|
||||
X182532619Y-93042857D01*
|
||||
X182494523Y-92966666D01*
|
||||
X182418333Y-92928571D01*
|
||||
X182265952Y-92928571D01*
|
||||
X182189761Y-92966666D01*
|
||||
X182151666Y-93042857D01*
|
||||
X182151666Y-93119047D01*
|
||||
X182532619Y-93195238D01*
|
||||
X181885000Y-92928571D02*
|
||||
X181694523Y-93461904D01*
|
||||
X181504047Y-92928571D01*
|
||||
X180704047Y-92661904D02*
|
||||
X180437380Y-93461904D01*
|
||||
X180170714Y-92661904D01*
|
||||
X179751666Y-92661904D02*
|
||||
X179675476Y-92661904D01*
|
||||
X179599285Y-92700000D01*
|
||||
X179561190Y-92738095D01*
|
||||
X179523095Y-92814285D01*
|
||||
X179485000Y-92966666D01*
|
||||
X179485000Y-93157142D01*
|
||||
X179523095Y-93309523D01*
|
||||
X179561190Y-93385714D01*
|
||||
X179599285Y-93423809D01*
|
||||
X179675476Y-93461904D01*
|
||||
X179751666Y-93461904D01*
|
||||
X179827857Y-93423809D01*
|
||||
X179865952Y-93385714D01*
|
||||
X179904047Y-93309523D01*
|
||||
X179942142Y-93157142D01*
|
||||
X179942142Y-92966666D01*
|
||||
X179904047Y-92814285D01*
|
||||
X179865952Y-92738095D01*
|
||||
X179827857Y-92700000D01*
|
||||
X179751666Y-92661904D01*
|
||||
X179142142Y-93385714D02*
|
||||
X179104047Y-93423809D01*
|
||||
X179142142Y-93461904D01*
|
||||
X179180238Y-93423809D01*
|
||||
X179142142Y-93385714D01*
|
||||
X179142142Y-93461904D01*
|
||||
X178342142Y-93461904D02*
|
||||
X178799285Y-93461904D01*
|
||||
X178570714Y-93461904D02*
|
||||
X178570714Y-92661904D01*
|
||||
X178646904Y-92776190D01*
|
||||
X178723095Y-92852380D01*
|
||||
X178799285Y-92890476D01*
|
||||
X177999285Y-93385714D02*
|
||||
X177961190Y-93423809D01*
|
||||
X177999285Y-93461904D01*
|
||||
X178037380Y-93423809D01*
|
||||
X177999285Y-93385714D01*
|
||||
X177999285Y-93461904D01*
|
||||
X177465952Y-92661904D02*
|
||||
X177389761Y-92661904D01*
|
||||
X177313571Y-92700000D01*
|
||||
X177275476Y-92738095D01*
|
||||
X177237380Y-92814285D01*
|
||||
X177199285Y-92966666D01*
|
||||
X177199285Y-93157142D01*
|
||||
X177237380Y-93309523D01*
|
||||
X177275476Y-93385714D01*
|
||||
X177313571Y-93423809D01*
|
||||
X177389761Y-93461904D01*
|
||||
X177465952Y-93461904D01*
|
||||
X177542142Y-93423809D01*
|
||||
X177580238Y-93385714D01*
|
||||
X177618333Y-93309523D01*
|
||||
X177656428Y-93157142D01*
|
||||
X177656428Y-92966666D01*
|
||||
X177618333Y-92814285D01*
|
||||
X177580238Y-92738095D01*
|
||||
X177542142Y-92700000D01*
|
||||
X177465952Y-92661904D01*
|
||||
X183065952Y-93949904D02*
|
||||
X183065952Y-94521333D01*
|
||||
X183104047Y-94635619D01*
|
||||
X183180238Y-94711809D01*
|
||||
X183294523Y-94749904D01*
|
||||
X183370714Y-94749904D01*
|
||||
X182342142Y-94216571D02*
|
||||
X182342142Y-94749904D01*
|
||||
X182685000Y-94216571D02*
|
||||
X182685000Y-94635619D01*
|
||||
X182646904Y-94711809D01*
|
||||
X182570714Y-94749904D01*
|
||||
X182456428Y-94749904D01*
|
||||
X182380238Y-94711809D01*
|
||||
X182342142Y-94673714D01*
|
||||
X181999285Y-94711809D02*
|
||||
X181923095Y-94749904D01*
|
||||
X181770714Y-94749904D01*
|
||||
X181694523Y-94711809D01*
|
||||
X181656428Y-94635619D01*
|
||||
X181656428Y-94597523D01*
|
||||
X181694523Y-94521333D01*
|
||||
X181770714Y-94483238D01*
|
||||
X181885000Y-94483238D01*
|
||||
X181961190Y-94445142D01*
|
||||
X181999285Y-94368952D01*
|
||||
X181999285Y-94330857D01*
|
||||
X181961190Y-94254666D01*
|
||||
X181885000Y-94216571D01*
|
||||
X181770714Y-94216571D01*
|
||||
X181694523Y-94254666D01*
|
||||
X181427857Y-94216571D02*
|
||||
X181123095Y-94216571D01*
|
||||
X181313571Y-93949904D02*
|
||||
X181313571Y-94635619D01*
|
||||
X181275476Y-94711809D01*
|
||||
X181199285Y-94749904D01*
|
||||
X181123095Y-94749904D01*
|
||||
X180399285Y-94673714D02*
|
||||
X180437380Y-94711809D01*
|
||||
X180551666Y-94749904D01*
|
||||
X180627857Y-94749904D01*
|
||||
X180742142Y-94711809D01*
|
||||
X180818333Y-94635619D01*
|
||||
X180856428Y-94559428D01*
|
||||
X180894523Y-94407047D01*
|
||||
X180894523Y-94292761D01*
|
||||
X180856428Y-94140380D01*
|
||||
X180818333Y-94064190D01*
|
||||
X180742142Y-93988000D01*
|
||||
X180627857Y-93949904D01*
|
||||
X180551666Y-93949904D01*
|
||||
X180437380Y-93988000D01*
|
||||
X180399285Y-94026095D01*
|
||||
X179713571Y-94749904D02*
|
||||
X179713571Y-94330857D01*
|
||||
X179751666Y-94254666D01*
|
||||
X179827857Y-94216571D01*
|
||||
X179980238Y-94216571D01*
|
||||
X180056428Y-94254666D01*
|
||||
X179713571Y-94711809D02*
|
||||
X179789761Y-94749904D01*
|
||||
X179980238Y-94749904D01*
|
||||
X180056428Y-94711809D01*
|
||||
X180094523Y-94635619D01*
|
||||
X180094523Y-94559428D01*
|
||||
X180056428Y-94483238D01*
|
||||
X179980238Y-94445142D01*
|
||||
X179789761Y-94445142D01*
|
||||
X179713571Y-94407047D01*
|
||||
X179218333Y-94749904D02*
|
||||
X179294523Y-94711809D01*
|
||||
X179332619Y-94635619D01*
|
||||
X179332619Y-93949904D01*
|
||||
X178799285Y-94749904D02*
|
||||
X178875476Y-94711809D01*
|
||||
X178913571Y-94635619D01*
|
||||
X178913571Y-93949904D01*
|
||||
X178494523Y-94749904D02*
|
||||
X178494523Y-93949904D01*
|
||||
X178227857Y-94521333D01*
|
||||
X177961190Y-93949904D01*
|
||||
X177961190Y-94749904D01*
|
||||
X177275476Y-94711809D02*
|
||||
X177351666Y-94749904D01*
|
||||
X177504047Y-94749904D01*
|
||||
X177580238Y-94711809D01*
|
||||
X177618333Y-94635619D01*
|
||||
X177618333Y-94330857D01*
|
||||
X177580238Y-94254666D01*
|
||||
X177504047Y-94216571D01*
|
||||
X177351666Y-94216571D01*
|
||||
X177275476Y-94254666D01*
|
||||
X177237380Y-94330857D01*
|
||||
X177237380Y-94407047D01*
|
||||
X177618333Y-94483238D01*
|
||||
X176894523Y-94749904D02*
|
||||
X176894523Y-93949904D01*
|
||||
X176437380Y-94749904D02*
|
||||
X176780238Y-94292761D01*
|
||||
X176437380Y-93949904D02*
|
||||
X176894523Y-94407047D01*
|
||||
X175980238Y-94749904D02*
|
||||
X176056428Y-94711809D01*
|
||||
X176094523Y-94673714D01*
|
||||
X176132619Y-94597523D01*
|
||||
X176132619Y-94368952D01*
|
||||
X176094523Y-94292761D01*
|
||||
X176056428Y-94254666D01*
|
||||
X175980238Y-94216571D01*
|
||||
X175865952Y-94216571D01*
|
||||
X175789761Y-94254666D01*
|
||||
X175751666Y-94292761D01*
|
||||
X175713571Y-94368952D01*
|
||||
X175713571Y-94597523D01*
|
||||
X175751666Y-94673714D01*
|
||||
X175789761Y-94711809D01*
|
||||
X175865952Y-94749904D01*
|
||||
X175980238Y-94749904D01*
|
||||
X175370714Y-94749904D02*
|
||||
X175370714Y-93949904D01*
|
||||
X175294523Y-94445142D02*
|
||||
X175065952Y-94749904D01*
|
||||
X175065952Y-94216571D02*
|
||||
X175370714Y-94521333D01*
|
||||
X174608809Y-94749904D02*
|
||||
X174685000Y-94711809D01*
|
||||
X174723095Y-94673714D01*
|
||||
X174761190Y-94597523D01*
|
||||
X174761190Y-94368952D01*
|
||||
X174723095Y-94292761D01*
|
||||
X174685000Y-94254666D01*
|
||||
X174608809Y-94216571D01*
|
||||
X174494523Y-94216571D01*
|
||||
X174418333Y-94254666D01*
|
||||
X174380238Y-94292761D01*
|
||||
X174342142Y-94368952D01*
|
||||
X174342142Y-94597523D01*
|
||||
X174380238Y-94673714D01*
|
||||
X174418333Y-94711809D01*
|
||||
X174494523Y-94749904D01*
|
||||
X174608809Y-94749904D01*
|
||||
X172742142Y-94749904D02*
|
||||
X172780238Y-94749904D01*
|
||||
X172856428Y-94711809D01*
|
||||
X172970714Y-94597523D01*
|
||||
X173161190Y-94368952D01*
|
||||
X173237380Y-94254666D01*
|
||||
X173275476Y-94140380D01*
|
||||
X173275476Y-94064190D01*
|
||||
X173237380Y-93988000D01*
|
||||
X173161190Y-93949904D01*
|
||||
X173123095Y-93949904D01*
|
||||
X173046904Y-93988000D01*
|
||||
X173008809Y-94064190D01*
|
||||
X173008809Y-94102285D01*
|
||||
X173046904Y-94178476D01*
|
||||
X173085000Y-94216571D01*
|
||||
X173313571Y-94368952D01*
|
||||
X173351666Y-94407047D01*
|
||||
X173389761Y-94483238D01*
|
||||
X173389761Y-94597523D01*
|
||||
X173351666Y-94673714D01*
|
||||
X173313571Y-94711809D01*
|
||||
X173237380Y-94749904D01*
|
||||
X173123095Y-94749904D01*
|
||||
X173046904Y-94711809D01*
|
||||
X173008809Y-94673714D01*
|
||||
X172894523Y-94521333D01*
|
||||
X172856428Y-94407047D01*
|
||||
X172856428Y-94330857D01*
|
||||
X171904047Y-94216571D02*
|
||||
X171599285Y-94216571D01*
|
||||
X171789761Y-93949904D02*
|
||||
X171789761Y-94635619D01*
|
||||
X171751666Y-94711809D01*
|
||||
X171675476Y-94749904D01*
|
||||
X171599285Y-94749904D01*
|
||||
X171332619Y-94749904D02*
|
||||
X171332619Y-94216571D01*
|
||||
X171332619Y-94368952D02*
|
||||
X171294523Y-94292761D01*
|
||||
X171256428Y-94254666D01*
|
||||
X171180238Y-94216571D01*
|
||||
X171104047Y-94216571D01*
|
||||
X170837380Y-94749904D02*
|
||||
X170837380Y-94216571D01*
|
||||
X170837380Y-93949904D02*
|
||||
X170875476Y-93988000D01*
|
||||
X170837380Y-94026095D01*
|
||||
X170799285Y-93988000D01*
|
||||
X170837380Y-93949904D01*
|
||||
X170837380Y-94026095D01*
|
||||
X170494523Y-94711809D02*
|
||||
X170418333Y-94749904D01*
|
||||
X170265952Y-94749904D01*
|
||||
X170189761Y-94711809D01*
|
||||
X170151666Y-94635619D01*
|
||||
X170151666Y-94597523D01*
|
||||
X170189761Y-94521333D01*
|
||||
X170265952Y-94483238D01*
|
||||
X170380238Y-94483238D01*
|
||||
X170456428Y-94445142D01*
|
||||
X170494523Y-94368952D01*
|
||||
X170494523Y-94330857D01*
|
||||
X170456428Y-94254666D01*
|
||||
X170380238Y-94216571D01*
|
||||
X170265952Y-94216571D01*
|
||||
X170189761Y-94254666D01*
|
||||
X169808809Y-94216571D02*
|
||||
X169808809Y-95016571D01*
|
||||
X169808809Y-94254666D02*
|
||||
X169732619Y-94216571D01*
|
||||
X169580238Y-94216571D01*
|
||||
X169504047Y-94254666D01*
|
||||
X169465952Y-94292761D01*
|
||||
X169427857Y-94368952D01*
|
||||
X169427857Y-94597523D01*
|
||||
X169465952Y-94673714D01*
|
||||
X169504047Y-94711809D01*
|
||||
X169580238Y-94749904D01*
|
||||
X169732619Y-94749904D01*
|
||||
X169808809Y-94711809D01*
|
||||
X169161190Y-93949904D02*
|
||||
X168665952Y-93949904D01*
|
||||
X168932619Y-94254666D01*
|
||||
X168818333Y-94254666D01*
|
||||
X168742142Y-94292761D01*
|
||||
X168704047Y-94330857D01*
|
||||
X168665952Y-94407047D01*
|
||||
X168665952Y-94597523D01*
|
||||
X168704047Y-94673714D01*
|
||||
X168742142Y-94711809D01*
|
||||
X168818333Y-94749904D01*
|
||||
X169046904Y-94749904D01*
|
||||
X169123095Y-94711809D01*
|
||||
X169161190Y-94673714D01*
|
||||
X167980238Y-94749904D02*
|
||||
X167980238Y-94330857D01*
|
||||
X168018333Y-94254666D01*
|
||||
X168094523Y-94216571D01*
|
||||
X168246904Y-94216571D01*
|
||||
X168323095Y-94254666D01*
|
||||
X167980238Y-94711809D02*
|
||||
X168056428Y-94749904D01*
|
||||
X168246904Y-94749904D01*
|
||||
X168323095Y-94711809D01*
|
||||
X168361190Y-94635619D01*
|
||||
X168361190Y-94559428D01*
|
||||
X168323095Y-94483238D01*
|
||||
X168246904Y-94445142D01*
|
||||
X168056428Y-94445142D01*
|
||||
X167980238Y-94407047D01*
|
||||
X167599285Y-94749904D02*
|
||||
X167599285Y-94216571D01*
|
||||
X167599285Y-94368952D02*
|
||||
X167561190Y-94292761D01*
|
||||
X167523095Y-94254666D01*
|
||||
X167446904Y-94216571D01*
|
||||
X167370714Y-94216571D01*
|
||||
D11*
|
||||
%TO.C,J3*%
|
||||
X177900000Y-100850000D02*
|
||||
X177900000Y-103350000D01*
|
||||
X152900000Y-100850000D02*
|
||||
X152900000Y-105860000D01*
|
||||
%TO.C,J2*%
|
||||
X137300000Y-100850000D02*
|
||||
X137300000Y-103350000D01*
|
||||
X117300000Y-100850000D02*
|
||||
X117300000Y-105860000D01*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,65 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Profile,NP*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%TA.AperFunction,Profile*%
|
||||
%ADD10C,0.100000*%
|
||||
%TD*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
X111130000Y-108940000D02*
|
||||
G75*
|
||||
G03*
|
||||
X112130000Y-109940000I1000000J0D01*
|
||||
G01*
|
||||
X184090000Y-108940000D02*
|
||||
X184090000Y-102390000D01*
|
||||
X184090000Y-97390000D02*
|
||||
X184090000Y-90840000D01*
|
||||
X128365000Y-89840000D02*
|
||||
X112130000Y-89840000D01*
|
||||
X183090000Y-109940000D02*
|
||||
G75*
|
||||
G03*
|
||||
X184090000Y-108940000I0J1000000D01*
|
||||
G01*
|
||||
X183090000Y-89840000D02*
|
||||
X155765000Y-89840000D01*
|
||||
X128365000Y-109940000D02*
|
||||
X155765000Y-109940000D01*
|
||||
X112130000Y-89840000D02*
|
||||
G75*
|
||||
G03*
|
||||
X111130000Y-90840000I0J-1000000D01*
|
||||
G01*
|
||||
X111130000Y-90840000D02*
|
||||
X111130000Y-108940000D01*
|
||||
X187090000Y-102390000D02*
|
||||
G75*
|
||||
G03*
|
||||
X187090000Y-97390000I0J2500000D01*
|
||||
G01*
|
||||
X184090000Y-90840000D02*
|
||||
G75*
|
||||
G03*
|
||||
X183090000Y-89840000I-1000000J0D01*
|
||||
G01*
|
||||
X184090000Y-102390000D02*
|
||||
X187090000Y-102390000D01*
|
||||
X128385000Y-89840000D02*
|
||||
X155765000Y-89840000D01*
|
||||
X155765000Y-109940000D02*
|
||||
X183090000Y-109940000D01*
|
||||
X187090000Y-97390000D02*
|
||||
X184090000Y-97390000D01*
|
||||
X112130000Y-109940000D02*
|
||||
X128365000Y-109940000D01*
|
||||
M02*
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,381 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Soldermask,Top*%
|
||||
%TF.FilePolarity,Negative*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10R,0.600000X0.750000*%
|
||||
%ADD11R,0.750000X0.600000*%
|
||||
%ADD12R,0.600000X0.620000*%
|
||||
%ADD13R,0.650000X1.200000*%
|
||||
%ADD14C,1.700000*%
|
||||
%ADD15O,1.700000X1.700000*%
|
||||
%ADD16R,0.620000X0.600000*%
|
||||
%ADD17R,0.690000X0.720000*%
|
||||
%ADD18R,1.100000X0.700000*%
|
||||
%ADD19R,0.930000X0.900000*%
|
||||
%ADD20R,0.780000X1.050000*%
|
||||
%ADD21R,3.330000X0.700000*%
|
||||
%ADD22R,2.800000X0.860000*%
|
||||
%ADD23R,1.830000X1.140000*%
|
||||
%ADD24R,0.700000X0.700000*%
|
||||
%ADD25R,0.720000X0.690000*%
|
||||
%ADD26R,0.900000X1.500000*%
|
||||
%ADD27R,1.500000X0.900000*%
|
||||
%ADD28R,0.900000X0.900000*%
|
||||
%ADD29R,0.500000X0.900000*%
|
||||
%ADD30R,0.650000X2.770000*%
|
||||
%ADD31R,0.950000X0.800000*%
|
||||
%ADD32R,1.050000X0.650000*%
|
||||
%ADD33R,1.850000X0.900000*%
|
||||
%ADD34R,1.850000X3.200000*%
|
||||
%ADD35C,2.200000*%
|
||||
%ADD36R,0.400000X1.000000*%
|
||||
%ADD37R,0.620000X0.640000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,R10*%
|
||||
X134960000Y-97140000D03*
|
||||
X134960000Y-96040000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R15*%
|
||||
X126500000Y-96950000D03*
|
||||
X127600000Y-96950000D03*
|
||||
%TD*%
|
||||
%TO.C,R6*%
|
||||
X150660000Y-104890000D03*
|
||||
X149560000Y-104890000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C7*%
|
||||
X117000000Y-92270000D03*
|
||||
X116080000Y-92270000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R5*%
|
||||
X115300000Y-91350000D03*
|
||||
X115300000Y-92450000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,IC2*%
|
||||
X128460000Y-92600000D03*
|
||||
X126540000Y-92600000D03*
|
||||
X127500000Y-94700000D03*
|
||||
%TD*%
|
||||
%TO.C,IC4*%
|
||||
X138210000Y-102375000D03*
|
||||
X136290000Y-102375000D03*
|
||||
X137250000Y-104475000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,J4*%
|
||||
X129370000Y-109940000D03*
|
||||
D15*
|
||||
X131910000Y-109940000D03*
|
||||
X134450000Y-109940000D03*
|
||||
X136990000Y-109940000D03*
|
||||
X139530000Y-109940000D03*
|
||||
X142070000Y-109940000D03*
|
||||
X144610000Y-109940000D03*
|
||||
X147150000Y-109940000D03*
|
||||
X149690000Y-109940000D03*
|
||||
X152230000Y-109940000D03*
|
||||
X154770000Y-109940000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,C11*%
|
||||
X136225000Y-97060000D03*
|
||||
X136225000Y-96140000D03*
|
||||
%TD*%
|
||||
D17*
|
||||
%TO.C,C2*%
|
||||
X181985000Y-90350000D03*
|
||||
X181065000Y-90350000D03*
|
||||
%TD*%
|
||||
D18*
|
||||
%TO.C,J6*%
|
||||
X112460000Y-102230000D03*
|
||||
X112460000Y-101130000D03*
|
||||
X112460000Y-100030000D03*
|
||||
X112460000Y-98930000D03*
|
||||
X112460000Y-97830000D03*
|
||||
X112460000Y-96730000D03*
|
||||
X112460000Y-95630000D03*
|
||||
X112460000Y-94530000D03*
|
||||
D19*
|
||||
X124925000Y-104020000D03*
|
||||
D20*
|
||||
X125000000Y-99755000D03*
|
||||
D21*
|
||||
X123725000Y-93370000D03*
|
||||
D22*
|
||||
X112960000Y-93450000D03*
|
||||
D23*
|
||||
X112475000Y-106110000D03*
|
||||
D21*
|
||||
X123725000Y-106330000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,LED1*%
|
||||
X155950000Y-98885000D03*
|
||||
X154850000Y-98885000D03*
|
||||
X154850000Y-100715000D03*
|
||||
X155950000Y-100715000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R4*%
|
||||
X117820000Y-91350000D03*
|
||||
X117820000Y-92450000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C6*%
|
||||
X133100000Y-99040000D03*
|
||||
X133100000Y-99960000D03*
|
||||
%TD*%
|
||||
D26*
|
||||
%TO.C,IC1*%
|
||||
X176560000Y-91100000D03*
|
||||
X175290000Y-91100000D03*
|
||||
X174020000Y-91100000D03*
|
||||
X172750000Y-91100000D03*
|
||||
X171480000Y-91100000D03*
|
||||
X170210000Y-91100000D03*
|
||||
X168940000Y-91100000D03*
|
||||
X167670000Y-91100000D03*
|
||||
X166400000Y-91100000D03*
|
||||
X165130000Y-91100000D03*
|
||||
X163860000Y-91100000D03*
|
||||
X162590000Y-91100000D03*
|
||||
X161320000Y-91100000D03*
|
||||
X160050000Y-91100000D03*
|
||||
D27*
|
||||
X158800000Y-94135000D03*
|
||||
X158800000Y-95405000D03*
|
||||
X158800000Y-96675000D03*
|
||||
X158800000Y-97945000D03*
|
||||
X158800000Y-99215000D03*
|
||||
X158800000Y-100485000D03*
|
||||
X158800000Y-101755000D03*
|
||||
X158800000Y-103025000D03*
|
||||
X158800000Y-104295000D03*
|
||||
X158800000Y-105565000D03*
|
||||
D26*
|
||||
X160050000Y-108600000D03*
|
||||
X161320000Y-108600000D03*
|
||||
X162590000Y-108600000D03*
|
||||
X163860000Y-108600000D03*
|
||||
X165130000Y-108600000D03*
|
||||
X166400000Y-108600000D03*
|
||||
X167670000Y-108600000D03*
|
||||
X168940000Y-108600000D03*
|
||||
X170210000Y-108600000D03*
|
||||
X171480000Y-108600000D03*
|
||||
X172750000Y-108600000D03*
|
||||
X174020000Y-108600000D03*
|
||||
X175290000Y-108600000D03*
|
||||
X176560000Y-108600000D03*
|
||||
D28*
|
||||
X170240000Y-96950000D03*
|
||||
X168840000Y-96950000D03*
|
||||
X167440000Y-96950000D03*
|
||||
X167440000Y-98350000D03*
|
||||
X167440000Y-99750000D03*
|
||||
X168840000Y-99750000D03*
|
||||
X170240000Y-99750000D03*
|
||||
X170240000Y-98350000D03*
|
||||
X168840000Y-98350000D03*
|
||||
%TD*%
|
||||
D29*
|
||||
%TO.C,LED4*%
|
||||
X127200000Y-99100000D03*
|
||||
X128500000Y-99100000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R2*%
|
||||
X155950000Y-97430000D03*
|
||||
X154850000Y-97430000D03*
|
||||
%TD*%
|
||||
D30*
|
||||
%TO.C,J1*%
|
||||
X143860000Y-101665000D03*
|
||||
X143860000Y-98135000D03*
|
||||
X145130000Y-101665000D03*
|
||||
X145130000Y-98135000D03*
|
||||
X146400000Y-101665000D03*
|
||||
X146400000Y-98135000D03*
|
||||
X147670000Y-101665000D03*
|
||||
X147670000Y-98135000D03*
|
||||
X148940000Y-101665000D03*
|
||||
X148940000Y-98135000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C5*%
|
||||
X126100000Y-101790000D03*
|
||||
X126100000Y-102710000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,IC5*%
|
||||
X141060000Y-105000000D03*
|
||||
X139140000Y-105000000D03*
|
||||
X140100000Y-107100000D03*
|
||||
%TD*%
|
||||
D31*
|
||||
%TO.C,LED2*%
|
||||
X142800000Y-93050000D03*
|
||||
X142800000Y-94650000D03*
|
||||
%TD*%
|
||||
D32*
|
||||
%TO.C,S2*%
|
||||
X152075000Y-104875000D03*
|
||||
X156225000Y-104875000D03*
|
||||
X152075000Y-107025000D03*
|
||||
X156225000Y-107025000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C4*%
|
||||
X154930000Y-102150000D03*
|
||||
X155850000Y-102150000D03*
|
||||
%TD*%
|
||||
D33*
|
||||
%TO.C,IC3*%
|
||||
X134200000Y-106700000D03*
|
||||
X134200000Y-104400000D03*
|
||||
X134200000Y-102100000D03*
|
||||
D34*
|
||||
X128000000Y-104400000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C3*%
|
||||
X179065000Y-90300000D03*
|
||||
X179985000Y-90300000D03*
|
||||
%TD*%
|
||||
D35*
|
||||
%TO.C,*%
|
||||
X187100000Y-99900000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,C8*%
|
||||
X129290000Y-97080000D03*
|
||||
X129290000Y-96160000D03*
|
||||
%TD*%
|
||||
D36*
|
||||
%TO.C,U3*%
|
||||
X138250000Y-92600000D03*
|
||||
X137600000Y-92600000D03*
|
||||
X136950000Y-92600000D03*
|
||||
X136950000Y-94600000D03*
|
||||
X137600000Y-94600000D03*
|
||||
X138250000Y-94600000D03*
|
||||
%TD*%
|
||||
D32*
|
||||
%TO.C,S1*%
|
||||
X152075000Y-92725000D03*
|
||||
X156225000Y-92725000D03*
|
||||
X152075000Y-94875000D03*
|
||||
X156225000Y-94875000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R1*%
|
||||
X149700000Y-93800000D03*
|
||||
X150800000Y-93800000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,C9*%
|
||||
X134420000Y-99050000D03*
|
||||
X134420000Y-99970000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R8*%
|
||||
X131610000Y-97150000D03*
|
||||
X131610000Y-96050000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,J5*%
|
||||
X129370000Y-89840000D03*
|
||||
D15*
|
||||
X131910000Y-89840000D03*
|
||||
X134450000Y-89840000D03*
|
||||
X136990000Y-89840000D03*
|
||||
X139530000Y-89840000D03*
|
||||
X142070000Y-89840000D03*
|
||||
X144610000Y-89840000D03*
|
||||
X147150000Y-89840000D03*
|
||||
X149690000Y-89840000D03*
|
||||
X152230000Y-89840000D03*
|
||||
X154770000Y-89840000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R12*%
|
||||
X138400000Y-97150000D03*
|
||||
X138400000Y-96050000D03*
|
||||
%TD*%
|
||||
D37*
|
||||
%TO.C,C1*%
|
||||
X150690000Y-94690000D03*
|
||||
X149770000Y-94690000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R11*%
|
||||
X137200000Y-97150000D03*
|
||||
X137200000Y-96050000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,C10*%
|
||||
X133000000Y-97085000D03*
|
||||
X133000000Y-96165000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R13*%
|
||||
X144350000Y-93300000D03*
|
||||
X144350000Y-94400000D03*
|
||||
%TD*%
|
||||
%TO.C,R14*%
|
||||
X147400000Y-93250000D03*
|
||||
X147400000Y-94350000D03*
|
||||
%TD*%
|
||||
D36*
|
||||
%TO.C,U2*%
|
||||
X134800000Y-92600000D03*
|
||||
X134150000Y-92600000D03*
|
||||
X133500000Y-92600000D03*
|
||||
X133500000Y-94600000D03*
|
||||
X134150000Y-94600000D03*
|
||||
X134800000Y-94600000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R9*%
|
||||
X133790000Y-97140000D03*
|
||||
X133790000Y-96040000D03*
|
||||
%TD*%
|
||||
D36*
|
||||
%TO.C,U1*%
|
||||
X131450000Y-92610000D03*
|
||||
X130800000Y-92610000D03*
|
||||
X130150000Y-92610000D03*
|
||||
X130150000Y-94610000D03*
|
||||
X130800000Y-94610000D03*
|
||||
X131450000Y-94610000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R3*%
|
||||
X119900000Y-91360000D03*
|
||||
X119900000Y-92460000D03*
|
||||
%TD*%
|
||||
%TO.C,R7*%
|
||||
X130410000Y-97160000D03*
|
||||
X130410000Y-96060000D03*
|
||||
%TD*%
|
||||
D31*
|
||||
%TO.C,LED3*%
|
||||
X145900000Y-93050000D03*
|
||||
X145900000Y-94650000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,343 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.8)*%
|
||||
%TF.CreationDate,2023-01-02T13:08:22-05:00*%
|
||||
%TF.ProjectId,WiFi-Devboard-Pro,57694669-2d44-4657-9662-6f6172642d50,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Paste,Top*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (6.0.8)) date 2023-01-02 13:08:22*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10R,0.600000X0.750000*%
|
||||
%ADD11R,0.750000X0.600000*%
|
||||
%ADD12R,0.600000X0.620000*%
|
||||
%ADD13R,0.650000X1.200000*%
|
||||
%ADD14R,0.620000X0.600000*%
|
||||
%ADD15R,0.690000X0.720000*%
|
||||
%ADD16R,1.100000X0.700000*%
|
||||
%ADD17R,0.930000X0.900000*%
|
||||
%ADD18R,0.780000X1.050000*%
|
||||
%ADD19R,3.330000X0.700000*%
|
||||
%ADD20R,2.800000X0.860000*%
|
||||
%ADD21R,1.830000X1.140000*%
|
||||
%ADD22R,0.700000X0.700000*%
|
||||
%ADD23R,0.720000X0.690000*%
|
||||
%ADD24R,0.900000X1.500000*%
|
||||
%ADD25R,1.500000X0.900000*%
|
||||
%ADD26R,0.900000X0.900000*%
|
||||
%ADD27R,0.500000X0.900000*%
|
||||
%ADD28R,0.650000X2.770000*%
|
||||
%ADD29R,0.950000X0.800000*%
|
||||
%ADD30R,1.050000X0.650000*%
|
||||
%ADD31R,1.850000X0.900000*%
|
||||
%ADD32R,1.850000X3.200000*%
|
||||
%ADD33R,0.400000X1.000000*%
|
||||
%ADD34R,0.620000X0.640000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,R10*%
|
||||
X134960000Y-97140000D03*
|
||||
X134960000Y-96040000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R15*%
|
||||
X126500000Y-96950000D03*
|
||||
X127600000Y-96950000D03*
|
||||
%TD*%
|
||||
%TO.C,R6*%
|
||||
X150660000Y-104890000D03*
|
||||
X149560000Y-104890000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C7*%
|
||||
X117000000Y-92270000D03*
|
||||
X116080000Y-92270000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R5*%
|
||||
X115300000Y-91350000D03*
|
||||
X115300000Y-92450000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,IC2*%
|
||||
X128460000Y-92600000D03*
|
||||
X126540000Y-92600000D03*
|
||||
X127500000Y-94700000D03*
|
||||
%TD*%
|
||||
%TO.C,IC4*%
|
||||
X138210000Y-102375000D03*
|
||||
X136290000Y-102375000D03*
|
||||
X137250000Y-104475000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C11*%
|
||||
X136225000Y-97060000D03*
|
||||
X136225000Y-96140000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C2*%
|
||||
X181985000Y-90350000D03*
|
||||
X181065000Y-90350000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,J6*%
|
||||
X112460000Y-102230000D03*
|
||||
X112460000Y-101130000D03*
|
||||
X112460000Y-100030000D03*
|
||||
X112460000Y-98930000D03*
|
||||
X112460000Y-97830000D03*
|
||||
X112460000Y-96730000D03*
|
||||
X112460000Y-95630000D03*
|
||||
X112460000Y-94530000D03*
|
||||
D17*
|
||||
X124925000Y-104020000D03*
|
||||
D18*
|
||||
X125000000Y-99755000D03*
|
||||
D19*
|
||||
X123725000Y-93370000D03*
|
||||
D20*
|
||||
X112960000Y-93450000D03*
|
||||
D21*
|
||||
X112475000Y-106110000D03*
|
||||
D19*
|
||||
X123725000Y-106330000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,LED1*%
|
||||
X155950000Y-98885000D03*
|
||||
X154850000Y-98885000D03*
|
||||
X154850000Y-100715000D03*
|
||||
X155950000Y-100715000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R4*%
|
||||
X117820000Y-91350000D03*
|
||||
X117820000Y-92450000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C6*%
|
||||
X133100000Y-99040000D03*
|
||||
X133100000Y-99960000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,IC1*%
|
||||
X176560000Y-91100000D03*
|
||||
X175290000Y-91100000D03*
|
||||
X174020000Y-91100000D03*
|
||||
X172750000Y-91100000D03*
|
||||
X171480000Y-91100000D03*
|
||||
X170210000Y-91100000D03*
|
||||
X168940000Y-91100000D03*
|
||||
X167670000Y-91100000D03*
|
||||
X166400000Y-91100000D03*
|
||||
X165130000Y-91100000D03*
|
||||
X163860000Y-91100000D03*
|
||||
X162590000Y-91100000D03*
|
||||
X161320000Y-91100000D03*
|
||||
X160050000Y-91100000D03*
|
||||
D25*
|
||||
X158800000Y-94135000D03*
|
||||
X158800000Y-95405000D03*
|
||||
X158800000Y-96675000D03*
|
||||
X158800000Y-97945000D03*
|
||||
X158800000Y-99215000D03*
|
||||
X158800000Y-100485000D03*
|
||||
X158800000Y-101755000D03*
|
||||
X158800000Y-103025000D03*
|
||||
X158800000Y-104295000D03*
|
||||
X158800000Y-105565000D03*
|
||||
D24*
|
||||
X160050000Y-108600000D03*
|
||||
X161320000Y-108600000D03*
|
||||
X162590000Y-108600000D03*
|
||||
X163860000Y-108600000D03*
|
||||
X165130000Y-108600000D03*
|
||||
X166400000Y-108600000D03*
|
||||
X167670000Y-108600000D03*
|
||||
X168940000Y-108600000D03*
|
||||
X170210000Y-108600000D03*
|
||||
X171480000Y-108600000D03*
|
||||
X172750000Y-108600000D03*
|
||||
X174020000Y-108600000D03*
|
||||
X175290000Y-108600000D03*
|
||||
X176560000Y-108600000D03*
|
||||
D26*
|
||||
X170240000Y-96950000D03*
|
||||
X168840000Y-96950000D03*
|
||||
X167440000Y-96950000D03*
|
||||
X167440000Y-98350000D03*
|
||||
X167440000Y-99750000D03*
|
||||
X168840000Y-99750000D03*
|
||||
X170240000Y-99750000D03*
|
||||
X170240000Y-98350000D03*
|
||||
X168840000Y-98350000D03*
|
||||
%TD*%
|
||||
D27*
|
||||
%TO.C,LED4*%
|
||||
X127200000Y-99100000D03*
|
||||
X128500000Y-99100000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R2*%
|
||||
X155950000Y-97430000D03*
|
||||
X154850000Y-97430000D03*
|
||||
%TD*%
|
||||
D28*
|
||||
%TO.C,J1*%
|
||||
X143860000Y-101665000D03*
|
||||
X143860000Y-98135000D03*
|
||||
X145130000Y-101665000D03*
|
||||
X145130000Y-98135000D03*
|
||||
X146400000Y-101665000D03*
|
||||
X146400000Y-98135000D03*
|
||||
X147670000Y-101665000D03*
|
||||
X147670000Y-98135000D03*
|
||||
X148940000Y-101665000D03*
|
||||
X148940000Y-98135000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C5*%
|
||||
X126100000Y-101790000D03*
|
||||
X126100000Y-102710000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,IC5*%
|
||||
X141060000Y-105000000D03*
|
||||
X139140000Y-105000000D03*
|
||||
X140100000Y-107100000D03*
|
||||
%TD*%
|
||||
D29*
|
||||
%TO.C,LED2*%
|
||||
X142800000Y-93050000D03*
|
||||
X142800000Y-94650000D03*
|
||||
%TD*%
|
||||
D30*
|
||||
%TO.C,S2*%
|
||||
X152075000Y-104875000D03*
|
||||
X156225000Y-104875000D03*
|
||||
X152075000Y-107025000D03*
|
||||
X156225000Y-107025000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C4*%
|
||||
X154930000Y-102150000D03*
|
||||
X155850000Y-102150000D03*
|
||||
%TD*%
|
||||
D31*
|
||||
%TO.C,IC3*%
|
||||
X134200000Y-106700000D03*
|
||||
X134200000Y-104400000D03*
|
||||
X134200000Y-102100000D03*
|
||||
D32*
|
||||
X128000000Y-104400000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,C3*%
|
||||
X179065000Y-90300000D03*
|
||||
X179985000Y-90300000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C8*%
|
||||
X129290000Y-97080000D03*
|
||||
X129290000Y-96160000D03*
|
||||
%TD*%
|
||||
D33*
|
||||
%TO.C,U3*%
|
||||
X138250000Y-92600000D03*
|
||||
X137600000Y-92600000D03*
|
||||
X136950000Y-92600000D03*
|
||||
X136950000Y-94600000D03*
|
||||
X137600000Y-94600000D03*
|
||||
X138250000Y-94600000D03*
|
||||
%TD*%
|
||||
D30*
|
||||
%TO.C,S1*%
|
||||
X152075000Y-92725000D03*
|
||||
X156225000Y-92725000D03*
|
||||
X152075000Y-94875000D03*
|
||||
X156225000Y-94875000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,R1*%
|
||||
X149700000Y-93800000D03*
|
||||
X150800000Y-93800000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C9*%
|
||||
X134420000Y-99050000D03*
|
||||
X134420000Y-99970000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R8*%
|
||||
X131610000Y-97150000D03*
|
||||
X131610000Y-96050000D03*
|
||||
%TD*%
|
||||
%TO.C,R12*%
|
||||
X138400000Y-97150000D03*
|
||||
X138400000Y-96050000D03*
|
||||
%TD*%
|
||||
D34*
|
||||
%TO.C,C1*%
|
||||
X150690000Y-94690000D03*
|
||||
X149770000Y-94690000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R11*%
|
||||
X137200000Y-97150000D03*
|
||||
X137200000Y-96050000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C10*%
|
||||
X133000000Y-97085000D03*
|
||||
X133000000Y-96165000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R13*%
|
||||
X144350000Y-93300000D03*
|
||||
X144350000Y-94400000D03*
|
||||
%TD*%
|
||||
%TO.C,R14*%
|
||||
X147400000Y-93250000D03*
|
||||
X147400000Y-94350000D03*
|
||||
%TD*%
|
||||
D33*
|
||||
%TO.C,U2*%
|
||||
X134800000Y-92600000D03*
|
||||
X134150000Y-92600000D03*
|
||||
X133500000Y-92600000D03*
|
||||
X133500000Y-94600000D03*
|
||||
X134150000Y-94600000D03*
|
||||
X134800000Y-94600000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R9*%
|
||||
X133790000Y-97140000D03*
|
||||
X133790000Y-96040000D03*
|
||||
%TD*%
|
||||
D33*
|
||||
%TO.C,U1*%
|
||||
X131450000Y-92610000D03*
|
||||
X130800000Y-92610000D03*
|
||||
X130150000Y-92610000D03*
|
||||
X130150000Y-94610000D03*
|
||||
X130800000Y-94610000D03*
|
||||
X131450000Y-94610000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,R3*%
|
||||
X119900000Y-91360000D03*
|
||||
X119900000Y-92460000D03*
|
||||
%TD*%
|
||||
%TO.C,R7*%
|
||||
X130410000Y-97160000D03*
|
||||
X130410000Y-96060000D03*
|
||||
%TD*%
|
||||
D29*
|
||||
%TO.C,LED3*%
|
||||
X145900000Y-93050000D03*
|
||||
X145900000Y-94650000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,17 @@
|
||||
M48
|
||||
; DRILL file {KiCad (6.0.8)} date Mon Jan 2 13:07:49 2023
|
||||
; FORMAT={-:-/ absolute / inch / decimal}
|
||||
; #@! TF.CreationDate,2023-01-02T13:07:49-05:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.8)
|
||||
; #@! TF.FileFunction,NonPlated,1,2,NPTH
|
||||
FMAT,2
|
||||
INCH
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T1C0.0866
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X7.3661Y-3.9331
|
||||
T0
|
||||
M30
|
||||
@@ -0,0 +1,111 @@
|
||||
M48
|
||||
; DRILL file {KiCad (6.0.8)} date Mon Jan 2 13:07:49 2023
|
||||
; FORMAT={-:-/ absolute / inch / decimal}
|
||||
; #@! TF.CreationDate,2023-01-02T13:07:49-05:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.8)
|
||||
; #@! TF.FileFunction,Plated,1,2,PTH
|
||||
FMAT,2
|
||||
INCH
|
||||
; #@! TA.AperFunction,Plated,PTH,ViaDrill
|
||||
T1C0.0118
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T2C0.0394
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X4.4614Y-3.765
|
||||
X4.5118Y-3.5965
|
||||
X4.5709Y-3.6008
|
||||
X4.6618Y-3.9384
|
||||
X4.6626Y-3.5972
|
||||
X4.7831Y-3.5969
|
||||
X4.8949Y-4.1358
|
||||
X4.9528Y-3.8169
|
||||
X4.9618Y-4.1575
|
||||
X5.0913Y-3.6457
|
||||
X5.1081Y-3.7541
|
||||
X5.1299Y-4.1307
|
||||
X5.154Y-4.2442
|
||||
X5.1965Y-3.7252
|
||||
X5.2102Y-3.6665
|
||||
X5.3067Y-3.6839
|
||||
X5.3091Y-3.9748
|
||||
X5.3248Y-3.9185
|
||||
X5.348Y-3.8756
|
||||
X5.3622Y-3.7333
|
||||
X5.3986Y-3.9892
|
||||
X5.4307Y-3.889
|
||||
X5.5819Y-4.0693
|
||||
X5.5823Y-4.1481
|
||||
X5.6075Y-3.8177
|
||||
X5.6398Y-4.0679
|
||||
X5.6827Y-3.6469
|
||||
X5.7224Y-3.7945
|
||||
X5.8028Y-3.6441
|
||||
X5.8382Y-3.7945
|
||||
X5.8528Y-4.1295
|
||||
X5.8933Y-3.8638
|
||||
X5.9689Y-3.6858
|
||||
X6.0043Y-3.6831
|
||||
X6.0236Y-3.5787
|
||||
X6.0335Y-3.9311
|
||||
X6.1004Y-4.0598
|
||||
X6.1528Y-3.6961
|
||||
X6.187Y-3.8358
|
||||
X6.2461Y-4.2352
|
||||
X6.2984Y-3.8134
|
||||
X6.2984Y-4.0606
|
||||
X6.3012Y-3.7535
|
||||
X6.3236Y-4.1185
|
||||
X6.3248Y-3.7756
|
||||
X6.3492Y-3.7091
|
||||
X6.3514Y-4.2116
|
||||
X6.3516Y-3.6752
|
||||
X6.4012Y-3.6277
|
||||
X6.4508Y-4.2323
|
||||
X6.4512Y-3.6277
|
||||
X6.5004Y-4.2106
|
||||
X6.5012Y-3.6277
|
||||
X6.5512Y-3.6277
|
||||
X6.5512Y-4.2323
|
||||
X6.6012Y-3.6277
|
||||
X6.6014Y-4.2323
|
||||
X6.6276Y-4.1134
|
||||
X6.6512Y-3.6277
|
||||
X6.7008Y-4.2323
|
||||
X6.7012Y-3.6277
|
||||
X6.7512Y-4.2276
|
||||
X6.802Y-4.2268
|
||||
X6.8512Y-3.6362
|
||||
X6.8512Y-4.2295
|
||||
X6.9012Y-4.2303
|
||||
X6.9181Y-3.9774
|
||||
X6.9882Y-3.5827
|
||||
X7.0197Y-3.5551
|
||||
X7.1283Y-3.5831
|
||||
T2
|
||||
X5.0933Y-3.537
|
||||
X5.0933Y-4.3283
|
||||
X5.1933Y-3.537
|
||||
X5.1933Y-4.3283
|
||||
X5.2933Y-3.537
|
||||
X5.2933Y-4.3283
|
||||
X5.3933Y-3.537
|
||||
X5.3933Y-4.3283
|
||||
X5.4933Y-3.537
|
||||
X5.4933Y-4.3283
|
||||
X5.5933Y-3.537
|
||||
X5.5933Y-4.3283
|
||||
X5.6933Y-3.537
|
||||
X5.6933Y-4.3283
|
||||
X5.7933Y-3.537
|
||||
X5.7933Y-4.3283
|
||||
X5.8933Y-3.537
|
||||
X5.8933Y-4.3283
|
||||
X5.9933Y-3.537
|
||||
X5.9933Y-4.3283
|
||||
X6.0933Y-3.537
|
||||
X6.0933Y-4.3283
|
||||
T0
|
||||
M30
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"Header": {
|
||||
"GenerationSoftware": {
|
||||
"Vendor": "KiCad",
|
||||
"Application": "Pcbnew",
|
||||
"Version": "(6.0.8)"
|
||||
},
|
||||
"CreationDate": "2023-01-02T13:08:22-05:00"
|
||||
},
|
||||
"GeneralSpecs": {
|
||||
"ProjectId": {
|
||||
"Name": "WiFi-Devboard-Pro",
|
||||
"GUID": "57694669-2d44-4657-9662-6f6172642d50",
|
||||
"Revision": "rev?"
|
||||
},
|
||||
"Size": {
|
||||
"X": 78.56,
|
||||
"Y": 20.2
|
||||
},
|
||||
"LayerNumber": 2,
|
||||
"BoardThickness": 1.6,
|
||||
"Finish": "None"
|
||||
},
|
||||
"DesignRules": [
|
||||
{
|
||||
"Layers": "Outer",
|
||||
"PadToPad": 0.127,
|
||||
"PadToTrack": 0.127,
|
||||
"TrackToTrack": 0.127,
|
||||
"MinLineWidth": 0.127,
|
||||
"TrackToRegion": 0.127,
|
||||
"RegionToRegion": 0.127
|
||||
}
|
||||
],
|
||||
"FilesAttributes": [
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-F_Cu.gbr",
|
||||
"FileFunction": "Copper,L1,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-B_Cu.gbr",
|
||||
"FileFunction": "Copper,L2,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-F_Paste.gbr",
|
||||
"FileFunction": "SolderPaste,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-B_Paste.gbr",
|
||||
"FileFunction": "SolderPaste,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-F_Silkscreen.gbr",
|
||||
"FileFunction": "Legend,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-B_Silkscreen.gbr",
|
||||
"FileFunction": "Legend,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-F_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Top",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-B_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Bot",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "WiFi-Devboard-Pro-Edge_Cuts.gbr",
|
||||
"FileFunction": "Profile",
|
||||
"FilePolarity": "Positive"
|
||||
}
|
||||
],
|
||||
"MaterialStackup": [
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Name": "Top Silk Screen"
|
||||
},
|
||||
{
|
||||
"Type": "SolderPaste",
|
||||
"Name": "Top Solder Paste"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Thickness": 0.01,
|
||||
"Name": "Top Solder Mask"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "F.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "Dielectric",
|
||||
"Thickness": 1.51,
|
||||
"Material": "FR4",
|
||||
"Name": "F.Cu/B.Cu",
|
||||
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "B.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Thickness": 0.01,
|
||||
"Name": "Bottom Solder Mask"
|
||||
},
|
||||
{
|
||||
"Type": "SolderPaste",
|
||||
"Name": "Bottom Solder Paste"
|
||||
},
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Name": "Bottom Silk Screen"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
Comment,Designator,Footprint,LCSC
|
||||
"1u","C1","0402",""
|
||||
"22uF","C2,C5","0402",""
|
||||
"100n","C3,C7,C8,C9,C10,C11","0402",""
|
||||
"100nF","C4","0402",""
|
||||
"10uF","C6","0402",""
|
||||
"MountingHole","H1","",""
|
||||
"ESP32-WROOM-32E-N4","IC1","SMD-38P,18x25.5x3.1mm",""
|
||||
"SI2333CDS-T1-E3","IC2,IC4,IC5","SOT-23",""
|
||||
"AZ1117H-3.3TRE1","IC3","SOT-223-3",""
|
||||
"3220-10-0300-00","J1","322010030000",""
|
||||
"X6511WVS-08H-C60D48R1","J2","SMD,P=2.54mm(交错脚)",""
|
||||
"X6511WVS-10H-C60D48R1","J3","HUSRSP10W66P254_2500X250X850P",""
|
||||
"Conn_01x11","J4,J5","SMD,P=2.54mm(交错脚)",""
|
||||
"503398-1892","J6","SMD",""
|
||||
"WS2812B-2020","LED1","WS2812B2020",""
|
||||
"TX","LED2","0603",""
|
||||
"RX","LED3","0603",""
|
||||
"3V3","LED4","0603",""
|
||||
"10k","R1,R6","0402",""
|
||||
"220","R2","0402",""
|
||||
"1K","R3,R4,R5,R13,R14,R15","0402",""
|
||||
"100K","R7,R8,R9,R10,R11,R12","0402",""
|
||||
"SKRPABE010","S1,S2","SMD",""
|
||||
"MMDT2907A-7-F","U1,U2,U3","SOT65P210X110-6N",""
|
||||
|
Binary file not shown.
@@ -0,0 +1,48 @@
|
||||
Designator,Val,Package,Mid X,Mid Y,Rotation,Layer
|
||||
J2,X6511WVS-08H-C60D48R2,HUSRSP8W66P254_2000X250X850P,-127.300000,-102.100000,0.000000,bottom
|
||||
J3,DZ254S-11-10-48,HUSRSP10W66P254_2500X250X850P,-165.400000,-102.100000,0.000000,bottom
|
||||
,,,187.100000,-99.900000,0.000000,top
|
||||
C1,1u,CAPC1005X60N,150.230000,-94.690000,180.000000,top
|
||||
C2,22uF,CAPC1005X80N,181.525000,-90.350000,180.000000,top
|
||||
C3,100n,CAPC1005X55N,179.525000,-90.300000,0.000000,top
|
||||
C4,100nF,CAPC1005X55N,155.390000,-102.150000,0.000000,top
|
||||
C5,22uF,CAPC1005X80N,126.100000,-102.250000,-90.000000,top
|
||||
C6,10uF,CAPC1005X70N,133.100000,-99.500000,-90.000000,top
|
||||
C7,100n,CAPC1005X55N,116.540000,-92.270000,180.000000,top
|
||||
C8,100n,CAPC1005X55N,129.290000,-96.620000,90.000000,top
|
||||
C9,100n,CAPC1005X55N,134.420000,-99.510000,-90.000000,top
|
||||
C10,100n,CAPC1005X55N,133.000000,-96.625000,90.000000,top
|
||||
C11,100n,CAPC1005X55N,136.225000,-96.600000,90.000000,top
|
||||
IC1,ESP32-WROOM-32E-N4,ESP32WROOM32EN4,171.300000,-99.850000,-90.000000,top
|
||||
IC2,DMP1045U-7,SOT96P240X120-3N,127.500000,-93.650000,-90.000000,top
|
||||
IC3,AZ1117H-3.3TRE1,SOT230P700X180-4N,131.100000,-104.400000,180.000000,top
|
||||
IC4,DMP1045U-7,SOT96P240X120-3N,137.250000,-103.425000,-90.000000,top
|
||||
IC5,DMP1045U-7,SOT96P240X120-3N,140.100000,-106.050000,-90.000000,top
|
||||
J1,3220-10-0300-00,322010030000,146.400000,-99.900000,0.000000,top
|
||||
J4,Conn_01x11,PinHeader_1x11_P2.54mm_Vertical,129.370000,-109.940000,90.000000,top
|
||||
J5,Conn_01x11,PinHeader_1x11_P2.54mm_Vertical,129.370000,-89.840000,90.000000,top
|
||||
J6,503398-1892,503398-1892,111.060000,-106.400000,90.000000,top
|
||||
LED1,WS2812B-2020,WS2812B2020,155.400000,-99.800000,90.000000,top
|
||||
LED2,TX,LEDC1608X50N,142.800000,-93.850000,-90.000000,top
|
||||
LED3,RX,LEDC1608X50N,145.900000,-93.850000,-90.000000,top
|
||||
LED4,3V3,19217R6CAL1M2VY3T,127.850000,-99.100000,180.000000,top
|
||||
R1,10k,RESC1005X40N,150.250000,-93.800000,0.000000,top
|
||||
R2,220,RESC1005X40N,155.400000,-97.430000,180.000000,top
|
||||
R3,1K,RESC1005X40N,119.900000,-91.910000,-90.000000,top
|
||||
R4,1K,RESC1005X40N,117.820000,-91.900000,-90.000000,top
|
||||
R5,1K,RESC1005X40N,115.300000,-91.900000,-90.000000,top
|
||||
R6,10k,RESC1005X40N,150.110000,-104.890000,180.000000,top
|
||||
R7,100K,RESC1005X40N,130.410000,-96.610000,90.000000,top
|
||||
R8,100K,RESC1005X40N,131.610000,-96.600000,90.000000,top
|
||||
R9,100K,RESC1005X40N,133.790000,-96.590000,90.000000,top
|
||||
R10,100K,RESC1005X40N,134.960000,-96.590000,90.000000,top
|
||||
R11,100K,RESC1005X40N,137.200000,-96.600000,90.000000,top
|
||||
R12,100K,RESC1005X40N,138.400000,-96.600000,90.000000,top
|
||||
R13,1K,RESC1005X40N,144.350000,-93.850000,-90.000000,top
|
||||
R14,1K,RESC1005X40N,147.400000,-93.800000,-90.000000,top
|
||||
R15,1K,RESC1005X40N,127.050000,-96.950000,0.000000,top
|
||||
S1,SKRPABE010,SKRPABE010,154.150000,-93.800000,0.000000,top
|
||||
S2,SKRPABE010,SKRPABE010,154.150000,-105.950000,0.000000,top
|
||||
U1,MMDT2907A-7-F,SOT65P210X110-6N,130.800000,-93.610000,-90.000000,top
|
||||
U2,MMDT2907A-7-F,SOT65P210X110-6N,134.150000,-93.600000,-90.000000,top
|
||||
U3,MMDT2907A-7-F,SOT65P210X110-6N,137.600000,-93.600000,-90.000000,top
|
||||
|
4660
PCBs/FlipperZero/WiFi-Devboard-Pro/PCB-layout-export.dxf
Normal file
4660
PCBs/FlipperZero/WiFi-Devboard-Pro/PCB-layout-export.dxf
Normal file
File diff suppressed because it is too large
Load Diff
9
PCBs/FlipperZero/WiFi-Devboard-Pro/README.md
Normal file
9
PCBs/FlipperZero/WiFi-Devboard-Pro/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Parts
|
||||
|
||||
- Header Pin x8: [C2883805](https://www.lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WVS-08H-C60D48R1_C2883805.html)
|
||||
- Header Pin x10: [C2883807](https://www.lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WVS-10H-C60D48R1_C2883807.html)
|
||||
- Alternative Header: [M20-8771246](https://www.mouser.com/ProductDetail/Harwin/M20-8771246?qs=WS5Jv%252B%252Bx1qWzrNY%252Bb2U9JQ%3D%3D&countryCode=US¤cyCode=USD)
|
||||
- Light Pipe: [PLP2-188](https://www.digikey.com/en/products/detail/bivar-inc/PLP2-188/5721973?utm_medium=email&utm_source=oce&utm_campaign=4251_OCE23RT&utm_content=productdetail_US&utm_cid=2955578&so=79456987&mkt_tok=MDI4LVNYSy01MDcAAAGJOBaFWa7m6RHsJZT6mWcYRd9LRyXmqis92EV7j5ftyM5NuNOSOPqUp292m0P5E3FKrEWCFuvb9fObSzuSvVMsopuOMPjO46ylCAR1IzCL)
|
||||
- M2x6mm Round Top Screw: [97763A407](https://www.mcmaster.com/97763A407/)
|
||||
- M2x8mm Countersunk Screw: [91294A005](https://www.mcmaster.com/91294A005/)
|
||||
- M2 Threaded Insert: [94180A307](https://www.mcmaster.com/94180A307/)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 44,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": false,
|
||||
"hidden_nets": [
|
||||
"+ext_3V3"
|
||||
],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"ratsnest_display_mode": 0,
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": true,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
],
|
||||
"visible_layers": "8001130_ffffffff",
|
||||
"zone_display_mode": 1
|
||||
},
|
||||
"meta": {
|
||||
"filename": "WiFi-Devboard-Pro.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
@@ -33,9 +33,9 @@
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
"drill": 2.2,
|
||||
"height": 2.2,
|
||||
"width": 2.2
|
||||
},
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_italic": false,
|
||||
@@ -45,10 +45,16 @@
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"45_degree_only": false,
|
||||
"min_clearance": 0.508
|
||||
"min_clearance": 0.09999999999999999
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
@@ -56,8 +62,8 @@
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"copper_edge_clearance": "error",
|
||||
"courtyards_overlap": "error",
|
||||
"copper_edge_clearance": "ignore",
|
||||
"courtyards_overlap": "ignore",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
@@ -79,12 +85,12 @@
|
||||
"padstack": "error",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"silk_over_copper": "ignore",
|
||||
"silk_overlap": "ignore",
|
||||
"skew_out_of_range": "error",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_dangling": "ignore",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
@@ -97,23 +103,51 @@
|
||||
"allow_blind_buried_vias": false,
|
||||
"allow_microvias": false,
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_clearance": 0.127,
|
||||
"min_copper_edge_clearance": 0.19999999999999998,
|
||||
"min_hole_clearance": 0.254,
|
||||
"min_hole_to_hole": 0.5,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.19999999999999998,
|
||||
"min_through_hole_diameter": 0.19999999999999998,
|
||||
"min_track_width": 0.127,
|
||||
"min_via_annular_width": 0.049999999999999996,
|
||||
"min_via_diameter": 0.39999999999999997,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"track_widths": [],
|
||||
"via_dimensions": [],
|
||||
"track_widths": [
|
||||
0.0,
|
||||
0.127,
|
||||
0.2,
|
||||
0.3,
|
||||
0.5,
|
||||
1.0
|
||||
],
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
},
|
||||
{
|
||||
"diameter": 0.4,
|
||||
"drill": 0.2
|
||||
},
|
||||
{
|
||||
"diameter": 0.5,
|
||||
"drill": 0.3
|
||||
},
|
||||
{
|
||||
"diameter": 1.0,
|
||||
"drill": 0.5
|
||||
},
|
||||
{
|
||||
"diameter": 2.0,
|
||||
"drill": 1.0
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false,
|
||||
"zones_use_no_outline": true
|
||||
},
|
||||
@@ -340,7 +374,7 @@
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.2,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
@@ -350,9 +384,53 @@
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"track_width": 0.127,
|
||||
"via_diameter": 0.5,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6.0
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "GND",
|
||||
"nets": [
|
||||
"GND"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"via_diameter": 0.5,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6.0
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Supply",
|
||||
"nets": [
|
||||
"+3V3",
|
||||
"+5V",
|
||||
"+LDO_3V3",
|
||||
"+ext_3V3",
|
||||
"+ext_5V"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"via_diameter": 0.5,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6.0
|
||||
}
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
2428
PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro.xml
Normal file
2428
PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro.xml
Normal file
File diff suppressed because it is too large
Load Diff
104
PCBs/FlipperZero/WiFi-Devboard-Pro/bom2grouped_csv_jlcpcb.xsl
Normal file
104
PCBs/FlipperZero/WiFi-Devboard-Pro/bom2grouped_csv_jlcpcb.xsl
Normal file
@@ -0,0 +1,104 @@
|
||||
<!--XSL style sheet to convert EESCHEMA XML Partlist Format to grouped CSV BOM Format
|
||||
Copyright (C) 2014, Wolf Walter.
|
||||
Copyright (C) 2013, Stefan Helmert.
|
||||
Copyright (C) 2018, Kicad developers.
|
||||
Copyright (C) 2019, arturo182.
|
||||
GPL v2.
|
||||
|
||||
Functionality:
|
||||
Generation of JLCPCB PCBA compatible BOM
|
||||
|
||||
How to use this is explained in eeschema.pdf chapter 14. You enter a command line into the
|
||||
netlist exporter using a new (custom) tab in the netlist export dialog.
|
||||
The command line is
|
||||
xsltproc -o "%O.csv" "FullPathToFile/bom2grouped_csv_jlcpcb.xsl" "%I"
|
||||
-->
|
||||
<!--
|
||||
@package
|
||||
Generates a JLCPCB PCBA service compatible BOM
|
||||
|
||||
Functionality:
|
||||
* Generate a comma separated value BOM list (csv file type).
|
||||
* Components are sorted by ref and grouped by same value+footprint
|
||||
One value per line
|
||||
Fields are
|
||||
Comment,Designator,Footprint,LCSC
|
||||
|
||||
The command line is
|
||||
xsltproc -o "%O.csv" "full_path/bom2grouped_csv_jlcpcb.xsl" "%I"
|
||||
-->
|
||||
|
||||
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY nl "
"> <!--new line CR, LF, or LF, your choice -->
|
||||
]>
|
||||
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
<xsl:output method="text"/>
|
||||
|
||||
<xsl:variable name="digits" select="'1234567890'" />
|
||||
|
||||
<!-- for matching grouping of footprint and value combination -->
|
||||
<xsl:key name="partTypeByValueAndFootprint" match="comp" use="concat(footprint, '-', value)" />
|
||||
|
||||
<!-- for table head and empty table fields-->
|
||||
<xsl:key name="headentr" match="field" use="@name"/>
|
||||
|
||||
<!-- main part -->
|
||||
<xsl:template match="/export">
|
||||
<xsl:text>Comment,Designator,Footprint,LCSC</xsl:text>
|
||||
<!-- all table entries -->
|
||||
<xsl:apply-templates select="components"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="components">
|
||||
<!-- for Muenchian grouping of footprint and value combination -->
|
||||
<xsl:for-each select="comp[count(. | key('partTypeByValueAndFootprint', concat(footprint, '-', value))[1]) = 1]">
|
||||
<xsl:sort select="@ref" />
|
||||
<xsl:text>&nl;</xsl:text>
|
||||
<xsl:text>"</xsl:text><xsl:value-of select="value"/><xsl:text>","</xsl:text>
|
||||
<!-- list of all references -->
|
||||
<xsl:for-each select="key('partTypeByValueAndFootprint', concat(footprint, '-', value))">
|
||||
<!-- strip non-digits from reference and sort based on remaining number -->
|
||||
<xsl:sort select="translate(@ref, translate(@ref, $digits, ''), '')" data-type="number" />
|
||||
<xsl:value-of select="@ref"/>
|
||||
<xsl:if test="position() != last()"><xsl:text>,</xsl:text></xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>","</xsl:text>
|
||||
|
||||
<xsl:value-of select="footprint"/><xsl:text>","</xsl:text>
|
||||
<xsl:value-of select="fields/field[@name='LCSC']"/><xsl:text>"</xsl:text>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<!-- table entries with dynamic table head -->
|
||||
<xsl:template match="fields">
|
||||
|
||||
<!-- remember current fields section -->
|
||||
<xsl:variable name="fieldvar" select="field"/>
|
||||
|
||||
<!-- for all existing head entries -->
|
||||
<xsl:for-each select="/export/components/comp/fields/field[generate-id(.) = generate-id(key('headentr',@name)[1])]">
|
||||
<xsl:variable name="allnames" select="@name"/>
|
||||
<xsl:text>,"</xsl:text>
|
||||
|
||||
<!-- for all field entries in the remembered fields section -->
|
||||
<xsl:for-each select="$fieldvar">
|
||||
|
||||
<!-- only if this field entry exists in this fields section -->
|
||||
<xsl:if test="@name=$allnames">
|
||||
<!-- content of the field -->
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:if>
|
||||
<!--
|
||||
If it does not exist, use an empty cell in output for this row.
|
||||
Every non-blank entry is assigned to its proper column.
|
||||
-->
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:text>"</xsl:text>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
86423
PCBs/FlipperZero/WiFi-Devboard-Pro/fp-info-cache
Normal file
86423
PCBs/FlipperZero/WiFi-Devboard-Pro/fp-info-cache
Normal file
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@
|
||||
<!---[](https://travis-ci.com/justcallmekoko/ESP32Marauder)--->
|
||||
<!---Shields/Badges https://shields.io/--->
|
||||
|
||||
# ESP32 Marauder v0.9.17
|
||||
# ESP32 Marauder v0.10.3
|
||||
<p align="center"><img alt="Marauder logo" src="https://github.com/justcallmekoko/ESP32Marauder/blob/master/pictures/marauder3L.jpg?raw=true" width="300"></p>
|
||||
<p align="center">
|
||||
<b>A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32</b>
|
||||
|
||||
@@ -6,7 +6,7 @@ Buffer::Buffer(){
|
||||
bufB = (uint8_t*)malloc(BUF_SIZE);
|
||||
}
|
||||
|
||||
void Buffer::open(fs::FS* fs, String fn){
|
||||
void Buffer::createPcapFile(fs::FS* fs, String fn){
|
||||
int i=0;
|
||||
do{
|
||||
fileName = "/"+fn+"_"+(String)i+".pcap";
|
||||
@@ -17,12 +17,15 @@ void Buffer::open(fs::FS* fs, String fn){
|
||||
|
||||
file = fs->open(fileName, FILE_WRITE);
|
||||
file.close();
|
||||
}
|
||||
|
||||
void Buffer::open(){
|
||||
bufSizeA = 0;
|
||||
bufSizeB = 0;
|
||||
|
||||
|
||||
bufSizeB = 0;
|
||||
writing = true;
|
||||
|
||||
|
||||
write(uint32_t(0xa1b2c3d4)); // magic number
|
||||
write(uint16_t(2)); // major version number
|
||||
write(uint16_t(4)); // minor version number
|
||||
@@ -30,8 +33,6 @@ void Buffer::open(fs::FS* fs, String fn){
|
||||
write(uint32_t(0)); // accuracy of timestamps
|
||||
write(uint32_t(SNAP_LEN)); // max length of captured packets, in octets
|
||||
write(uint32_t(105)); // data link type
|
||||
|
||||
//useSD = true;
|
||||
}
|
||||
|
||||
void Buffer::close(fs::FS* fs){
|
||||
@@ -201,3 +202,34 @@ void Buffer::forceSave(fs::FS* fs){
|
||||
saving = false;
|
||||
writing = true;
|
||||
}
|
||||
|
||||
void Buffer::forceSaveSerial() {
|
||||
uint32_t len = bufSizeA + bufSizeB;
|
||||
if(len == 0) return;
|
||||
|
||||
saving = true;
|
||||
writing = false;
|
||||
|
||||
if(useA){
|
||||
if(bufSizeB > 0){
|
||||
Serial1.write(bufB, bufSizeB);
|
||||
bufSizeB = 0;
|
||||
}
|
||||
if(bufSizeA > 0){
|
||||
Serial1.write(bufA, bufSizeA);
|
||||
bufSizeA = 0;
|
||||
}
|
||||
} else {
|
||||
if(bufSizeA > 0){
|
||||
Serial1.write(bufA, bufSizeA);
|
||||
bufSizeA = 0;
|
||||
}
|
||||
if(bufSizeB > 0){
|
||||
Serial1.write(bufB, bufSizeB);
|
||||
bufSizeB = 0;
|
||||
}
|
||||
}
|
||||
|
||||
saving = false;
|
||||
writing = true;
|
||||
}
|
||||
|
||||
@@ -16,11 +16,13 @@ extern Settings settings_obj;
|
||||
class Buffer {
|
||||
public:
|
||||
Buffer();
|
||||
void open(fs::FS* fs, String fn = "");
|
||||
void createPcapFile(fs::FS* fs, String fn = "");
|
||||
void open();
|
||||
void close(fs::FS* fs);
|
||||
void addPacket(uint8_t* buf, uint32_t len);
|
||||
void save(fs::FS* fs);
|
||||
void forceSave(fs::FS* fs);
|
||||
void forceSaveSerial();
|
||||
private:
|
||||
void write(int32_t n);
|
||||
void write(uint32_t n);
|
||||
|
||||
@@ -9,6 +9,9 @@ void CommandLine::RunSetup() {
|
||||
Serial.println(F("\n\n--------------------------------\n"));
|
||||
Serial.println(F(" ESP32 Marauder \n"));
|
||||
Serial.println(" " + version_number + "\n");
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
Serial.println(F(" >> Serial \n"));
|
||||
#endif
|
||||
Serial.println(F(" By: justcallmekoko\n"));
|
||||
Serial.println(F("--------------------------------\n\n"));
|
||||
|
||||
@@ -36,21 +39,41 @@ void CommandLine::main(uint32_t currentTime) {
|
||||
|
||||
LinkedList<String> CommandLine::parseCommand(String input, char* delim) {
|
||||
LinkedList<String> cmd_args;
|
||||
|
||||
if (input != "") {
|
||||
|
||||
char fancy[input.length() + 1] = {};
|
||||
input.toCharArray(fancy, input.length() + 1);
|
||||
|
||||
char* ptr = strtok(fancy, delim);
|
||||
|
||||
while (ptr != NULL) {
|
||||
cmd_args.add(String(ptr));
|
||||
|
||||
ptr = strtok(NULL, delim);
|
||||
|
||||
bool inQuote = false;
|
||||
bool inApostrophe = false;
|
||||
String buffer = "";
|
||||
|
||||
for (int i = 0; i < input.length(); i++) {
|
||||
char c = input.charAt(i);
|
||||
|
||||
if (c == '"') {
|
||||
// Check if the quote is within an apostrophe
|
||||
if (inApostrophe) {
|
||||
buffer += c;
|
||||
} else {
|
||||
inQuote = !inQuote;
|
||||
}
|
||||
} else if (c == '\'') {
|
||||
// Check if the apostrophe is within a quote
|
||||
if (inQuote) {
|
||||
buffer += c;
|
||||
} else {
|
||||
inApostrophe = !inApostrophe;
|
||||
}
|
||||
} else if (!inQuote && !inApostrophe && strchr(delim, c) != NULL) {
|
||||
cmd_args.add(buffer);
|
||||
buffer = "";
|
||||
} else {
|
||||
buffer += c;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the last argument
|
||||
if (!buffer.isEmpty()) {
|
||||
cmd_args.add(buffer);
|
||||
}
|
||||
|
||||
return cmd_args;
|
||||
}
|
||||
|
||||
@@ -93,6 +116,85 @@ bool CommandLine::hasSSIDs() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void CommandLine::showCounts(int selected, int unselected) {
|
||||
Serial.print((String) selected + " selected");
|
||||
|
||||
if (unselected != -1)
|
||||
Serial.print(", " + (String) unselected + " unselected");
|
||||
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
String CommandLine::toLowerCase(String str) {
|
||||
String result = str;
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
int charValue = str.charAt(i);
|
||||
if (charValue >= 65 && charValue <= 90) { // ASCII codes for uppercase letters
|
||||
charValue += 32;
|
||||
result.setCharAt(i, char(charValue));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void CommandLine::filterAccessPoints(String filter) {
|
||||
int count_selected = 0;
|
||||
int count_unselected = 0;
|
||||
|
||||
// Split the filter string into individual filters
|
||||
LinkedList<String> filters;
|
||||
int start = 0;
|
||||
int end = filter.indexOf(" or ");
|
||||
while (end != -1) {
|
||||
filters.add(filter.substring(start, end));
|
||||
start = end + 4;
|
||||
end = filter.indexOf(" or ", start);
|
||||
}
|
||||
filters.add(filter.substring(start));
|
||||
|
||||
// Loop over each access point and check if it matches any of the filters
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
bool matchesFilter = false;
|
||||
for (int j = 0; j < filters.size(); j++) {
|
||||
String f = toLowerCase(filters.get(j));
|
||||
if (f.substring(0, 7) == "equals ") {
|
||||
String ssidEquals = f.substring(7);
|
||||
if ((ssidEquals.charAt(0) == '\"' && ssidEquals.charAt(ssidEquals.length() - 1) == '\"' && ssidEquals.length() > 1) ||
|
||||
(ssidEquals.charAt(0) == '\'' && ssidEquals.charAt(ssidEquals.length() - 1) == '\'' && ssidEquals.length() > 1)) {
|
||||
ssidEquals = ssidEquals.substring(1, ssidEquals.length() - 1);
|
||||
}
|
||||
if (access_points->get(i).essid.equalsIgnoreCase(ssidEquals)) {
|
||||
matchesFilter = true;
|
||||
break;
|
||||
}
|
||||
} else if (f.substring(0, 9) == "contains ") {
|
||||
String ssidContains = f.substring(9);
|
||||
if ((ssidContains.charAt(0) == '\"' && ssidContains.charAt(ssidContains.length() - 1) == '\"' && ssidContains.length() > 1) ||
|
||||
(ssidContains.charAt(0) == '\'' && ssidContains.charAt(ssidContains.length() - 1) == '\'' && ssidContains.length() > 1)) {
|
||||
ssidContains = ssidContains.substring(1, ssidContains.length() - 1);
|
||||
}
|
||||
String essid = toLowerCase(access_points->get(i).essid);
|
||||
if (essid.indexOf(ssidContains) != -1) {
|
||||
matchesFilter = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Toggles the selected state of the AP
|
||||
AccessPoint new_ap = access_points->get(i);
|
||||
new_ap.selected = matchesFilter;
|
||||
access_points->set(i, new_ap);
|
||||
|
||||
if (matchesFilter) {
|
||||
count_selected++;
|
||||
} else {
|
||||
count_unselected++;
|
||||
}
|
||||
}
|
||||
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
|
||||
void CommandLine::runCommand(String input) {
|
||||
if (input != "")
|
||||
Serial.println("#" + input);
|
||||
@@ -109,13 +211,12 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_CH_CMD);
|
||||
Serial.println(HELP_SETTINGS_CMD);
|
||||
Serial.println(HELP_CLEARAP_CMD_A);
|
||||
Serial.println(HELP_CLEARAP_CMD_B);
|
||||
Serial.println(HELP_REBOOT_CMD);
|
||||
Serial.println(HELP_UPDATE_CMD_A);
|
||||
Serial.println(HELP_UPDATE_CMD_B);
|
||||
|
||||
// WiFi sniff/scan
|
||||
Serial.println(HELP_SCANAP_CMD);
|
||||
Serial.println(HELP_SCANSTA_CMD);
|
||||
Serial.println(HELP_SNIFF_RAW_CMD);
|
||||
Serial.println(HELP_SNIFF_BEACON_CMD);
|
||||
Serial.println(HELP_SNIFF_PROBE_CMD);
|
||||
@@ -131,10 +232,11 @@ void CommandLine::runCommand(String input) {
|
||||
// WiFi Aux
|
||||
Serial.println(HELP_LIST_AP_CMD_A);
|
||||
Serial.println(HELP_LIST_AP_CMD_B);
|
||||
Serial.println(HELP_LIST_AP_CMD_C);
|
||||
Serial.println(HELP_SEL_CMD_A);
|
||||
Serial.println(HELP_SEL_CMD_B);
|
||||
Serial.println(HELP_SSID_CMD_A);
|
||||
Serial.println(HELP_SSID_CMD_B);
|
||||
Serial.println(HELP_JOIN_WIFI_CMD);
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
Serial.println(HELP_BT_SNIFF_CMD);
|
||||
@@ -183,12 +285,28 @@ void CommandLine::runCommand(String input) {
|
||||
else if (cmd_args.get(0) == CLEARAP_CMD) {
|
||||
int ap_sw = this->argSearch(&cmd_args, "-a"); // APs
|
||||
int ss_sw = this->argSearch(&cmd_args, "-s"); // SSIDs
|
||||
int cl_sw = this->argSearch(&cmd_args, "-c"); // Stations
|
||||
|
||||
if (ap_sw != -1)
|
||||
if (ap_sw != -1) {
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.changeMenu(&menu_function_obj.clearAPsMenu);
|
||||
#endif
|
||||
wifi_scan_obj.RunClearAPs();
|
||||
}
|
||||
|
||||
if (ss_sw != -1)
|
||||
if (ss_sw != -1) {
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.changeMenu(&menu_function_obj.clearSSIDsMenu);
|
||||
#endif
|
||||
wifi_scan_obj.RunClearSSIDs();
|
||||
}
|
||||
|
||||
if (cl_sw != -1) {
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.changeMenu(&menu_function_obj.clearAPsMenu);
|
||||
#endif
|
||||
wifi_scan_obj.RunClearStations();
|
||||
}
|
||||
}
|
||||
|
||||
else if (cmd_args.get(0) == SETTINGS_CMD) {
|
||||
@@ -258,6 +376,18 @@ void CommandLine::runCommand(String input) {
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_RAW_CAPTURE, TFT_WHITE);
|
||||
}
|
||||
// Scan stations
|
||||
else if (cmd_args.get(0) == SCANSTA_CMD) {
|
||||
if(access_points->size() < 1)
|
||||
Serial.println("The AP list is empty. Scan APs first with " + (String)SCANAP_CMD);
|
||||
|
||||
Serial.println("Starting Station scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION, TFT_ORANGE);
|
||||
}
|
||||
// Beacon sniff
|
||||
else if (cmd_args.get(0) == SNIFF_BEACON_CMD) {
|
||||
Serial.println("Starting Beacon sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
@@ -307,6 +437,14 @@ void CommandLine::runCommand(String input) {
|
||||
else if (cmd_args.get(0) == SNIFF_PMKID_CMD) {
|
||||
int ch_sw = this->argSearch(&cmd_args, "-c");
|
||||
int d_sw = this->argSearch(&cmd_args, "-d"); // Deauth for pmkid
|
||||
int l_sw = this->argSearch(&cmd_args, "-l"); // Only run on list
|
||||
|
||||
if (l_sw != -1) {
|
||||
if (!this->apSelected()) {
|
||||
Serial.println("You don't have any targets selected. Use " + (String)SEL_CMD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ch_sw != -1) {
|
||||
wifi_scan_obj.set_channel = cmd_args.get(ch_sw + 1).toInt();
|
||||
@@ -319,11 +457,15 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println("Starting PMKID sniff on channel " + (String)wifi_scan_obj.set_channel + ". Stop with " + (String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_EAPOL, TFT_VIOLET);
|
||||
}
|
||||
else if ((d_sw != -1) && (l_sw != -1)) {
|
||||
Serial.println("Starting TARGETED PMKID sniff with deauthentication on channel " + (String)wifi_scan_obj.set_channel + ". Stop with " + (String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_ACTIVE_LIST_EAPOL, TFT_VIOLET);
|
||||
}
|
||||
else {
|
||||
Serial.println("Starting PMKID sniff with deauthentication on channel " + (String)wifi_scan_obj.set_channel + ". Stop with " + (String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_ACTIVE_EAPOL, TFT_VIOLET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//// WiFi attack commands
|
||||
// attack
|
||||
@@ -334,6 +476,7 @@ void CommandLine::runCommand(String input) {
|
||||
int ap_beacon_sw = this->argSearch(&cmd_args, "-a");
|
||||
int src_addr_sw = this->argSearch(&cmd_args, "-s");
|
||||
int dst_addr_sw = this->argSearch(&cmd_args, "-d");
|
||||
int targ_sw = this->argSearch(&cmd_args, "-c");
|
||||
|
||||
if (attack_type_switch == -1) {
|
||||
Serial.println("You must specify an attack type");
|
||||
@@ -345,14 +488,21 @@ void CommandLine::runCommand(String input) {
|
||||
// Branch on attack type
|
||||
// Deauth
|
||||
if (attack_type == ATTACK_TYPE_DEAUTH) {
|
||||
if (dst_addr_sw == -1) {
|
||||
// Default to broadcast
|
||||
if ((dst_addr_sw == -1) && (targ_sw == -1)) {
|
||||
Serial.println("Sending to broadcast...");
|
||||
wifi_scan_obj.dst_mac = "ff:ff:ff:ff:ff:ff";
|
||||
}
|
||||
else {
|
||||
// Dest addr specified
|
||||
else if (dst_addr_sw != -1) {
|
||||
wifi_scan_obj.dst_mac = cmd_args.get(dst_addr_sw + 1);
|
||||
Serial.println("Sending to " + wifi_scan_obj.dst_mac + "...");
|
||||
}
|
||||
// Station list specified
|
||||
else if (targ_sw != -1)
|
||||
Serial.println("Sending to Station list");
|
||||
|
||||
// Source addr not specified
|
||||
if (src_addr_sw == -1) {
|
||||
if (!this->apSelected()) {
|
||||
Serial.println("You don't have any targets selected. Use " + (String)SEL_CMD);
|
||||
@@ -363,8 +513,14 @@ void CommandLine::runCommand(String input) {
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
Serial.println("Starting Deauthentication attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH, TFT_RED);
|
||||
// Station list not specified
|
||||
if (targ_sw == -1)
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH, TFT_RED);
|
||||
// Station list specified
|
||||
else
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH_TARGETED, TFT_ORANGE);
|
||||
}
|
||||
// Source addr specified
|
||||
else {
|
||||
String src_mac_str = cmd_args.get(src_addr_sw + 1);
|
||||
sscanf(src_mac_str.c_str(), "%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx",
|
||||
@@ -449,21 +605,29 @@ void CommandLine::runCommand(String input) {
|
||||
//// Bluetooth scan/attack commands
|
||||
// Bluetooth scan
|
||||
if (cmd_args.get(0) == BT_SNIFF_CMD) {
|
||||
Serial.println("Starting Bluetooth scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Bluetooth scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);
|
||||
#else
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);
|
||||
}
|
||||
// Bluetooth CC Skimmer scan
|
||||
else if (cmd_args.get(0) == BT_SKIM_CMD) {
|
||||
Serial.println("Starting Bluetooth CC Skimmer scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Bluetooth CC Skimmer scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);
|
||||
#else
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);
|
||||
}
|
||||
|
||||
// Update command
|
||||
@@ -482,38 +646,73 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Update via SD
|
||||
else if (sd_sw != -1) {
|
||||
if (!sd_obj.supported) {
|
||||
Serial.println("SD card is not connected. Cannot perform SD Update");
|
||||
return;
|
||||
}
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
if (!sd_obj.supported) {
|
||||
Serial.println("SD card is not connected. Cannot perform SD Update");
|
||||
return;
|
||||
}
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
sd_obj.runUpdate();
|
||||
#else
|
||||
Serial.println("SD card not initialized. Cannot perform SD Update");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int count_selected = 0;
|
||||
//// WiFi aux commands
|
||||
// List access points
|
||||
if (cmd_args.get(0) == LIST_AP_CMD) {
|
||||
int ap_sw = this->argSearch(&cmd_args, "-a");
|
||||
int ss_sw = this->argSearch(&cmd_args, "-s");
|
||||
int cl_sw = this->argSearch(&cmd_args, "-c");
|
||||
|
||||
// List APs
|
||||
if (ap_sw != -1) {
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).selected)
|
||||
Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi + " (selected)");
|
||||
if (access_points->get(i).selected) {
|
||||
Serial.println("[" + (String)i + "][CH:" + (String)access_points->get(i).channel + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi + " (selected)");
|
||||
count_selected += 1;
|
||||
}
|
||||
else
|
||||
Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi);
|
||||
Serial.println("[" + (String)i + "][CH:" + (String)access_points->get(i).channel + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi);
|
||||
}
|
||||
this->showCounts(count_selected);
|
||||
}
|
||||
// List SSIDs
|
||||
else if (ss_sw != -1) {
|
||||
for (int i = 0; i < ssids->size(); i++) {
|
||||
if (ssids->get(i).selected)
|
||||
if (ssids->get(i).selected) {
|
||||
Serial.println("[" + (String)i + "] " + ssids->get(i).essid + " (selected)");
|
||||
count_selected += 1;
|
||||
}
|
||||
else
|
||||
Serial.println("[" + (String)i + "] " + ssids->get(i).essid);
|
||||
}
|
||||
this->showCounts(count_selected);
|
||||
}
|
||||
// List Stations
|
||||
else if (cl_sw != -1) {
|
||||
char sta_mac[] = "00:00:00:00:00:00";
|
||||
for (int x = 0; x < access_points->size(); x++) {
|
||||
Serial.println("[" + (String)x + "] " + access_points->get(x).essid + " " + (String)access_points->get(x).rssi + ":");
|
||||
for (int i = 0; i < access_points->get(x).stations->size(); i++) {
|
||||
wifi_scan_obj.getMAC(sta_mac, stations->get(access_points->get(x).stations->get(i)).mac, 0);
|
||||
if (stations->get(access_points->get(x).stations->get(i)).selected) {
|
||||
Serial.print(" [" + (String)access_points->get(x).stations->get(i) + "] ");
|
||||
Serial.print(sta_mac);
|
||||
Serial.println(" (selected)");
|
||||
count_selected += 1;
|
||||
}
|
||||
else {
|
||||
Serial.print(" [" + (String)access_points->get(x).stations->get(i) + "] ");
|
||||
Serial.println(sta_mac);
|
||||
}
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected);
|
||||
}
|
||||
else {
|
||||
Serial.println("You did not specify which list to show");
|
||||
@@ -525,51 +724,118 @@ void CommandLine::runCommand(String input) {
|
||||
// Get switches
|
||||
int ap_sw = this->argSearch(&cmd_args, "-a");
|
||||
int ss_sw = this->argSearch(&cmd_args, "-s");
|
||||
int cl_sw = this->argSearch(&cmd_args, "-c");
|
||||
int filter_sw = this->argSearch(&cmd_args, "-f");
|
||||
|
||||
count_selected = 0;
|
||||
int count_unselected = 0;
|
||||
// select Access points
|
||||
if (ap_sw != -1) {
|
||||
// Get list of indices
|
||||
LinkedList<String> ap_index = this->parseCommand(cmd_args.get(ap_sw + 1), ",");
|
||||
|
||||
// Select ALL APs
|
||||
if (cmd_args.get(ap_sw + 1) == "all") {
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).selected) {
|
||||
// If the filters parameter was specified
|
||||
if (filter_sw != -1) {
|
||||
String filter_ap = cmd_args.get(filter_sw + 1);
|
||||
this->filterAccessPoints(filter_ap);
|
||||
} else {
|
||||
// Get list of indices
|
||||
LinkedList<String> ap_index = this->parseCommand(cmd_args.get(ap_sw + 1), ",");
|
||||
|
||||
// Select ALL APs
|
||||
if (cmd_args.get(ap_sw + 1) == "all") {
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).selected) {
|
||||
// Unselect "selected" ap
|
||||
AccessPoint new_ap = access_points->get(i);
|
||||
new_ap.selected = false;
|
||||
access_points->set(i, new_ap);
|
||||
count_unselected += 1;
|
||||
}
|
||||
else {
|
||||
// Select "unselected" ap
|
||||
AccessPoint new_ap = access_points->get(i);
|
||||
new_ap.selected = true;
|
||||
access_points->set(i, new_ap);
|
||||
count_selected += 1;
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
// Select specific APs
|
||||
else {
|
||||
// Mark APs as selected
|
||||
for (int i = 0; i < ap_index.size(); i++) {
|
||||
int index = ap_index.get(i).toInt();
|
||||
if (!this->inRange(access_points->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
continue;
|
||||
}
|
||||
if (access_points->get(index).selected) {
|
||||
// Unselect "selected" ap
|
||||
AccessPoint new_ap = access_points->get(index);
|
||||
new_ap.selected = false;
|
||||
access_points->set(index, new_ap);
|
||||
count_unselected += 1;
|
||||
}
|
||||
else {
|
||||
// Select "unselected" ap
|
||||
AccessPoint new_ap = access_points->get(index);
|
||||
new_ap.selected = true;
|
||||
access_points->set(index, new_ap);
|
||||
count_selected += 1;
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (cl_sw != -1) {
|
||||
LinkedList<String> sta_index = this->parseCommand(cmd_args.get(cl_sw + 1), ",");
|
||||
|
||||
// Select all Stations
|
||||
if (cmd_args.get(cl_sw + 1) == "all") {
|
||||
for (int i = 0; i < stations->size(); i++) {
|
||||
if (stations->get(i).selected) {
|
||||
// Unselect "selected" ap
|
||||
AccessPoint new_ap = access_points->get(i);
|
||||
new_ap.selected = false;
|
||||
access_points->set(i, new_ap);
|
||||
Station new_sta = stations->get(i);
|
||||
new_sta.selected = false;
|
||||
stations->set(i, new_sta);
|
||||
count_unselected += 1;
|
||||
}
|
||||
else {
|
||||
// Select "unselected" ap
|
||||
AccessPoint new_ap = access_points->get(i);
|
||||
new_ap.selected = true;
|
||||
access_points->set(i, new_ap);
|
||||
Station new_sta = stations->get(i);
|
||||
new_sta.selected = true;
|
||||
stations->set(i, new_sta);
|
||||
count_selected += 1;
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
// Select specific APs
|
||||
// Select specific Stations
|
||||
else {
|
||||
// Mark APs as selected
|
||||
for (int i = 0; i < ap_index.size(); i++) {
|
||||
int index = ap_index.get(i).toInt();
|
||||
if (!this->inRange(access_points->size(), index)) {
|
||||
// Mark Stations as selected
|
||||
for (int i = 0; i < sta_index.size(); i++) {
|
||||
int index = sta_index.get(i).toInt();
|
||||
if (!this->inRange(stations->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
continue;
|
||||
}
|
||||
if (access_points->get(index).selected) {
|
||||
if (stations->get(index).selected) {
|
||||
// Unselect "selected" ap
|
||||
AccessPoint new_ap = access_points->get(index);
|
||||
new_ap.selected = false;
|
||||
access_points->set(index, new_ap);
|
||||
Station new_sta = stations->get(index);
|
||||
new_sta.selected = false;
|
||||
stations->set(index, new_sta);
|
||||
count_unselected += 1;
|
||||
}
|
||||
else {
|
||||
// Select "unselected" ap
|
||||
AccessPoint new_ap = access_points->get(index);
|
||||
new_ap.selected = true;
|
||||
access_points->set(index, new_ap);
|
||||
Station new_sta = stations->get(index);
|
||||
new_sta.selected = true;
|
||||
stations->set(index, new_sta);
|
||||
count_selected += 1;
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
}
|
||||
// select ssids
|
||||
@@ -589,14 +855,17 @@ void CommandLine::runCommand(String input) {
|
||||
ssid new_ssid = ssids->get(index);
|
||||
new_ssid.selected = false;
|
||||
ssids->set(index, new_ssid);
|
||||
count_unselected += 1;
|
||||
}
|
||||
else {
|
||||
// Select "unselected" ap
|
||||
ssid new_ssid = ssids->get(index);
|
||||
new_ssid.selected = true;
|
||||
ssids->set(index, new_ssid);
|
||||
count_selected += 1;
|
||||
}
|
||||
}
|
||||
this->showCounts(count_selected, count_unselected);
|
||||
}
|
||||
else {
|
||||
Serial.println("You did not specify which list to select from");
|
||||
@@ -640,4 +909,41 @@ void CommandLine::runCommand(String input) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Join WiFi
|
||||
else if (cmd_args.get(0) == JOINWIFI_CMD) {
|
||||
int n_sw = this->argSearch(&cmd_args, "-n"); // name
|
||||
int a_sw = this->argSearch(&cmd_args, "-a"); // access point
|
||||
int s_sw = this->argSearch(&cmd_args, "-s"); // ssid
|
||||
int p_sw = this->argSearch(&cmd_args, "-p");
|
||||
|
||||
String essid = "";
|
||||
String pwx = "";
|
||||
|
||||
if (s_sw != -1) {
|
||||
int index = cmd_args.get(s_sw + 1).toInt();
|
||||
if (!this->inRange(ssids->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
return;
|
||||
}
|
||||
essid = ssids->get(index).essid;
|
||||
} else if (a_sw != -1) {
|
||||
int index = cmd_args.get(a_sw + 1).toInt();
|
||||
if (!this->inRange(access_points->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
return;
|
||||
}
|
||||
essid = access_points->get(index).essid;
|
||||
} else if (n_sw != -1) {
|
||||
essid = cmd_args.get(n_sw + 1);
|
||||
} else {
|
||||
Serial.println("You must specify an access point or ssid");
|
||||
return;
|
||||
}
|
||||
|
||||
if (p_sw != -1) {
|
||||
pwx = cmd_args.get(p_sw + 1);
|
||||
}
|
||||
Serial.println("Attempting to join WiFi with ssid " + (String)essid);
|
||||
wifi_scan_obj.joinWiFi(essid, pwx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ extern SDInterface sd_obj;
|
||||
extern Settings settings_obj;
|
||||
extern LinkedList<AccessPoint>* access_points;
|
||||
extern LinkedList<ssid>* ssids;
|
||||
extern LinkedList<Station>* stations;
|
||||
extern const String PROGMEM version_number;
|
||||
|
||||
//// Commands
|
||||
@@ -38,6 +39,7 @@ const char PROGMEM SETTINGS_CMD[] = "settings";
|
||||
|
||||
// WiFi sniff/scan
|
||||
const char PROGMEM SCANAP_CMD[] = "scanap";
|
||||
const char PROGMEM SCANSTA_CMD[] = "scansta";
|
||||
const char PROGMEM SNIFF_RAW_CMD[] = "sniffraw";
|
||||
const char PROGMEM SNIFF_BEACON_CMD[] = "sniffbeacon";
|
||||
const char PROGMEM SNIFF_PROBE_CMD[] = "sniffprobe";
|
||||
@@ -58,6 +60,7 @@ const char PROGMEM ATTACK_TYPE_RR[] = "rickroll";
|
||||
const char PROGMEM LIST_AP_CMD[] = "list";
|
||||
const char PROGMEM SEL_CMD[] = "select";
|
||||
const char PROGMEM SSID_CMD[] = "ssid";
|
||||
const char PROGMEM JOINWIFI_CMD[] = "join";
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
const char PROGMEM BT_SNIFF_CMD[] = "sniffbt";
|
||||
@@ -68,32 +71,32 @@ const char PROGMEM BT_SKIM_CMD[] = "sniffskim";
|
||||
// Admin
|
||||
const char PROGMEM HELP_HEAD[] = "============ Commands ============";
|
||||
const char PROGMEM HELP_CH_CMD[] = "channel [-s <channel>]";
|
||||
const char PROGMEM HELP_CLEARAP_CMD_A[] = "clearlist -a";
|
||||
const char PROGMEM HELP_CLEARAP_CMD_B[] = "clearlist -s";
|
||||
const char PROGMEM HELP_CLEARAP_CMD_A[] = "clearlist -a/-c/-s";
|
||||
const char PROGMEM HELP_REBOOT_CMD[] = "reboot";
|
||||
const char PROGMEM HELP_UPDATE_CMD_A[] = "update -s";
|
||||
const char PROGMEM HELP_UPDATE_CMD_B[] = "update -w";
|
||||
const char PROGMEM HELP_UPDATE_CMD_A[] = "update -s/-w";
|
||||
const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> enable/disable>]/[-r]";
|
||||
|
||||
// WiFi sniff/scan
|
||||
const char PROGMEM HELP_SCANAP_CMD[] = "scanap";
|
||||
const char PROGMEM HELP_SCANSTA_CMD[] = "scansta";
|
||||
const char PROGMEM HELP_SNIFF_RAW_CMD[] = "sniffraw";
|
||||
const char PROGMEM HELP_SNIFF_BEACON_CMD[] = "sniffbeacon";
|
||||
const char PROGMEM HELP_SNIFF_PROBE_CMD[] = "sniffprobe";
|
||||
const char PROGMEM HELP_SNIFF_PWN_CMD[] = "sniffpwn";
|
||||
const char PROGMEM HELP_SNIFF_ESP_CMD[] = "sniffesp";
|
||||
const char PROGMEM HELP_SNIFF_DEAUTH_CMD[] = "sniffdeauth";
|
||||
const char PROGMEM HELP_SNIFF_PMKID_CMD[] = "sniffpmkid [-c <channel>]";
|
||||
const char PROGMEM HELP_SNIFF_PMKID_CMD[] = "sniffpmkid [-c <channel>][-d][-l]";
|
||||
const char PROGMEM HELP_STOPSCAN_CMD[] = "stopscan";
|
||||
const char PROGMEM HELP_JOIN_WIFI_CMD[] = "join [-n <ssid_name>/-s <ssid_index>/-a <access_point_index>] -p <password>";
|
||||
|
||||
// WiFi attack
|
||||
const char PROGMEM HELP_ATTACK_CMD[] = "attack -t <beacon [-l/-r/-a]/deauth [-s <src mac>] [-d <dst mac>]/probe/rickroll>";
|
||||
const char PROGMEM HELP_ATTACK_CMD[] = "attack -t <beacon [-l/-r/-a]/deauth [-c]/[-s <src mac>] [-d <dst mac>]/probe/rickroll>";
|
||||
|
||||
// WiFi Aux
|
||||
const char PROGMEM HELP_LIST_AP_CMD_A[] = "list -s";
|
||||
const char PROGMEM HELP_LIST_AP_CMD_B[] = "list -a";
|
||||
const char PROGMEM HELP_SEL_CMD_A[] = "select -a <index (comma separated)>";
|
||||
const char PROGMEM HELP_SEL_CMD_B[] = "select -s <index (comma separated)>";
|
||||
const char PROGMEM HELP_LIST_AP_CMD_C[] = "list -c";
|
||||
const char PROGMEM HELP_SEL_CMD_A[] = "select -a/-s/-c <index (comma separated)>/-f \"equals <String> or contains <String>\"";
|
||||
const char PROGMEM HELP_SSID_CMD_A[] = "ssid -a [-g <count>/-n <name>]";
|
||||
const char PROGMEM HELP_SSID_CMD_B[] = "ssid -r <index>";
|
||||
|
||||
@@ -107,11 +110,14 @@ class CommandLine {
|
||||
private:
|
||||
String getSerialInput();
|
||||
LinkedList<String> parseCommand(String input, char* delim);
|
||||
String toLowerCase(String str);
|
||||
void filterAccessPoints(String filter);
|
||||
void runCommand(String input);
|
||||
bool checkValueExists(LinkedList<String>* cmd_args_list, int index);
|
||||
bool inRange(int max, int index);
|
||||
bool apSelected();
|
||||
bool hasSSIDs();
|
||||
void showCounts(int selected, int unselected = -1);
|
||||
int argSearch(LinkedList<String>* cmd_args, String key);
|
||||
|
||||
const char* ascii_art =
|
||||
|
||||
@@ -18,6 +18,50 @@ void LedInterface::RunSetup() {
|
||||
}
|
||||
|
||||
void LedInterface::main(uint32_t currentTime) {
|
||||
if ((!settings_obj.loadSetting<bool>("EnableLED")) ||
|
||||
(this->current_mode == MODE_OFF)) {
|
||||
this->ledOff();
|
||||
return;
|
||||
}
|
||||
|
||||
else if (this->current_mode == MODE_RAINBOW) {
|
||||
this->rainbow();
|
||||
}
|
||||
else if (this->current_mode == MODE_ATTACK) {
|
||||
this->attackLed();
|
||||
}
|
||||
else if (this->current_mode == MODE_SNIFF) {
|
||||
this->sniffLed();
|
||||
}
|
||||
else {
|
||||
this->ledOff();
|
||||
}
|
||||
};
|
||||
|
||||
void LedInterface::setMode(uint8_t new_mode) {
|
||||
this->current_mode = new_mode;
|
||||
}
|
||||
|
||||
uint8_t LedInterface::getMode() {
|
||||
return this->current_mode;
|
||||
}
|
||||
|
||||
void LedInterface::sniffLed() {
|
||||
strip.setPixelColor(0, strip.Color(0, 0, 255));
|
||||
strip.show();
|
||||
}
|
||||
|
||||
void LedInterface::attackLed() {
|
||||
strip.setPixelColor(0, strip.Color(255, 0, 0));
|
||||
strip.show();
|
||||
}
|
||||
|
||||
void LedInterface::ledOff() {
|
||||
strip.setPixelColor(0, strip.Color(0, 0, 0));
|
||||
strip.show();
|
||||
}
|
||||
|
||||
void LedInterface::rainbow() {
|
||||
strip.setPixelColor(0, this->Wheel((0 * 256 / 100 + this->wheel_pos) % 256));
|
||||
strip.show();
|
||||
|
||||
@@ -26,7 +70,7 @@ void LedInterface::main(uint32_t currentTime) {
|
||||
this->wheel_pos = this->wheel_pos - this->wheel_speed;
|
||||
if (this->wheel_pos < 0)
|
||||
this->wheel_pos = 255;
|
||||
};
|
||||
}
|
||||
|
||||
uint32_t LedInterface::Wheel(byte WheelPos) {
|
||||
WheelPos = 255 - WheelPos;
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
#ifndef LedInterface_h
|
||||
#define LedInterface_h
|
||||
|
||||
#include "configs.h"
|
||||
#include "settings.h"
|
||||
#include <Arduino.h>
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
||||
#define PIN 25
|
||||
#define Pixels 1
|
||||
|
||||
#define MODE_OFF 0
|
||||
#define MODE_RAINBOW 1
|
||||
#define MODE_ATTACK 2
|
||||
#define MODE_SNIFF 3
|
||||
|
||||
extern Settings settings_obj;
|
||||
extern Adafruit_NeoPixel strip;
|
||||
|
||||
class LedInterface {
|
||||
@@ -19,12 +26,23 @@ class LedInterface {
|
||||
int wheel_speed = 1; // lower = slower
|
||||
|
||||
uint32_t Wheel(byte WheelPos);
|
||||
|
||||
uint8_t current_mode = MODE_OFF;
|
||||
|
||||
void rainbow();
|
||||
void ledOff();
|
||||
void attackLed();
|
||||
void sniffLed();
|
||||
|
||||
public:
|
||||
LedInterface();
|
||||
|
||||
void RunSetup();
|
||||
void main(uint32_t currentTime);
|
||||
|
||||
void setMode(uint8_t);
|
||||
uint8_t getMode();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -132,27 +132,29 @@ MenuFunctions::MenuFunctions()
|
||||
lv_textarea_set_text(ta1, "");
|
||||
lv_textarea_set_placeholder_text(ta1, "Ducky script");
|
||||
|
||||
if (sd_obj.supported) {
|
||||
// Create load button
|
||||
lv_obj_t * label;
|
||||
lv_obj_t * load_btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_event_cb(load_btn, load_btn_cb);
|
||||
lv_obj_set_height(load_btn, 35);
|
||||
lv_obj_set_width(load_btn, LV_HOR_RES / 3);
|
||||
lv_obj_align(load_btn, ta1, LV_ALIGN_IN_TOP_RIGHT, NULL, (LV_VER_RES / 2) - 35); // align to text area
|
||||
label = lv_label_create(load_btn, NULL);
|
||||
lv_label_set_text(label, text05);
|
||||
|
||||
// Create Save As button
|
||||
lv_obj_t * label2;
|
||||
lv_obj_t * save_as_btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_event_cb(save_as_btn, load_btn_cb);
|
||||
lv_obj_set_height(save_as_btn, 35);
|
||||
lv_obj_set_width(save_as_btn, LV_HOR_RES / 3);
|
||||
lv_obj_align(save_as_btn, ta1, LV_ALIGN_IN_TOP_MID, NULL, (LV_VER_RES / 2) - 35); // align to text area
|
||||
label2 = lv_label_create(save_as_btn, NULL);
|
||||
lv_label_set_text(label2, text06);
|
||||
}
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
if (sd_obj.supported) {
|
||||
// Create load button
|
||||
lv_obj_t * label;
|
||||
lv_obj_t * load_btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_event_cb(load_btn, load_btn_cb);
|
||||
lv_obj_set_height(load_btn, 35);
|
||||
lv_obj_set_width(load_btn, LV_HOR_RES / 3);
|
||||
lv_obj_align(load_btn, ta1, LV_ALIGN_IN_TOP_RIGHT, NULL, (LV_VER_RES / 2) - 35); // align to text area
|
||||
label = lv_label_create(load_btn, NULL);
|
||||
lv_label_set_text(label, text05);
|
||||
|
||||
// Create Save As button
|
||||
lv_obj_t * label2;
|
||||
lv_obj_t * save_as_btn = lv_btn_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_event_cb(save_as_btn, load_btn_cb);
|
||||
lv_obj_set_height(save_as_btn, 35);
|
||||
lv_obj_set_width(save_as_btn, LV_HOR_RES / 3);
|
||||
lv_obj_align(save_as_btn, ta1, LV_ALIGN_IN_TOP_MID, NULL, (LV_VER_RES / 2) - 35); // align to text area
|
||||
label2 = lv_label_create(save_as_btn, NULL);
|
||||
lv_label_set_text(label2, text06);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Focus it on one of the text areas to start
|
||||
lv_keyboard_set_textarea(kb, ta1);
|
||||
@@ -213,34 +215,6 @@ MenuFunctions::MenuFunctions()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (event == LV_EVENT_VALUE_CHANGED) {
|
||||
if (lv_btn_get_state(btn) == LV_BTN_STATE_CHECKED_RELEASED) {
|
||||
//Serial.print("Toggle on: ");
|
||||
//Serial.println(btn_text);
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).essid == btn_text) {
|
||||
Serial.println("Adding AP: " + (String)access_points->get(i).essid);
|
||||
AccessPoint ap = access_points->get(i);
|
||||
ap.selected = true;
|
||||
access_points->set(i, ap);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
//Serial.print("Toggle off: ");
|
||||
//Serial.println(btn_text);
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).essid == btn_text) {
|
||||
Serial.println("Removing AP: " + (String)access_points->get(i).essid);
|
||||
AccessPoint ap = access_points->get(i);
|
||||
ap.selected = false;
|
||||
access_points->set(i, ap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void MenuFunctions::displaySettingsGFX(){
|
||||
@@ -273,35 +247,119 @@ MenuFunctions::MenuFunctions()
|
||||
list_btn = lv_list_add_btn(list1, LV_SYMBOL_WIFI, buf);
|
||||
lv_btn_set_checkable(list_btn, false);
|
||||
lv_obj_set_event_cb(list_btn, settings_list_cb);
|
||||
}
|
||||
}
|
||||
|
||||
// GFX Function to build a list showing all Stations scanned
|
||||
void MenuFunctions::addStationGFX(){
|
||||
extern LinkedList<Station>* stations;
|
||||
extern LinkedList<AccessPoint>* access_points;
|
||||
extern WiFiScan wifi_scan_obj;
|
||||
|
||||
//lv_list_add_text(list1, buf);
|
||||
lv_obj_t * list1 = lv_list_create(lv_scr_act(), NULL);
|
||||
lv_obj_set_size(list1, 160, 200);
|
||||
lv_obj_set_width(list1, LV_HOR_RES);
|
||||
lv_obj_align(list1, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
// Create the dropdown menu
|
||||
/*lv_obj_t * dd = lv_dropdown_create(list1, NULL);
|
||||
lv_dropdown_set_options(dd, "Apple\n"
|
||||
"Banana\n"
|
||||
"Orange\n"
|
||||
"Cherry\n"
|
||||
"Grape\n"
|
||||
"Raspberry\n"
|
||||
"Melon\n"
|
||||
"Orange\n"
|
||||
"Lemon\n"
|
||||
"Nuts");
|
||||
lv_obj_t * list_btn;
|
||||
|
||||
//lv_obj_align(dd, LV_ALIGN_IN_RIGHT_MID, 0, 20);
|
||||
lv_obj_align(dd, NULL, LV_ALIGN_IN_RIGHT_MID, 0, 0);
|
||||
lv_obj_set_width(dd, LV_HOR_RES / 3);
|
||||
lv_obj_set_event_cb(dd, setting_dropdown_cb);
|
||||
//lv_obj_add_event_cb(dd, setting_dropdown_cb, LV_EVENT_ALL, NULL);*/
|
||||
lv_obj_t * label;
|
||||
|
||||
list_btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, text09);
|
||||
lv_obj_set_event_cb(list_btn, station_list_cb);
|
||||
|
||||
char addr[] = "00:00:00:00:00:00";
|
||||
for (int x = 0; x < access_points->size(); x++) {
|
||||
AccessPoint cur_ap = access_points->get(x);
|
||||
|
||||
// Add non clickable button for AP
|
||||
String full_label = "AP: " + cur_ap.essid;
|
||||
char buf[full_label.length() + 1] = {};
|
||||
full_label.toCharArray(buf, full_label.length() + 1);
|
||||
list_btn = lv_list_add_btn(list1, NULL, buf);
|
||||
lv_btn_set_checkable(list_btn, false);
|
||||
|
||||
//if (access_points->get(i).selected)
|
||||
// lv_btn_toggle(list_btn);
|
||||
int cur_ap_sta_len = access_points->get(x).stations->size();
|
||||
for (int y = 0; y < cur_ap_sta_len; y++) {
|
||||
Station cur_sta = stations->get(cur_ap.stations->get(y));
|
||||
// Convert uint8_t MAC to char array
|
||||
wifi_scan_obj.getMAC(addr, cur_sta.mac, 0);
|
||||
|
||||
//char buf[stations->get(i).mac.length() + 1] = {};
|
||||
//stations->get(i).mac.toCharArray(buf, stations->get(i).mac.length() + 1);
|
||||
|
||||
list_btn = lv_list_add_btn(list1, LV_SYMBOL_WIFI, addr);
|
||||
lv_btn_set_checkable(list_btn, true);
|
||||
lv_obj_set_event_cb(list_btn, station_list_cb);
|
||||
|
||||
if (cur_sta.selected)
|
||||
lv_btn_toggle(list_btn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function to work with list of Stations
|
||||
void station_list_cb(lv_obj_t * btn, lv_event_t event) {
|
||||
extern LinkedList<Station>* stations;
|
||||
extern MenuFunctions menu_function_obj;
|
||||
extern WiFiScan wifi_scan_obj;
|
||||
|
||||
//lv_obj_t * btn1 = lv_btn_create(list_btn, NULL);
|
||||
//lv_obj_set_event_cb(btn1, ap_list_cb);
|
||||
//lv_obj_align(btn1, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
//lv_btn_set_checkable(btn1, true);
|
||||
String btn_text = lv_list_get_btn_text(btn);
|
||||
String display_string = "";
|
||||
char addr[] = "00:00:00:00:00:00";
|
||||
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
if (btn_text != text09) {
|
||||
//lv_list_focus_btn(lv_obj_get_parent(lv_obj_get_parent(btn)), btn);
|
||||
}
|
||||
else {
|
||||
Serial.println("Exiting...");
|
||||
lv_obj_del_async(lv_obj_get_parent(lv_obj_get_parent(btn)));
|
||||
|
||||
for (int i = 0; i < stations->size(); i++) {
|
||||
if (stations->get(i).selected) {
|
||||
wifi_scan_obj.getMAC(addr, stations->get(i).mac, 0);
|
||||
Serial.print("Selected: ");
|
||||
Serial.println(addr);
|
||||
}
|
||||
}
|
||||
|
||||
printf("LV_EVENT_CANCEL\n");
|
||||
menu_function_obj.deinitLVGL();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||
display_obj.exit_draw = true; // set everything back to normal
|
||||
}
|
||||
}
|
||||
|
||||
if (event == LV_EVENT_VALUE_CHANGED) {
|
||||
if (lv_btn_get_state(btn) == LV_BTN_STATE_CHECKED_RELEASED) {
|
||||
//Serial.print("Toggle on: ");
|
||||
//Serial.println(btn_text);
|
||||
for (int i = 0; i < stations->size(); i++) {
|
||||
wifi_scan_obj.getMAC(addr, stations->get(i).mac, 0);
|
||||
if (strcmp(addr, btn_text.c_str()) == 0) {
|
||||
Serial.print("Adding Station: ");
|
||||
Serial.println(addr);
|
||||
Station sta = stations->get(i);
|
||||
sta.selected = true;
|
||||
stations->set(i, sta);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
//Serial.print("Toggle off: ");
|
||||
//Serial.println(btn_text);
|
||||
for (int i = 0; i < stations->size(); i++) {
|
||||
wifi_scan_obj.getMAC(addr, stations->get(i).mac, 0);
|
||||
if (strcmp(addr, btn_text.c_str()) == 0) {
|
||||
Serial.print("Removing Station: ");
|
||||
Serial.println(addr);
|
||||
Station sta = stations->get(i);
|
||||
sta.selected = false;
|
||||
stations->set(i, sta);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,14 +389,6 @@ MenuFunctions::MenuFunctions()
|
||||
|
||||
if (access_points->get(i).selected)
|
||||
lv_btn_toggle(list_btn);
|
||||
|
||||
//lv_obj_t * btn1 = lv_btn_create(list_btn, NULL);
|
||||
//lv_obj_set_event_cb(btn1, ap_list_cb);
|
||||
//lv_obj_align(btn1, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
//lv_btn_set_checkable(btn1, true);
|
||||
|
||||
//label = lv_label_create(btn1, NULL);
|
||||
//lv_label_set_text(label, buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -841,6 +891,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_AUTH) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH_MANUAL) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH_TARGETED) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_MIMIC) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_RICK_ROLL))
|
||||
display_obj.displayBuffer();
|
||||
@@ -850,7 +901,6 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
int pre_getTouch = millis();
|
||||
|
||||
// getTouch causes a 10ms delay which makes beacon spam less effective
|
||||
//if (wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF)
|
||||
#ifndef MARAUDER_MINI
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
#endif
|
||||
@@ -867,6 +917,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RAW_CAPTURE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP_FULL) ||
|
||||
@@ -879,13 +930,13 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_AUTH) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH_MANUAL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH_TARGETED) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_ALL) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_SKIMMERS))
|
||||
{
|
||||
//Serial.println("Stopping scan...");
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||
|
||||
// If we don't do this, the text and button coordinates will be off
|
||||
@@ -915,6 +966,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RAW_CAPTURE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP_FULL) ||
|
||||
@@ -927,6 +979,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_AUTH) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH_MANUAL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_DEAUTH_TARGETED) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
|
||||
@@ -934,9 +987,9 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_SKIMMERS) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_ACTIVE_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_ACTIVE_LIST_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR))
|
||||
{
|
||||
//Serial.println("Stopping scan...");
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||
|
||||
// If we don't do this, the text and button coordinates will be off
|
||||
@@ -963,9 +1016,9 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_AUTH) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH_MANUAL) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_DEAUTH_TARGETED) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_MIMIC) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_RICK_ROLL))
|
||||
//(wifi_scan_obj.currentScanMode != WIFI_ATTACK_BEACON_LIST))
|
||||
{
|
||||
// Need this to set all keys to false
|
||||
for (uint8_t b = 0; b < BUTTON_ARRAY_LEN; b++) {
|
||||
@@ -980,8 +1033,6 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
for (uint8_t b = 0; b < current_menu->list->size(); b++) {
|
||||
display_obj.tft.setFreeFont(MENU_FONT);
|
||||
if (display_obj.key[b].justPressed()) {
|
||||
//display_obj.key[b].drawButton2(current_menu->list->get(b).name, true); // draw invert
|
||||
//display_obj.key[b].drawButton(ML_DATUM, BUTTON_PADDING, current_menu->list->get(b).name, true);
|
||||
display_obj.key[b].drawButton(true, current_menu->list->get(b).name);
|
||||
if (current_menu->list->get(b).name != text09)
|
||||
display_obj.tft.drawXBitmap(0,
|
||||
@@ -992,14 +1043,10 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
current_menu->list->get(b).color,
|
||||
TFT_BLACK);
|
||||
}
|
||||
//else if (pressed)
|
||||
// display_obj.key[b].drawButton(false, current_menu->list->get(b).name);
|
||||
|
||||
// If button was just release, execute the button's function
|
||||
if ((display_obj.key[b].justReleased()) && (!pressed))
|
||||
{
|
||||
//display_obj.key[b].drawButton2(current_menu->list->get(b).name); // draw normal
|
||||
//display_obj.key[b].drawButton(ML_DATUM, BUTTON_PADDING, current_menu->list->get(b).name);
|
||||
display_obj.key[b].drawButton(false, current_menu->list->get(b).name);
|
||||
current_menu->list->get(b).callable();
|
||||
}
|
||||
@@ -1230,10 +1277,14 @@ void MenuFunctions::updateStatusBar()
|
||||
MenuFunctions::battery(false);
|
||||
|
||||
// Draw SD info
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
#else
|
||||
the_color = TFT_RED;
|
||||
#endif
|
||||
|
||||
#ifndef MARAUDER_MINI
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
@@ -1316,10 +1367,14 @@ void MenuFunctions::drawStatusBar()
|
||||
MenuFunctions::battery2(true);
|
||||
|
||||
// Draw SD info
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
#else
|
||||
the_color = TFT_RED;
|
||||
#endif
|
||||
|
||||
#ifndef MARAUDER_MINI
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
@@ -1565,11 +1620,11 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_PWN, TFT_RED);
|
||||
});
|
||||
addNodes(&wifiSnifferMenu, text_table1[48], TFT_ORANGE, NULL, ESPRESSIF, [this]() {
|
||||
/*addNodes(&wifiSnifferMenu, text_table1[48], TFT_ORANGE, NULL, ESPRESSIF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_ESPRESSIF, TFT_ORANGE);
|
||||
});
|
||||
});*/
|
||||
addNodes(&wifiSnifferMenu, text_table1[49], TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
@@ -1580,6 +1635,11 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_RAW_CAPTURE, TFT_WHITE);
|
||||
});
|
||||
addNodes(&wifiSnifferMenu, text_table1[59], TFT_ORANGE, NULL, PACKET_MONITOR, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION, TFT_WHITE);
|
||||
});
|
||||
|
||||
// Build WiFi attack menu
|
||||
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
||||
@@ -1616,6 +1676,11 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_AP_SPAM, TFT_MAGENTA);
|
||||
});
|
||||
addNodes(&wifiAttackMenu, text_table1[62], TFT_RED, NULL, DEAUTH_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH_TARGETED, TFT_ORANGE);
|
||||
});
|
||||
//addNodes(&wifiAttackMenu, "AP Mimic Flood", TFT_PURPLE, NULL, DEAUTH_SNIFF, [this]() {
|
||||
// display_obj.clearScreen();
|
||||
// this->drawStatusBar();
|
||||
@@ -1659,6 +1724,10 @@ void MenuFunctions::RunSetup()
|
||||
changeMenu(&clearAPsMenu);
|
||||
wifi_scan_obj.RunClearAPs();
|
||||
});
|
||||
addNodes(&wifiGeneralMenu, text_table1[60], TFT_BLUE, NULL, CLEAR_ICO, [this]() {
|
||||
changeMenu(&clearAPsMenu);
|
||||
wifi_scan_obj.RunClearStations();
|
||||
});
|
||||
#ifndef MARAUDER_MINI
|
||||
// Select APs on OG
|
||||
addNodes(&wifiGeneralMenu, text_table1[56], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
||||
@@ -1667,6 +1736,12 @@ void MenuFunctions::RunSetup()
|
||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
||||
addAPGFX();
|
||||
});
|
||||
addNodes(&wifiGeneralMenu, text_table1[61], TFT_LIGHTGREY, NULL, KEYBOARD_ICO, [this](){
|
||||
display_obj.clearScreen();
|
||||
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
||||
addStationGFX();
|
||||
});
|
||||
#else
|
||||
// Select APs on Mini
|
||||
addNodes(&wifiGeneralMenu, text_table1[56], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
||||
@@ -1879,10 +1954,12 @@ void MenuFunctions::RunSetup()
|
||||
changeMenu(&updateMenu);
|
||||
web_obj.setupOTAupdate();
|
||||
});
|
||||
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFT_MAGENTA, NULL, SD_UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
changeMenu(&confirmMenu);
|
||||
});
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFT_MAGENTA, NULL, SD_UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
changeMenu(&confirmMenu);
|
||||
});
|
||||
#endif
|
||||
addNodes(&whichUpdateMenu, text_table1[41], TFT_RED, NULL, ESP_UPDATE_ICO, [this]() {
|
||||
wifi_scan_obj.currentScanMode = ESP_UPDATE;
|
||||
changeMenu(&espUpdateMenu);
|
||||
|
||||
@@ -93,6 +93,7 @@ PROGMEM static void write_bad_usb_keyboard_event_cb(lv_obj_t * keyboard, lv_even
|
||||
PROGMEM static void load_btn_cb(lv_obj_t * load_btn, lv_event_t event);
|
||||
PROGMEM static void test_btn_cb(lv_obj_t * load_btn, lv_event_t event);
|
||||
PROGMEM static void ap_list_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void station_list_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void setting_dropdown_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void save_as_keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
|
||||
@@ -167,8 +168,6 @@ class MenuFunctions
|
||||
Menu shutdownWiFiMenu;
|
||||
Menu shutdownBLEMenu;
|
||||
Menu generateSSIDsMenu;
|
||||
Menu clearSSIDsMenu;
|
||||
Menu clearAPsMenu;
|
||||
|
||||
static void lv_tick_handler();
|
||||
|
||||
@@ -192,6 +191,8 @@ class MenuFunctions
|
||||
MenuFunctions();
|
||||
|
||||
Menu* current_menu;
|
||||
Menu clearSSIDsMenu;
|
||||
Menu clearAPsMenu;
|
||||
|
||||
Ticker tick;
|
||||
|
||||
@@ -205,6 +206,7 @@ class MenuFunctions
|
||||
void joinWiFiGFX();
|
||||
void addSSIDGFX();
|
||||
void addAPGFX();
|
||||
void addStationGFX();
|
||||
void displaySettingsGFX();
|
||||
void writeBadUSB();
|
||||
|
||||
|
||||
@@ -77,7 +77,8 @@ void SDInterface::addPacket(uint8_t* buf, uint32_t len) {
|
||||
|
||||
void SDInterface::openCapture(String file_name) {
|
||||
if (this->supported)
|
||||
buffer_obj.open(&SD, file_name);
|
||||
buffer_obj.createPcapFile(&SD, file_name);
|
||||
buffer_obj.open();
|
||||
}
|
||||
|
||||
void SDInterface::runUpdate() {
|
||||
@@ -97,7 +98,7 @@ void SDInterface::runUpdate() {
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[0]));
|
||||
#endif
|
||||
Serial.println(F("Error, update.bin is not a file"));
|
||||
Serial.println(F("Error, could not find \"update.bin\""));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
@@ -111,7 +112,7 @@ void SDInterface::runUpdate() {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[1]));
|
||||
#endif
|
||||
Serial.println(F("Try to start update"));
|
||||
Serial.println(F("Starting update over SD. Please wait..."));
|
||||
this->performUpdate(updateBin, updateSize);
|
||||
}
|
||||
else {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -31,6 +31,7 @@
|
||||
#include "settings.h"
|
||||
#include "Assets.h"
|
||||
#include "flipperLED.h"
|
||||
#include "LedInterface.h"
|
||||
//#include "MenuFunctions.h"
|
||||
|
||||
#define bad_list_length 3
|
||||
@@ -64,6 +65,9 @@
|
||||
#define WIFI_SCAN_ACTIVE_EAPOL 23
|
||||
#define WIFI_ATTACK_DEAUTH_MANUAL 24
|
||||
#define WIFI_SCAN_RAW_CAPTURE 25
|
||||
#define WIFI_SCAN_STATION 26
|
||||
#define WIFI_ATTACK_DEAUTH_TARGETED 27
|
||||
#define WIFI_SCAN_ACTIVE_LIST_EAPOL 28
|
||||
|
||||
#define GRAPH_REFRESH 100
|
||||
|
||||
@@ -78,12 +82,14 @@ extern BatteryInterface battery_obj;
|
||||
extern TemperatureInterface temp_obj;
|
||||
extern Settings settings_obj;
|
||||
extern flipperLED flipper_led;
|
||||
extern LedInterface led_obj;
|
||||
|
||||
esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
|
||||
//int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3);
|
||||
|
||||
struct ssid {
|
||||
String essid;
|
||||
int channel;
|
||||
int bssid[6];
|
||||
bool selected;
|
||||
};
|
||||
@@ -95,6 +101,12 @@ struct AccessPoint {
|
||||
bool selected;
|
||||
LinkedList<char>* beacon;
|
||||
int rssi;
|
||||
LinkedList<int>* stations;
|
||||
};
|
||||
|
||||
struct Station {
|
||||
uint8_t mac[6];
|
||||
bool selected;
|
||||
};
|
||||
|
||||
class WiFiScan
|
||||
@@ -237,6 +249,7 @@ class WiFiScan
|
||||
void sendProbeAttack(uint32_t currentTime);
|
||||
void sendDeauthAttack(uint32_t currentTime, String dst_mac_str = "ff:ff:ff:ff:ff:ff");
|
||||
void sendDeauthFrame(uint8_t bssid[6], int channel, String dst_mac_str = "ff:ff:ff:ff:ff:ff");
|
||||
void sendDeauthFrame(int bssid[6], int channel, uint8_t mac[6]);
|
||||
void broadcastRandomSSID(uint32_t currentTime);
|
||||
void broadcastCustomBeacon(uint32_t current_time, ssid custom_ssid);
|
||||
void broadcastCustomBeacon(uint32_t current_time, AccessPoint custom_ssid);
|
||||
@@ -252,6 +265,7 @@ class WiFiScan
|
||||
void RunPwnScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunBeaconScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunRawScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunStationScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunDeauthScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunEapolScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunProbeScan(uint8_t scan_mode, uint16_t color);
|
||||
@@ -289,11 +303,13 @@ class WiFiScan
|
||||
//lv_obj_t * scr = lv_cont_create(NULL, NULL);
|
||||
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
wifi_config_t ap_config;
|
||||
|
||||
char* stringToChar(String string);
|
||||
void RunSetup();
|
||||
int clearSSIDs();
|
||||
int clearAPs();
|
||||
int clearStations();
|
||||
bool addSSID(String essid);
|
||||
int generateSSIDs(int count = 20);
|
||||
bool shutdownWiFi();
|
||||
@@ -311,6 +327,7 @@ class WiFiScan
|
||||
void RunGenerateSSIDs(int count = 20);
|
||||
void RunClearSSIDs();
|
||||
void RunClearAPs();
|
||||
void RunClearStations();
|
||||
void channelHop();
|
||||
uint8_t currentScanMode = 0;
|
||||
void main(uint32_t currentTime);
|
||||
@@ -322,6 +339,7 @@ class WiFiScan
|
||||
static void pwnSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void rawSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void apSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void deauthSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
@@ -330,5 +348,6 @@ class WiFiScan
|
||||
static void activeEapolSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void eapolSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void wifiSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void addPacket(wifi_promiscuous_pkt_t *snifferPacket, int len);
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
#define configs_h
|
||||
|
||||
#define POLISH_POTATO
|
||||
|
||||
//Indicates that it must redirect the stream with the captured packets to serial (1)
|
||||
//If not defined, will write packages to SD card if supported
|
||||
//#define WRITE_PACKETS_SERIAL
|
||||
|
||||
//#define MARAUDER_MINI
|
||||
//#define MARAUDER_V4
|
||||
@@ -10,8 +14,10 @@
|
||||
//#define MARAUDER_KIT
|
||||
//#define GENERIC_ESP32
|
||||
#define MARAUDER_FLIPPER
|
||||
//#define ESP32_LDDB
|
||||
//#define MARAUDER_DEV_BOARD_PRO
|
||||
|
||||
#define MARAUDER_VERSION "v0.9.18"
|
||||
#define MARAUDER_VERSION "v0.10.4"
|
||||
|
||||
//// BUTTON DEFINITIONS
|
||||
#ifdef MARAUDER_MINI
|
||||
@@ -353,6 +359,14 @@
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
#define SD_CS 10
|
||||
#endif
|
||||
|
||||
#ifdef ESP32_LDDB
|
||||
#define SD_CS 4
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_DEV_BOARD_PRO
|
||||
#define SD_CS 4
|
||||
#endif
|
||||
//// END SD DEFINITIONS
|
||||
|
||||
//// SCREEN STUFF
|
||||
@@ -403,4 +417,14 @@
|
||||
#endif
|
||||
//// END SCREEN STUFF
|
||||
|
||||
//// NEOPIXEL STUFF
|
||||
#if defined(ESP32_LDDB)
|
||||
#define PIN 17
|
||||
#elif defined(MARAUDER_DEV_BOARD_PRO)
|
||||
#define PIN 16
|
||||
#else
|
||||
#define PIN 25
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -129,8 +129,11 @@ void setup()
|
||||
delay(10);
|
||||
|
||||
Serial.begin(115200);
|
||||
|
||||
//Serial.begin(115200);
|
||||
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
// Starts a second serial channel to stream the captured packets
|
||||
Serial1.begin(115200);
|
||||
#endif
|
||||
|
||||
//Serial.println("\n\nHello, World!\n");
|
||||
|
||||
@@ -142,10 +145,6 @@ void setup()
|
||||
// Serial.println("Does not have screen");
|
||||
//#endif
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
flipper_led.RunSetup();
|
||||
#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.RunSetup();
|
||||
display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK);
|
||||
@@ -191,6 +190,10 @@ void setup()
|
||||
|
||||
settings_obj.begin();
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
flipper_led.RunSetup();
|
||||
#endif
|
||||
|
||||
//Serial.println("This is a test Channel: " + (String)settings_obj.loadSetting<uint8_t>("Channel"));
|
||||
//if (settings_obj.loadSetting<bool>( "Force PMKID"))
|
||||
// Serial.println("This is a test Force PMKID: true");
|
||||
@@ -205,21 +208,23 @@ void setup()
|
||||
display_obj.tft.println(F(text_table0[2]));
|
||||
#endif
|
||||
|
||||
// Do some SD stuff
|
||||
if(sd_obj.initSD()) {
|
||||
//Serial.println(F("SD Card supported"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table0[3]));
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
Serial.println(F("SD Card NOT Supported"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED, TFT_BLACK);
|
||||
display_obj.tft.println(F(text_table0[4]));
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
}
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
buffer_obj = Buffer();
|
||||
#else
|
||||
// Do some SD stuff
|
||||
if(sd_obj.initSD()) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table0[3]));
|
||||
#endif
|
||||
} else {
|
||||
Serial.println(F("SD Card NOT Supported"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED, TFT_BLACK);
|
||||
display_obj.tft.println(F(text_table0[4]));
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
battery_obj.RunSetup();
|
||||
|
||||
@@ -303,7 +308,13 @@ void loop()
|
||||
display_obj.main(wifi_scan_obj.currentScanMode);
|
||||
#endif
|
||||
wifi_scan_obj.main(currentTime);
|
||||
sd_obj.main();
|
||||
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
buffer_obj.forceSaveSerial();
|
||||
#else
|
||||
sd_obj.main();
|
||||
#endif
|
||||
|
||||
#ifndef MARAUDER_FLIPPER
|
||||
battery_obj.main(currentTime);
|
||||
temp_obj.main(currentTime);
|
||||
@@ -314,6 +325,9 @@ void loop()
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.main(currentTime);
|
||||
#endif
|
||||
#ifndef MARAUDER_FLIPPER
|
||||
led_obj.main(currentTime);
|
||||
#endif
|
||||
//cli_obj.main(currentTime);
|
||||
}
|
||||
if (wifi_scan_obj.currentScanMode == OTA_UPDATE)
|
||||
@@ -336,6 +350,9 @@ void loop()
|
||||
display_obj.main(wifi_scan_obj.currentScanMode);
|
||||
menu_function_obj.main(currentTime);
|
||||
#endif
|
||||
#ifndef MARAUDER_FLIPPER
|
||||
led_obj.main(currentTime);
|
||||
#endif
|
||||
//cli_obj.main(currentTime);
|
||||
delay(1);
|
||||
}
|
||||
|
||||
BIN
esp32_marauder/esp32_marauder.ino.d32.bin
Normal file
BIN
esp32_marauder/esp32_marauder.ino.d32.bin
Normal file
Binary file not shown.
@@ -5,6 +5,13 @@ void flipperLED::RunSetup() {
|
||||
pinMode(G_PIN, OUTPUT);
|
||||
pinMode(R_PIN, OUTPUT);
|
||||
|
||||
if (!settings_obj.loadSetting<bool>("EnableLED")) {
|
||||
digitalWrite(B_PIN, HIGH);
|
||||
digitalWrite(G_PIN, HIGH);
|
||||
digitalWrite(R_PIN, HIGH);
|
||||
return;
|
||||
}
|
||||
|
||||
delay(50);
|
||||
|
||||
digitalWrite(B_PIN, LOW);
|
||||
@@ -19,14 +26,20 @@ void flipperLED::RunSetup() {
|
||||
}
|
||||
|
||||
void flipperLED::attackLED() {
|
||||
if (!settings_obj.loadSetting<bool>("EnableLED"))
|
||||
return;
|
||||
|
||||
digitalWrite(B_PIN, HIGH);
|
||||
digitalWrite(G_PIN, HIGH);
|
||||
digitalWrite(R_PIN, HIGH);
|
||||
digitalWrite(R_PIN, HIGH);
|
||||
delay(10);
|
||||
digitalWrite(R_PIN, LOW);
|
||||
}
|
||||
|
||||
void flipperLED::sniffLED() {
|
||||
if (!settings_obj.loadSetting<bool>("EnableLED"))
|
||||
return;
|
||||
|
||||
digitalWrite(B_PIN, HIGH);
|
||||
digitalWrite(G_PIN, HIGH);
|
||||
digitalWrite(R_PIN, HIGH);
|
||||
@@ -35,6 +48,9 @@ void flipperLED::sniffLED() {
|
||||
}
|
||||
|
||||
void flipperLED::offLED() {
|
||||
if (!settings_obj.loadSetting<bool>("EnableLED"))
|
||||
return;
|
||||
|
||||
digitalWrite(B_PIN, HIGH);
|
||||
digitalWrite(G_PIN, HIGH);
|
||||
digitalWrite(R_PIN, HIGH);
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
#ifndef flipperLED_h
|
||||
#define flipperLED_h
|
||||
|
||||
#include "configs.h"
|
||||
#include "settings.h"
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#define B_PIN 4
|
||||
#define G_PIN 5
|
||||
#define R_PIN 6
|
||||
|
||||
extern Settings settings_obj;
|
||||
|
||||
class flipperLED {
|
||||
|
||||
public:
|
||||
|
||||
@@ -97,6 +97,10 @@ PROGMEM const char text1_55[] = "Join WiFi";
|
||||
PROGMEM const char text1_56[] = "Select APs";
|
||||
PROGMEM const char text1_57[] = "AP Clone Spam";
|
||||
PROGMEM const char text1_58[] = "Raw Capture";
|
||||
PROGMEM const char text1_59[] = "Station Sniff";
|
||||
PROGMEM const char text1_60[] = "Clear Stations";
|
||||
PROGMEM const char text1_61[] = "Select Stations";
|
||||
PROGMEM const char text1_62[] = "Deauth Targeted";
|
||||
|
||||
|
||||
//SDInterface.cpp texts
|
||||
@@ -170,12 +174,16 @@ PROGMEM const char text4_41[] = " Bluetooth Sniff ";
|
||||
PROGMEM const char text4_42[] = " Detect Card Skimmers ";
|
||||
PROGMEM const char text4_43[] = "Scanning for\nBluetooth-enabled skimmers\nHC-03, HC-05, and HC-06...";
|
||||
PROGMEM const char text4_44[] = " AP Scan ";
|
||||
PROGMEM const char text4_45[] = "Clearing Stations...";
|
||||
PROGMEM const char text4_46[] = "Stations Cleared: ";
|
||||
PROGMEM const char text4_47[] = "Targeted Deauth";
|
||||
PROGMEM const char text4_48[] = "Using serial to transmit packets";
|
||||
|
||||
//Making tables
|
||||
PROGMEM const char *text_table0[] = {text0_0,text0_1, text0_2, text0_3, text0_4, text0_5, text0_6, text0_7, text0_8};
|
||||
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58};
|
||||
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62};
|
||||
PROGMEM const char *text_table2[] = {text2_0,text2_1,text2_2,text2_3,text2_4,text2_5,text2_6,text2_7,text2_8,text2_9,text2_10,text2_11,text2_12,text2_13,text2_14};
|
||||
PROGMEM const char *text_table3[] = {text3_0,text3_1,text3_2,text3_3,text3_4,text3_5};
|
||||
PROGMEM const char *text_table4[] = {text4_0,text4_1,text4_2,text4_3,text4_4,text4_5,text4_6,text4_7,text1_54,text4_9,text4_10,text4_11,text4_12,text4_13,text4_14,text4_15,text4_16,text4_17,text4_18,text4_19,text4_20,text4_21,text4_22,text4_23,text4_24,text4_25,text4_26,text4_27,text4_28,text4_29,text4_30,text4_31,text4_32,text4_33,text4_34,text4_35,text4_36,text4_37,text4_38,text4_39,text4_40,text4_41,text4_42,text4_43,text4_44};
|
||||
PROGMEM const char *text_table4[] = {text4_0,text4_1,text4_2,text4_3,text4_4,text4_5,text4_6,text4_7,text1_54,text4_9,text4_10,text4_11,text4_12,text4_13,text4_14,text4_15,text4_16,text4_17,text4_18,text4_19,text4_20,text4_21,text4_22,text4_23,text4_24,text4_25,text4_26,text4_27,text4_28,text4_29,text4_30,text4_31,text4_32,text4_33,text4_34,text4_35,text4_36,text4_37,text4_38,text4_39,text4_40,text4_41,text4_42,text4_43,text4_44,text4_45,text4_46,text4_47, text4_48};
|
||||
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user