88 Commits

Author SHA1 Message Date
Kuba Szczodrzyński
b748d99437 [release] v1.5.0
Some checks failed
Release / Run Clang lint (push) Has been cancelled
Release / Publish PlatformIO platform (push) Has been cancelled
Release / Publish GitHub release (push) Has been cancelled
2024-02-20 17:16:15 +01:00
Anna
9a33fc0a69 [docs] Improve getting started guide (#252)
* Update Readme & improve md layout

- ESPHome now supports LibreTiny natively
- Added extra PIO docs references
- Reworded some sections slightly, to accomodate proper grammar
- PIO deprecated the `platformio platform install` command, replaced this with the official recommendation/replacement

* Use backslash for line break, revert changing indent

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2024-02-20 17:14:12 +01:00
Hajo Noerenberg
4cddc01f22 [libs] Fix MD5 calculation during OTA update (#240) 2024-01-17 22:49:33 +01:00
Piotr Szulc
1d80b5fff7 [beken-72xx] Free list returned by wlan_sta_scan_result() (#226)
* Free list returned by wlan_sta_scan_result()

* scanAlloc improvements

There were a few things I didn't like about this function:
1) realloc() was called a bit too often.
2) if realloc() failed, the previous memory was not freed.
3) scanAlloc returned previous count or 255 on error. But there was no real check for error and 255 could've been used as index to null. I think it's better to simple return boolean.
4) scanAlloc was clearing memory only up to (and excluding) the new entries.

* Corrected clearing new entries in scanAlloc

* scanAlloc() now returns number of allocated items

* Fixed compilation issues related to goto.
2024-01-06 19:41:01 +01:00
Cossid
140cf07173 [docs] Use official ESPHome version, add LT dev version guide (#223)
* Update ESPHome documentation

* Update note format

* Switch to https github format, give manual PR checkout instructions until a better method is found.

* Fix yaml sample spacing

* Fix indent

* Add addon migration info

* Replace spaces with tabs

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2024-01-06 19:40:44 +01:00
Piotr Szulc
1e3a82f439 [beken-72xx] Improve ddev ADC support (#220) 2024-01-06 19:40:33 +01:00
Cossid
c90794e9f5 [beken-72xx] Allow connecting to specific BSSID if provided (#209)
* Switch to bk_wlan_start_sta_adv for specific bssid control.

* Allow split sta/adv_sta configs.

* Add wifi_mode back for regular STA mode.

* Fix apparent bug of setting null/empty wifi key.
Reset STA_ADV_CFG.dhcp_mode in reconnect, as it seems to not survive for some reason.
Do les _CFG setting in reconnect()

* Move all _CFG setting to begin()

* Fix dhcp_mode in STA_ADV_CFG.

* Remove no longer necessary dhcp_mode re-set.

* Formatting cleanups.

* Formatting.

* Update cores/beken-72xx/arduino/libraries/WiFi/WiFiSTA.cpp

* Apply suggestions from code review

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2024-01-06 19:40:08 +01:00
Kuba Szczodrzyński
03c723c73d [docs] Add draft Beken key extraction docs 2024-01-06 19:20:03 +01:00
Gerard Du Pre
bad2ffdd07 [docs] Update docker compose image name (#225)
The docs about using docker  compose for libre tuya had an error.
When setting what image to use in compose you dont have to put docker pull, just the image you are going to use
2023-12-25 19:42:53 +01:00
Piotr Szulc
eed39c9cfb [beken-72xx] Pause PWM instead of stopping, track PWM state (#222)
* Pause PWM instead of stopping on duty cycle 0.

* Merged paused and stopped conditions
2023-12-16 13:57:47 +01:00
Piotr Szulc
7bd6d1d815 [beken-72xx] Fix stopping PWM, use pin-scoped PWM struct (#215)
* Fixed stopping PWM

* Clang-formatted as required

* Use separate memory block for each pwm pin
2023-12-08 19:20:41 +01:00
Piotr Szulc
bb7fcd5c4d [docs] Add more UPK key descriptions (#219)
* Added description of some UPK keys

* More keys described.

This time by experimenting on my PIR-enabled lamp.
Motion is reported correctly via GPIO defined as pirin_pin.
I am also trying to set the PIR sensitivity by applying PWM to the pirsense_pin, and I _think_ it works. More experiments are needed.

* Add UPK2ESPHome link, reformat table

* Add descriptions from BK7231N SDK

* Update docs/resources/tuya-pin-config.md

* Corrected description of cwmaxp

* Description of ambient light sensor values

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2023-12-08 19:13:15 +01:00
Kuba Szczodrzyński
9b8e00c7fa [boards] Support and validate MCU name aliases 2023-11-14 22:38:22 +01:00
Kuba Szczodrzyński
b97825d552 [boards] Add T112_V1.1 board, change scaling of small boards 2023-11-14 22:30:13 +01:00
Kuba Szczodrzyński
085b5aed16 [boards] Update boardgen to v0.10.1 2023-10-28 14:58:52 +02:00
protectivedad
7f43624824 [builder] Fix printing flash layout in env.py (#191)
Pointed to the proper item.
2023-10-27 13:34:09 +02:00
Kuba Szczodrzyński
1ed0000819 [release] v1.4.1
Some checks failed
Release / Run Clang lint (push) Has been cancelled
Release / Publish PlatformIO platform (push) Has been cancelled
Release / Publish GitHub release (push) Has been cancelled
2023-09-22 17:54:18 +02:00
Mike La Spina
3b79636d00 [libs] Fix SerialClass available() return value (#173)
Co-authored-by: descipher <120155735+GelidusResearch@users.noreply.github.com>
2023-09-21 17:19:51 +02:00
Kuba Szczodrzyński
5a4b932a37 [release] v1.4.0
Some checks failed
Release / Run Clang lint (push) Has been cancelled
Release / Publish PlatformIO platform (push) Has been cancelled
Release / Publish GitHub release (push) Has been cancelled
2023-09-10 19:37:52 +02:00
Kuba Szczodrzyński
dd2ae149ad [github] Move repository to libretiny-eu organization 2023-09-10 19:31:57 +02:00
Kuba Szczodrzyński
0f5d0a8889 [platform] Install ltchiptool in separate virtual environment (#166)
* [platform] Install ltchiptool in separate virtual environment

* [platform] Fix f-string syntax, set LibreTiny path in ltchiptool

* [platform] Fix venv site-packages path

* [platform] Fix installing pip without ensurepip

* [platform] Install binary dependencies only
2023-09-10 19:23:27 +02:00
Kuba Szczodrzyński
3750ae6953 [docs] Fix flashing redirect links 2023-09-02 15:20:08 +02:00
Kuba Szczodrzyński
5be993f9eb [docs] Add various redirect links for ESPHome docs 2023-09-02 15:12:12 +02:00
Kuba Szczodrzyński
57c43ce515 [libs] Fix possible MD5 memory leak in Update 2023-08-30 11:35:11 +02:00
Kuba Szczodrzyński
159ffa76fd [release] v1.3.0
Some checks failed
Release / Run Clang lint (push) Has been cancelled
Release / Publish PlatformIO platform (push) Has been cancelled
Release / Publish GitHub release (push) Has been cancelled
2023-08-29 19:21:09 +02:00
Kuba Szczodrzyński
1ac3d30d84 [libs] Implement Update MD5 2023-08-29 19:19:28 +02:00
Kuba Szczodrzyński
631ef6ba59 [github] Reuse GitHub workflows 2023-08-29 14:39:39 +02:00
Kuba Szczodrzyński
27393e47c3 [beken-72xx] Initialize UART to fix deep sleep 2023-08-23 16:08:03 +02:00
Péter Sárközi
bd47772c04 [beken-72xx] Fix GPIO deep sleep wakeup edge (#159)
Manufacturer docs: https://docs-bekencorp-com.translate.goog/sdk_3.0.x/bk7238/html/developer-guide/power_save/sleep_test.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=hu&_x_tr_pto=wapp

Discussion: https://github.com/libretiny-eu/libretiny-esphome/pull/11
2023-08-23 16:06:55 +02:00
Kuba Szczodrzyński
f3871388ce [docs] Restore feature support table 2023-08-18 13:47:06 +02:00
Ivan Kravets
62874bebf4 [misc] Fix PlatformIO repository URL (#157) 2023-08-17 19:23:10 +02:00
Kuba Szczodrzyński
2ca368305c [release] v1.2.1
Some checks failed
Lint check / Lint with clang-format (push) Has been cancelled
Lint check / Lint with black (push) Has been cancelled
PlatformIO Publish / publish (push) Has been cancelled
2023-08-17 19:04:50 +02:00
Kuba Szczodrzyński
f697ae6f11 [docs] Add migration to OpenBeken guide 2023-08-17 18:38:04 +02:00
Kuba Szczodrzyński
ef6dd35977 [docs] Rewrite flashing guides 2023-08-17 17:17:10 +02:00
Hajo Noerenberg
ccf21b4eab [realtek-ambz] Enable Mbed-TLS for MD5 hashing, remove Polar SSL (#156)
* Enable Mbed-TLS, remove Polar SSL

* Reformat lt_defs.h

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2023-08-17 15:20:02 +02:00
Kuba Szczodrzyński
e99c6124e7 [docs] Add video guide link, use ready Docker images 2023-07-13 21:19:04 +02:00
Kuba Szczodrzyński
5721bd74d7 [docs] Update LibreTiny ESPHome component naming 2023-07-13 20:41:21 +02:00
Kuba Szczodrzyński
ff443ca488 [release] v1.2.0
Some checks failed
Lint check / Lint with clang-format (push) Has been cancelled
Lint check / Lint with black (push) Has been cancelled
PlatformIO Publish / publish (push) Has been cancelled
2023-07-13 18:02:58 +02:00
Péter Sárközi
93e0a5d066 [beken-72xx] Implement deep sleep (#140)
* Initial support code for Deep Sleep

* Global functions

* Remove unnecessary override

* clang-format

* Support for multiple pins

* Fix math

* Add a way to unset GPIOs

* Clang format

* Update brief

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2023-07-13 18:00:14 +02:00
Kuba Szczodrzyński
150c2ef26d Merge branch 'family/ambz2' 2023-07-13 17:31:52 +02:00
Kuba Szczodrzyński
4d81fcac26 [realtek-ambz2] Flash bootloader & partition table in UF2 2023-07-13 17:00:42 +02:00
Kuba Szczodrzyński
a3bbdf1c16 [core] Migrate to uf2ota v5.0.0, refactor OTA API 2023-07-13 12:15:48 +02:00
Kuba Szczodrzyński
39df2e7b54 [core] Move C types to API units 2023-07-13 12:06:37 +02:00
Sonic-Amiga
6169f68119 [realtek-ambz] Improve flashing guide, add test pads for WR2 board (#147)
* platform/realtek-ambz: Improve flashing guide

Known USB adapter compatibility issues. Emphasize, so that the paragraph is
easier to notice.

Signed-off-by: Pavel Fedin <pavel_fedin@mail.ru>

* base/wr2: Add UART2 test pads to the WR2 diagram

The module has UART2, necessary for flashing, only on test pads. Document this.

Signed-off-by: Pavel Fedin <pavel_fedin@mail.ru>

* Move test pads to separate files, update variants

* Update wiring guide

---------

Signed-off-by: Pavel Fedin <pavel_fedin@mail.ru>
Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2023-07-11 11:46:36 +02:00
Kuba Szczodrzyński
e38e53bac0 [core] Split lt_api.c into separate units 2023-06-22 18:30:14 +02:00
Kuba Szczodrzyński
b38a4d5d46 [core] Add hardware peripheral availability defines 2023-06-21 17:02:48 +02:00
Kuba Szczodrzyński
96412624d9 Merge branch 'master' into family/ambz2 2023-06-21 13:35:52 +02:00
Kuba Szczodrzyński
f8876bba87 [release] v1.1.0
Some checks failed
Lint check / Lint with clang-format (push) Has been cancelled
Lint check / Lint with black (push) Has been cancelled
PlatformIO Publish / publish (push) Has been cancelled
2023-06-20 19:37:25 +02:00
Kuba Szczodrzyński
68b5773827 [core] Remove boardgen submodule, again 2023-06-20 19:28:12 +02:00
Kuba Szczodrzyński
74659901c0 [boards] Fix BW15 PCB template name 2023-06-20 19:09:46 +02:00
Kuba Szczodrzyński
73ede2838c Merge branch 'master' into family/ambz2 2023-06-20 18:53:46 +02:00
Kuba Szczodrzyński
273a86532b [beken-72xx] Add initial BK7231Q support, add WA2 board 2023-06-20 17:22:12 +02:00
Kuba Szczodrzyński
05e13dafed [beken-72xx] Rename BK7231U to BK7231T, add BK7231Q family 2023-06-20 17:19:21 +02:00
Kuba Szczodrzyński
6af97d2691 [boards] Add Tuya series 1 boards 2023-06-18 20:19:05 +02:00
Kuba Szczodrzyński
f9fb78feed [boards] Add T102 and T103 boards 2023-06-18 16:48:49 +02:00
Kuba Szczodrzyński
96dbbe0919 [boards] Move custom templates from boardgen, add WB2L_M1 board 2023-06-18 16:11:55 +02:00
Kuba Szczodrzyński
0ef66af342 [boards] Embed shielding in PCB template 2023-06-18 11:34:24 +02:00
Kuba Szczodrzyński
7ed48bf9fc [boards] Add Tuya WBLC5 and CBLC5 boards 2023-06-18 00:13:05 +02:00
Adrián Panella
1335b84391 [boards] Add Tuya CBU board (#106)
* add CBU module

* boardgen templates

These should go in boardgen package.
Included here for reference

* boardgen output

* [boards] Update for latest version of boardgen

* [boards] Change CBU silkscreen, add variant file

---------

Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
2023-06-17 21:25:17 +02:00
Kuba Szczodrzyński
e2794d5f84 [builder] Fix running ltchiptool with no baudrate 2023-05-31 12:38:15 +02:00
Kuba Szczodrzyński
e7f35c584b [realtek-ambz2] Reuse Log UART for Serial 2023-05-31 12:37:34 +02:00
Kuba Szczodrzyński
1e49c3ff6f [realtek-ambz2] Fix missing flash API resource lock unit 2023-05-31 12:36:46 +02:00
Kuba Szczodrzyński
e256ac8e46 [builder] Fix ltchiptool empty quotes on Windows 2023-05-30 18:49:58 +02:00
Kuba Szczodrzyński
9c6e9d1525 [realtek-ambz2] Disable SoftwareSerial and Wire 2023-05-30 18:15:44 +02:00
Kuba Szczodrzyński
41985e5743 [core] Move common flags to base.py 2023-05-29 22:26:33 +02:00
Kuba Szczodrzyński
f1e41f7cc1 [realtek-ambz2] Add GDB init command 2023-05-29 22:25:23 +02:00
Kuba Szczodrzyński
6135e4f7b0 [boards] Update flash layouts, add W302 chip 2023-05-29 16:16:58 +02:00
Kuba Szczodrzyński
af8c7417b3 [realtek-ambz2] Keep LOG UART enabled, wipe OTA2 in UF2 2023-05-28 19:18:54 +02:00
Kuba Szczodrzyński
babdb1287f [realtek-ambz2] Replace lwIP with external port 2023-05-27 20:54:40 +02:00
Kuba Szczodrzyński
4532c88873 [core] Add lt_set_debug_mode() function, update core types 2023-05-27 16:03:46 +02:00
Kuba Szczodrzyński
bc1b83d931 Merge branch 'master' into family/ambz2 2023-05-27 15:43:35 +02:00
Kuba Szczodrzyński
87ad0798e4 [realtek-ambz2] Adapt WiFi library to ambz2_sdk 2023-05-27 15:41:07 +02:00
Kuba Szczodrzyński
a80032d46c [core] Move Wiring common core to wiring/, reset watchdog in yield() 2023-05-26 15:29:33 +02:00
Kuba Szczodrzyński
4dae304f51 [core] Add lt_get_device_mac() function 2023-05-25 20:43:00 +02:00
Kuba Szczodrzyński
9b7d34fa65 [realtek-ambz2] Fix C++ support, implement SerialClass 2023-05-25 14:35:41 +02:00
Kuba Szczodrzyński
c0cc602c9a [core] Add configure() for SerialClass 2023-05-25 14:29:35 +02:00
Kuba Szczodrzyński
e5f98ff41f [core] Refactor Wiring, use PinData for parameters 2023-05-24 22:01:05 +02:00
Kuba Szczodrzyński
bc74c21599 [realtek-ambz2] Enable compilation of Arduino core 2023-05-24 13:02:33 +02:00
Kuba Szczodrzyński
3836ad20b7 [core] Refactor SerialClass as API library 2023-05-24 11:55:07 +02:00
Kuba Szczodrzyński
b073290989 [realtek-ambz2] Implement base C API 2023-05-23 19:54:00 +02:00
Kuba Szczodrzyński
43c9d0db10 [docs] Add Porting new families guide 2023-05-23 15:58:11 +02:00
Kuba Szczodrzyński
c40bdd68af [realtek-ambz2] Use external FreeRTOS port 2023-05-23 15:14:59 +02:00
Kuba Szczodrzyński
620e457eb6 [realtek-ambz2] Fix C++ linker support 2023-05-23 12:56:42 +02:00
Kuba Szczodrzyński
5c4da6e82b [core] Fix ltchiptool installation in PlatformIO 2023-05-23 12:12:42 +02:00
Kuba Szczodrzyński
8c636e44f7 [realtek-ambz2] Add initial SDK fixups and API layer 2023-05-23 12:11:17 +02:00
Kuba Szczodrzyński
07e9aa1ded [realtek-ambz2] Make compiling base core possible 2023-05-19 10:42:59 +02:00
Kuba Szczodrzyński
27a7faaab7 [core] Remove boardgen submodule 2023-05-18 22:14:58 +02:00
Kuba Szczodrzyński
752768b1e2 [docs] Update supported chip list, remove AmebaZ2 boards for now 2023-05-18 21:03:08 +02:00
398 changed files with 11245 additions and 3711 deletions

View File

@@ -1,35 +0,0 @@
name: Lint check
on: [push, pull_request]
jobs:
lint-clang-format:
name: Lint with clang-format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Check code with clang-format
uses: jidicula/clang-format-action@v4.5.0
with:
clang-format-version: "14"
lint-black:
name: Lint with black
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.9"
- name: Install test dependencies
uses: BSFishy/pip-action@v1
with:
packages: |
black
isort
- name: Check code with black
run: black --check .
- name: Check code with isort
run: isort --profile black . --check-only

View File

@@ -1,46 +0,0 @@
name: PlatformIO Publish
on:
push:
tags:
- v*.*.*
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v2
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v2
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Publish PlatformIO package
run: pio package publish --non-interactive
env:
CI: true
PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_AUTH_TOKEN }}
- name: Get latest version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
- name: Release on GitHub
uses: softprops/action-gh-release@v1
with:
name: ${{ steps.get_version.outputs.VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

12
.github/workflows/push-dev.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
name: Push (dev), Pull Request
on:
push:
branches: ["**"]
pull_request:
jobs:
lint-clang:
name: Run Clang lint
uses: kuba2k2/kuba2k2/.github/workflows/lint-clang.yml@master
lint-python:
name: Run Python lint
uses: kuba2k2/kuba2k2/.github/workflows/lint-python.yml@master

View File

@@ -1,10 +1,8 @@
name: Deploy docs on GitHub Pages
name: Push (master)
on:
push:
branches:
- master
branches: ["master"]
workflow_dispatch:
jobs:
docs:
name: Deploy docs
@@ -19,13 +17,14 @@ jobs:
python-version: '3.10'
- name: Install docs dependencies
run: pip install -U ltchiptool boardgen
run: pip install -U ltchiptool "boardgen>=0.11.0"
- name: Generate docs and static JSON files
run: |
mkdir -p site/
boardgen ltci
python docs/scripts/update_docs.py
python docs/scripts/write_boards.py
python docs/scripts/write_apis.py
python docs/scripts/prepare_doxygen.py
python docs/scripts/build_json.py
cp *.json site/

22
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Release
on:
push:
tags: ["v*.*.*"]
jobs:
lint-clang:
name: Run Clang lint
uses: kuba2k2/kuba2k2/.github/workflows/lint-clang.yml@master
publish-pio-platform:
name: Publish PlatformIO platform
needs:
- lint-clang
uses: kuba2k2/kuba2k2/.github/workflows/publish-pio-platform.yml@master
secrets:
PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_AUTH_TOKEN }}
gh-release:
name: Publish GitHub release
needs:
- publish-pio-platform
uses: kuba2k2/kuba2k2/.github/workflows/gh-release.yml@master
permissions:
contents: write

2
.gitignore vendored
View File

@@ -264,3 +264,5 @@ docs/status/supported_*.md
docs/status/unsupported_boards_*.md
boards/**/*.svg
boards/**/*.md
# other generated files
docs/contrib/lt-api-functions.md

View File

@@ -1,9 +1,11 @@
# LibreTiny
<small>(formerly LibreTuya)</small>
<div align="center" markdown>
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/kuba2k2/libretiny/Deploy%20docs%20on%20GitHub%20Pages?label=docs&logo=markdown)](https://kuba2k2.github.io/libretiny/)
![GitHub last commit](https://img.shields.io/github/last-commit/kuba2k2/libretiny?logo=github)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/libretiny-eu/libretiny/push-master.yml?label=docs&logo=markdown)](https://docs.libretiny.eu/)
![GitHub last commit](https://img.shields.io/github/last-commit/libretiny-eu/libretiny?logo=github)
[![Code style: clang-format](https://img.shields.io/badge/code%20style-clang--format-purple.svg)](.clang-format)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
@@ -16,13 +18,7 @@
</div>
## LibreTuya is now LibreTiny! 🎉
We have [renamed the project](https://github.com/kuba2k2/libretiny/issues/92) to LibreTiny, also marking the very first v1.0.0 release, along with a huge structure refactor. While some care has been taken to ensure that things don't break, you may still need to update some references in your code to use the new name.
---
PlatformIO development platform for IoT modules manufactured by Tuya Inc.
PlatformIO development platform for BK7231 and RTL8710 IoT chips.
The main goal of this project is to provide a usable build environment for IoT developers. While also providing vendor SDKs as PlatformIO cores,
the project focuses on developing working Arduino-compatible cores for supported families. The cores are inspired by Espressif's official core for ESP32,
@@ -32,62 +28,11 @@ which should make it easier to port/run existing ESP apps on less-common, unsupp
**Note:** this project is work-in-progress.
## Usage
<div align="center" markdown>
1. [Install PlatformIO](https://platformio.org/platformio-ide)
2. `platformio platform install -f https://github.com/kuba2k2/libretiny`
3. Create a project, build it and upload!
4. See the [docs](https://docs.libretiny.eu/) for any questions/problems.
## [⭐ Getting started ⭐](https://docs.libretiny.eu/docs/getting-started/)
<!--
## Arduino Core support status
Note: this list will probably change with each functionality update.
&nbsp; | `realtek-ambz` | `beken-72xx`
--------------------|----------------|-------------
Core functions | ✔️ | ✔️
GPIO/PWM/IRQ | ✔️/✔️/✔️ | ✔️/✔️/✔️
Analog input (ADC) | ✔️ | ✔️
Serial | ✔️ | ✔️
Serial (extra) | 0, 1, 2 | 1, 2
Flash I/O | ✔️ | ✔️
**CORE LIBRARIES** | |
SoftwareSerial | ✔️ | ❌
SPI | ❌ | ❌
Wire | ❗ | ❌
**OTHER LIBRARIES** | |
Wi-Fi STA/AP/Mixed | ✔️ | ✔️
Wi-Fi Events | ✔️ | ✔️
TCP Client (SSL) | ✔️ (✔️) | ✔️ (❗)
TCP Server | ✔️ | ✔️
IPv6 | ❌ | ❌
HTTP Client (SSL) | ✔️ (✔️) | ❓
HTTP Server | ✔️ | ✔️
NVS / Preferences | ✔️ | ✔️
SPIFFS | ❌ | ❌
BLE | - | ❌
NTP | ✔️ | ✔️
OTA | ✔️ | ✔️
MDNS | ✔️ | ✔️
MQTT | ✅ | ❌
SD | ❌ | ❌
Symbols:
- ✔️ working
- ✅ tested, external library
- ❓ untested
- ❗ broken
- ❌ not implemented (yet?)
- \- not applicable
Names:
- Core functions - stuff like delay(), millis(), yield(), etc.
- **CORE LIBRARIES** - included normally in all Arduino cores
- **OTHER LIBRARIES** - included in ESP32 core or downloadable
-->
</div>
## License

View File

@@ -1,15 +1,20 @@
* [Home](README.md)
* [](SUMMARY.md)
* [😊 Getting started](docs/getting-started/README.md)
* [➡️ Info on accessing GPIOs](docs/getting-started/gpio.md)
* [](SUMMARY.md)
* [📺 Cloudcutter & ESPHome video guide](https://www.youtube.com/watch?v=sSj8f-HCHQ0)
* [💡 ESPHome setup guide](docs/projects/esphome.md)
* [🛖 ESPHome Hassio Add-On](https://github.com/libretiny-eu/esphome-hass-addon/pkgs/container/libretiny-esphome-hassio)
* [](SUMMARY.md)
* [📲 Flashing/dumping guide](docs/flashing/)
* [🔌 How to connect the chip in download mode?](docs/flashing/chip-connection/)
* [💻 Supported chips](docs/status/supported.md)
* [🔌 How to flash/enter download mode?](docs/platform/)
* [](SUMMARY.md)
* [💻 Chips, boards, features](docs/status/supported.md)
* [All boards](boards/)
* [](SUMMARY.md)
* 🍪 Chip family docs & info
* [Beken BK72xx](docs/platform/beken-72xx/README.md)
* [Finding encryption keys](docs/platform/beken-72xx/keys.md)
* [Realtek Ameba - info](docs/platform/realtek-amb/README.md)
* [Realtek AmebaZ](docs/platform/realtek-ambz/README.md)
* [Debugging](docs/platform/realtek-ambz/debugging.md)
@@ -47,10 +52,13 @@
* [Macros](ltapi/macros.md)
* [File list](ltapi/files.md)
* 👷 Contributor's manual (WIP)
* [📁 Project structure](docs/dev/project-structure.md)
* [✈️ OTA format](docs/dev/ota/README.md)
* [uf2ota.py tool](docs/dev/ota/uf2ota.md)
* [uf2ota.h library](docs/dev/ota/library.md)
* [Porting new families](docs/contrib/porting.md)
* [API functions guide](docs/contrib/lt-api.md)
* [C standard library](docs/contrib/stdlib.md)
* [📁 Project structure](docs/contrib/project-structure.md)
* [✈️ OTA format](docs/contrib/ota/README.md)
* [uf2ota.py tool](docs/contrib/ota/uf2ota.md)
* [uf2ota.h library](docs/contrib/ota/library.md)
* [📓 TODO](docs/TODO.md)
* [](SUMMARY.md)
* [🔗 Resources](docs/resources/)

View File

@@ -0,0 +1,8 @@
{
"build": {
"bkcrypt_coeffs": "510fb093a3cbeadc5993a17ec7adeb03"
},
"flash": {
"tuya": "0x1ED000+0x13000"
}
}

View File

@@ -0,0 +1,10 @@
{
"build": {
"ldscript": "bk7231_bsp.ld",
"bkoffset_app": "0x10000",
"bkrbl_size_app": "0x108700"
},
"upload": {
"maximum_size": 1083136
}
}

View File

@@ -1,6 +0,0 @@
{
"build": {
"bkcrypt_coeffs": "510fb093a3cbeadc5993a17ec7adeb03",
"bkboot_version": "1.0.1-bk7231n"
}
}

View File

@@ -0,0 +1,19 @@
{
"build": {
"family": "BK7231Q",
"bkboot_version": "bk7231q"
},
"flash": {
"bootloader": "0x000000+0x11000",
"app": "0x011000+0x121000",
"download": "0x132000+0xA6000",
"kvs": "0x1D8000+0x8000",
"calibration": "0x1E0000+0x1000",
"tlv": "0x1E1000+0x1000",
"net": "0x1E2000+0x1000",
"userdata": "0x1E3000+0x1D000"
},
"upload": {
"speed": 460800
}
}

View File

@@ -1,6 +0,0 @@
{
"build": {
"bkcrypt_coeffs": "510fb093a3cbeadc5993a17ec7adeb03",
"bkboot_version": "1.0.5-bk7231s"
}
}

View File

@@ -1,10 +1,7 @@
{
"build": {
"family": "BK7231U",
"ldscript": "bk7231_bsp.ld",
"bkboot_version": "1.0.8-bk7231u",
"bkoffset_app": "0x10000",
"bkrbl_size_app": "0x108700"
"family": "BK7231T",
"bkboot_version": "1.0.5-bk7231s"
},
"flash": {
"bootloader": "0x000000+0x11000",
@@ -17,7 +14,6 @@
"userdata": "0x1E3000+0x1D000"
},
"upload": {
"maximum_size": 1083136,
"speed": 921600
},
"connectivity": [

View File

@@ -41,8 +41,7 @@
}
},
"links": {
"General info": "../../docs/platform/beken-72xx/README.md",
"Flashing guide": "../../docs/platform/beken-72xx/flashing.md"
"Info & flashing guide": "../../docs/platform/beken-72xx/README.md"
},
"extra": [
"Bootloader and app partitions contain CRC16 sums every 32 bytes. That results in the actual flash offsets/sizes not aligned to sector boundaries. To simplify calculations, the values shown in the table (extracted from bootloader's partition table) were aligned to 4096 bytes."

View File

@@ -0,0 +1,170 @@
{
"pcb": {
"ic": {
"11": {
"C_NAME": "GPIO30",
"GPIO": "P30",
"IRQ": null,
"USB": "DN"
},
"12": {
"C_NAME": "GPIO29",
"GPIO": "P29",
"IRQ": null,
"USB": "DP"
},
"14": {
"C_NAME": "GPIO6",
"GPIO": "P6",
"IRQ": null,
"PWM": 0
},
"15": {
"C_NAME": "GPIO7",
"GPIO": "P7",
"IRQ": null,
"PWM": 1
},
"16": {
"C_NAME": "GPIO8",
"GPIO": "P8",
"IRQ": null,
"PWM": 2
},
"17": {
"C_NAME": "GPIO17",
"GPIO": "P17",
"IRQ": null,
"SD": "D1",
"SPI": "MISO"
},
"18": {
"C_NAME": "GPIO16",
"GPIO": "P16",
"IRQ": null,
"SD": "D0",
"SPI": "MOSI"
},
"19": {
"C_NAME": "GPIO14",
"GPIO": "P14",
"IRQ": null,
"SD": "CLK",
"SPI": "SCK"
},
"20": {
"C_NAME": "GPIO15",
"GPIO": "P15",
"IRQ": null,
"SD": "CMD",
"SPI": "CS"
},
"21": {
"C_NAME": "GPIO19",
"GPIO": "P19",
"IRQ": null,
"SD": "D3",
"PWM": 5
},
"22": {
"C_NAME": "GPIO18",
"GPIO": "P18",
"IRQ": null,
"SD": "D2",
"PWM": 4
},
"23": {
"IO": "I",
"CTRL": "TEST"
},
"24": {
"C_NAME": "GPIO9",
"GPIO": "P9",
"IRQ": null,
"PWM": 3
},
"25": {
"C_NAME": "GPIO10",
"GPIO": "P10",
"IRQ": null,
"UART": "1_RX"
},
"26": {
"C_NAME": "GPIO11",
"GPIO": "P11",
"IRQ": null,
"UART": "1_TX"
},
"27": {
"C_NAME": "GPIO1",
"GPIO": "P1",
"IRQ": null,
"UART": "2_RX",
"I2C": "2_SDA"
},
"28": {
"C_NAME": "GPIO0",
"GPIO": "P0",
"IRQ": null,
"UART": "2_TX",
"I2C": "2_SCL"
},
"29": {
"C_NAME": "GPIO20",
"GPIO": "P20",
"IRQ": null,
"I2C": "1_SCL",
"JTAG": "TCK",
"FLASH": "FSCK"
},
"30": {
"C_NAME": "GPIO21",
"GPIO": "P21",
"IRQ": null,
"I2C": "1_SDA",
"JTAG": "TMS",
"FLASH": "^FCS"
},
"31": {
"C_NAME": "GPIO22",
"GPIO": "P22",
"IRQ": null,
"JTAG": "TDI",
"FLASH": "FSI"
},
"32": {
"C_NAME": "GPIO23",
"GPIO": "P23",
"IRQ": null,
"ADC": 3,
"JTAG": "TDO",
"FLASH": "FSO"
},
"33": {
"C_NAME": "GPIO25",
"GPIO": "P25",
"IRQ": null
},
"34": {
"C_NAME": "GPIO28",
"GPIO": "P28",
"IRQ": null
},
"35": {
"C_NAME": "GPIO4",
"GPIO": "P4",
"IRQ": null,
"ADC": 1,
"I2S": "DIN"
},
"36": {
"IO": "I",
"CTRL": "CODE"
},
"37": {
"IO": "I",
"CTRL": "CEN"
}
}
}
}

View File

@@ -103,7 +103,7 @@
"C_NAME": "GPIO19",
"GPIO": "P19",
"IRQ": null,
"SD": "D1"
"SD": "D3"
},
"31": {
"C_NAME": "GPIO17",

View File

@@ -2,14 +2,11 @@
"pcb": {
"templates": [
"esp12s",
"esp12s-shield",
"rf-16mm-type1"
"pcb-black",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_black",
"TRACE_COLOR": "#FAFD9D",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
"TRACE_COLOR": "#FAFD9D"
},
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {

View File

@@ -2,15 +2,9 @@
"pcb": {
"templates": [
"esp12s",
"esp12s-shield",
"rf-16mm-type1"
"pcb-black",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_black",
"TRACE_COLOR": "#FAFD9D",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
},
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {

View File

@@ -0,0 +1,69 @@
{
"pcb": {
"scale": 14,
"test_pads": {
"TSCK": "cb1s.back.sck.anchor",
"TCSN": "cb1s.back.csn.anchor",
"TSI": "cb1s.back.si.anchor",
"TSO": "cb1s.back.so.anchor"
},
"back": [
{
"name": "test_pad_1mm",
"pos": "2.66,14.4"
},
{
"name": "test_pad_1mm",
"pos": "2.66,15.9"
},
{
"name": "test_pad_1mm",
"pos": "2.66,17.4"
},
{
"name": "test_pad_1mm",
"pos": "2.66,18.9"
},
{
"id": "sck",
"name": "label_line_down",
"pos": "3.5,14.3",
"vars": {
"DIR": "right",
"W": 1.0,
"H": 0
}
},
{
"id": "csn",
"name": "label_line_down",
"pos": "3.5,15.8",
"vars": {
"DIR": "right",
"W": 1.0,
"H": 0
}
},
{
"id": "si",
"name": "label_line_down",
"pos": "3.5,17.3",
"vars": {
"DIR": "right",
"W": 1.0,
"H": 0
}
},
{
"id": "so",
"name": "label_line_down",
"pos": "3.5,18.8",
"vars": {
"DIR": "right",
"W": 1.0,
"H": 0
}
}
]
}
}

101
boards/_base/pcb/cb1s.json Normal file
View File

@@ -0,0 +1,101 @@
{
"pcb": {
"templates": [
"tuya1",
"pcb-blue-light",
"tuya-16x24",
"rf-type1"
],
"scale": 15,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"PWR": "VCC5"
},
"2": {
"IC": 27,
"ARD": "D0"
},
"3": {
"IC": 26,
"ARD": "D1"
},
"4": {
"PWR": 3.3
},
"5": {
"GND": null
},
"6": {
"IC": 22,
"ARD": "D2"
},
"7": {
"IC": 23,
"ARD": "D3"
},
"8": {
"IC": 29,
"ARD": "D4"
},
"9": {
"IC": 25,
"ARD": "D5"
},
"10": {
"IC": 24,
"ARD": "D6"
},
"11": {
"IC": 28,
"ARD": "D7"
},
"12": {
"IC": 16,
"ARD": "D8"
},
"13": {
"IC": 15,
"ARD": "D9"
},
"14": {
"GND": null
},
"15": {
"GND": null
},
"16": {
"IC": 21
},
"17": {
"IC": 17,
"ARD": [
"D10",
"A0"
]
},
"18": {
"GND": null
},
"TSCK": {
"IC": 20,
"ARD": "D11"
},
"TCSN": {
"IC": 19,
"ARD": "D12"
},
"TSO": {
"IC": 17,
"ARD": [
"D10",
"A0"
]
},
"TSI": {
"IC": 18,
"ARD": "D13"
}
}
}
}

View File

@@ -1,6 +1,5 @@
{
"pcb": {
"scale": 11,
"test_pads": {
"TRST": "cb2l.back.rst.anchor",
"TRX1": "cb2l.back.u1_rxd.anchor",
@@ -10,26 +9,12 @@
"TCSN": "cb2l.back.f_csn.anchor"
},
"back": [
{
"type": "rect",
"pos": "0,0",
"size": "15,17.3",
"preset": "${MASK_PRESET}"
},
{
"name": "pins_horz7_2mm_0.7mm",
"pos": "1.15,17.3",
"vars": {
"PINTYPE": "${PINTYPE_HORZ}",
"PINDIR": "down"
}
},
{
"name": "test_pad_1mm",
"pos": "1.5,7.5"
},
{
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "0.4,4.7",
"vars": {
"DIR": "right",
@@ -51,7 +36,7 @@
},
{
"id": "u2_txd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.2,5.1",
"vars": {
"DIR": "left",
@@ -65,7 +50,7 @@
},
{
"id": "u1_txd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "4.0,5.1",
"vars": {
"DIR": "left",
@@ -79,7 +64,7 @@
},
{
"id": "gnd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "9.2,5.1",
"vars": {
"DIR": "left",
@@ -93,7 +78,7 @@
},
{
"id": "rst",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.2,9.9",
"vars": {
"DIR": "left",
@@ -107,7 +92,7 @@
},
{
"id": "f_csn",
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "2.2,12.8",
"vars": {
"DIR": "left",

View File

@@ -2,15 +2,9 @@
"pcb": {
"templates": [
"tuya2l",
"rf-15mm-type1",
"tuya2l-shield"
"pcb-white",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_white",
"TRACE_COLOR": "#E0E0E0",
"SILK_COLOR": "black",
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
},
"pinout_hidden": "I2S,I2C,JTAG,FLASH",
"pinout": {
"1": {

View File

@@ -1,6 +1,5 @@
{
"pcb": {
"scale": 11,
"test_pads": {
"TTX2": "cb2s.back.u2_txd.anchor",
"TRX2": "cb2s.back.u2_rxd.anchor",
@@ -15,7 +14,7 @@
},
{
"id": "u2_txd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "6.7,6.1",
"vars": {
"DIR": "left",
@@ -29,7 +28,7 @@
},
{
"id": "u2_rxd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "6.2,8.1",
"vars": {
"DIR": "left",
@@ -43,7 +42,7 @@
},
{
"id": "csn",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "4.2,11.1",
"vars": {
"DIR": "left",

View File

@@ -2,14 +2,9 @@
"pcb": {
"templates": [
"tuya2",
"rf-15mm-type1",
"tuya2-shield"
"pcb-blue-light",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white"
},
"pinout_hidden": "I2S,JTAG,FLASH",
"pinout": {
"1": {

View File

@@ -2,16 +2,12 @@
"pcb": {
"templates": [
"esp12s",
"esp12e-shield",
"pcb-white",
"tuya-16x24",
"rf-16mm-type1"
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_hole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
"PINHOLE": 1
},
"pinout_hidden": "I2S,SD,SPI,I2C,JTAG,FLASH",
"pinout": {

View File

@@ -2,16 +2,12 @@
"pcb": {
"templates": [
"esp12e-22",
"esp12e-shield-nohole",
"pcb-blue-light",
"tuya-16x24",
"rf-16mm-type1"
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_nohole"
"PINHOLE": 0
},
"pinout_hidden": "I2S,SD,SPI,SCL2",
"pinout": {

View File

@@ -2,16 +2,12 @@
"pcb": {
"templates": [
"esp12e-22",
"esp12e-shield-nohole",
"pcb-blue-light",
"tuya-16x24",
"rf-16mm-type1"
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_nohole"
"PINHOLE": 0
},
"pinout_hidden": "I2S,SD,JTAG,FLASH,SCL1",
"pinout": {

View File

@@ -0,0 +1,104 @@
{
"pcb": {
"test_pads": {
"TRST": "cblc5.back.rst.anchor",
"TRX1": "cblc5.back.r1.anchor",
"TTX1": "cblc5.back.t1.anchor",
"TRX2": "cblc5.back.r2.anchor",
"TTX2": "cblc5.back.t2.anchor",
"TCSN": "cblc5.back.csn.anchor"
},
"back": [
{
"name": "test_pad_1mm",
"pos": "1.1,1.1"
},
{
"id": "t1",
"name": "label_line_up",
"pos": "1.1,0.6",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 3.8,
"H": 1.4
}
},
{
"name": "test_pad_1mm",
"pos": "0.8,3.3"
},
{
"id": "r1",
"name": "label_line_up",
"pos": "0.8,2.8",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 4.1,
"H": 1.6
}
},
{
"name": "test_pad_1mm",
"pos": "2.4,4.1"
},
{
"id": "r2",
"name": "label_line_up",
"pos": "2.4,3.6",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 2.5,
"H": 0.4
}
},
{
"name": "test_pad_1mm",
"pos": "3.9,4.1"
},
{
"id": "t2",
"name": "label_line_down",
"pos": "3.9,4.6",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 1,
"H": 0.4
}
},
{
"name": "test_pad_1mm",
"pos": "1.2,4.9"
},
{
"name": "test_pad_1mm",
"pos": "1.7,7.0"
},
{
"id": "rst",
"name": "label_line_down",
"pos": "1.2,5.4",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 3.7,
"H": 1.6
}
},
{
"id": "csn",
"name": "label_line_down",
"pos": "1.7,7.5",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 3.2,
"H": 1.5
}
}
]
}
}

View File

@@ -0,0 +1,78 @@
{
"pcb": {
"templates": [
"tuyalc5",
"pcb-white"
],
"pinout_hidden": "I2S,JTAG,FLASH,SDA1",
"pinout": {
"1": {
"CTRL": "ANT"
},
"2": {
"GND": null
},
"3": {
"IC": 16,
"ARD": "D0"
},
"4": {
"IC": 15,
"ARD": "D2"
},
"5": {
"IC": 22,
"ARD": "D1"
},
"6": {
"PWR": 3.3
},
"TRST": {
"IC": 21
},
"TRX1": {
"IC": 26,
"ARD": "D4"
},
"TTX1": {
"IC": 27,
"ARD": "D3"
},
"TRX2": {
"IC": 28,
"ARD": "D5"
},
"TTX2": {
"IC": 29,
"ARD": "D6"
},
"TCSN": {
"IC": 19,
"ARD": "D7"
}
},
"front": [
{
"name": "chip",
"pos": "2.7,3.8",
"vars": {
"W": 5,
"POS": 1
}
},
{
"name": "osc",
"pos": "2.5,0.5"
},
{
"type": "text",
"pos": "0.7,4.2",
"text": "${SYMBOL}",
"font_size": 1.2,
"fill": {
"color": "${SILK_COLOR}"
}
}
]
}
}

View File

@@ -0,0 +1,30 @@
{
"pcb": {
"test_pads": {
"TCSN": "cbu.back.csn.anchor"
},
"back": [
{
"type": "rect",
"pos": "6.3,11.6",
"size": "2.9,2.9",
"preset": "copper1"
},
{
"id": "csn",
"name": "label_line_up",
"pos": "3.7,13.5",
"vars": {
"DIR": "left",
"RASTER": 2,
"W": 0,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "4.4,13.4"
}
]
}
}

100
boards/_base/pcb/cbu.json Normal file
View File

@@ -0,0 +1,100 @@
{
"pcb": {
"templates": [
"tuyau",
"pcb-white",
"rf-type1"
],
"pinout_hidden": "I2S,USB,SD,FLASH",
"pinout": {
"1": {
"IC": 11,
"ARD": "D0"
},
"2": {
"IC": 12,
"ARD": "D1"
},
"3": {
"IC": 20,
"ARD": "D2"
},
"4": {
"IC": 18,
"ARD": "D3"
},
"5": {
"IC": 17,
"ARD": [
"D4",
"A0"
]
},
"6": {
"IC": 28,
"ARD": "D5"
},
"7": {
"IC": 29,
"ARD": "D6"
},
"8": {
"IC": 24,
"ARD": "D7"
},
"9": {
"IC": 23,
"ARD": "D8"
},
"10": {
"IC": 22,
"ARD": "D9"
},
"11": {
"IC": 15,
"ARD": "D10"
},
"12": {
"IC": 16,
"ARD": "D11"
},
"13": {
"GND": null
},
"14": {
"PWR": 3.3
},
"15": {
"IC": 27,
"ARD": "D12"
},
"16": {
"IC": 26,
"ARD": "D13"
},
"17": {
"IC": 10,
"ARD": "D14"
},
"18": {
"IC": 21
},
"19": {
"IC": 25,
"ARD": "D15"
},
"20": {
"IC": 14,
"ARD": "D16"
},
"21": {
"IC": 13,
"ARD": "D17"
},
"TCSN": {
"IC": 19,
"ARD": "D18"
}
}
}
}

View File

@@ -2,15 +2,9 @@
"pcb": {
"templates": [
"custom-20x24-22",
"rf-20mm-type1"
"pcb-blue-light",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_nohole"
},
"pinout_hidden": "I2S,JTAG,FLASH,SD,SPI,SDA1",
"pinout": {
"1": {

View File

@@ -0,0 +1,56 @@
{
"pcb": {
"templates": [
"tuya2",
"pcb-black",
"rf-type1"
],
"scale": 10.5,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"drawing_hidden": "SPI",
"pinout": {
"1": {
"PWR": 3.3
},
"2": {
"IC": 17,
"ARD": "D0"
},
"3": {
"GND": null
},
"4": {
"IC": 16,
"ARD": "D1"
},
"5": {
"IC": 29,
"ARD": "D5"
},
"6": {
"IC": 28,
"ARD": "D2"
},
"7": {
"IC": 32,
"ARD": "D6"
},
"8": {
"IC": 1,
"ARD": "D3"
},
"9": {
"IC": 13,
"ARD": "D7"
},
"10": {
"IC": 2,
"ARD": "D4"
},
"11": {
"IC": 14,
"ARD": "D8"
}
}
}
}

View File

@@ -0,0 +1,79 @@
{
"pcb": {
"templates": [
"esp12s",
"pcb-white",
"tuya-16x24",
"rf-type1"
],
"vars": {
"PINHOLE": 1
},
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"NC": null
},
"2": {
"IC": 27,
"ARD": "A1"
},
"3": {
"IC": 12
},
"4": {
"IC": 30,
"ARD": [
"D0",
"A0"
]
},
"5": {
"IC": 13,
"ARD": "D1"
},
"6": {
"IC": 14,
"ARD": "D2"
},
"7": {
"IC": 16,
"ARD": "D3"
},
"8": {
"PWR": 3.3
},
"9": {
"GND": null
},
"10": {
"IC": 31,
"ARD": "D4"
},
"11": {
"IC": 2,
"ARD": "D5"
},
"12": {
"IC": 1,
"ARD": "D6"
},
"13": {
"IC": 28,
"ARD": "D7"
},
"14": {
"IC": 17,
"ARD": "D8"
},
"15": {
"IC": 29,
"ARD": "D9"
},
"16": {
"IC": 32,
"ARD": "D10"
}
}
}
}

View File

@@ -0,0 +1,70 @@
{
"pcb": {
"templates": [
"esp01m-14",
"pcb-blue-light",
"rf-type1"
],
"scale": 10.5,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"drawing_hidden": "I2C,SPI",
"pinout": {
"1": {
"PWR": 3.3
},
"2": {
"IC": 2,
"ARD": "D0"
},
"3": {
"IC": 30,
"ARD": [
"D1",
"A0"
]
},
"4": {
"IC": 14,
"ARD": "D2"
},
"5": {
"IC": 13,
"ARD": "D3"
},
"6": {
"IC": 16,
"ARD": "D4"
},
"7": {
"NC": null
},
"8": {
"IC": 28,
"ARD": "D5"
},
"9": {
"IC": 29,
"ARD": "D6"
},
"10": {
"IC": 17,
"ARD": "D7"
},
"11": {
"IC": 32,
"ARD": "D8"
},
"12": {
"IC": 31,
"ARD": "D9"
},
"13": {
"IC": 1,
"ARD": "D10"
},
"14": {
"GND": null
}
}
}
}

View File

@@ -0,0 +1,143 @@
{
"pcb": {
"test_pads": {
"TTEST": "wa2.back.test.anchor",
"TTX2": "wa2.back.2tx.anchor",
"TGND": "wa2.back.gnd.anchor",
"TSCK": "wa2.back.sck.anchor",
"TCSN": "wa2.back.csn.anchor",
"TSI": "wa2.back.si.anchor",
"TSO": "wa2.back.so.anchor",
"TP4": "wa2.back.p4.anchor",
"TVCC": "wa2.back.vbat.anchor"
},
"back": [
{
"name": "test_pad_1mm",
"pos": "2.6,6.2"
},
{
"id": "sck",
"name": "label_line_up",
"pos": "2.6,5.4",
"vars": {
"DIR": "left",
"W": 1.3,
"H": 2
}
},
{
"name": "test_pad_1mm",
"pos": "4.6,6.2"
},
{
"id": "so",
"name": "label_line_up",
"pos": "4.6,5.4",
"vars": {
"DIR": "left",
"W": 3.3,
"H": 4
}
},
{
"name": "test_pad_1mm",
"pos": "7.0,6.2"
},
{
"id": "p4",
"name": "label_line_up",
"pos": "7.0,5.4",
"vars": {
"DIR": "right",
"W": 0,
"H": 4
}
},
{
"name": "test_pad_1mm",
"pos": "3.0,8.3"
},
{
"id": "csn",
"name": "label_line_up",
"pos": "2.2,8.4",
"vars": {
"DIR": "left",
"W": 0.9,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "5.2,8.8"
},
{
"id": "si",
"name": "label_line_up",
"pos": "6.0,8.9",
"vars": {
"DIR": "right",
"W": 1,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "2.1,11.6"
},
{
"id": "2tx",
"name": "label_line_up",
"pos": "1.3,11.7",
"vars": {
"DIR": "left",
"W": 0,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "4.3,11.6"
},
{
"id": "test",
"name": "label_line_up",
"pos": "5.1,11.7",
"vars": {
"DIR": "right",
"W": 1.9,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "2.5,14.5"
},
{
"id": "vbat",
"name": "label_line_up",
"pos": "1.7,14.6",
"vars": {
"DIR": "left",
"W": 0.4,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "4.8,14.5"
},
{
"id": "gnd",
"name": "label_line_up",
"pos": "5.6,14.6",
"vars": {
"DIR": "right",
"W": 1.4,
"H": 0
}
}
]
}
}

93
boards/_base/pcb/wa2.json Normal file
View File

@@ -0,0 +1,93 @@
{
"pcb": {
"scale": 11,
"templates": [
"tuya2",
"pcb-blue-light",
"rf-type1"
],
"pinout_hidden": "I2S,SD",
"pinout": {
"1": {
"PWR": 3.3
},
"2": {
"IC": 16,
"ARD": "D0"
},
"3": {
"GND": null
},
"4": {
"IC": 15,
"ARD": "D1"
},
"5": {
"IC": 25,
"ARD": "D4"
},
"6": {
"IC": 14,
"ARD": "D2"
},
"7": {
"IC": 26,
"ARD": "D5"
},
"8": {
"IC": 32,
"ARD": [
"D3",
"A0"
]
},
"9": {
"IC": 22,
"ARD": "D6"
},
"10": {
"IC": 37
},
"11": {
"IC": 21,
"ARD": "D7"
},
"TSCK": {
"IC": 29,
"ARD": "D8"
},
"TP4": {
"IC": 35,
"ARD": "D9"
},
"TTEST": {
"IC": 23
},
"TTX2": {
"IC": 28,
"ARD": "D10"
},
"TCSN": {
"IC": 30,
"ARD": "D11"
},
"TSI": {
"IC": 31,
"ARD": "D12"
},
"TSO": {
"IC": 32,
"ARD": [
"D3",
"A0"
]
},
"TVCC": {
"PWR": 3.3
},
"TGND": {
"GND": null
}
}
}
}

View File

@@ -0,0 +1,99 @@
{
"pcb": {
"templates": [
"tuya1",
"tuya1s",
"pcb-blue-light",
"tuya-16x24",
"rf-type1"
],
"scale": 15,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"PWR": "VCC5"
},
"2": {
"IC": 27,
"ARD": "D0"
},
"3": {
"IC": 26,
"ARD": "D1"
},
"4": {
"PWR": 3.3
},
"5": {
"GND": null
},
"6": {
"IC": 15,
"ARD": "D2"
},
"7": {
"IC": 16,
"ARD": "D3"
},
"8": {
"IC": 29,
"ARD": "D4"
},
"9": {
"IC": 24,
"ARD": "D5"
},
"10": {
"IC": 23,
"ARD": "D6"
},
"11": {
"IC": 28,
"ARD": "D7"
},
"12": {
"IC": 25,
"ARD": "D8"
},
"13": {
"IC": 22,
"ARD": "D9"
},
"14": {
"GND": null
},
"15": {
"GND": null
},
"16": {
"IC": 21
},
"17": {
"IC": 17,
"ARD": [
"D10",
"A0"
]
},
"18": {
"GND": null
},
"19": {
"IC": 17,
"ARD": [
"D10",
"A0"
]
},
"20": {
"IC": 18
},
"21": {
"IC": 19
},
"22": {
"IC": 20
}
}
}
}

View File

@@ -0,0 +1,16 @@
{
"pcb": {
"test_pads": {
"TRST": "wb2l-m1.back.rst.anchor",
"TRX1": "wb2l-m1.back.u1_rxd.anchor",
"TTX1": "wb2l-m1.back.u1_txd.anchor",
"TRX2": "wb2l-m1.back.u2_rxd.anchor",
"TTX2": "wb2l-m1.back.u2_txd.anchor",
"TGND": "wb2l-m1.back.gnd.anchor",
"TSCK": "wb2l-m1.back.f_sck.anchor",
"TCSN": "wb2l-m1.back.f_csn.anchor",
"TSI": "wb2l-m1.back.f_si.anchor",
"TSO": "wb2l-m1.back.f_so.anchor"
}
}
}

View File

@@ -1,6 +1,5 @@
{
"pcb": {
"scale": 11,
"test_pads": {
"TRST": "wb2l.back.rst.anchor",
"TRX1": "wb2l.back.u1_rxd.anchor",
@@ -14,26 +13,12 @@
"TSO": "wb2l.back.f_so.anchor"
},
"back": [
{
"type": "rect",
"pos": "0,0",
"size": "15,17.3",
"preset": "${MASK_PRESET}"
},
{
"name": "pins_horz7_2mm_0.7mm",
"pos": "1.15,17.3",
"vars": {
"PINTYPE": "${PINTYPE_HORZ}",
"PINDIR": "down"
}
},
{
"name": "test_pad_1mm",
"pos": "1.5,7.5"
},
{
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "0.4,4.7",
"vars": {
"DIR": "right",
@@ -55,7 +40,7 @@
},
{
"id": "u1_rxd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.2,5.1",
"vars": {
"DIR": "left",
@@ -69,7 +54,7 @@
},
{
"id": "u1_txd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "4.0,5.1",
"vars": {
"DIR": "left",
@@ -83,7 +68,7 @@
},
{
"id": "u2_rxd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "5.7,5.1",
"vars": {
"DIR": "left",
@@ -97,7 +82,7 @@
},
{
"id": "u2_txd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "7.3,5.1",
"vars": {
"DIR": "left",
@@ -111,7 +96,7 @@
},
{
"id": "gnd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "9.2,5.1",
"vars": {
"DIR": "left",
@@ -125,7 +110,7 @@
},
{
"id": "f_sck",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.2,9.9",
"vars": {
"DIR": "left",
@@ -139,7 +124,7 @@
},
{
"id": "f_csn",
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "2.2,12.8",
"vars": {
"DIR": "left",
@@ -153,7 +138,7 @@
},
{
"id": "f_so",
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "3.5,14.3",
"vars": {
"DIR": "left",
@@ -167,7 +152,7 @@
},
{
"id": "f_si",
"name": "label_line_2mm_down",
"name": "label_line_down",
"pos": "5.2,14.3",
"vars": {
"DIR": "left",

View File

@@ -2,15 +2,9 @@
"pcb": {
"templates": [
"tuya2l",
"rf-15mm-type1",
"tuya2l-shield"
"pcb-white",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_white",
"TRACE_COLOR": "#E0E0E0",
"SILK_COLOR": "black",
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
},
"pinout_hidden": "I2S",
"pinout": {
"1": {
@@ -43,7 +37,7 @@
"GND": null
},
"TRST": {
"CTRL": "^RST"
"IC": 21
},
"TRX1": {
"IC": 26,

View File

@@ -19,7 +19,7 @@
},
{
"id": "sck",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.6,5.4",
"vars": {
"DIR": "left",
@@ -33,7 +33,7 @@
},
{
"id": "pwm3",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "4.6,5.4",
"vars": {
"DIR": "left",
@@ -47,7 +47,7 @@
},
{
"id": "2rx",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "7.0,5.4",
"vars": {
"DIR": "right",
@@ -61,7 +61,7 @@
},
{
"id": "2tx",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "9.0,5.4",
"vars": {
"DIR": "right",
@@ -75,7 +75,7 @@
},
{
"id": "csn",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "2.2,8.4",
"vars": {
"DIR": "left",
@@ -89,7 +89,7 @@
},
{
"id": "si",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "6.0,8.9",
"vars": {
"DIR": "right",
@@ -103,7 +103,7 @@
},
{
"id": "adc_so",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "1.3,11.7",
"vars": {
"DIR": "left",
@@ -117,7 +117,7 @@
},
{
"id": "cen",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "5.1,11.7",
"vars": {
"DIR": "right",
@@ -131,7 +131,7 @@
},
{
"id": "vbat",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "1.7,14.6",
"vars": {
"DIR": "left",
@@ -145,7 +145,7 @@
},
{
"id": "gnd",
"name": "label_line_2mm_up",
"name": "label_line_up",
"pos": "5.6,14.6",
"vars": {
"DIR": "right",

View File

@@ -1,16 +1,10 @@
{
"pcb": {
"scale": 10.5,
"templates": [
"tuya2",
"rf-15mm-type1",
"tuya2-shield"
"pcb-blue-light",
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white"
},
"pinout_hidden": "I2S,FLASH",
"pinout": {
"1": {

View File

@@ -2,18 +2,14 @@
"pcb": {
"templates": [
"esp12e-21",
"esp12e-shield-nohole",
"pcb-white",
"tuya-16x24",
"rf-16mm-type1"
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_white",
"TRACE_COLOR": "#E0E0E0",
"SILK_COLOR": "black",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_nohole"
"PINHOLE": 0
},
"pinout_hidden": "I2S,SD,SPI",
"pinout_hidden": "I2S,SD",
"pinout": {
"1": {
"NC": null

View File

@@ -2,16 +2,12 @@
"pcb": {
"templates": [
"esp12e-22",
"esp12e-shield-nohole",
"pcb-blue-light",
"tuya-16x24",
"rf-16mm-type1"
"rf-type1"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole",
"PINTYPE_HORZ": "pin_horz_2mm_cast_nohole"
"PINHOLE": 0
},
"pinout_hidden": "I2S,SD,SPI",
"pinout": {

View File

@@ -0,0 +1,152 @@
{
"pcb": {
"test_pads": {
"TRST": "wblc5.back.cen.anchor",
"TRX1": "wblc5.back.r1.anchor",
"TTX1": "wblc5.back.t1.anchor",
"TRX2": "wblc5.back.r2.anchor",
"TTX2": "wblc5.back.t2.anchor",
"TSCK": "wblc5.back.tck.anchor",
"TCSN": "wblc5.back.tms.anchor",
"TSI": "wblc5.back.tdi.anchor",
"TSO": "wblc5.back.tdo.anchor"
},
"back": [
{
"name": "test_pad_1mm",
"pos": "0.7,1.1"
},
{
"id": "r1",
"name": "label_line_up",
"pos": "0.7,0.6",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 7.2,
"H": 5.1
}
},
{
"name": "test_pad_1mm",
"pos": "1.9,0.9"
},
{
"id": "t1",
"name": "label_line_up",
"pos": "1.9,0.4",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 5.9,
"H": 2.9
}
},
{
"name": "test_pad_1mm",
"pos": "7.8,0.8"
},
{
"id": "r2",
"name": "label_line_up",
"pos": "7.8,0.3",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 0,
"H": 0.8
}
},
{
"name": "test_pad_1mm",
"pos": "7.8,2.4"
},
{
"id": "t2",
"name": "label_line_up",
"pos": "7.8,1.9",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 0,
"H": 0.4
}
},
{
"name": "test_pad_1mm",
"pos": "1.3,4.2"
},
{
"id": "cen",
"name": "label_line_up",
"pos": "2.1,4.3",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 5.7,
"H": 0
}
},
{
"name": "test_pad_1mm",
"pos": "1.6,5.3"
},
{
"name": "test_pad_1mm",
"pos": "1.3,6.3"
},
{
"name": "test_pad_1mm",
"pos": "4.5,7.6"
},
{
"name": "test_pad_1mm",
"pos": "3.8,8.7"
},
{
"id": "tck",
"name": "label_line_down",
"pos": "1.6,5.8",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 6.2,
"H": 0.3
}
},
{
"id": "tms",
"name": "label_line_down",
"pos": "1.3,6.8",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 6.5,
"H": 1.3
}
},
{
"id": "tdi",
"name": "label_line_down",
"pos": "4.5,8.1",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 3.3,
"H": 2.0
}
},
{
"id": "tdo",
"name": "label_line_down",
"pos": "3.8,9.2",
"vars": {
"DIR": "right",
"RASTER": 2,
"W": 4,
"H": 2.9
}
}
]
}
}

View File

@@ -0,0 +1,95 @@
{
"pcb": {
"templates": [
"tuyalc5",
"pcb-white"
],
"pinout_hidden": "I2S",
"pinout": {
"1": {
"CTRL": "ANT"
},
"2": {
"GND": null
},
"3": {
"IC": 16,
"ARD": "D0"
},
"4": {
"IC": 15,
"ARD": "D2"
},
"5": {
"IC": 22,
"ARD": "D1"
},
"6": {
"PWR": 3.3
},
"TRST": {
"IC": 21
},
"TRX1": {
"IC": 26,
"ARD": "D3"
},
"TTX1": {
"IC": 27,
"ARD": "D4"
},
"TRX2": {
"IC": 28,
"ARD": "D5"
},
"TTX2": {
"IC": 29,
"ARD": "D6"
},
"TSCK": {
"IC": 20,
"ARD": "D7"
},
"TCSN": {
"IC": 19,
"ARD": "D8"
},
"TSO": {
"IC": 17,
"ARD": [
"D10",
"A0"
]
},
"TSI": {
"IC": 18,
"ARD": "D9"
}
},
"front": [
{
"name": "chip",
"pos": "2.3,3.5",
"vars": {
"W": 5,
"POS": 1
}
},
{
"type": "text",
"pos": "3.5,2.2",
"text": "${SYMBOL}",
"font_size": 1.2,
"fill": {
"color": "${SILK_COLOR}"
}
}
],
"back": [
{
"name": "osc",
"pos": "2.6,1.3"
}
]
}
}

82
boards/_base/pcb/wr1.json Normal file
View File

@@ -0,0 +1,82 @@
{
"pcb": {
"templates": [
"tuya1",
"pcb-black",
"tuya-16x24",
"rf-type1"
],
"scale": 15,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"PWR": "VCC5"
},
"2": {
"IC": 32,
"ARD": "D0"
},
"3": {
"IC": 29,
"ARD": "D1"
},
"4": {
"PWR": 3.3
},
"5": {
"GND": null
},
"6": {
"IC": 13,
"ARD": "D2"
},
"7": {
"IC": 14,
"ARD": "D3"
},
"8": {
"IC": 1,
"ARD": "D4"
},
"9": {
"IC": 16,
"ARD": "D5"
},
"10": {
"IC": 28,
"ARD": "D6"
},
"11": {
"IC": 2,
"ARD": "D7"
},
"12": {
"IC": 30,
"ARD": [
"D8",
"A0"
]
},
"13": {
"IC": 31,
"ARD": "D9"
},
"14": {
"GND": null
},
"15": {
"GND": null
},
"16": {
"IC": 12
},
"17": {
"IC": 27,
"ARD": "A1"
},
"18": {
"GND": null
}
}
}
}

View File

@@ -0,0 +1,82 @@
{
"pcb": {
"templates": [
"tuya1",
"pcb-blue-light",
"tuya-16x24",
"rf-type1"
],
"scale": 15,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"PWR": "VCC5"
},
"2": {
"IC": 32,
"ARD": "D0"
},
"3": {
"IC": 29,
"ARD": "D1"
},
"4": {
"PWR": 3.3
},
"5": {
"GND": null
},
"6": {
"IC": 13,
"ARD": "D2"
},
"7": {
"IC": 14,
"ARD": "D3"
},
"8": {
"IC": 1,
"ARD": "D4"
},
"9": {
"IC": 17,
"ARD": "D5"
},
"10": {
"IC": 28,
"ARD": "D6"
},
"11": {
"IC": 2,
"ARD": "D7"
},
"12": {
"IC": 30,
"ARD": [
"D8",
"A0"
]
},
"13": {
"IC": 31,
"ARD": "D9"
},
"14": {
"GND": null
},
"15": {
"GND": null
},
"16": {
"IC": 12
},
"17": {
"IC": 27,
"ARD": "A1"
},
"18": {
"GND": null
}
}
}
}

View File

@@ -2,13 +2,8 @@
"pcb": {
"templates": [
"tuya2",
"rf-15mm-type1",
"tuya2-shield"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white"
}
"pcb-blue-light",
"rf-type1"
]
}
}

View File

@@ -0,0 +1,44 @@
{
"pcb": {
"back": [
{
"comment": "RXD Pad",
"name": "test_pad_1mm",
"pos": "5.4,14.5"
},
{
"comment": "TXD Pad",
"name": "test_pad_1mm",
"pos": "5.4,13.2"
},
{
"comment": "RXD Pad label",
"id": "rxd",
"name": "label_line_up",
"pos": "4.6,14.6",
"vars": {
"DIR": "left",
"RASTER": 2,
"W": 2.1,
"H": 0
}
},
{
"comment": "TXD Pad label",
"id": "txd",
"name": "label_line_up",
"pos": "5.4,12.4",
"vars": {
"DIR": "left",
"RASTER": 2,
"W": 2.7,
"H": 0.5
}
}
],
"test_pads": {
"TRX2": "wr2.back.rxd.anchor",
"TTX2": "wr2.back.txd.anchor"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"pcb": {
"scale": 10.5,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI",
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"drawing_hidden": "SPI",
"pinout": {
"1": {
"PWR": 3.3
@@ -43,6 +43,14 @@
"11": {
"IC": 14,
"ARD": "D7"
},
"TTX2": {
"IC": 1,
"ARD": "D8"
},
"TRX2": {
"IC": 2,
"ARD": "D9"
}
}
}

View File

@@ -0,0 +1,44 @@
{
"pcb": {
"back": [
{
"comment": "RXD Pad",
"name": "test_pad_1mm",
"pos": "5.4,14.5"
},
{
"comment": "TXD Pad",
"name": "test_pad_1mm",
"pos": "5.4,13.2"
},
{
"comment": "RXD Pad label",
"id": "rxd",
"name": "label_line_up",
"pos": "4.6,14.6",
"vars": {
"DIR": "left",
"RASTER": 2,
"W": 2.1,
"H": 0
}
},
{
"comment": "TXD Pad label",
"id": "txd",
"name": "label_line_up",
"pos": "5.4,12.4",
"vars": {
"DIR": "left",
"RASTER": 2,
"W": 2.7,
"H": 0.5
}
}
],
"test_pads": {
"TRX2": "wr2e.back.rxd.anchor",
"TTX2": "wr2e.back.txd.anchor"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"pcb": {
"scale": 10.5,
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI,SDA0",
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SDA0",
"drawing_hidden": "SPI",
"pinout": {
"1": {
"PWR": 3.3
@@ -46,6 +46,14 @@
"11": {
"IC": 14,
"ARD": "D6"
},
"TTX2": {
"IC": 1,
"ARD": "D7"
},
"TRX2": {
"IC": 2,
"ARD": "D8"
}
}
}

View File

@@ -2,14 +2,8 @@
"pcb": {
"templates": [
"tuya2l",
"rf-15mm-type1",
"tuya2l-shield"
],
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white",
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
}
"pcb-blue-light",
"rf-type1"
]
}
}

View File

@@ -2,15 +2,8 @@
"pcb": {
"templates": [
"esp12s",
"esp12s-shield",
"tuya-16x24",
"rf-16mm-type1"
],
"vars": {
"MASK_PRESET": "mask_black",
"TRACE_COLOR": "#505050",
"SILK_COLOR": "white",
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
}
"rf-type1"
]
}
}

View File

@@ -1,5 +1,8 @@
{
"pcb": {
"templates": [
"pcb-black"
],
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {

View File

@@ -1,10 +1,8 @@
{
"pcb": {
"vars": {
"MASK_PRESET": "mask_blue_light",
"TRACE_COLOR": "#58839B",
"SILK_COLOR": "white"
},
"templates": [
"pcb-blue-light"
],
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {

View File

@@ -2,15 +2,9 @@
"pcb": {
"templates": [
"esp12s",
"esp12e-shield",
"pcb-white",
"tuya-16x24",
"rf-16mm-type1"
],
"vars": {
"MASK_PRESET": "mask_white",
"TRACE_COLOR": "#E0E0E0",
"SILK_COLOR": "black",
"PINTYPE_VERT": "pin_vert_2mm_cast_hole"
}
"rf-type1"
]
}
}

View File

@@ -1,6 +1,9 @@
{
"pcb": {
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI",
"templates": [
"pcb-black"
],
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
"pinout": {
"1": {
"NC": null

View File

@@ -5,9 +5,8 @@
"flash": {
"ota1": "0x00B000+0x75000",
"ota2": "0x080000+0x75000",
"kvs": "0xF5000+0x6000",
"userdata": "0xFB000+0x104000",
"rdp": "0x1FF000+0x1000"
"kvs": "0x0F5000+0x8000",
"userdata": "0x0FD000+0x102000"
},
"upload": {
"flash_size": 2097152,

View File

@@ -5,9 +5,8 @@
"flash": {
"ota1": "0x00B000+0xC5000",
"ota2": "0x0D0000+0xC5000",
"kvs": "0x195000+0x6000",
"userdata": "0x19B000+0x64000",
"rdp": "0x1FF000+0x1000"
"kvs": "0x195000+0x8000",
"userdata": "0x19D000+0x62000"
},
"upload": {
"flash_size": 2097152,

View File

@@ -6,8 +6,7 @@
"ota1": "0x00B000+0xF5000",
"ota2": "0x100000+0xF5000",
"kvs": "0x1F5000+0x8000",
"userdata": "0x1FD000+0x202000",
"rdp": "0x3FF000+0x1000"
"userdata": "0x1FD000+0x202000"
},
"upload": {
"flash_size": 4194304,

View File

@@ -0,0 +1,5 @@
{
"flash": {
"tuya": "0x1EB000+0x15000"
}
}

View File

@@ -10,7 +10,8 @@
"boot_xip": "0x000000+0x4000",
"boot_ram": "0x004000+0x4000",
"system": "0x009000+0x1000",
"calibration": "0x00A000+0x1000"
"calibration": "0x00A000+0x1000",
"rdp": "0x1FF000+0x1000"
},
"connectivity": [
"wifi"
@@ -44,13 +45,8 @@
}
},
"links": {
"General info": "../../docs/platform/realtek-amb/README.md",
"Flashing guide": "../../docs/platform/realtek-ambz/flashing.md",
"Info & flashing guide": "../../docs/platform/realtek-ambz/README.md",
"Debugging": "../../docs/platform/realtek-ambz/debugging.md"
},
"extra": [
"RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.",
"Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area."
]
}
}
}

View File

@@ -0,0 +1,12 @@
{
"flash": {
"ota1": "0x010000+0xE0000",
"ota2": "0x0F0000+0xE0000",
"kvs": "0x1D0000+0x8000",
"userdata": "0x1D8000+0x28000"
},
"upload": {
"flash_size": 2097152,
"maximum_size": 917504
}
}

View File

@@ -2,8 +2,7 @@
"flash": {
"ota1": "0x00C000+0xF8000",
"ota2": "0x104000+0xF8000",
"kvs": "0x1FC000+0x2000",
"userdata": "0x1FE000+0x2000"
"kvs": "0x1FC000+0x4000"
},
"upload": {
"flash_size": 2097152,

View File

@@ -0,0 +1,96 @@
{
"image": {
"keys": {
"decryption": "a0d6dae7e062ca94cbb294bf896b9f68cf8438774256ac7403ca4fd9a1c9564f",
"keyblock": {
"part_table": "882aa16c8c44a7760aa8c9ab22e3568c6fa16c2afa4f0cea29a10abcdf60e44f",
"boot": "882aa16c8c44a7760aa8c9ab22e3568c6fa16c2afa4f0cea29a10abcdf60e44f"
},
"hash_keys": {
"part_table": "47e5661335a4c5e0a94d69f3c737d54f2383791332939753ef24279608f6d72b",
"boot": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"ota1": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e5f",
"ota2": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e5f"
},
"user_keys": {
"boot": "aa0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
"ota1": "bb0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
"ota2": "bb0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
},
"xip_sce_key": "a0d6dae7e062ca94cbb294bf896b9f68",
"xip_sce_iv": "94879487948794879487948794879487"
},
"ptable": {
"boot": "BOOT",
"ota1": "FW1",
"ota2": "FW2"
},
"boot": {
"name": "boot.sram",
"type": "SRAM",
"entry": "__ram_start_table_start__",
"elf": [
".ram.func.table",
".data",
".ram.code_text",
".ram.code_rodata"
],
"is_boot": true
},
"fw": [
{
"type": "FWHS_S",
"sections": [
{
"name": "fwhs.sram",
"type": "SRAM",
"entry": "__ram_start_table_start__",
"elf": [
".ram.img.signature",
".ram.func.table",
".data",
".ram.code_text",
".ram.code_rodata"
]
},
{
"name": "fwhs.psram",
"type": "PSRAM",
"entry": "__psram_start__",
"elf": [
".psram.data",
".psram.code_text",
".psram.code_rodata"
]
}
]
},
{
"type": "XIP",
"sections": [
{
"name": "fwhs.xip_c",
"entry": "XIP_RamImgSignature_s",
"type": "XIP",
"elf": [
".xip.code_c"
]
}
]
},
{
"type": "XIP",
"sections": [
{
"name": "fwhs.xip_p",
"entry": "__xip_code_rodata_start__",
"type": "XIP",
"elf": [
".xip.code_p"
]
}
]
}
]
}
}

View File

@@ -0,0 +1,5 @@
{
"flash": {
"tuya": "0x1D5000+0x10000"
}
}

View File

@@ -13,10 +13,20 @@
},
"debug": {
"protocol": "openocd",
"protocols": []
"protocols": [
"openocd"
],
"openocd_config": "amebaz2.cfg",
"gdb_init": [
"mem 0x9b000000 0x9c000000 ro"
]
},
"upload": {
"maximum_ram_size": 262144
"maximum_ram_size": 262144,
"protocol": "uart",
"protocols": [
"uart"
]
},
"doc": {
"params": {

View File

@@ -2,6 +2,7 @@
"_base": [
"realtek-ambz2",
"realtek-ambz2-8720",
"realtek-ambz2-image",
"realtek-ambz2-2mb-992k",
"ic/rtl8720cf",
"pcb/bw15"

20
boards/cb1s.json Normal file
View File

@@ -0,0 +1,20 @@
{
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb1s",
"pcb/cb1s-test"
],
"build": {
"mcu": "bk7231n",
"variant": "cb1s"
},
"name": "CB1S Wi-Fi Module",
"url": "https://developer.tuya.com/en/docs/iot/cb1s-module-datasheet?id=Kaij1abmwyjq2",
"vendor": "Tuya Inc.",
"pcb": {
"symbol": "CB1S"
}
}

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb2l",
"pcb/cb2l-test"

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb2s",
"pcb/cb2s-test"

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb3l"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb3s"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cb3se"
],

20
boards/cblc5.json Normal file
View File

@@ -0,0 +1,20 @@
{
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cblc5",
"pcb/cblc5-test"
],
"build": {
"mcu": "bk7231n",
"variant": "cblc5"
},
"name": "CBLC5 Wi-Fi Module",
"url": "https://developer.tuya.com/en/docs/iot/cblc5-module-datasheet?id=Ka07iqyusq1wm",
"vendor": "Tuya Inc.",
"pcb": {
"symbol": "CBLC5"
}
}

23
boards/cbu.json Normal file
View File

@@ -0,0 +1,23 @@
{
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/cbu",
"pcb/cbu-test"
],
"build": {
"mcu": "bk7231n",
"variant": "cbu"
},
"name": "CBU Wi-Fi Module",
"url": "https://developer.tuya.com/en/docs/iot/cbu-module-datasheet?id=Ka07pykl5dk4u",
"vendor": "Tuya Inc.",
"doc": {
"fccid": "2ANDL-CBU"
},
"pcb": {
"symbol": "CBU"
}
}

View File

@@ -3,7 +3,7 @@
"generic",
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32"
],
"build": {

View File

@@ -2,8 +2,9 @@
"_base": [
"generic",
"beken-72xx",
"beken-7231u",
"beken-7231t-tuya",
"beken-7231",
"beken-7231t",
"beken-7231-tuya",
"ic/bk7231-qfn32"
],
"build": {

View File

@@ -18,7 +18,7 @@
"extra": [
"## Information",
"This is a generic board definition for RTL8710BX with 4 MiB of flash. It has a bigger application partition size (980 KiB). The used bootloader is also different from the standard Tuya one.",
"It can be found in [Ezviz T31 smart plug](https://www.ezviz.com/product/T31/2021) - bare chip soldered onto the manufacturer-made PCB. The plug is not Tuya/SmartLife-compatible and has a 25Q32CSIG flash chip. Refer to [libretiny#23](https://github.com/kuba2k2/libretiny/issues/23) for photos and more information.",
"It can be found in [Ezviz T31 smart plug](https://www.ezviz.com/product/T31/2021) - bare chip soldered onto the manufacturer-made PCB. The plug is not Tuya/SmartLife-compatible and has a 25Q32CSIG flash chip. Refer to [libretiny#23](https://github.com/libretiny-eu/libretiny/issues/23) for photos and more information.",
"Note that stock firmware seems to use smaller app images (0x80000 / 512 KiB). After 0x180000 some product-test data and device logs can be found. Because the OTA2 offset is 0x100000, the board definition was configured to use all available space."
]
},

View File

@@ -3,6 +3,7 @@
"generic",
"realtek-ambz2",
"realtek-ambz2-8720",
"realtek-ambz2-image",
"realtek-ambz2-2mb-992k",
"ic/rtl8720cf"
],

View File

@@ -1,8 +1,9 @@
{
"_base": [
"beken-72xx",
"beken-7231u",
"beken-7231t-tuya",
"beken-7231",
"beken-7231t",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/lsc-lma35"
],

View File

@@ -2,7 +2,7 @@
"_base": [
"beken-72xx",
"beken-7231n",
"beken-7231n-tuya",
"beken-7231-tuya",
"ic/bk7231-qfn32",
"pcb/lsc-lma35"
],
@@ -10,8 +10,8 @@
"mcu": "bk7231n",
"variant": "lsc-lma35"
},
"name": "LSC LMA35",
"symbol": "LSC LMA35",
"name": "LSC LMA35 BK7231N",
"symbol": "LSC LMA35 N",
"url": "https://www.action.com/de-at/p/lsc-smart-connect-outdoor-led-streifen/",
"vendor": "Unknown",
"pcb": {

View File

@@ -0,0 +1,54 @@
[
{
"type": "rect",
"pos": "0,0",
"size": "15,17.9",
"preset": "${MASK_PRESET}"
},
{
"comment": "Left cut stroke horizontal",
"type": "rect",
"pos": "0,14.35",
"size": "1.60,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Left cut stroke vertical",
"type": "rect",
"pos": "1.60,14.35",
"size": "0.1,3.45",
"preset": "pcb_stroke"
},
{
"comment": "Left cut background",
"type": "rect",
"pos": "-0.1,14.45",
"size": "1.70,3.55",
"fill": {
"color": "white"
}
},
{
"comment": "Right cut stroke horizontal",
"type": "rect",
"pos": "13.3,14.35",
"size": "1.60,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Right cut stroke vertical",
"type": "rect",
"pos": "13.3,14.35",
"size": "0.1,3.45",
"preset": "pcb_stroke"
},
{
"comment": "Right cut background",
"type": "rect",
"pos": "13.4,14.45",
"size": "1.70,3.55",
"fill": {
"color": "white"
}
}
]

View File

@@ -0,0 +1,54 @@
[
{
"type": "rect",
"pos": "0,0",
"size": "15.8,20.3",
"preset": "${MASK_PRESET}"
},
{
"comment": "Left cut stroke horizontal",
"type": "rect",
"pos": "0,17.4",
"size": "1.50,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Left cut stroke vertical",
"type": "rect",
"pos": "1.50,17.4",
"size": "0.1,2.8",
"preset": "pcb_stroke"
},
{
"comment": "Left cut background",
"type": "rect",
"pos": "-0.1,17.5",
"size": "1.60,2.85",
"fill": {
"color": "white"
}
},
{
"comment": "Right cut stroke horizontal",
"type": "rect",
"pos": "14.1,17.4",
"size": "1.60,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Right cut stroke vertical",
"type": "rect",
"pos": "14.1,17.4",
"size": "0.1,2.8",
"preset": "pcb_stroke"
},
{
"comment": "Right cut background",
"type": "rect",
"pos": "14.2,17.5",
"size": "1.70,2.85",
"fill": {
"color": "white"
}
}
]

22
boards/t102-v1.1.json Normal file
View File

@@ -0,0 +1,22 @@
{
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"ic/rtl8710bn",
"pcb/t102"
],
"build": {
"mcu": "rtl8710bn",
"variant": "t102-v1.1"
},
"name": "T102_V1.1",
"url": "https://docs.libretiny.eu/boards/t102-v1.1/",
"vendor": "Unknown",
"doc": {
"fccid": "2AU7O-T102V11",
"mcu": "w302"
},
"pcb": {
"symbol": "T102_V1.1"
}
}

26
boards/t103-v1.0.json Normal file
View File

@@ -0,0 +1,26 @@
{
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"realtek-ambz-bx",
"ic/rtl8710bn",
"pcb/t103"
],
"build": {
"mcu": "rtl8710bx",
"variant": "t103-v1.0"
},
"name": "T103_V1.0",
"url": "https://docs.libretiny.eu/boards/t103-v1.0/",
"vendor": "Unknown",
"doc": {
"fccid": "2AU7O-T102V11",
"extra": [
"## Source",
"Pinout information sourced from [teardown post by @p.kaczmarek2 from Elektroda](https://www.elektroda.pl/rtvforum/topic3984148.html)."
]
},
"pcb": {
"symbol": "T103_V1.0"
}
}

22
boards/t112-v1.1.json Normal file
View File

@@ -0,0 +1,22 @@
{
"_base": [
"realtek-ambz",
"realtek-ambz-2mb-788k",
"ic/rtl8710bn",
"pcb/t112"
],
"build": {
"mcu": "rtl8710bn",
"variant": "t112-v1.1"
},
"name": "T112_V1.1",
"url": "https://docs.libretiny.eu/boards/t112-v1.1/",
"vendor": "Unknown",
"doc": {
"fccid": "2AU7O-T102V11",
"mcu": "w302"
},
"pcb": {
"symbol": "T112_V1.1"
}
}

View File

@@ -0,0 +1,141 @@
{
"name": "custom-20x24-22",
"title": "Custom 20x24mm form factor (22-pin)",
"width": 20,
"height": 24,
"vars": {
"PINTYPE_VERT": "pin_vert_cast_nohole",
"PINTYPE_HORZ": "pin_horz_cast_nohole",
"RASTER": 2,
"RF_W": 20,
"RF_H": 6.5
},
"front": [
{
"comment": "PCB soldermask",
"type": "rect",
"pos": "0,0",
"size": "20,24",
"preset": "${MASK_PRESET}"
},
{
"comment": "Pins (1-7)",
"id": "left",
"name": "r_pins_vert",
"repeat": 7,
"pos": "0,8.5",
"vars": {
"PINDIR": "left"
}
},
{
"comment": "Pins (8-15)",
"id": "right",
"name": "r_pins_vert",
"repeat": 7,
"pos": "20,8.5",
"vars": {
"PINDIR": "right"
}
},
{
"comment": "Pins (16-22)",
"name": "r_pins_horz",
"repeat": 8,
"pos": "3,24",
"vars": {
"PINDIR": "down"
}
},
{
"comment": "Pin labels (16-22)",
"id": "down",
"name": "r_labels_horz",
"repeat": 8,
"pos": "3,24",
"vars": {
"PINDIR": "down"
}
},
{
"comment": "Metal shielding",
"type": "rect",
"pos": "1.2,6.95",
"size": "17.6,15.8",
"preset": "shield"
}
],
"back": [
{
"comment": "PCB soldermask",
"type": "rect",
"pos": "0,0",
"size": "20,24",
"preset": "${MASK_PRESET}"
},
{
"comment": "Pins (8-15)",
"id": "right",
"name": "r_pins_vert",
"repeat": 7,
"pos": "0,8.5",
"vars": {
"PINDIR": "left"
}
},
{
"comment": "Pins (1-7)",
"id": "left",
"name": "r_pins_vert",
"repeat": 7,
"pos": "20,8.5",
"vars": {
"PINDIR": "right"
}
},
{
"comment": "Pins (16-22)",
"name": "r_pins_horz",
"repeat": 8,
"pos": "3,24",
"vars": {
"PINDIR": "down"
}
},
{
"comment": "Pin labels (16-22)",
"id": "down",
"name": "r_labels_horz",
"repeat": 8,
"pos": "3,24",
"vars": {
"PINDIR": "down"
}
}
],
"pads": {
"1": "custom-20x24-22.front.left.pin1",
"2": "custom-20x24-22.front.left.pin2",
"3": "custom-20x24-22.front.left.pin3",
"4": "custom-20x24-22.front.left.pin4",
"5": "custom-20x24-22.front.left.pin5",
"6": "custom-20x24-22.front.left.pin6",
"7": "custom-20x24-22.front.left.pin7",
"8": "custom-20x24-22.front.right.pin7",
"9": "custom-20x24-22.front.right.pin6",
"10": "custom-20x24-22.front.right.pin5",
"11": "custom-20x24-22.front.right.pin4",
"12": "custom-20x24-22.front.right.pin3",
"13": "custom-20x24-22.front.right.pin2",
"14": "custom-20x24-22.front.right.pin1",
"15": "custom-20x24-22.front.down.label1.anchor",
"16": "custom-20x24-22.front.down.label2.anchor",
"17": "custom-20x24-22.front.down.label3.anchor",
"18": "custom-20x24-22.front.down.label4.anchor",
"19": "custom-20x24-22.front.down.label5.anchor",
"20": "custom-20x24-22.front.down.label6.anchor",
"21": "custom-20x24-22.front.down.label7.anchor",
"22": "custom-20x24-22.front.down.label8.anchor"
},
"test_pads": {}
}

View File

@@ -0,0 +1,27 @@
{
"name": "tuya-16x24",
"title": "Tuya boards; 16x24mm; 16 or 22 pin",
"width": 16,
"height": 24,
"front": [
{
"comment": "Line below model name",
"type": "rect",
"pos": "0.5,6.2",
"size": "15,0.15",
"fill": {
"color": "${SILK_COLOR}"
}
},
{
"comment": "Board model name",
"type": "text",
"pos": "7.0,5.5",
"text": "${SYMBOL}",
"font_size": 1.0,
"fill": {
"color": "${SILK_COLOR}"
}
}
]
}

View File

@@ -0,0 +1,99 @@
{
"name": "tuya1",
"title": "Tuya boards; 1 series",
"width": 18,
"height": 23.5,
"vars": {
"PINTYPE_VERT": "pin_vert_cast_nohole",
"PINTYPE_HORZ": "pin_horz_cast_nohole",
"RASTER": 1.5,
"RF_W": 18,
"RF_H": 6.1
},
"front": [
{
"comment": "PCB soldermask",
"type": "rect",
"pos": "0,0",
"size": "18,23.5",
"preset": "${MASK_PRESET}"
},
{
"comment": "Metal shielding",
"type": "rect",
"pos": "1.3,7.3",
"size": "15.4,15.4",
"preset": "shield"
},
{
"comment": "Pins (1-9)",
"id": "left",
"name": "r_pins_vert",
"repeat": 9,
"pos": "0,10.6",
"vars": {
"PINDIR": "left"
}
},
{
"comment": "Pins (10-18)",
"id": "right",
"name": "r_pins_vert",
"repeat": 9,
"pos": "18,10.6",
"vars": {
"PINDIR": "right"
}
}
],
"back": [
{
"comment": "PCB soldermask",
"type": "rect",
"pos": "0,0",
"size": "18,23.5",
"preset": "${MASK_PRESET}"
},
{
"comment": "Pins (1-9)",
"id": "left",
"name": "r_pins_vert",
"repeat": 9,
"pos": "0,10.6",
"vars": {
"PINDIR": "left"
}
},
{
"comment": "Pins (10-18)",
"id": "right",
"name": "r_pins_vert",
"repeat": 9,
"pos": "18,10.6",
"vars": {
"PINDIR": "right"
}
}
],
"pads": {
"1": "tuya1.front.left.pin1",
"2": "tuya1.front.left.pin2",
"3": "tuya1.front.left.pin3",
"4": "tuya1.front.left.pin4",
"5": "tuya1.front.left.pin5",
"6": "tuya1.front.left.pin6",
"7": "tuya1.front.left.pin7",
"8": "tuya1.front.left.pin8",
"9": "tuya1.front.left.pin9",
"10": "tuya1.front.right.pin9",
"11": "tuya1.front.right.pin8",
"12": "tuya1.front.right.pin7",
"13": "tuya1.front.right.pin6",
"14": "tuya1.front.right.pin5",
"15": "tuya1.front.right.pin4",
"16": "tuya1.front.right.pin3",
"17": "tuya1.front.right.pin2",
"18": "tuya1.front.right.pin1"
},
"test_pads": {}
}

View File

@@ -0,0 +1,64 @@
{
"name": "tuya1s",
"title": "Tuya boards; 1S series",
"width": 18,
"height": 23.5,
"vars": {
"PINTYPE_VERT": "pin_vert_cast_nohole",
"PINTYPE_HORZ": "pin_horz_cast_nohole",
"RASTER": 1.5,
"RF_W": 18,
"RF_H": 6.1
},
"front": [
{
"comment": "Pins (19-24)",
"name": "r_pins_horz",
"repeat": 6,
"pos": "5.25,23.5",
"vars": {
"PINDIR": "down"
}
},
{
"comment": "Pin labels (19-24)",
"id": "down",
"name": "r_labels_horz",
"repeat": 6,
"pos": "5.25,23.5",
"vars": {
"PINDIR": "down"
}
}
],
"back": [
{
"comment": "Pins (10-18)",
"name": "r_pins_vert",
"repeat": 9,
"pos": "18,10.6",
"vars": {
"PINDIR": "right"
}
},
{
"comment": "Pins (19-24)",
"id": "down",
"name": "r_pins_horz",
"repeat": 6,
"pos": "5.25,23.5",
"vars": {
"PINDIR": "down"
}
}
],
"pads": {
"19": "tuya1s.front.down.label1.anchor",
"20": "tuya1s.front.down.label2.anchor",
"21": "tuya1s.front.down.label3.anchor",
"22": "tuya1s.front.down.label4.anchor",
"23": "tuya1s.front.down.label5.anchor",
"24": "tuya1s.front.down.label6.anchor"
},
"test_pads": {}
}

View File

@@ -0,0 +1,80 @@
{
"name": "tuya2",
"title": "Tuya boards; 2 series",
"width": 15,
"height": 17.9,
"vars": {
"PINTYPE_HORZ": "pad_10x25",
"PINDIR": "down",
"RASTER": 2,
"RF_W": 15,
"RF_H": 5.5
},
"front": [
{
"name": "tuya2_pcb",
"pos": "0,0"
},
{
"comment": "Metal shielding",
"type": "rect",
"pos": "0.3,6",
"size": "14.4,8",
"preset": "shield"
},
{
"comment": "Pins (10,8,6,4,2)",
"name": "r_pins_horz",
"repeat": 5,
"pos": "3.5,16.3"
},
{
"comment": "Pin labels (10,8,6,4,2)",
"id": "pins",
"name": "r_labels_horz",
"repeat": 5,
"pos": "3.5,17.9"
},
{
"type": "text",
"pos": "6.0,5.5",
"text": "${SYMBOL}",
"font_size": 1.0,
"fill": {
"color": "${SILK_COLOR}"
}
}
],
"back": [
{
"name": "tuya2_pcb",
"pos": "0,0"
},
{
"comment": "Pins (1,3,5,7,9,11)",
"name": "r_pins_horz",
"repeat": 6,
"pos": "2.5,16.3"
},
{
"comment": "Pin labels (1,3,5,7,9,11)",
"id": "pins",
"name": "r_labels_horz",
"repeat": 6,
"pos": "2.5,17.9"
}
],
"pads": {
"1": "tuya2.back.pins.label1.anchor",
"2": "tuya2.front.pins.label5.anchor",
"3": "tuya2.back.pins.label2.anchor",
"4": "tuya2.front.pins.label4.anchor",
"5": "tuya2.back.pins.label3.anchor",
"6": "tuya2.front.pins.label3.anchor",
"7": "tuya2.back.pins.label4.anchor",
"8": "tuya2.front.pins.label2.anchor",
"9": "tuya2.back.pins.label5.anchor",
"10": "tuya2.front.pins.label1.anchor",
"11": "tuya2.back.pins.label6.anchor"
}
}

View File

@@ -0,0 +1,73 @@
{
"name": "tuya2l",
"title": "Tuya boards; 2L series",
"width": 15,
"height": 17.3,
"vars": {
"PINTYPE_HORZ": "pin_horz_cast_hole",
"PINDIR": "down",
"RASTER": 2,
"RF_W": 15,
"RF_H": 5.5
},
"front": [
{
"type": "rect",
"pos": "0,0",
"size": "15,17.3",
"preset": "${MASK_PRESET}"
},
{
"comment": "Metal shielding",
"type": "rect",
"pos": "0.7,6",
"size": "13.6,9",
"preset": "shield"
},
{
"comment": "Pins (1-7)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "1.5,17.3"
},
{
"comment": "Pin labels (1-7)",
"id": "pins",
"name": "r_labels_horz",
"repeat": 7,
"pos": "1.5,17.3"
},
{
"type": "text",
"pos": "6.0,5.5",
"text": "${SYMBOL}",
"font_size": 1.0,
"fill": {
"color": "${SILK_COLOR}"
}
}
],
"back": [
{
"type": "rect",
"pos": "0,0",
"size": "15,17.3",
"preset": "${MASK_PRESET}"
},
{
"comment": "Pins (1-7)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "1.5,17.3"
}
],
"pads": {
"1": "tuya2l.front.pins.label1.anchor",
"2": "tuya2l.front.pins.label2.anchor",
"3": "tuya2l.front.pins.label3.anchor",
"4": "tuya2l.front.pins.label4.anchor",
"5": "tuya2l.front.pins.label5.anchor",
"6": "tuya2l.front.pins.label6.anchor",
"7": "tuya2l.front.pins.label7.anchor"
}
}

View File

@@ -0,0 +1,255 @@
{
"name": "tuyalc5",
"title": "Tuya boards; LC5 series",
"width": 15.8,
"height": 20.3,
"vars": {
"RASTER": 2
},
"front": [
{
"type": "rect",
"pos": "0,0",
"size": "8.5,12.7",
"preset": "${MASK_PRESET}"
},
{
"comment": "Middle cut background",
"type": "rect",
"pos": "4,10.3",
"size": "2.5,2.4",
"fill": {
"color": "white"
}
},
{
"comment": "Middle cut stroke top",
"type": "rect",
"pos": "3.9,10.2",
"size": "2.7,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Middle cut stroke left",
"type": "rect",
"pos": "3.9,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Middle cut stroke right",
"type": "rect",
"pos": "6.5,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Right cut background",
"type": "rect",
"pos": "7.7,10.3",
"size": "0.8,2.4",
"fill": {
"color": "white"
}
},
{
"comment": "Right cut stroke top",
"type": "rect",
"pos": "7.6,10.2",
"size": "0.9,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Right cut stroke left",
"type": "rect",
"pos": "7.6,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Pins (1-2)",
"id": "left",
"name": "r_pins_horz",
"repeat": 2,
"pos": "1.26,11.58",
"vars": {
"PINTYPE_HORZ": "pad",
"PINDIR": "down",
"RASTER": 2,
"W": 1,
"H": 2,
"R": 0.3
}
},
{
"comment": "Pins (3)",
"name": "pad",
"pos": "7.13,11.58",
"vars": {
"W": 1,
"H": 2,
"R": 0.3
}
},
{
"comment": "Pin label (1)",
"id": "pin1",
"name": "label_line_down",
"pos": "1.26,12.7",
"vars": {
"DIR": "left",
"W": 0,
"H": 2
}
},
{
"comment": "Pin label (2)",
"id": "pin2",
"name": "label_line_down",
"pos": "3.26,12.7",
"vars": {
"DIR": "left",
"W": 2,
"H": 4
}
},
{
"comment": "Pin label (3)",
"id": "pin3",
"name": "label_line_down",
"pos": "7.13,12.7",
"vars": {
"DIR": "left",
"W": 5.87,
"H": 6
}
}
],
"back": [
{
"type": "rect",
"pos": "0,0",
"size": "8.5,12.7",
"preset": "${MASK_PRESET}"
},
{
"comment": "Middle cut background",
"type": "rect",
"pos": "8.5-4-2.5,10.3",
"size": "2.5,2.4",
"fill": {
"color": "white"
}
},
{
"comment": "Middle cut stroke top",
"type": "rect",
"pos": "8.5-3.9-2.7,10.2",
"size": "2.7,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Middle cut stroke left",
"type": "rect",
"pos": "8.5-3.9-0.1,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Middle cut stroke right",
"type": "rect",
"pos": "8.5-6.5-0.1,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Right cut background",
"type": "rect",
"pos": "8.5-7.7-0.8,10.3",
"size": "0.8,2.4",
"fill": {
"color": "white"
}
},
{
"comment": "Right cut stroke top",
"type": "rect",
"pos": "8.5-7.6-0.9,10.2",
"size": "0.9,0.1",
"preset": "pcb_stroke"
},
{
"comment": "Right cut stroke left",
"type": "rect",
"pos": "8.5-7.6-0.1,10.3",
"size": "0.1,2.4",
"preset": "pcb_stroke"
},
{
"comment": "Pins (1-2)",
"id": "left",
"name": "r_pins_horz",
"repeat": 2,
"pos": "8.5-1.26-2,11.58",
"vars": {
"PINTYPE_HORZ": "pad",
"PINDIR": "down",
"RASTER": 2,
"W": 1,
"H": 2,
"R": 0.3
}
},
{
"comment": "Pins (3)",
"name": "pad",
"pos": "8.5-7.13,11.58",
"vars": {
"W": 1,
"H": 2,
"R": 0.3
}
},
{
"comment": "Pin label (1)",
"id": "pin1",
"name": "label_line_down",
"pos": "8.5-1.26,12.7",
"vars": {
"DIR": "right",
"W": 0,
"H": 2
}
},
{
"comment": "Pin label (2)",
"id": "pin2",
"name": "label_line_down",
"pos": "8.5-3.26,12.7",
"vars": {
"DIR": "right",
"W": 2,
"H": 4
}
},
{
"comment": "Pin label (3)",
"id": "pin3",
"name": "label_line_down",
"pos": "8.5-7.13,12.7",
"vars": {
"DIR": "right",
"W": 5.87,
"H": 6
}
}
],
"pads": {
"1": "tuyalc5.front.pin1.anchor",
"2": "tuyalc5.back.pin1.anchor",
"3": "tuyalc5.front.pin2.anchor",
"4": "tuyalc5.back.pin2.anchor",
"5": "tuyalc5.front.pin3.anchor",
"6": "tuyalc5.back.pin3.anchor"
}
}

162
boards/templates/tuyau.json Normal file
View File

@@ -0,0 +1,162 @@
{
"name": "tuyau",
"title": "Tuya boards; U series",
"width": 15.8,
"height": 20.3,
"vars": {
"PINTYPE_VERT": "pin_vert_cast_nohole",
"PINTYPE_HORZ": "pin_horz_cast_nohole",
"RF_W": 15.8,
"RF_H": 5.2
},
"front": [
{
"name": "tuyau_pcb",
"pos": "0,0"
},
{
"comment": "Metal shielding",
"type": "rect",
"pos": "1.1,5.6",
"size": "13.6,11.5",
"preset": "shield"
},
{
"comment": "Pins (1-7)",
"id": "left",
"name": "r_pins_vert",
"repeat": 7,
"pos": "0,6.1",
"vars": {
"PINDIR": "left",
"RASTER": 1.4
}
},
{
"comment": "Pins (8-14)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "2.5,20.3",
"vars": {
"PINDIR": "down",
"RASTER": 1.8
}
},
{
"comment": "Long pads (8-14)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "2.5,17.5 + 1.2",
"vars": {
"PINTYPE_HORZ": "pad",
"W": "0.6 * 1.8",
"H": 2.4,
"R": 0,
"RASTER": 1.8
}
},
{
"comment": "Pin labels (8-14)",
"id": "down",
"name": "r_labels_horz",
"repeat": 7,
"pos": "2.5,20.3",
"vars": {
"PINDIR": "down",
"RASTER": 1.8
}
},
{
"comment": "Pins (15-21)",
"id": "right",
"name": "r_pins_vert",
"repeat": 7,
"pos": "15.8,6.1",
"vars": {
"PINDIR": "right",
"RASTER": 1.4
}
},
{
"type": "text",
"pos": "6.5,5.0",
"text": "${SYMBOL}",
"font_size": 1.0,
"fill": {
"color": "${SILK_COLOR}"
}
}
],
"back": [
{
"name": "tuyau_pcb",
"pos": "0,0"
},
{
"comment": "Pins (1-7)",
"name": "r_pins_vert",
"repeat": 7,
"pos": "0,6.1",
"vars": {
"PINDIR": "left",
"RASTER": 1.4
}
},
{
"comment": "Pins (8-14)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "2.5,20.3",
"vars": {
"PINDIR": "down",
"RASTER": 1.8
}
},
{
"comment": "Long pads (8-14)",
"name": "r_pins_horz",
"repeat": 7,
"pos": "2.5,17.5 + 1.2",
"vars": {
"PINTYPE_HORZ": "pad",
"W": "0.6 * 1.8",
"H": 2.4,
"R": 0,
"RASTER": 1.8
}
},
{
"comment": "Pins (15-21)",
"name": "r_pins_vert",
"repeat": 7,
"pos": "15.8,6.1",
"vars": {
"PINDIR": "right",
"RASTER": 1.4
}
}
],
"pads": {
"1": "tuyau.front.left.pin1",
"2": "tuyau.front.left.pin2",
"3": "tuyau.front.left.pin3",
"4": "tuyau.front.left.pin4",
"5": "tuyau.front.left.pin5",
"6": "tuyau.front.left.pin6",
"7": "tuyau.front.left.pin7",
"8": "tuyau.front.down.label1.anchor",
"9": "tuyau.front.down.label2.anchor",
"10": "tuyau.front.down.label3.anchor",
"11": "tuyau.front.down.label4.anchor",
"12": "tuyau.front.down.label5.anchor",
"13": "tuyau.front.down.label6.anchor",
"14": "tuyau.front.down.label7.anchor",
"15": "tuyau.front.right.pin7",
"16": "tuyau.front.right.pin6",
"17": "tuyau.front.right.pin5",
"18": "tuyau.front.right.pin4",
"19": "tuyau.front.right.pin3",
"20": "tuyau.front.right.pin2",
"21": "tuyau.front.right.pin1"
}
}

View File

@@ -14,14 +14,22 @@
// SPI Interfaces
// --------------
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
#define PINS_SPI0_CS (pin_size_t[]){19u}
#define PINS_SPI0_MISO (pin_size_t[]){22u}
#define PINS_SPI0_MOSI (pin_size_t[]){23u}
#define PINS_SPI0_SCK (pin_size_t[]){18u}
#define PINS_SPI1_CS (pin_size_t[]){19u}
#define PINS_SPI1_MISO (pin_size_t[]){22u}
#define PINS_SPI1_MOSI (pin_size_t[]){23u}
#define PINS_SPI1_SCK (pin_size_t[]){18u}
// Wire Interfaces
// ---------------
@@ -31,15 +39,25 @@
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
#define PINS_WIRE0_SCL (pin_size_t[]){29u, 22u}
#define PINS_WIRE0_SDA (pin_size_t[]){19u, 30u}
#define PINS_WIRE1_SCL (pin_size_t[]){18u}
#define PINS_WIRE1_SDA (pin_size_t[]){23u}
// Serial ports
// ------------
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
#define PINS_SERIAL0_CTS (pin_size_t[]){19u}
#define PINS_SERIAL0_RTS (pin_size_t[]){22u}
#define PINS_SERIAL0_RX (pin_size_t[]){18u}
#define PINS_SERIAL0_TX (pin_size_t[]){23u}
#define PINS_SERIAL2_RX (pin_size_t[]){29u}
#define PINS_SERIAL2_TX (pin_size_t[]){30u}
// Pin function macros
// -------------------
@@ -62,7 +80,6 @@
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
@@ -73,9 +90,7 @@
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 22u // PA_22
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30

Some files were not shown because too many files have changed in this diff Show More