diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml new file mode 100644 index 000000000..bb5a394fd --- /dev/null +++ b/.github/workflows/build_docker.yml @@ -0,0 +1,72 @@ +name: Build Docker + +on: workflow_call + +permissions: + contents: write + packages: write + +jobs: + build-native: + runs-on: ubuntu-latest + steps: + - name: Install libs needed for native build + shell: bash + run: | + sudo apt-get update --fix-missing + sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev + + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + ref: ${{github.event.pull_request.head.ref}} + repository: ${{github.event.pull_request.head.repo.full_name}} + + - name: Upgrade python tools + shell: bash + run: | + python -m pip install --upgrade pip + pip install -U platformio adafruit-nrfutil + pip install -U meshtastic --pre + + - name: Upgrade platformio + shell: bash + run: | + pio upgrade + + - name: Build Native + run: bin/build-native.sh + + - name: Get release version string + run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT + id: version + + - name: Docker login + if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} + uses: docker/login-action@v3 + with: + username: meshtastic + password: ${{ secrets.DOCKER_FIRMWARE_TOKEN }} + + - name: Docker setup + if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} + uses: docker/setup-buildx-action@v3 + + - name: Docker build and push tagged versions + if: ${{ github.event_name == 'workflow_dispatch' }} + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile + push: true + tags: meshtastic/meshtasticd:${{ steps.version.outputs.version }} + + - name: Docker build and push + if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile + push: true + tags: meshtastic/meshtasticd:latest diff --git a/.github/workflows/build_native.yml b/.github/workflows/build_native.yml index d9591e72c..a57da5dfb 100644 --- a/.github/workflows/build_native.yml +++ b/.github/workflows/build_native.yml @@ -50,34 +50,3 @@ jobs: path: | release/meshtasticd_linux_x86_64 bin/config-dist.yaml - - - name: Docker login - if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} - run: | - echo ${{ secrets.DOCKER_FIRMWARE_TOKEN }} | docker login -u meshtastic --password-stdin - continue-on-error: true - - - name: Docker setup - if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} - continue-on-error: true - uses: docker/setup-buildx-action@v3 - - - name: Docker build and push tagged versions - if: ${{ github.event_name == 'workflow_dispatch' }} - continue-on-error: true - uses: docker/build-push-action@v6 - with: - context: . - file: ./Dockerfile - push: true - tags: meshtastic/device-simulator:${{ steps.version.outputs.version }} - - - name: Docker build and push - if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} - continue-on-error: true - uses: docker/build-push-action@v6 - with: - context: . - file: ./Dockerfile - push: true - tags: meshtastic/device-simulator:latest diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml index 37164b758..0109bef1a 100644 --- a/.github/workflows/main_matrix.yml +++ b/.github/workflows/main_matrix.yml @@ -37,7 +37,7 @@ jobs: else TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}} quick) fi - echo "Name: ${{ github.ref_name }} Base: ${{ github.base_ref }} Head: ${{ github.head_ref }} Ref: ${{ github.ref }} Targets: $TARGETS" + echo "Name: ${{ github.ref_name }} Base: ${{ github.base_ref }} } Ref: ${{ github.ref }} Targets: $TARGETS" echo "${{matrix.arch}}=$(jq -cn --argjson environments "$TARGETS" '{board: $environments}')" >> $GITHUB_OUTPUT outputs: esp32: ${{ steps.jsonStep.outputs.esp32 }} @@ -137,6 +137,11 @@ jobs: package-native: uses: ./.github/workflows/package_amd64.yml + build-docker: + if: ${{ github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/build_docker.yml + secrets: inherit + after-checks: runs-on: ubuntu-latest if: ${{ github.event_name != 'workflow_dispatch' }} diff --git a/.github/workflows/update_protobufs.yml b/.github/workflows/update_protobufs.yml index f1c92b860..2732ab760 100644 --- a/.github/workflows/update_protobufs.yml +++ b/.github/workflows/update_protobufs.yml @@ -17,9 +17,9 @@ jobs: - name: Download nanopb run: | - wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.9-linux-x86.tar.gz - tar xvzf nanopb-0.4.9-linux-x86.tar.gz - mv nanopb-0.4.9-linux-x86 nanopb-0.4.9 + wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.9.1-linux-x86.tar.gz + tar xvzf nanopb-0.4.9.1-linux-x86.tar.gz + mv nanopb-0.4.9.1-linux-x86 nanopb-0.4.9 - name: Re-generate protocol buffers run: | diff --git a/arch/nrf52/nrf52.ini b/arch/nrf52/nrf52.ini index 778be5523..57b276978 100644 --- a/arch/nrf52/nrf52.ini +++ b/arch/nrf52/nrf52.ini @@ -1,6 +1,6 @@ [nrf52_base] ; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files -platform = platformio/nordicnrf52@^10.6.0 +platform = platformio/nordicnrf52@^10.7.0 extends = arduino_base platform_packages = ; our custom Git version until they merge our PR @@ -29,4 +29,4 @@ lib_deps= lib_ignore = BluetoothOTA - lvgl + lvgl \ No newline at end of file diff --git a/boards/t-echo.json b/boards/t-echo.json index fcfc8c50b..f891da94f 100644 --- a/boards/t-echo.json +++ b/boards/t-echo.json @@ -48,6 +48,6 @@ "require_upload_port": true, "wait_for_upload_port": true }, - "url": "FIXME", - "vendor": "TTGO" + "url": "https://lilygo.cc/products/t-echo-lilygo", + "vendor": "LILYGO" } diff --git a/protobufs b/protobufs index 4a4e81951..2cffaf53e 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 4a4e81951d64821a96a5131e50d2b44e5356372e +Subproject commit 2cffaf53e3faf1b6e41a8b8f05312f2f893be413 diff --git a/src/main.cpp b/src/main.cpp index aa1c6eb2b..ac0a56313 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -241,6 +241,17 @@ void printInfo() #ifndef PIO_UNIT_TESTING void setup() { +#if defined(T_DECK) + // GPIO10 manages all peripheral power supplies + // Turn on peripheral power immediately after MUC starts. + // If some boards are turned on late, ESP32 will reset due to low voltage. + // ESP32-C3(Keyboard) , MAX98357A(Audio Power Amplifier) , + // TF Card , Display backlight(AW9364DNR) , AN48841B(Trackball) , ES7210(Decoder) + pinMode(KB_POWERON, OUTPUT); + digitalWrite(KB_POWERON, HIGH); + delay(100); +#endif + concurrency::hasBeenSetup = true; #if ARCH_PORTDUINO SPISettings spiSettings(settingsMap[spiSpeed], MSBFIRST, SPI_MODE0); @@ -413,14 +424,6 @@ void setup() digitalWrite(AQ_SET_PIN, HIGH); #endif -#if defined(T_DECK) - // enable keyboard - pinMode(KB_POWERON, OUTPUT); - digitalWrite(KB_POWERON, HIGH); - // There needs to be a delay after power on, give LILYGO-KEYBOARD some startup time - // otherwise keyboard and touch screen will not work - delay(200); -#endif // Currently only the tbeam has a PMU // PMU initialization needs to be placed before i2c scanning diff --git a/src/mesh/MemoryPool.h b/src/mesh/MemoryPool.h index d30404b9f..c4af3c4ac 100644 --- a/src/mesh/MemoryPool.h +++ b/src/mesh/MemoryPool.h @@ -2,6 +2,8 @@ #include #include +#include +#include #include "PointerQueue.h" @@ -9,6 +11,7 @@ template class Allocator { public: + Allocator() : deleter([this](T *p) { this->release(p); }) {} virtual ~Allocator() {} /// Return a queable object which has been prefilled with zeros. Panic if no buffer is available @@ -43,12 +46,32 @@ template class Allocator return p; } + /// Variations of the above methods that return std::unique_ptr instead of raw pointers. + using UniqueAllocation = std::unique_ptr &>; + /// Return a queable object which has been prefilled with zeros. + /// std::unique_ptr wrapped variant of allocZeroed(). + UniqueAllocation allocUniqueZeroed() { return UniqueAllocation(allocZeroed(), deleter); } + /// Return a queable object which has been prefilled with zeros - allow timeout to wait for available buffers (you probably + /// don't want this version). + /// std::unique_ptr wrapped variant of allocZeroed(TickType_t maxWait). + UniqueAllocation allocUniqueZeroed(TickType_t maxWait) { return UniqueAllocation(allocZeroed(maxWait), deleter); } + /// Return a queable object which is a copy of some other object + /// std::unique_ptr wrapped variant of allocCopy(const T &src, TickType_t maxWait). + UniqueAllocation allocUniqueCopy(const T &src, TickType_t maxWait = portMAX_DELAY) + { + return UniqueAllocation(allocCopy(src, maxWait), deleter); + } + /// Return a buffer for use by others virtual void release(T *p) = 0; protected: // Alloc some storage virtual T *alloc(TickType_t maxWait) = 0; + + private: + // std::unique_ptr Deleter function; calls release(). + const std::function deleter; }; /** diff --git a/src/mesh/MeshTypes.h b/src/mesh/MeshTypes.h index cf1b54c78..1d6bd342d 100644 --- a/src/mesh/MeshTypes.h +++ b/src/mesh/MeshTypes.h @@ -44,6 +44,7 @@ typedef int ErrorCode; /// Alloc and free packets to our global, ISR safe pool extern Allocator &packetPool; +using UniquePacketPoolPacket = Allocator::UniqueAllocation; /** * Most (but not always) of the time we want to treat packets 'from' the local phone (where from == 0), as if they originated on diff --git a/src/mesh/generated/meshtastic/admin.pb.cpp b/src/mesh/generated/meshtastic/admin.pb.cpp index 8b3fd3d1b..7ce3c74ce 100644 --- a/src/mesh/generated/meshtastic/admin.pb.cpp +++ b/src/mesh/generated/meshtastic/admin.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/admin.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/admin.pb.h b/src/mesh/generated/meshtastic/admin.pb.h index bbf633ef5..d9b8de384 100644 --- a/src/mesh/generated/meshtastic/admin.pb.h +++ b/src/mesh/generated/meshtastic/admin.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/apponly.pb.cpp b/src/mesh/generated/meshtastic/apponly.pb.cpp index 64d43b7ee..8b1b3da19 100644 --- a/src/mesh/generated/meshtastic/apponly.pb.cpp +++ b/src/mesh/generated/meshtastic/apponly.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/apponly.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/apponly.pb.h b/src/mesh/generated/meshtastic/apponly.pb.h index dc08d9ff3..f4c33bd79 100644 --- a/src/mesh/generated/meshtastic/apponly.pb.h +++ b/src/mesh/generated/meshtastic/apponly.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/atak.pb.cpp b/src/mesh/generated/meshtastic/atak.pb.cpp index 6dbc69fb4..a0368cf6b 100644 --- a/src/mesh/generated/meshtastic/atak.pb.cpp +++ b/src/mesh/generated/meshtastic/atak.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/atak.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/atak.pb.h b/src/mesh/generated/meshtastic/atak.pb.h index 15a86788b..8533bcbf9 100644 --- a/src/mesh/generated/meshtastic/atak.pb.h +++ b/src/mesh/generated/meshtastic/atak.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/cannedmessages.pb.cpp b/src/mesh/generated/meshtastic/cannedmessages.pb.cpp index 9f51e9634..1f4ebc927 100644 --- a/src/mesh/generated/meshtastic/cannedmessages.pb.cpp +++ b/src/mesh/generated/meshtastic/cannedmessages.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/cannedmessages.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/cannedmessages.pb.h b/src/mesh/generated/meshtastic/cannedmessages.pb.h index 06d14b98f..8343c4d6e 100644 --- a/src/mesh/generated/meshtastic/cannedmessages.pb.h +++ b/src/mesh/generated/meshtastic/cannedmessages.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/channel.pb.cpp b/src/mesh/generated/meshtastic/channel.pb.cpp index 52f923b13..6670a40fc 100644 --- a/src/mesh/generated/meshtastic/channel.pb.cpp +++ b/src/mesh/generated/meshtastic/channel.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/channel.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/channel.pb.h b/src/mesh/generated/meshtastic/channel.pb.h index 3d617ae39..ca4310bf1 100644 --- a/src/mesh/generated/meshtastic/channel.pb.h +++ b/src/mesh/generated/meshtastic/channel.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/clientonly.pb.cpp b/src/mesh/generated/meshtastic/clientonly.pb.cpp index d99af8cf5..8f380a972 100644 --- a/src/mesh/generated/meshtastic/clientonly.pb.cpp +++ b/src/mesh/generated/meshtastic/clientonly.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/clientonly.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/clientonly.pb.h b/src/mesh/generated/meshtastic/clientonly.pb.h index bf32d7875..5109e20b2 100644 --- a/src/mesh/generated/meshtastic/clientonly.pb.h +++ b/src/mesh/generated/meshtastic/clientonly.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/config.pb.cpp b/src/mesh/generated/meshtastic/config.pb.cpp index 23f4d542b..6fd2161ae 100644 --- a/src/mesh/generated/meshtastic/config.pb.cpp +++ b/src/mesh/generated/meshtastic/config.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/config.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/config.pb.h b/src/mesh/generated/meshtastic/config.pb.h index fab23ae34..8e2264e93 100644 --- a/src/mesh/generated/meshtastic/config.pb.h +++ b/src/mesh/generated/meshtastic/config.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/connection_status.pb.cpp b/src/mesh/generated/meshtastic/connection_status.pb.cpp index d1495bb83..b0df459ad 100644 --- a/src/mesh/generated/meshtastic/connection_status.pb.cpp +++ b/src/mesh/generated/meshtastic/connection_status.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/connection_status.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/connection_status.pb.h b/src/mesh/generated/meshtastic/connection_status.pb.h index c433e370b..55559dcef 100644 --- a/src/mesh/generated/meshtastic/connection_status.pb.h +++ b/src/mesh/generated/meshtastic/connection_status.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/device_ui.pb.cpp b/src/mesh/generated/meshtastic/device_ui.pb.cpp index 6e0cf0cc8..3a9e28725 100644 --- a/src/mesh/generated/meshtastic/device_ui.pb.cpp +++ b/src/mesh/generated/meshtastic/device_ui.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/device_ui.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/device_ui.pb.h b/src/mesh/generated/meshtastic/device_ui.pb.h index 107aa8846..0c4f5384e 100644 --- a/src/mesh/generated/meshtastic/device_ui.pb.h +++ b/src/mesh/generated/meshtastic/device_ui.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/deviceonly.pb.cpp b/src/mesh/generated/meshtastic/deviceonly.pb.cpp index 92853f00d..aa020467a 100644 --- a/src/mesh/generated/meshtastic/deviceonly.pb.cpp +++ b/src/mesh/generated/meshtastic/deviceonly.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/deviceonly.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/deviceonly.pb.h b/src/mesh/generated/meshtastic/deviceonly.pb.h index e52a914e0..c0a0fee91 100644 --- a/src/mesh/generated/meshtastic/deviceonly.pb.h +++ b/src/mesh/generated/meshtastic/deviceonly.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/localonly.pb.cpp b/src/mesh/generated/meshtastic/localonly.pb.cpp index 0a752a5a8..34391df73 100644 --- a/src/mesh/generated/meshtastic/localonly.pb.cpp +++ b/src/mesh/generated/meshtastic/localonly.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/localonly.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/localonly.pb.h b/src/mesh/generated/meshtastic/localonly.pb.h index 8f92b2a77..30f70ed90 100644 --- a/src/mesh/generated/meshtastic/localonly.pb.h +++ b/src/mesh/generated/meshtastic/localonly.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/mesh.pb.cpp b/src/mesh/generated/meshtastic/mesh.pb.cpp index a9f42f979..6c5c7a4be 100644 --- a/src/mesh/generated/meshtastic/mesh.pb.cpp +++ b/src/mesh/generated/meshtastic/mesh.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/mesh.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/mesh.pb.h b/src/mesh/generated/meshtastic/mesh.pb.h index 2c5213cff..14ed76f70 100644 --- a/src/mesh/generated/meshtastic/mesh.pb.h +++ b/src/mesh/generated/meshtastic/mesh.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/module_config.pb.cpp b/src/mesh/generated/meshtastic/module_config.pb.cpp index c40041eab..9843f0e91 100644 --- a/src/mesh/generated/meshtastic/module_config.pb.cpp +++ b/src/mesh/generated/meshtastic/module_config.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/module_config.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/module_config.pb.h b/src/mesh/generated/meshtastic/module_config.pb.h index 8f7bb701d..697b965c5 100644 --- a/src/mesh/generated/meshtastic/module_config.pb.h +++ b/src/mesh/generated/meshtastic/module_config.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/mqtt.pb.cpp b/src/mesh/generated/meshtastic/mqtt.pb.cpp index 74536cb79..2c32ef2e4 100644 --- a/src/mesh/generated/meshtastic/mqtt.pb.cpp +++ b/src/mesh/generated/meshtastic/mqtt.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/mqtt.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/mqtt.pb.h b/src/mesh/generated/meshtastic/mqtt.pb.h index 4d1027374..1726bc470 100644 --- a/src/mesh/generated/meshtastic/mqtt.pb.h +++ b/src/mesh/generated/meshtastic/mqtt.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/paxcount.pb.cpp b/src/mesh/generated/meshtastic/paxcount.pb.cpp index 403288147..ff738bde9 100644 --- a/src/mesh/generated/meshtastic/paxcount.pb.cpp +++ b/src/mesh/generated/meshtastic/paxcount.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/paxcount.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/paxcount.pb.h b/src/mesh/generated/meshtastic/paxcount.pb.h index b6b51fdd5..06078aef7 100644 --- a/src/mesh/generated/meshtastic/paxcount.pb.h +++ b/src/mesh/generated/meshtastic/paxcount.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/portnums.pb.cpp b/src/mesh/generated/meshtastic/portnums.pb.cpp index 8fca9af79..15a6ba372 100644 --- a/src/mesh/generated/meshtastic/portnums.pb.cpp +++ b/src/mesh/generated/meshtastic/portnums.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/portnums.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/portnums.pb.h b/src/mesh/generated/meshtastic/portnums.pb.h index df6cf32c2..d7dc47785 100644 --- a/src/mesh/generated/meshtastic/portnums.pb.h +++ b/src/mesh/generated/meshtastic/portnums.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED @@ -72,6 +72,8 @@ typedef enum _meshtastic_PortNum { /* Same as Text Message but originating from Detection Sensor Module. NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9 */ meshtastic_PortNum_DETECTION_SENSOR_APP = 10, + /* Same as Text Message but used for critical alerts. */ + meshtastic_PortNum_ALERT_APP = 11, /* Provides a 'ping' service that replies to any packet it receives. Also serves as a small example module. ENCODING: ASCII Plaintext */ diff --git a/src/mesh/generated/meshtastic/powermon.pb.cpp b/src/mesh/generated/meshtastic/powermon.pb.cpp index 6a9b7551a..8838e165f 100644 --- a/src/mesh/generated/meshtastic/powermon.pb.cpp +++ b/src/mesh/generated/meshtastic/powermon.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/powermon.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/powermon.pb.h b/src/mesh/generated/meshtastic/powermon.pb.h index 5add85b85..9d4d94193 100644 --- a/src/mesh/generated/meshtastic/powermon.pb.h +++ b/src/mesh/generated/meshtastic/powermon.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/remote_hardware.pb.cpp b/src/mesh/generated/meshtastic/remote_hardware.pb.cpp index 239950e7e..8942104b5 100644 --- a/src/mesh/generated/meshtastic/remote_hardware.pb.cpp +++ b/src/mesh/generated/meshtastic/remote_hardware.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/remote_hardware.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/remote_hardware.pb.h b/src/mesh/generated/meshtastic/remote_hardware.pb.h index ade250e93..9ab3413c3 100644 --- a/src/mesh/generated/meshtastic/remote_hardware.pb.h +++ b/src/mesh/generated/meshtastic/remote_hardware.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/rtttl.pb.cpp b/src/mesh/generated/meshtastic/rtttl.pb.cpp index 61ad8b73f..c994741f3 100644 --- a/src/mesh/generated/meshtastic/rtttl.pb.cpp +++ b/src/mesh/generated/meshtastic/rtttl.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/rtttl.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/rtttl.pb.h b/src/mesh/generated/meshtastic/rtttl.pb.h index 0572265f7..b6e152dbf 100644 --- a/src/mesh/generated/meshtastic/rtttl.pb.h +++ b/src/mesh/generated/meshtastic/rtttl.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/storeforward.pb.cpp b/src/mesh/generated/meshtastic/storeforward.pb.cpp index 71a232bf6..82db566a1 100644 --- a/src/mesh/generated/meshtastic/storeforward.pb.cpp +++ b/src/mesh/generated/meshtastic/storeforward.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/storeforward.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/storeforward.pb.h b/src/mesh/generated/meshtastic/storeforward.pb.h index 44ffd098c..75cff5205 100644 --- a/src/mesh/generated/meshtastic/storeforward.pb.h +++ b/src/mesh/generated/meshtastic/storeforward.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/telemetry.pb.cpp b/src/mesh/generated/meshtastic/telemetry.pb.cpp index f6d39da6e..c79941fa5 100644 --- a/src/mesh/generated/meshtastic/telemetry.pb.cpp +++ b/src/mesh/generated/meshtastic/telemetry.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/telemetry.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/telemetry.pb.h b/src/mesh/generated/meshtastic/telemetry.pb.h index a6102e07d..85fe4bdc1 100644 --- a/src/mesh/generated/meshtastic/telemetry.pb.h +++ b/src/mesh/generated/meshtastic/telemetry.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED diff --git a/src/mesh/generated/meshtastic/xmodem.pb.cpp b/src/mesh/generated/meshtastic/xmodem.pb.cpp index 3960ccdaa..09ae41d35 100644 --- a/src/mesh/generated/meshtastic/xmodem.pb.cpp +++ b/src/mesh/generated/meshtastic/xmodem.pb.cpp @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #include "meshtastic/xmodem.pb.h" #if PB_PROTO_HEADER_VERSION != 40 diff --git a/src/mesh/generated/meshtastic/xmodem.pb.h b/src/mesh/generated/meshtastic/xmodem.pb.h index 76edc0df6..3410fda0f 100644 --- a/src/mesh/generated/meshtastic/xmodem.pb.h +++ b/src/mesh/generated/meshtastic/xmodem.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.9 */ +/* Generated by nanopb-0.4.9.1 */ #ifndef PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED #define PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED diff --git a/src/mqtt/MQTT.cpp b/src/mqtt/MQTT.cpp index 967db04d6..1f7a06787 100644 --- a/src/mqtt/MQTT.cpp +++ b/src/mqtt/MQTT.cpp @@ -23,11 +23,14 @@ #include "serialization/MeshPacketSerializer.h" #include #include - -const int reconnectMax = 5; +#include MQTT *mqtt; +namespace +{ +constexpr int reconnectMax = 5; + static MemoryDynamic staticMqttPool; Allocator &mqttPool = staticMqttPool; @@ -37,6 +40,167 @@ static uint8_t bytes[meshtastic_MqttClientProxyMessage_size + 30]; // 12 for cha static bool isMqttServerAddressPrivate = false; +// meshtastic_ServiceEnvelope that automatically releases dynamically allocated memory when it goes out of scope. +struct DecodedServiceEnvelope : public meshtastic_ServiceEnvelope { + DecodedServiceEnvelope() = delete; + DecodedServiceEnvelope(const uint8_t *payload, size_t length) + : meshtastic_ServiceEnvelope(meshtastic_ServiceEnvelope_init_default), + validDecode(pb_decode_from_bytes(payload, length, &meshtastic_ServiceEnvelope_msg, this)) + { + } + ~DecodedServiceEnvelope() + { + if (validDecode) + pb_release(&meshtastic_ServiceEnvelope_msg, this); + } + // Clients must check that this is true before using. + const bool validDecode; +}; + +inline void onReceiveProto(char *topic, byte *payload, size_t length) +{ + const DecodedServiceEnvelope e(payload, length); + if (!e.validDecode || e.channel_id == NULL || e.gateway_id == NULL || e.packet == NULL) { + LOG_ERROR("Invalid MQTT service envelope, topic %s, len %u!", topic, length); + return; + } + const meshtastic_Channel &ch = channels.getByName(e.channel_id); + if (strcmp(e.gateway_id, owner.id) == 0) { + // Generate an implicit ACK towards ourselves (handled and processed only locally!) for this message. + // We do this because packets are not rebroadcasted back into MQTT anymore and we assume that at least one node + // receives it when we get our own packet back. Then we'll stop our retransmissions. + if (isFromUs(e.packet)) + routingModule->sendAckNak(meshtastic_Routing_Error_NONE, getFrom(e.packet), e.packet->id, ch.index); + else + LOG_INFO("Ignore downlink message we originally sent"); + return; + } + if (isFromUs(e.packet)) { + LOG_INFO("Ignore downlink message we originally sent"); + return; + } + + // Find channel by channel_id and check downlink_enabled + if (!(strcmp(e.channel_id, "PKI") == 0 || + (strcmp(e.channel_id, channels.getGlobalId(ch.index)) == 0 && ch.settings.downlink_enabled))) { + return; + } + LOG_INFO("Received MQTT topic %s, len=%u", topic, length); + + UniquePacketPoolPacket p = packetPool.allocUniqueCopy(*e.packet); + p->via_mqtt = true; // Mark that the packet was received via MQTT + + if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) { + if (moduleConfig.mqtt.encryption_enabled) { + LOG_INFO("Ignore decoded message on MQTT, encryption is enabled"); + return; + } + if (p->decoded.portnum == meshtastic_PortNum_ADMIN_APP) { + LOG_INFO("Ignore decoded admin packet"); + return; + } + p->channel = ch.index; + } + + // PKI messages get accepted even if we can't decrypt + if (router && p->which_payload_variant == meshtastic_MeshPacket_encrypted_tag && strcmp(e.channel_id, "PKI") == 0) { + const meshtastic_NodeInfoLite *tx = nodeDB->getMeshNode(getFrom(p.get())); + const meshtastic_NodeInfoLite *rx = nodeDB->getMeshNode(p->to); + // Only accept PKI messages to us, or if we have both the sender and receiver in our nodeDB, as then it's + // likely they discovered each other via a channel we have downlink enabled for + if (isToUs(p.get()) || (tx && tx->has_user && rx && rx->has_user)) + router->enqueueReceivedMessage(p.release()); + } else if (router && perhapsDecode(p.get())) // ignore messages if we don't have the channel key + router->enqueueReceivedMessage(p.release()); +} + +// returns true if this is a valid JSON envelope which we accept on downlink +inline bool isValidJsonEnvelope(JSONObject &json) +{ + // if "sender" is provided, avoid processing packets we uplinked + return (json.find("sender") != json.end() ? (json["sender"]->AsString().compare(owner.id) != 0) : true) && + (json.find("hopLimit") != json.end() ? json["hopLimit"]->IsNumber() : true) && // hop limit should be a number + (json.find("from") != json.end()) && json["from"]->IsNumber() && + (json["from"]->AsNumber() == nodeDB->getNodeNum()) && // only accept message if the "from" is us + (json.find("type") != json.end()) && json["type"]->IsString() && // should specify a type + (json.find("payload") != json.end()); // should have a payload +} + +inline void onReceiveJson(byte *payload, size_t length) +{ + char payloadStr[length + 1]; + memcpy(payloadStr, payload, length); + payloadStr[length] = 0; // null terminated string + std::unique_ptr json_value(JSON::Parse(payloadStr)); + if (json_value == nullptr) { + LOG_ERROR("JSON received payload on MQTT but not a valid JSON"); + return; + } + + JSONObject json; + json = json_value->AsObject(); + + if (!isValidJsonEnvelope(json)) { + LOG_ERROR("JSON received payload on MQTT but not a valid envelope"); + return; + } + + // this is a valid envelope + if (json["type"]->AsString().compare("sendtext") == 0 && json["payload"]->IsString()) { + std::string jsonPayloadStr = json["payload"]->AsString(); + LOG_INFO("JSON payload %s, length %u", jsonPayloadStr.c_str(), jsonPayloadStr.length()); + + // construct protobuf data packet using TEXT_MESSAGE, send it to the mesh + meshtastic_MeshPacket *p = router->allocForSending(); + p->decoded.portnum = meshtastic_PortNum_TEXT_MESSAGE_APP; + if (json.find("channel") != json.end() && json["channel"]->IsNumber() && + (json["channel"]->AsNumber() < channels.getNumChannels())) + p->channel = json["channel"]->AsNumber(); + if (json.find("to") != json.end() && json["to"]->IsNumber()) + p->to = json["to"]->AsNumber(); + if (json.find("hopLimit") != json.end() && json["hopLimit"]->IsNumber()) + p->hop_limit = json["hopLimit"]->AsNumber(); + if (jsonPayloadStr.length() <= sizeof(p->decoded.payload.bytes)) { + memcpy(p->decoded.payload.bytes, jsonPayloadStr.c_str(), jsonPayloadStr.length()); + p->decoded.payload.size = jsonPayloadStr.length(); + service->sendToMesh(p, RX_SRC_LOCAL); + } else { + LOG_WARN("Received MQTT json payload too long, drop"); + } + } else if (json["type"]->AsString().compare("sendposition") == 0 && json["payload"]->IsObject()) { + // invent the "sendposition" type for a valid envelope + JSONObject posit; + posit = json["payload"]->AsObject(); // get nested JSON Position + meshtastic_Position pos = meshtastic_Position_init_default; + if (posit.find("latitude_i") != posit.end() && posit["latitude_i"]->IsNumber()) + pos.latitude_i = posit["latitude_i"]->AsNumber(); + if (posit.find("longitude_i") != posit.end() && posit["longitude_i"]->IsNumber()) + pos.longitude_i = posit["longitude_i"]->AsNumber(); + if (posit.find("altitude") != posit.end() && posit["altitude"]->IsNumber()) + pos.altitude = posit["altitude"]->AsNumber(); + if (posit.find("time") != posit.end() && posit["time"]->IsNumber()) + pos.time = posit["time"]->AsNumber(); + + // construct protobuf data packet using POSITION, send it to the mesh + meshtastic_MeshPacket *p = router->allocForSending(); + p->decoded.portnum = meshtastic_PortNum_POSITION_APP; + if (json.find("channel") != json.end() && json["channel"]->IsNumber() && + (json["channel"]->AsNumber() < channels.getNumChannels())) + p->channel = json["channel"]->AsNumber(); + if (json.find("to") != json.end() && json["to"]->IsNumber()) + p->to = json["to"]->AsNumber(); + if (json.find("hopLimit") != json.end() && json["hopLimit"]->IsNumber()) + p->hop_limit = json["hopLimit"]->AsNumber(); + p->decoded.payload.size = + pb_encode_to_bytes(p->decoded.payload.bytes, sizeof(p->decoded.payload.bytes), &meshtastic_Position_msg, + &pos); // make the Data protobuf from position + service->sendToMesh(p, RX_SRC_LOCAL); + } else { + LOG_DEBUG("JSON ignore downlink message with unsupported type"); + } +} +} // namespace + void MQTT::mqttCallback(char *topic, byte *payload, unsigned int length) { mqtt->onReceive(topic, payload, length); @@ -49,170 +213,30 @@ void MQTT::onClientProxyReceive(meshtastic_MqttClientProxyMessage msg) void MQTT::onReceive(char *topic, byte *payload, size_t length) { - meshtastic_ServiceEnvelope e = meshtastic_ServiceEnvelope_init_default; - - if (moduleConfig.mqtt.json_enabled && (strncmp(topic, jsonTopic.c_str(), jsonTopic.length()) == 0)) { - // check if this is a json payload message by comparing the topic start - char payloadStr[length + 1]; - memcpy(payloadStr, payload, length); - payloadStr[length] = 0; // null terminated string - JSONValue *json_value = JSON::Parse(payloadStr); - if (json_value != NULL) { - // check if it is a valid envelope - JSONObject json; - json = json_value->AsObject(); - - // parse the channel name from the topic string - // the topic has been checked above for having jsonTopic prefix, so just move past it - char *ptr = topic + jsonTopic.length(); - ptr = strtok(ptr, "/") ? strtok(ptr, "/") : ptr; // if another "/" was added, parse string up to that character - meshtastic_Channel sendChannel = channels.getByName(ptr); - // We allow downlink JSON packets only on a channel named "mqtt" - if (strncasecmp(channels.getGlobalId(sendChannel.index), Channels::mqttChannel, strlen(Channels::mqttChannel)) == 0 && - sendChannel.settings.downlink_enabled) { - if (isValidJsonEnvelope(json)) { - // this is a valid envelope - if (json["type"]->AsString().compare("sendtext") == 0 && json["payload"]->IsString()) { - std::string jsonPayloadStr = json["payload"]->AsString(); - LOG_INFO("JSON payload %s, length %u", jsonPayloadStr.c_str(), jsonPayloadStr.length()); - - // construct protobuf data packet using TEXT_MESSAGE, send it to the mesh - meshtastic_MeshPacket *p = router->allocForSending(); - p->decoded.portnum = meshtastic_PortNum_TEXT_MESSAGE_APP; - if (json.find("channel") != json.end() && json["channel"]->IsNumber() && - (json["channel"]->AsNumber() < channels.getNumChannels())) - p->channel = json["channel"]->AsNumber(); - if (json.find("to") != json.end() && json["to"]->IsNumber()) - p->to = json["to"]->AsNumber(); - if (json.find("hopLimit") != json.end() && json["hopLimit"]->IsNumber()) - p->hop_limit = json["hopLimit"]->AsNumber(); - if (jsonPayloadStr.length() <= sizeof(p->decoded.payload.bytes)) { - memcpy(p->decoded.payload.bytes, jsonPayloadStr.c_str(), jsonPayloadStr.length()); - p->decoded.payload.size = jsonPayloadStr.length(); - service->sendToMesh(p, RX_SRC_LOCAL); - } else { - LOG_WARN("Received MQTT json payload too long, drop"); - } - } else if (json["type"]->AsString().compare("sendposition") == 0 && json["payload"]->IsObject()) { - // invent the "sendposition" type for a valid envelope - JSONObject posit; - posit = json["payload"]->AsObject(); // get nested JSON Position - meshtastic_Position pos = meshtastic_Position_init_default; - if (posit.find("latitude_i") != posit.end() && posit["latitude_i"]->IsNumber()) - pos.latitude_i = posit["latitude_i"]->AsNumber(); - if (posit.find("longitude_i") != posit.end() && posit["longitude_i"]->IsNumber()) - pos.longitude_i = posit["longitude_i"]->AsNumber(); - if (posit.find("altitude") != posit.end() && posit["altitude"]->IsNumber()) - pos.altitude = posit["altitude"]->AsNumber(); - if (posit.find("time") != posit.end() && posit["time"]->IsNumber()) - pos.time = posit["time"]->AsNumber(); - - // construct protobuf data packet using POSITION, send it to the mesh - meshtastic_MeshPacket *p = router->allocForSending(); - p->decoded.portnum = meshtastic_PortNum_POSITION_APP; - if (json.find("channel") != json.end() && json["channel"]->IsNumber() && - (json["channel"]->AsNumber() < channels.getNumChannels())) - p->channel = json["channel"]->AsNumber(); - if (json.find("to") != json.end() && json["to"]->IsNumber()) - p->to = json["to"]->AsNumber(); - if (json.find("hopLimit") != json.end() && json["hopLimit"]->IsNumber()) - p->hop_limit = json["hopLimit"]->AsNumber(); - p->decoded.payload.size = - pb_encode_to_bytes(p->decoded.payload.bytes, sizeof(p->decoded.payload.bytes), - &meshtastic_Position_msg, &pos); // make the Data protobuf from position - service->sendToMesh(p, RX_SRC_LOCAL); - } else { - LOG_DEBUG("JSON ignore downlink message with unsupported type"); - } - } else { - LOG_ERROR("JSON received payload on MQTT but not a valid envelope"); - } - } else { - LOG_WARN("JSON downlink received on channel not called 'mqtt' or without downlink enabled"); - } - } else { - // no json, this is an invalid payload - LOG_ERROR("JSON received payload on MQTT but not a valid JSON"); - } - delete json_value; - } else { - if (length == 0) { - LOG_WARN("Empty MQTT payload received, topic %s!", topic); - return; - } else if (!pb_decode_from_bytes(payload, length, &meshtastic_ServiceEnvelope_msg, &e)) { - LOG_ERROR("Invalid MQTT service envelope, topic %s, len %u!", topic, length); - return; - } else { - if (e.channel_id == NULL || e.gateway_id == NULL) { - LOG_ERROR("Invalid MQTT service envelope, topic %s, len %u!", topic, length); - return; - } - meshtastic_Channel ch = channels.getByName(e.channel_id); - if (strcmp(e.gateway_id, owner.id) == 0) { - // Generate an implicit ACK towards ourselves (handled and processed only locally!) for this message. - // We do this because packets are not rebroadcasted back into MQTT anymore and we assume that at least one node - // receives it when we get our own packet back. Then we'll stop our retransmissions. - if (e.packet && isFromUs(e.packet)) - routingModule->sendAckNak(meshtastic_Routing_Error_NONE, getFrom(e.packet), e.packet->id, ch.index); - else - LOG_INFO("Ignore downlink message we originally sent"); - } else { - // Find channel by channel_id and check downlink_enabled - if ((strcmp(e.channel_id, "PKI") == 0 && e.packet) || - (strcmp(e.channel_id, channels.getGlobalId(ch.index)) == 0 && e.packet && ch.settings.downlink_enabled)) { - LOG_INFO("Received MQTT topic %s, len=%u", topic, length); - meshtastic_MeshPacket *p = packetPool.allocCopy(*e.packet); - p->via_mqtt = true; // Mark that the packet was received via MQTT - - if (isFromUs(p)) { - LOG_INFO("Ignore downlink message we originally sent"); - packetPool.release(p); - free(e.channel_id); - free(e.gateway_id); - free(e.packet); - return; - } - if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) { - if (moduleConfig.mqtt.encryption_enabled) { - LOG_INFO("Ignore decoded message on MQTT, encryption is enabled"); - packetPool.release(p); - free(e.channel_id); - free(e.gateway_id); - free(e.packet); - return; - } - if (p->decoded.portnum == meshtastic_PortNum_ADMIN_APP) { - LOG_INFO("Ignore decoded admin packet"); - packetPool.release(p); - free(e.channel_id); - free(e.gateway_id); - free(e.packet); - return; - } - p->channel = ch.index; - } - - // PKI messages get accepted even if we can't decrypt - if (router && p->which_payload_variant == meshtastic_MeshPacket_encrypted_tag && - strcmp(e.channel_id, "PKI") == 0) { - const meshtastic_NodeInfoLite *tx = nodeDB->getMeshNode(getFrom(p)); - const meshtastic_NodeInfoLite *rx = nodeDB->getMeshNode(p->to); - // Only accept PKI messages to us, or if we have both the sender and receiver in our nodeDB, as then it's - // likely they discovered each other via a channel we have downlink enabled for - if (isToUs(p) || (tx && tx->has_user && rx && rx->has_user)) - router->enqueueReceivedMessage(p); - } else if (router && perhapsDecode(p)) // ignore messages if we don't have the channel key - router->enqueueReceivedMessage(p); - else - packetPool.release(p); - } - } - } - // make sure to free both strings and the MeshPacket (passing in NULL is acceptable) - free(e.channel_id); - free(e.gateway_id); - free(e.packet); + if (length == 0) { + LOG_WARN("Empty MQTT payload received, topic %s!", topic); + return; } + + // check if this is a json payload message by comparing the topic start + if (moduleConfig.mqtt.json_enabled && (strncmp(topic, jsonTopic.c_str(), jsonTopic.length()) == 0)) { + // parse the channel name from the topic string + // the topic has been checked above for having jsonTopic prefix, so just move past it + char *channelName = topic + jsonTopic.length(); + // if another "/" was added, parse string up to that character + channelName = strtok(channelName, "/") ? strtok(channelName, "/") : channelName; + // We allow downlink JSON packets only on a channel named "mqtt" + meshtastic_Channel &sendChannel = channels.getByName(channelName); + if (!(strncasecmp(channels.getGlobalId(sendChannel.index), Channels::mqttChannel, strlen(Channels::mqttChannel)) == 0 && + sendChannel.settings.downlink_enabled)) { + LOG_WARN("JSON downlink received on channel not called 'mqtt' or without downlink enabled"); + return; + } + onReceiveJson(payload, length); + return; + } + + onReceiveProto(topic, payload, length); } void mqttInit() @@ -705,17 +729,6 @@ void MQTT::perhapsReportToMap() } } -bool MQTT::isValidJsonEnvelope(JSONObject &json) -{ - // if "sender" is provided, avoid processing packets we uplinked - return (json.find("sender") != json.end() ? (json["sender"]->AsString().compare(owner.id) != 0) : true) && - (json.find("hopLimit") != json.end() ? json["hopLimit"]->IsNumber() : true) && // hop limit should be a number - (json.find("from") != json.end()) && json["from"]->IsNumber() && - (json["from"]->AsNumber() == nodeDB->getNodeNum()) && // only accept message if the "from" is us - (json.find("type") != json.end()) && json["type"]->IsString() && // should specify a type - (json.find("payload") != json.end()); // should have a payload -} - bool MQTT::isPrivateIpAddress(const char address[]) { // Min. length like 10.0.0.0 (8), max like 192.168.255.255:65535 (21) diff --git a/src/mqtt/MQTT.h b/src/mqtt/MQTT.h index 7e0378238..dc82c1a74 100644 --- a/src/mqtt/MQTT.h +++ b/src/mqtt/MQTT.h @@ -117,9 +117,6 @@ class MQTT : private concurrency::OSThread // Check if we should report unencrypted information about our node for consumption by a map void perhapsReportToMap(); - // returns true if this is a valid JSON envelope which we accept on downlink - bool isValidJsonEnvelope(JSONObject &json); - /// Determines if the given address is a private IPv4 address, i.e. not routable on the public internet. /// These are the ranges: 127.0.0.1, 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255. bool isPrivateIpAddress(const char address[]); diff --git a/variants/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf b/variants/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf new file mode 100644 index 000000000..de87af141 --- /dev/null +++ b/variants/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf @@ -0,0 +1,9836 @@ +%PDF-1.4 +%߬ +3 0 obj +<> +endobj +4 0 obj +<< +/Length 102720 +>> +stream +0.20 w +0 G +2 J +0 j +100 M +1.00 g +[] 0 d +0.00 826.80 1169.00 -826.80 re +f +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +216.000 806.000 m +216.000 816.000 l +216.000 20.000 m +216.000 10.000 l +412.000 806.000 m +412.000 816.000 l +412.000 20.000 m +412.000 10.000 l +608.000 806.000 m +608.000 816.000 l +608.000 20.000 m +608.000 10.000 l +804.000 806.000 m +804.000 816.000 l +804.000 20.000 m +804.000 10.000 l +1000.000 806.000 m +1000.000 816.000 l +1000.000 20.000 m +1000.000 10.000 l +20.000 610.000 m +10.000 610.000 l +1149.000 610.000 m +1159.000 610.000 l +20.000 414.000 m +10.000 414.000 l +1149.000 414.000 m +1159.000 414.000 l +20.000 218.000 m +10.000 218.000 l +1149.000 218.000 m +1159.000 218.000 l +20.000 22.000 m +10.000 22.000 l +1149.000 22.000 m +1159.000 22.000 l +S +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +11.50 708.00 Td +(A) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +1150.50 708.00 Td +(A) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +11.50 512.00 Td +(B) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +1150.50 512.00 Td +(B) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +11.50 316.00 Td +(C) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +1150.50 316.00 Td +(C) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +11.50 120.00 Td +(D) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +1150.50 120.00 Td +(D) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +118.00 807.50 Td +(1) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +118.00 11.50 Td +(1) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +314.00 807.50 Td +(2) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +314.00 11.50 Td +(2) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +510.00 807.50 Td +(3) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +510.00 11.50 Td +(3) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +706.00 807.50 Td +(4) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +706.00 11.50 Td +(4) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +902.00 807.50 Td +(5) Tj +ET +10.00 w +BT +/F1 9 Tf +9.00 TL +0.533 0.000 0.000 rg +902.00 11.50 Td +(5) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +20.00 806.00 1129.00 -786.00 re +S +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +10.00 816.00 1149.00 -806.00 re +S +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +705.00 100.00 444.00 -80.00 re +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +705.100 60.750 m +1148.630 60.750 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +809.630 40.750 m +1148.630 40.750 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +1069.610 99.930 m +1069.630 60.750 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +1069.630 60.750 m +1069.630 40.750 l +S +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +710.00 87.00 Td +(TITLE:) Tj +ET +10.00 w +BT +/F1 13 Tf +13.00 TL +0.000 0.000 1.000 rg +767.62 74.41 Td +(Pro-Micro Pinouts) Tj +ET +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +1074.62 73.75 Td +(REV:) Tj +ET +10.00 w +BT +/F1 12 Tf +12.00 TL +0.000 0.000 1.000 rg +1112.62 73.75 Td +(1.0) Tj +ET +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +814.62 25.00 Td +(Date:) Tj +ET +10.00 w +BT +/F1 12 Tf +12.00 TL +0.000 0.000 1.000 rg +861.62 24.52 Td +(2024-12-17) Tj +ET +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +1073.62 45.00 Td +(Sheet:) Tj +ET +10.00 w +BT +/F1 12 Tf +12.00 TL +0.000 0.000 1.000 rg +1118.62 44.52 Td +(1/1) Tj +ET +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +953.62 24.75 Td +(Drawn By:) Tj +ET +10.00 w +BT +/F1 11 Tf +11.00 TL +0.533 0.000 0.000 rg +814.62 46.75 Td +(Company:) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +809.630 60.750 m +809.630 20.750 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +541.000 684.000 m +549.000 676.000 l +549.000 684.000 m +541.000 676.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +665.000 680.000 m +635.000 680.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +986.000 649.000 m +994.000 641.000 l +994.000 649.000 m +986.000 641.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +541.000 614.000 m +549.000 606.000 l +549.000 614.000 m +541.000 606.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +541.000 624.000 m +549.000 616.000 l +549.000 624.000 m +541.000 616.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +541.000 644.000 m +549.000 636.000 l +549.000 644.000 m +541.000 636.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +631.000 634.000 m +639.000 626.000 l +639.000 634.000 m +631.000 626.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 804.82 611.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +830.000 615.000 m +840.000 615.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +830.000 610.000 m +830.000 620.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 797.50 621.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +830.000 625.000 m +840.000 625.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +830.000 634.000 m +830.000 616.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +828.000 631.000 m +828.000 619.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +826.000 628.000 m +826.000 622.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +824.000 626.000 m +824.000 624.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 1006.50 651.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1000.000 655.000 m +990.000 655.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1000.000 646.000 m +1000.000 664.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1002.000 649.000 m +1002.000 661.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1004.000 652.000 m +1004.000 658.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1006.000 654.000 m +1006.000 656.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 1011.94 671.15 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +990.000 675.000 m +995.000 680.000 l +1010.000 680.000 l +1010.000 670.000 l +995.000 670.000 l +990.000 675.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 797.25 651.75 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +840.000 655.000 m +835.000 650.000 l +820.000 650.000 l +820.000 660.000 l +835.000 660.000 l +840.000 655.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 804.69 631.45 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +840.000 635.000 m +835.000 630.000 l +820.000 630.000 l +820.000 640.000 l +835.000 640.000 l +840.000 635.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 791.48 661.75 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +840.000 665.000 m +835.000 660.000 l +820.000 660.000 l +820.000 670.000 l +835.000 670.000 l +840.000 665.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 791.41 671.75 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +840.000 675.000 m +835.000 670.000 l +820.000 670.000 l +820.000 680.000 l +835.000 680.000 l +840.000 675.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 790.06 641.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +840.000 645.000 m +835.000 640.000 l +820.000 640.000 l +820.000 650.000 l +835.000 650.000 l +840.000 645.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 1011.92 661.15 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +990.000 665.000 m +995.000 670.000 l +1010.000 670.000 l +1010.000 660.000 l +995.000 660.000 l +990.000 665.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +908.96 708.00 Td +(Seeed-wio-SX1262) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +908.96 717.00 Td +(SEEED_WIO-SX1262) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 682.00 Td +(RF_SW) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 686.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 685.000 m +860.000 685.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 672.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 676.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 675.000 m +860.000 675.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 662.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 666.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 665.000 m +860.000 665.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 652.00 Td +(CLK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 656.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 655.000 m +860.000 655.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 642.00 Td +(RST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 646.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 645.000 m +860.000 645.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 632.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 636.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 635.000 m +860.000 635.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 622.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 626.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 625.000 m +860.000 625.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +862.00 612.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +849.28 616.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +840.000 615.000 m +860.000 615.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +949.58 642.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +975.00 646.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +990.000 645.000 m +970.000 645.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +947.36 652.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +975.00 656.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +990.000 655.000 m +970.000 655.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +943.57 662.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +975.00 666.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +990.000 665.000 m +970.000 665.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +944.49 672.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +975.00 676.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +990.000 675.000 m +970.000 675.000 l +S +2 J +0 j +100 M +1.00 w +0.00 G +[] 0 d +860.00 705.00 110.00 -110.00 re +S +1.00 w +0.00 G +[] 0 d +965.00 615.00 m 965.00 623.28 958.28 630.00 950.00 630.00 c +941.72 630.00 935.00 623.28 935.00 615.00 c +935.00 606.72 941.72 600.00 950.00 600.00 c +958.28 600.00 965.00 606.72 965.00 615.00 c +S +2 J +0 j +100 M +1.00 w +0.00 G +[] 0 d +930.00 635.00 40.00 -40.00 re +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +535.000 660.000 m +545.000 660.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 499.82 655.93 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +525.000 660.000 m +535.000 660.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +525.000 655.000 m +525.000 665.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +520.000 670.000 m +545.000 670.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 652.00 699.09 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +665.000 690.000 m +665.000 680.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +674.000 690.000 m +656.000 690.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +671.000 692.000 m +659.000 692.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +668.000 694.000 m +662.000 694.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +666.000 696.000 m +664.000 696.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 507.00 689.09 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +520.000 680.000 m +520.000 670.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +529.000 680.000 m +511.000 680.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +526.000 682.000 m +514.000 682.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +523.000 684.000 m +517.000 684.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +521.000 686.000 m +519.000 686.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 622.00 582.76 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +635.000 600.000 m +635.000 610.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +626.000 600.000 m +644.000 600.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +629.000 598.000 m +641.000 598.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +632.000 596.000 m +638.000 596.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +634.000 594.000 m +636.000 594.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 656.92 616.15 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +635.000 620.000 m +640.000 625.000 l +655.000 625.000 l +655.000 615.000 l +640.000 615.000 l +635.000 620.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 656.55 636.15 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +635.000 640.000 m +640.000 645.000 l +655.000 645.000 l +655.000 635.000 l +640.000 635.000 l +635.000 640.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 656.92 646.15 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +635.000 650.000 m +640.000 655.000 l +655.000 655.000 l +655.000 645.000 l +640.000 645.000 l +635.000 650.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 656.85 656.15 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +635.000 660.000 m +640.000 665.000 l +655.000 665.000 l +655.000 655.000 l +640.000 655.000 l +635.000 660.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 657.00 666.45 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +635.000 670.000 m +640.000 675.000 l +655.000 675.000 l +655.000 665.000 l +640.000 665.000 l +635.000 670.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 504.19 626.40 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +545.000 630.000 m +540.000 625.000 l +525.000 625.000 l +525.000 635.000 l +540.000 635.000 l +545.000 630.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 495.06 646.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +545.000 650.000 m +540.000 645.000 l +525.000 645.000 l +525.000 655.000 l +540.000 655.000 l +545.000 650.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +584.95 693.33 Td +(RA-01SH) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +584.95 702.33 Td +(HT-RA62) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +557.000 690.000 m +623.000 690.000 l +624.105 690.000 625.000 689.105 625.000 688.000 c +625.000 602.000 l +625.000 600.895 623.895 600.000 623.000 600.000 c +557.000 600.000 l +555.895 600.000 555.000 601.105 555.000 602.000 c +555.000 688.000 l +555.000 689.105 556.105 690.000 557.000 690.000 c +S +1.00 w +0.53 0.00 0.00 RG +0.53 0.00 0.00 rg +[] 0 d +561.50 685.00 m 561.50 685.83 560.83 686.50 560.00 686.50 c +559.17 686.50 558.50 685.83 558.50 685.00 c +558.50 684.17 559.17 683.50 560.00 683.50 c +560.83 683.50 561.50 684.17 561.50 685.00 c +B +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 676.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 681.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 680.000 m +555.000 680.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +558.70 666.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +548.78 671.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +545.000 670.000 m +555.000 670.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 656.00 Td +(3.3V) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 661.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 660.000 m +555.000 660.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 646.00 Td +(RESET) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 651.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 650.000 m +555.000 650.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 636.00 Td +(TXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 641.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 640.000 m +555.000 640.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 626.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 631.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 630.000 m +555.000 630.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 616.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 621.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 620.000 m +555.000 620.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +558.70 606.00 Td +(DIO3) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +548.78 611.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 610.000 m +555.000 610.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +600.66 606.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +625.50 611.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +635.000 610.000 m +625.000 610.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +596.87 616.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 621.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 620.000 m +625.000 620.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +596.46 626.00 Td +(RXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 631.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 630.000 m +625.000 630.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +602.64 636.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 641.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 640.000 m +625.000 640.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +596.71 646.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 651.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 650.000 m +625.000 650.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +596.71 656.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 661.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 660.000 m +625.000 660.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +602.27 666.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +625.50 671.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +635.000 670.000 m +625.000 670.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +600.66 676.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +625.50 681.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +635.000 680.000 m +625.000 680.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +153.95 479.05 Td +(AMC-U_FL) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +153.95 488.16 Td +(U6) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +165.00 465.00 20.00 -20.00 re +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 174.00 434.29 Tm +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +175.000 425.000 m +175.000 445.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +159.28 456.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +155.000 455.000 m +165.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +185.00 456.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +195.000 455.000 m +185.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 174.00 465.00 Tm +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +175.000 475.000 m +175.000 465.000 l +S +1.00 w +0.53 0.00 0.00 RG +[] 0 d +177.00 455.00 m 177.00 456.10 176.10 457.00 175.00 457.00 c +173.90 457.00 173.00 456.10 173.00 455.00 c +173.00 453.90 173.90 453.00 175.00 453.00 c +176.10 453.00 177.00 453.90 177.00 455.00 c +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +175.000 453.000 m +175.000 445.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +506.000 394.000 m +514.000 386.000 l +514.000 394.000 m +506.000 386.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +646.000 394.000 m +654.000 386.000 l +654.000 394.000 m +646.000 386.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 666.50 415.93 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +660.000 420.000 m +650.000 420.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +660.000 411.000 m +660.000 429.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +662.000 414.000 m +662.000 426.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +664.000 417.000 m +664.000 423.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +666.000 419.000 m +666.000 421.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +650.000 430.000 m +650.000 400.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +796.000 389.000 m +804.000 381.000 l +804.000 389.000 m +796.000 381.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +573.96 503.33 Td +(E22-900M22S) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +573.96 512.33 Td +(E22-900M22S) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 377.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 381.00 Td +(22) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 380.000 m +530.000 380.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 387.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 391.00 Td +(21) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 390.000 m +530.000 390.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 397.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 401.00 Td +(20) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 400.000 m +530.000 400.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 417.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 421.00 Td +(19) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 420.000 m +530.000 420.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 427.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 431.00 Td +(18) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 430.000 m +530.000 430.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 437.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 441.00 Td +(17) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 440.000 m +530.000 440.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 447.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 451.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 450.000 m +530.000 450.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 457.00 Td +(NRST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 461.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 460.000 m +530.000 460.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 467.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 471.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 470.000 m +530.000 470.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 477.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 481.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 480.000 m +530.000 480.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +532.00 487.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +513.57 491.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +510.000 490.000 m +530.000 490.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 487.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 491.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 490.000 m +630.000 490.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 477.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 481.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 480.000 m +630.000 480.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +609.29 467.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 471.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 470.000 m +630.000 470.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +604.49 457.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 461.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 460.000 m +630.000 460.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +603.87 447.00 Td +(TXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 451.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 450.000 m +630.000 450.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +603.16 437.00 Td +(RXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 441.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 440.000 m +630.000 440.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 427.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 431.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 430.000 m +630.000 430.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 417.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 421.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 420.000 m +630.000 420.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 397.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 401.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 400.000 m +630.000 400.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 387.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 391.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 390.000 m +630.000 390.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +607.36 377.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +635.00 381.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +650.000 380.000 m +630.000 380.000 l +S +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +532.000 500.000 m +628.000 500.000 l +629.105 500.000 630.000 499.105 630.000 498.000 c +630.000 362.000 l +630.000 360.895 628.895 360.000 628.000 360.000 c +532.000 360.000 l +530.895 360.000 530.000 361.105 530.000 362.000 c +530.000 498.000 l +530.000 499.105 531.105 500.000 532.000 500.000 c +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +863.96 498.33 Td +(E22-900M30S) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +863.96 507.33 Td +(E22-900M30S) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +822.000 495.000 m +918.000 495.000 l +919.105 495.000 920.000 494.105 920.000 493.000 c +920.000 357.000 l +920.000 355.895 918.895 355.000 918.000 355.000 c +822.000 355.000 l +820.895 355.000 820.000 356.105 820.000 357.000 c +820.000 493.000 l +820.000 494.105 821.105 495.000 822.000 495.000 c +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 372.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 376.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 375.000 m +920.000 375.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 382.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 386.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 385.000 m +920.000 385.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 392.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 396.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 395.000 m +920.000 395.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 412.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 416.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 415.000 m +920.000 415.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 422.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 426.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 425.000 m +920.000 425.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +893.16 432.00 Td +(RXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 436.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 435.000 m +920.000 435.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +893.87 442.00 Td +(TXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 446.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 445.000 m +920.000 445.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +894.49 452.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 456.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 455.000 m +920.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +899.29 462.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 466.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 465.000 m +920.000 465.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +899.29 472.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 476.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 475.000 m +920.000 475.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +897.36 482.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +925.00 486.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +940.000 485.000 m +920.000 485.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 482.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 486.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 485.000 m +820.000 485.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 472.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 476.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 475.000 m +820.000 475.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 462.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 466.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 465.000 m +820.000 465.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 452.00 Td +(NRST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 456.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 455.000 m +820.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 442.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 446.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 445.000 m +820.000 445.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 432.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 436.00 Td +(17) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 435.000 m +820.000 435.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 422.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 426.00 Td +(18) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 425.000 m +820.000 425.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 412.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 416.00 Td +(19) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 415.000 m +820.000 415.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 392.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 396.00 Td +(20) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 395.000 m +820.000 395.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 382.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 386.00 Td +(21) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 385.000 m +820.000 385.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +822.00 372.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +803.57 376.00 Td +(22) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +800.000 375.000 m +820.000 375.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +293.99 488.33 Td +(E22-400MM22S) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +293.99 497.33 Td +(E22-900MM22S) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +267.000 485.000 m +333.000 485.000 l +334.105 485.000 335.000 484.105 335.000 483.000 c +335.000 377.000 l +335.000 375.895 333.895 375.000 333.000 375.000 c +267.000 375.000 l +265.895 375.000 265.000 376.105 265.000 377.000 c +265.000 483.000 l +265.000 484.105 266.105 485.000 267.000 485.000 c +S +1.00 w +0.53 0.00 0.00 RG +0.53 0.00 0.00 rg +[] 0 d +271.50 480.00 m 271.50 480.83 270.83 481.50 270.00 481.50 c +269.17 481.50 268.50 480.83 268.50 480.00 c +268.50 479.17 269.17 478.50 270.00 478.50 c +270.83 478.50 271.50 479.17 271.50 480.00 c +B +BT +/F1 9 Tf +9.00 TL +1.000 0.000 0.000 rg +268.70 471.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +1.000 0.000 0.000 rg +258.79 476.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +1.00 0.00 0.00 RG +[] 0 d +255.000 475.000 m +265.000 475.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +268.70 461.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +258.79 466.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +255.000 465.000 m +265.000 465.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 451.00 Td +(NRST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 456.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 455.000 m +265.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 441.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 446.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 445.000 m +265.000 445.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 431.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 436.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 435.000 m +265.000 435.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 421.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 426.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 425.000 m +265.000 425.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +268.70 411.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +258.79 416.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +255.000 415.000 m +265.000 415.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 401.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 406.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 405.000 m +265.000 405.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 391.00 Td +(TXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +258.79 396.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 395.000 m +265.000 395.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +268.70 381.00 Td +(RXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +253.07 386.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +255.000 385.000 m +265.000 385.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +306.87 381.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 386.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 385.000 m +335.000 385.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +306.71 391.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 396.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 395.000 m +335.000 395.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +306.71 401.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 406.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 405.000 m +335.000 405.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +312.27 411.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 416.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 415.000 m +335.000 415.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +312.64 421.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 426.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 425.000 m +335.000 425.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +310.66 431.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +335.50 436.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +345.000 435.000 m +335.000 435.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +318.29 441.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 446.00 Td +(17) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 445.000 m +335.000 445.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +307.79 451.00 Td +(DIO3) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 456.00 Td +(18) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 455.000 m +335.000 455.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +307.79 461.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 466.00 Td +(19) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 465.000 m +335.000 465.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +307.79 471.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +335.50 476.00 Td +(20) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +345.000 475.000 m +335.000 475.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 366.70 381.60 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 385.000 m +350.000 390.000 l +365.000 390.000 l +365.000 380.000 l +350.000 380.000 l +345.000 385.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 203.19 381.40 Tm +(RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +255.000 385.000 m +250.000 380.000 l +235.000 380.000 l +235.000 390.000 l +250.000 390.000 l +255.000 385.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 366.71 421.60 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 425.000 m +350.000 430.000 l +365.000 430.000 l +365.000 420.000 l +350.000 420.000 l +345.000 425.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.00 391.60 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 395.000 m +350.000 400.000 l +365.000 400.000 l +365.000 390.000 l +350.000 390.000 l +345.000 395.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.00 401.60 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 405.000 m +350.000 410.000 l +365.000 410.000 l +365.000 400.000 l +350.000 400.000 l +345.000 405.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.00 411.60 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 415.000 m +350.000 420.000 l +365.000 420.000 l +365.000 410.000 l +350.000 410.000 l +345.000 415.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.01 461.15 Tm +(DIO2) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 465.000 m +350.000 470.000 l +365.000 470.000 l +365.000 460.000 l +350.000 460.000 l +345.000 465.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.00 471.60 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 475.000 m +350.000 480.000 l +365.000 480.000 l +365.000 470.000 l +350.000 470.000 l +345.000 475.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 203.74 391.40 Tm +(TXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +255.000 395.000 m +250.000 390.000 l +235.000 390.000 l +235.000 400.000 l +250.000 400.000 l +255.000 395.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 205.06 451.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +255.000 455.000 m +250.000 450.000 l +235.000 450.000 l +235.000 460.000 l +250.000 460.000 l +255.000 455.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 367.01 451.15 Tm +(DIO3) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +345.000 455.000 m +350.000 460.000 l +365.000 460.000 l +365.000 450.000 l +350.000 450.000 l +345.000 455.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 460.06 456.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 460.000 m +505.000 455.000 l +490.000 455.000 l +490.000 465.000 l +505.000 465.000 l +510.000 460.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 671.71 446.60 Tm +(TXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +650.000 450.000 m +655.000 455.000 l +670.000 455.000 l +670.000 445.000 l +655.000 445.000 l +650.000 450.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 469.19 476.40 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 480.000 m +505.000 475.000 l +490.000 475.000 l +490.000 485.000 l +505.000 485.000 l +510.000 480.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 672.01 456.15 Tm +(DIO2) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +650.000 460.000 m +655.000 465.000 l +670.000 465.000 l +670.000 455.000 l +655.000 455.000 l +650.000 460.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 474.69 416.40 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 420.000 m +505.000 415.000 l +490.000 415.000 l +490.000 425.000 l +505.000 425.000 l +510.000 420.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 460.61 436.40 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 440.000 m +505.000 435.000 l +490.000 435.000 l +490.000 445.000 l +505.000 445.000 l +510.000 440.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 460.61 446.40 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 450.000 m +505.000 445.000 l +490.000 445.000 l +490.000 455.000 l +505.000 455.000 l +510.000 450.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 466.77 426.40 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 430.000 m +505.000 425.000 l +490.000 425.000 l +490.000 435.000 l +505.000 435.000 l +510.000 430.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 671.71 436.60 Tm +(RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +650.000 440.000 m +655.000 445.000 l +670.000 445.000 l +670.000 435.000 l +655.000 435.000 l +650.000 440.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 458.85 466.40 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +510.000 470.000 m +505.000 465.000 l +490.000 465.000 l +490.000 475.000 l +505.000 475.000 l +510.000 470.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 467.50 395.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 400.000 m +510.000 400.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 409.000 m +500.000 391.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +498.000 406.000 m +498.000 394.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +496.000 403.000 m +496.000 397.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +494.000 401.000 m +494.000 399.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 467.50 375.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 380.000 m +510.000 380.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 389.000 m +500.000 371.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +498.000 386.000 m +498.000 374.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +496.000 383.000 m +496.000 377.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +494.000 381.000 m +494.000 379.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 637.00 352.76 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +650.000 370.000 m +650.000 380.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +641.000 370.000 m +659.000 370.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +644.000 368.000 m +656.000 368.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +647.000 366.000 m +653.000 366.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +649.000 364.000 m +651.000 364.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 637.00 509.13 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +650.000 500.000 m +650.000 490.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +659.000 500.000 m +641.000 500.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +656.000 502.000 m +644.000 502.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +653.000 504.000 m +647.000 504.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +651.000 506.000 m +649.000 506.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 467.50 485.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 490.000 m +510.000 490.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +500.000 499.000 m +500.000 481.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +498.000 496.000 m +498.000 484.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +496.000 493.000 m +496.000 487.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +494.000 491.000 m +494.000 489.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 361.50 430.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 435.000 m +345.000 435.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 426.000 m +355.000 444.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +357.000 429.000 m +357.000 441.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +359.000 432.000 m +359.000 438.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +361.000 434.000 m +361.000 436.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 212.50 410.93 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +245.000 415.000 m +255.000 415.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +245.000 424.000 m +245.000 406.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +243.000 421.000 m +243.000 409.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +241.000 418.000 m +241.000 412.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +239.000 416.000 m +239.000 414.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 212.50 460.93 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +245.000 465.000 m +255.000 465.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +245.000 474.000 m +245.000 456.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +243.000 471.000 m +243.000 459.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +241.000 468.000 m +241.000 462.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +239.000 466.000 m +239.000 464.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +940.000 370.000 m +940.000 425.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 757.50 480.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 485.000 m +800.000 485.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 494.000 m +790.000 476.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +788.000 491.000 m +788.000 479.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +786.000 488.000 m +786.000 482.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +784.000 486.000 m +784.000 484.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 927.00 504.09 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +940.000 495.000 m +940.000 485.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +949.000 495.000 m +931.000 495.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +946.000 497.000 m +934.000 497.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +943.000 499.000 m +937.000 499.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +941.000 501.000 m +939.000 501.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 757.50 370.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 375.000 m +800.000 375.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 384.000 m +790.000 366.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +788.000 381.000 m +788.000 369.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +786.000 378.000 m +786.000 372.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +784.000 376.000 m +784.000 374.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 757.50 390.92 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 395.000 m +800.000 395.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +790.000 404.000 m +790.000 386.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +788.000 401.000 m +788.000 389.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +786.000 398.000 m +786.000 392.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +784.000 396.000 m +784.000 394.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 748.85 461.40 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 465.000 m +795.000 460.000 l +780.000 460.000 l +780.000 470.000 l +795.000 470.000 l +800.000 465.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 961.71 431.60 Tm +(RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +940.000 435.000 m +945.000 440.000 l +960.000 440.000 l +960.000 430.000 l +945.000 430.000 l +940.000 435.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 756.77 421.40 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 425.000 m +795.000 420.000 l +780.000 420.000 l +780.000 430.000 l +795.000 430.000 l +800.000 425.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 750.61 441.40 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 445.000 m +795.000 440.000 l +780.000 440.000 l +780.000 450.000 l +795.000 450.000 l +800.000 445.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 750.61 431.40 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 435.000 m +795.000 430.000 l +780.000 430.000 l +780.000 440.000 l +795.000 440.000 l +800.000 435.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 764.69 411.40 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 415.000 m +795.000 410.000 l +780.000 410.000 l +780.000 420.000 l +795.000 420.000 l +800.000 415.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 962.01 451.15 Tm +(DIO2) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +940.000 455.000 m +945.000 460.000 l +960.000 460.000 l +960.000 450.000 l +945.000 450.000 l +940.000 455.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 759.19 471.40 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 475.000 m +795.000 470.000 l +780.000 470.000 l +780.000 480.000 l +795.000 480.000 l +800.000 475.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 961.71 441.60 Tm +(TXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +940.000 445.000 m +945.000 450.000 l +960.000 450.000 l +960.000 440.000 l +945.000 440.000 l +940.000 445.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 750.06 451.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +800.000 455.000 m +795.000 450.000 l +780.000 450.000 l +780.000 460.000 l +795.000 460.000 l +800.000 455.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 927.00 342.76 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +940.000 360.000 m +940.000 370.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +931.000 360.000 m +949.000 360.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +934.000 358.000 m +946.000 358.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +937.000 356.000 m +943.000 356.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +939.000 354.000 m +941.000 354.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 243.00 487.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +255.000 485.000 m +255.000 475.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +250.000 485.000 m +260.000 485.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 660.50 465.93 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +660.000 470.000 m +650.000 470.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +660.000 475.000 m +660.000 465.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +175.000 425.000 m +210.000 425.000 l +255.000 425.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 142.00 429.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +155.000 445.000 m +155.000 455.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +146.000 445.000 m +164.000 445.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +149.000 443.000 m +161.000 443.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +152.000 441.000 m +158.000 441.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +154.000 439.000 m +156.000 439.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 182.00 428.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +195.000 445.000 m +195.000 455.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +186.000 445.000 m +204.000 445.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +189.000 443.000 m +201.000 443.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +192.000 441.000 m +198.000 441.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +194.000 439.000 m +196.000 439.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 950.50 460.92 Tm +(+5V) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +950.000 465.000 m +940.000 465.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +950.000 470.000 m +950.000 460.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +650.000 490.000 m +650.000 480.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +940.000 465.000 m +940.000 475.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +231.000 294.000 m +239.000 286.000 l +239.000 294.000 m +231.000 286.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +371.000 244.000 m +379.000 236.000 l +379.000 244.000 m +371.000 236.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +371.000 284.000 m +379.000 276.000 l +379.000 284.000 m +371.000 276.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +371.000 274.000 m +379.000 266.000 l +379.000 274.000 m +371.000 266.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +231.000 204.000 m +239.000 196.000 l +239.000 204.000 m +231.000 196.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +371.000 204.000 m +379.000 196.000 l +379.000 204.000 m +371.000 196.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 397.71 246.28 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +375.000 250.000 m +380.000 255.000 l +395.000 255.000 l +395.000 245.000 l +380.000 245.000 l +375.000 250.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 397.00 256.60 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +375.000 260.000 m +380.000 265.000 l +395.000 265.000 l +395.000 255.000 l +380.000 255.000 l +375.000 260.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 183.85 236.40 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +235.000 240.000 m +230.000 235.000 l +215.000 235.000 l +215.000 245.000 l +230.000 245.000 l +235.000 240.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 199.69 246.40 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +235.000 250.000 m +230.000 245.000 l +215.000 245.000 l +215.000 255.000 l +230.000 255.000 l +235.000 250.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 185.61 266.40 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +235.000 270.000 m +230.000 265.000 l +215.000 265.000 l +215.000 275.000 l +230.000 275.000 l +235.000 270.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 191.77 256.40 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +235.000 260.000 m +230.000 255.000 l +215.000 255.000 l +215.000 265.000 l +230.000 265.000 l +235.000 260.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 185.61 276.40 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +235.000 280.000 m +230.000 275.000 l +215.000 275.000 l +215.000 285.000 l +230.000 285.000 l +235.000 280.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +298.96 313.33 Td +(E80-900M2213S) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +298.96 322.33 Td +(E80-900M2213S) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 187.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 191.00 Td +(22) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 190.000 m +255.000 190.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 197.00 Td +(ANT_2.4) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 201.00 Td +(21) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 200.000 m +255.000 200.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 207.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 211.00 Td +(20) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 210.000 m +255.000 210.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 227.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 231.00 Td +(19) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 230.000 m +255.000 230.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 237.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 241.00 Td +(18) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 240.000 m +255.000 240.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 247.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 251.00 Td +(17) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 250.000 m +255.000 250.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 257.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 261.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 260.000 m +255.000 260.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 267.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 271.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 270.000 m +255.000 270.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 277.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 281.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 280.000 m +255.000 280.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 287.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 291.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 290.000 m +255.000 290.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +257.00 297.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +238.57 301.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +235.000 300.000 m +255.000 300.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +332.36 297.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 301.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 300.000 m +355.000 300.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +334.29 287.00 Td +(VCC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 291.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 290.000 m +355.000 290.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +329.49 277.00 Td +(DIO7) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 281.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 280.000 m +355.000 280.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +329.49 267.00 Td +(DIO8) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 271.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 270.000 m +355.000 270.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +329.49 257.00 Td +(DIO9) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 261.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 260.000 m +355.000 260.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +328.32 247.00 Td +(NRST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 251.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 250.000 m +355.000 250.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +339.99 237.00 Td +(NC) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 241.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 240.000 m +355.000 240.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +332.36 227.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 231.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 230.000 m +355.000 230.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +332.36 207.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 211.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 210.000 m +355.000 210.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +311.72 197.00 Td +(ANT_900) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 201.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 200.000 m +355.000 200.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +332.36 187.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +360.00 191.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +375.000 190.000 m +355.000 190.000 l +S +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +257.000 310.000 m +353.000 310.000 l +354.105 310.000 355.000 309.105 355.000 308.000 c +355.000 172.000 l +355.000 170.895 353.895 170.000 353.000 170.000 c +257.000 170.000 l +255.895 170.000 255.000 171.105 255.000 172.000 c +255.000 308.000 l +255.000 309.105 256.105 310.000 257.000 310.000 c +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 362.00 163.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +375.000 180.000 m +375.000 190.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +366.000 180.000 m +384.000 180.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +369.000 178.000 m +381.000 178.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +372.000 176.000 m +378.000 176.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +374.000 174.000 m +376.000 174.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 391.50 206.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 210.000 m +375.000 210.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 201.000 m +385.000 219.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +387.000 204.000 m +387.000 216.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +389.000 207.000 m +389.000 213.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +391.000 209.000 m +391.000 211.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 391.50 226.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 230.000 m +375.000 230.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 221.000 m +385.000 239.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +387.000 224.000 m +387.000 236.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +389.000 227.000 m +389.000 233.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +391.000 229.000 m +391.000 231.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 391.50 296.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 300.000 m +375.000 300.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 291.000 m +385.000 309.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +387.000 294.000 m +387.000 306.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +389.000 297.000 m +389.000 303.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +391.000 299.000 m +391.000 301.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 192.50 296.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 300.000 m +235.000 300.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 309.000 m +225.000 291.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +223.000 306.000 m +223.000 294.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +221.000 303.000 m +221.000 297.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +219.000 301.000 m +219.000 299.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 192.50 226.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 230.000 m +235.000 230.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 239.000 m +225.000 221.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +223.000 236.000 m +223.000 224.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +221.000 233.000 m +221.000 227.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +219.000 231.000 m +219.000 229.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 192.50 206.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 210.000 m +235.000 210.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 219.000 m +225.000 201.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +223.000 216.000 m +223.000 204.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +221.000 213.000 m +221.000 207.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +219.000 211.000 m +219.000 209.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 192.50 186.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 190.000 m +235.000 190.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +225.000 199.000 m +225.000 181.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +223.000 196.000 m +223.000 184.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +221.000 193.000 m +221.000 187.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +219.000 191.000 m +219.000 189.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 386.00 286.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 290.000 m +375.000 290.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +385.000 295.000 m +385.000 285.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +160.000 675.000 m +160.000 680.000 l +160.000 685.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 655.000 m +160.000 655.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 645.000 m +160.000 645.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 635.000 m +160.000 635.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 625.000 m +160.000 625.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 615.000 m +160.000 615.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +145.000 605.000 m +160.000 605.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 112.70 591.40 Tm +(P1.06) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +160.000 595.000 m +155.000 590.000 l +140.000 590.000 l +140.000 600.000 l +155.000 600.000 l +160.000 595.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 112.70 701.40 Tm +(P0.06) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +160.000 705.000 m +155.000 700.000 l +140.000 700.000 l +140.000 710.000 l +155.000 710.000 l +160.000 705.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 112.70 691.40 Tm +(P0.08) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +160.000 695.000 m +155.000 690.000 l +140.000 690.000 l +140.000 700.000 l +155.000 700.000 l +160.000 695.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +417.00 632.75 Td +(1.5M) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +417.00 641.75 Td +(R2) Tj +ET +2 J +0 j +100 M +1.00 w +0.63 0.00 0.00 RG +[] 0 d +405.00 655.00 10.00 -20.00 re +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +410.000 655.000 m +410.000 665.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +410.000 635.000 m +410.000 625.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 413.70 727.50 Tm +(Batt) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +410.000 705.000 m +405.000 710.000 l +405.000 725.000 l +415.000 725.000 l +415.000 710.000 l +410.000 705.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +186.000 549.000 m +194.000 541.000 l +194.000 549.000 m +186.000 541.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +196.000 549.000 m +204.000 541.000 l +204.000 549.000 m +196.000 541.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +206.000 549.000 m +214.000 541.000 l +214.000 549.000 m +206.000 541.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +276.000 719.000 m +284.000 711.000 l +284.000 719.000 m +276.000 711.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +156.000 719.000 m +164.000 711.000 l +164.000 719.000 m +156.000 711.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 397.00 599.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +410.000 615.000 m +410.000 625.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +401.000 615.000 m +419.000 615.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +404.000 613.000 m +416.000 613.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +407.000 611.000 m +413.000 611.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +409.000 609.000 m +411.000 609.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +410.000 665.000 m +280.000 665.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +417.00 672.75 Td +(1M) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +417.00 681.75 Td +(R1) Tj +ET +2 J +0 j +100 M +1.00 w +0.63 0.00 0.00 RG +[] 0 d +405.00 695.00 10.00 -20.00 re +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +410.000 695.000 m +410.000 705.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +410.000 675.000 m +410.000 665.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 685.000 m +280.000 685.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.01 681.07 Tm +(RBtn) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 685.000 m +295.000 690.000 l +310.000 690.000 l +310.000 680.000 l +295.000 680.000 l +290.000 685.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 99.24 621.60 Tm +(UBtn) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 625.000 m +140.000 620.000 l +125.000 620.000 l +125.000 630.000 l +140.000 630.000 l +145.000 625.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 117.50 676.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +150.000 680.000 m +160.000 680.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +150.000 689.000 m +150.000 671.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +148.000 686.000 m +148.000 674.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +146.000 683.000 m +146.000 677.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +144.000 681.000 m +144.000 679.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 595.000 m +280.000 595.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 655.000 m +280.000 655.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 605.000 m +280.000 605.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 625.000 m +280.000 625.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 92.64 631.40 Tm +(GPSen) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 635.000 m +140.000 630.000 l +125.000 630.000 l +125.000 640.000 l +140.000 640.000 l +145.000 635.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 93.85 651.40 Tm +(GPSrx) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 655.000 m +140.000 650.000 l +125.000 650.000 l +125.000 660.000 l +140.000 660.000 l +145.000 655.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 94.40 641.40 Tm +(GPStx) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 645.000 m +140.000 640.000 l +125.000 640.000 l +125.000 650.000 l +140.000 650.000 l +145.000 645.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 615.000 m +280.000 615.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 635.000 m +280.000 635.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.000 645.000 m +280.000 645.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +345.000 695.000 m +280.000 695.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +345.000 675.000 m +280.000 675.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.00 601.60 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 605.000 m +295.000 610.000 l +310.000 610.000 l +310.000 600.000 l +295.000 600.000 l +290.000 605.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.50 591.60 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 595.000 m +295.000 600.000 l +310.000 600.000 l +310.000 590.000 l +295.000 590.000 l +290.000 595.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 356.00 671.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 675.000 m +345.000 675.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 680.000 m +355.000 670.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.00 621.60 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 625.000 m +295.000 630.000 l +310.000 630.000 l +310.000 620.000 l +295.000 620.000 l +290.000 625.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.00 631.60 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 635.000 m +295.000 640.000 l +310.000 640.000 l +310.000 630.000 l +295.000 630.000 l +290.000 635.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 312.00 641.60 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 645.000 m +295.000 650.000 l +310.000 650.000 l +310.000 640.000 l +295.000 640.000 l +290.000 645.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 311.84 611.60 Tm +(SCk) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 615.000 m +295.000 620.000 l +310.000 620.000 l +310.000 610.000 l +295.000 610.000 l +290.000 615.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 311.70 651.60 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +290.000 655.000 m +295.000 660.000 l +310.000 660.000 l +310.000 650.000 l +295.000 650.000 l +290.000 655.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 361.50 691.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 695.000 m +345.000 695.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +355.000 686.000 m +355.000 704.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +357.000 689.000 m +357.000 701.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +359.000 692.000 m +359.000 698.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +361.000 694.000 m +361.000 696.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 302.50 701.30 Tm +(Batt) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +280.000 705.000 m +285.000 710.000 l +300.000 710.000 l +300.000 700.000 l +285.000 700.000 l +280.000 705.000 l +S +10.00 w +BT +/F1 13 Tf +13.00 TL +0.000 0.000 1.000 rg +1015.00 25.00 Td +(Nom De Tom) Tj +ET +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 647.00 251.60 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +625.000 255.000 m +630.000 260.000 l +645.000 260.000 l +645.000 250.000 l +630.000 250.000 l +625.000 255.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 513.00 297.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +525.000 295.000 m +525.000 285.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +520.000 295.000 m +530.000 295.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +625.000 175.000 m +625.000 215.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 612.00 149.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +625.000 165.000 m +625.000 175.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +616.000 165.000 m +634.000 165.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +619.000 163.000 m +631.000 163.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +622.000 161.000 m +628.000 161.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +624.000 159.000 m +626.000 159.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 474.33 201.85 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 205.000 m +520.000 200.000 l +505.000 200.000 l +505.000 210.000 l +520.000 210.000 l +525.000 205.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 473.74 191.85 Tm +(RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 195.000 m +520.000 190.000 l +505.000 190.000 l +505.000 200.000 l +520.000 200.000 l +525.000 195.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 482.41 231.85 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 235.000 m +520.000 230.000 l +505.000 230.000 l +505.000 240.000 l +520.000 240.000 l +525.000 235.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 476.41 251.85 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 255.000 m +520.000 250.000 l +505.000 250.000 l +505.000 260.000 l +520.000 260.000 l +525.000 255.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 476.48 241.85 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 245.000 m +520.000 240.000 l +505.000 240.000 l +505.000 250.000 l +520.000 250.000 l +525.000 245.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 489.69 221.45 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 225.000 m +520.000 220.000 l +505.000 220.000 l +505.000 230.000 l +520.000 230.000 l +525.000 225.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 647.01 241.15 Tm +(DIO2) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +625.000 245.000 m +630.000 250.000 l +645.000 250.000 l +645.000 240.000 l +630.000 240.000 l +625.000 245.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 474.33 181.85 Tm +(TXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 185.000 m +520.000 180.000 l +505.000 180.000 l +505.000 190.000 l +520.000 190.000 l +525.000 185.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 475.06 261.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +525.000 265.000 m +520.000 260.000 l +505.000 260.000 l +505.000 270.000 l +520.000 270.000 l +525.000 265.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +568.96 298.33 Td +(SX1262_MOD) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +584.58 282.00 Td +(ANT) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 286.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 285.000 m +605.000 285.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +568.96 307.33 Td +(CORE_SX1262) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +582.36 202.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 206.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 205.000 m +605.000 205.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 192.00 Td +(RXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +534.28 196.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 195.000 m +545.000 195.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 182.00 Td +(TXEN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +534.28 186.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 185.000 m +545.000 185.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +579.49 242.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 246.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 245.000 m +605.000 245.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +579.49 252.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 256.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 255.000 m +605.000 255.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +582.36 192.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 196.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 195.000 m +605.000 195.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 282.00 Td +(3V3) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +534.28 286.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 285.000 m +545.000 285.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 202.00 Td +(BUSY) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +534.28 206.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 205.000 m +545.000 205.000 l +S +1.00 w +0.53 0.00 0.00 RG +545.00 265.00 m 545.00 266.66 543.66 268.00 542.00 268.00 c +540.34 268.00 539.00 266.66 539.00 265.00 c +539.00 263.34 540.34 262.00 542.00 262.00 c +543.66 262.00 545.00 263.34 545.00 265.00 c +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 262.00 Td +(RST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +528.57 266.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 265.000 m +539.000 265.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 252.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +528.57 256.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 255.000 m +545.000 255.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 242.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +528.57 246.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 245.000 m +545.000 245.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 232.000 m +548.000 235.000 l +545.000 238.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 232.00 Td +(CLK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +528.57 236.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 235.000 m +545.000 235.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +547.00 222.00 Td +(CS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +528.57 226.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +525.000 225.000 m +545.000 225.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +582.36 182.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 186.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 185.000 m +605.000 185.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +582.36 212.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +610.00 216.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +625.000 215.000 m +605.000 215.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +550.000 295.000 m +600.000 295.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +605.000 290.000 m +605.000 180.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +600.000 175.000 m +550.000 175.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +0.00 g +[] 0 d +545.000 180.000 m +545.000 290.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 290.000 m +545.000 295.000 545.000 295.000 550.000 295.000 c +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +600.000 295.000 m +605.000 295.000 605.000 295.000 605.000 290.000 c +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +605.000 180.000 m +605.000 175.000 605.000 175.000 600.000 175.000 c +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +545.000 180.000 m +545.000 175.000 545.000 175.000 550.000 175.000 c +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 737.72 681.45 Tm +(MCU_RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +820.000 685.000 m +815.000 680.000 l +800.000 680.000 l +800.000 690.000 l +815.000 690.000 l +820.000 685.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +1115.00 362.67 Td +(100uF) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +1115.00 371.67 Td +(C1) Tj +ET +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1113.000 373.000 m +1097.000 373.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +1105.000 365.000 m +1105.000 355.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1105.000 385.000 m +1105.000 377.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1097.000 377.000 m +1113.000 377.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +1105.000 385.000 m +1105.000 395.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1105.000 373.000 m +1105.000 365.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +1065.00 362.67 Td +(100uF) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +1065.00 371.67 Td +(C2) Tj +ET +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1063.000 373.000 m +1047.000 373.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +1055.000 365.000 m +1055.000 355.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1055.000 385.000 m +1055.000 377.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1047.000 377.000 m +1063.000 377.000 l +S +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +1055.000 385.000 m +1055.000 395.000 l +S +1 J +1 j +1.00 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +1055.000 373.000 m +1055.000 365.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 1092.00 329.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1105.000 345.000 m +1105.000 355.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1096.000 345.000 m +1114.000 345.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1099.000 343.000 m +1111.000 343.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1102.000 341.000 m +1108.000 341.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1104.000 339.000 m +1106.000 339.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 1043.00 407.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1055.000 405.000 m +1055.000 395.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1050.000 405.000 m +1060.000 405.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 1042.00 327.76 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1055.000 345.000 m +1055.000 355.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1046.000 345.000 m +1064.000 345.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1049.000 343.000 m +1061.000 343.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1052.000 341.000 m +1058.000 341.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1054.000 339.000 m +1056.000 339.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 1095.00 407.00 Tm +(+5V) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1105.000 405.000 m +1105.000 395.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +1100.000 405.000 m +1110.000 405.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 102.98 611.40 Tm +(SCL) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 615.000 m +140.000 610.000 l +125.000 610.000 l +125.000 620.000 l +140.000 620.000 l +145.000 615.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 101.11 601.40 Tm +(SDA) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +145.000 605.000 m +140.000 600.000 l +125.000 600.000 l +125.000 610.000 l +140.000 610.000 l +145.000 605.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +820.000 685.000 m +840.000 685.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 77.72 661.45 Tm +(MCU_RXEN) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +160.000 665.000 m +155.000 660.000 l +140.000 660.000 l +140.000 670.000 l +155.000 670.000 l +160.000 665.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +160.000 715.000 m +165.000 715.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +621.000 289.000 m +629.000 281.000 l +629.000 289.000 m +621.000 281.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +251.000 439.000 m +259.000 431.000 l +259.000 439.000 m +251.000 431.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +251.000 449.000 m +259.000 441.000 l +259.000 449.000 m +251.000 441.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +341.000 449.000 m +349.000 441.000 l +349.000 449.000 m +341.000 441.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +251.000 409.000 m +259.000 401.000 l +259.000 409.000 m +251.000 401.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +171.000 479.000 m +179.000 471.000 l +179.000 479.000 m +171.000 471.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 432.69 661.28 Tm +(ADC) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +410.000 665.000 m +415.000 670.000 l +430.000 670.000 l +430.000 660.000 l +415.000 660.000 l +410.000 665.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +213.86 728.26 Td +(PRO_MICRO_NRF52840_29P) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +213.86 737.11 Td +(PRO-MICRO) Tj +ET +2 J +0 j +100 M +1.00 w +0.55 0.14 0.14 RG +[] 0 d +180.00 725.00 80.00 -160.00 re +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +234.94 702.00 Td +(BATIN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 706.00 Td +(25) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 705.000 m +260.000 705.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +240.95 692.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 696.00 Td +(24) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 695.000 m +260.000 695.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +243.04 682.00 Td +(RST) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 686.00 Td +(23) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 685.000 m +260.000 685.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +226.28 672.00 Td +(3.3v Out) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 676.00 Td +(22) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 675.000 m +260.000 675.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 632.00 Td +(P1.15) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 636.00 Td +(18) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 635.000 m +260.000 635.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 662.00 Td +(P0.31) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 666.00 Td +(21) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 665.000 m +260.000 665.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 692.00 Td +(P0.08) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 696.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 695.000 m +180.000 695.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 622.00 Td +(P1.13) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 626.00 Td +(17) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 625.000 m +260.000 625.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 652.00 Td +(P0.29) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 656.00 Td +(20) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 655.000 m +260.000 655.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 612.00 Td +(P1.11) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 616.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 615.000 m +260.000 615.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 642.00 Td +(P0.02) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 646.00 Td +(19) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 645.000 m +260.000 645.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 682.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 686.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 685.000 m +180.000 685.000 l +S +1.00 w +0.55 0.14 0.14 RG +180.00 705.00 m 180.00 706.66 178.66 708.00 177.00 708.00 c +175.34 708.00 174.00 706.66 174.00 705.00 c +174.00 703.34 175.34 702.00 177.00 702.00 c +178.66 702.00 180.00 703.34 180.00 705.00 c +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 702.00 Td +(P0.06) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 706.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 705.000 m +174.000 705.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 592.00 Td +(P0.09) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 596.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 595.000 m +260.000 595.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +236.90 602.00 Td +(P0.10) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 606.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 605.000 m +260.000 605.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 602.00 Td +(P1.04) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +162.57 606.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 605.000 m +180.000 605.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 672.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 676.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 675.000 m +180.000 675.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 662.00 Td +(P0.17) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 666.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 665.000 m +180.000 665.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 652.00 Td +(P0.20) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 656.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 655.000 m +180.000 655.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 642.00 Td +(P0.22) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 646.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 645.000 m +180.000 645.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 632.00 Td +(P0.24) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 636.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 635.000 m +180.000 635.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 622.00 Td +(P1.00) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +162.57 626.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 625.000 m +180.000 625.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 612.00 Td +(P0.11) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +162.57 616.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 615.000 m +180.000 615.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 592.00 Td +(P1.06) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +162.57 596.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 595.000 m +180.000 595.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 193.00 568.00 Tm +(P1.01) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 189.00 547.57 Tm +(27) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +190.000 545.000 m +190.000 565.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 203.00 568.00 Tm +(P1.02) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 199.00 547.57 Tm +(28) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +200.000 545.000 m +200.000 565.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 213.00 568.00 Tm +(P1.07) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +0.00 1.00 -1.00 0.00 209.00 547.57 Tm +(29) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +210.000 545.000 m +210.000 565.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +234.94 712.00 Td +(BATIN) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +266.00 716.00 Td +(26) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +280.000 715.000 m +260.000 715.000 l +S +BT +/F1 7 Tf +7.00 TL +0.553 0.137 0.137 rg +183.00 712.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.553 0.137 0.137 rg +168.28 716.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.55 0.14 0.14 RG +[] 0 d +160.000 715.000 m +180.000 715.000 l +S +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +864.25 253.00 Td +(RA-02_C9900010926) Tj +ET +10.00 w +BT +/F3 9 Tf +9.00 TL +0.000 0.000 0.502 rg +864.25 262.00 Td +(RA-02) Tj +ET +2 J +0 j +100 M +1.00 w +0.53 0.00 0.00 RG +[] 0 d +837.000 250.000 m +903.000 250.000 l +904.105 250.000 905.000 249.105 905.000 248.000 c +905.000 162.000 l +905.000 160.895 903.895 160.000 903.000 160.000 c +837.000 160.000 l +835.895 160.000 835.000 161.105 835.000 162.000 c +835.000 248.000 l +835.000 249.105 836.105 250.000 837.000 250.000 c +S +1.00 w +0.53 0.00 0.00 RG +0.53 0.00 0.00 rg +[] 0 d +841.50 245.00 m 841.50 245.83 840.83 246.50 840.00 246.50 c +839.17 246.50 838.50 245.83 838.50 245.00 c +838.50 244.17 839.17 243.50 840.00 243.50 c +840.83 243.50 841.50 244.17 841.50 245.00 c +B +BT +/F1 9 Tf +9.00 TL +0.000 g +838.70 236.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +828.78 241.00 Td +(1) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +825.000 240.000 m +835.000 240.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +838.70 226.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +828.78 231.00 Td +(2) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +825.000 230.000 m +835.000 230.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 216.00 Td +(3.3V) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 221.00 Td +(3) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 220.000 m +835.000 220.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 206.00 Td +(RESET) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 211.00 Td +(4) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 210.000 m +835.000 210.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 196.00 Td +(DIO0) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 201.00 Td +(5) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 200.000 m +835.000 200.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 186.00 Td +(DIO1) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 191.00 Td +(6) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 190.000 m +835.000 190.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 176.00 Td +(DIO2) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 181.00 Td +(7) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 180.000 m +835.000 180.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +838.70 166.00 Td +(DIO3) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +828.78 171.00 Td +(8) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +825.000 170.000 m +835.000 170.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +880.66 166.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +905.50 171.00 Td +(9) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +915.000 170.000 m +905.000 170.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +877.79 176.00 Td +(DIO4) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 181.00 Td +(10) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 180.000 m +905.000 180.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +877.79 186.00 Td +(DIO5) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 191.00 Td +(11) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 190.000 m +905.000 190.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +882.64 196.00 Td +(SCK) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 201.00 Td +(12) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 200.000 m +905.000 200.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +876.71 206.00 Td +(MISO) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 211.00 Td +(13) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 210.000 m +905.000 210.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +876.71 216.00 Td +(MOSI) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 221.00 Td +(14) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 220.000 m +905.000 220.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +882.27 226.00 Td +(NSS) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 0.000 1.000 rg +905.50 231.00 Td +(15) Tj +ET +1 J +1 j +1.00 w +0.53 0.00 0.00 RG +[] 0 d +915.000 230.000 m +905.000 230.000 l +S +BT +/F1 9 Tf +9.00 TL +0.000 g +880.66 236.00 Td +(GND) Tj +ET +BT +/F1 9 Tf +9.00 TL +0.000 g +905.50 241.00 Td +(16) Tj +ET +1 J +1 j +1.00 w +0.00 G +[] 0 d +915.000 240.000 m +905.000 240.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 773.85 196.40 Tm +(BUSY) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +825.000 200.000 m +820.000 195.000 l +805.000 195.000 l +805.000 205.000 l +820.000 205.000 l +825.000 200.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 937.00 226.60 Tm +(CS) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +915.000 230.000 m +920.000 235.000 l +935.000 235.000 l +935.000 225.000 l +920.000 225.000 l +915.000 230.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 936.71 196.60 Tm +(SCK) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +915.000 200.000 m +920.000 205.000 l +935.000 205.000 l +935.000 195.000 l +920.000 195.000 l +915.000 200.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 937.00 216.60 Tm +(MOSI) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +915.000 220.000 m +920.000 225.000 l +935.000 225.000 l +935.000 215.000 l +920.000 215.000 l +915.000 220.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 937.00 206.60 Tm +(MISO) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +915.000 210.000 m +920.000 215.000 l +935.000 215.000 l +935.000 205.000 l +920.000 205.000 l +915.000 210.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 775.06 206.57 Tm +(NRST) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +825.000 210.000 m +820.000 205.000 l +805.000 205.000 l +805.000 215.000 l +820.000 215.000 l +825.000 210.000 l +S +BT +/F2 11 Tf +11.00 TL +0.000 0.000 1.000 rg +1.00 -0.00 0.00 1.00 784.19 186.40 Tm +(IRQ) Tj +ET +1 J +1 j +1.00 w +0.00 0.00 1.00 RG +0.00 g +[] 0 d +825.000 190.000 m +820.000 185.000 l +805.000 185.000 l +805.000 195.000 l +820.000 195.000 l +825.000 190.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 931.50 166.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +925.000 170.000 m +915.000 170.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +925.000 161.000 m +925.000 179.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +927.000 164.000 m +927.000 176.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +929.000 167.000 m +929.000 173.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +931.000 169.000 m +931.000 171.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 931.50 236.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +925.000 240.000 m +915.000 240.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +925.000 231.000 m +925.000 249.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +927.000 234.000 m +927.000 246.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +929.000 237.000 m +929.000 243.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +931.000 239.000 m +931.000 241.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 782.50 236.00 Tm +(GND) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +815.000 240.000 m +825.000 240.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +815.000 249.000 m +815.000 231.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +813.000 246.000 m +813.000 234.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +811.000 243.000 m +811.000 237.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +809.000 241.000 m +809.000 239.000 l +S +1 J +1 j +1.00 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +825.000 240.000 m +825.000 230.000 l +S +BT +/F2 12 Tf +12.00 TL +0.000 g +1.00 -0.00 0.00 1.00 789.82 216.00 Tm +(VCC) Tj +ET +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +815.000 220.000 m +825.000 220.000 l +S +1 J +1 j +1.00 w +0.00 G +0.00 g +[] 0 d +815.000 215.000 m +815.000 225.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +911.000 194.000 m +919.000 186.000 l +919.000 194.000 m +911.000 186.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +911.000 184.000 m +919.000 176.000 l +919.000 184.000 m +911.000 176.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +821.000 184.000 m +829.000 176.000 l +829.000 184.000 m +821.000 176.000 l +S +1 J +1 j +1.00 w +0.20 0.80 0.20 RG +[] 0 d +821.000 174.000 m +829.000 166.000 l +829.000 174.000 m +821.000 166.000 l +S +0.80 0.00 0.00 rg +652.50 420.00 m 652.50 421.38 651.38 422.50 650.00 422.50 c +648.62 422.50 647.50 421.38 647.50 420.00 c +647.50 418.62 648.62 417.50 650.00 417.50 c +651.38 417.50 652.50 418.62 652.50 420.00 c +f +0.80 0.00 0.00 rg +942.50 415.00 m 942.50 416.38 941.38 417.50 940.00 417.50 c +938.62 417.50 937.50 416.38 937.50 415.00 c +937.50 413.62 938.62 412.50 940.00 412.50 c +941.38 412.50 942.50 413.62 942.50 415.00 c +f +0.80 0.00 0.00 rg +942.50 395.00 m 942.50 396.38 941.38 397.50 940.00 397.50 c +938.62 397.50 937.50 396.38 937.50 395.00 c +937.50 393.62 938.62 392.50 940.00 392.50 c +941.38 392.50 942.50 393.62 942.50 395.00 c +f +0.80 0.00 0.00 rg +942.50 385.00 m 942.50 386.38 941.38 387.50 940.00 387.50 c +938.62 387.50 937.50 386.38 937.50 385.00 c +937.50 383.62 938.62 382.50 940.00 382.50 c +941.38 382.50 942.50 383.62 942.50 385.00 c +f +0.80 0.00 0.00 rg +942.50 375.00 m 942.50 376.38 941.38 377.50 940.00 377.50 c +938.62 377.50 937.50 376.38 937.50 375.00 c +937.50 373.62 938.62 372.50 940.00 372.50 c +941.38 372.50 942.50 373.62 942.50 375.00 c +f +0.80 0.00 0.00 rg +652.50 490.00 m 652.50 491.38 651.38 492.50 650.00 492.50 c +648.62 492.50 647.50 491.38 647.50 490.00 c +647.50 488.62 648.62 487.50 650.00 487.50 c +651.38 487.50 652.50 488.62 652.50 490.00 c +f +0.80 0.00 0.00 rg +942.50 465.00 m 942.50 466.38 941.38 467.50 940.00 467.50 c +938.62 467.50 937.50 466.38 937.50 465.00 c +937.50 463.62 938.62 462.50 940.00 462.50 c +941.38 462.50 942.50 463.62 942.50 465.00 c +f +0.80 0.00 0.00 rg +412.50 665.00 m 412.50 666.38 411.38 667.50 410.00 667.50 c +408.62 667.50 407.50 666.38 407.50 665.00 c +407.50 663.62 408.62 662.50 410.00 662.50 c +411.38 662.50 412.50 663.62 412.50 665.00 c +f +0.80 0.00 0.00 rg +162.50 680.00 m 162.50 681.38 161.38 682.50 160.00 682.50 c +158.62 682.50 157.50 681.38 157.50 680.00 c +157.50 678.62 158.62 677.50 160.00 677.50 c +161.38 677.50 162.50 678.62 162.50 680.00 c +f +0.80 0.00 0.00 rg +627.50 185.00 m 627.50 186.38 626.38 187.50 625.00 187.50 c +623.62 187.50 622.50 186.38 622.50 185.00 c +622.50 183.62 623.62 182.50 625.00 182.50 c +626.38 182.50 627.50 183.62 627.50 185.00 c +f +0.80 0.00 0.00 rg +627.50 195.00 m 627.50 196.38 626.38 197.50 625.00 197.50 c +623.62 197.50 622.50 196.38 622.50 195.00 c +622.50 193.62 623.62 192.50 625.00 192.50 c +626.38 192.50 627.50 193.62 627.50 195.00 c +f +0.80 0.00 0.00 rg +627.50 205.00 m 627.50 206.38 626.38 207.50 625.00 207.50 c +623.62 207.50 622.50 206.38 622.50 205.00 c +622.50 203.62 623.62 202.50 625.00 202.50 c +626.38 202.50 627.50 203.62 627.50 205.00 c +f +0.80 0.00 0.00 rg +827.50 240.00 m 827.50 241.38 826.38 242.50 825.00 242.50 c +823.62 242.50 822.50 241.38 822.50 240.00 c +822.50 238.62 823.62 237.50 825.00 237.50 c +826.38 237.50 827.50 238.62 827.50 240.00 c +f +q +102.00 0 0 20.00 706.00 30.50 cm +/I0 Do +Q +endstream +endobj +1 0 obj +<> +endobj +5 0 obj +<< +/Descent -209 +/CapHeight 727 +/StemV 0 +/Type /FontDescriptor +/Flags 32 +/FontBBox [-559 -303 1446 1050] +/FontName /Verdana +/ItalicAngle 0 +/Ascent 1005 +>> +endobj +6 0 obj +<> +endobj +7 0 obj +<< +/Type /Font +/BaseFont /Times-Roman +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +8 0 obj +<< +/Descent -325 +/CapHeight 500 +/StemV 80 +/Type /FontDescriptor +/Flags 32 +/FontBBox [-665 -325 2000 1006] +/FontName /Arial +/ItalicAngle 0 +/Ascent 1006 +>> +endobj +9 0 obj +<> +endobj +10 0 obj +<< +/Type /XObject +/Subtype /Image +/Width 520 +/Height 105 +/ColorSpace /DeviceRGB +/BitsPerComponent 8 +/DecodeParms <> +/SMask 11 0 R +/Length 6251 +/Filter /FlateDecode +>> +stream +xKqǣ{$V>:dm]uXbřZ>ـlhy-a$`!qMrN|G^_LUz8gfdf0~ SEQe"EQaAQEۢ&\gn_@QJk#o(sdAO%1GŘf!Eykn!׍&쯯),rlUӳR(p\DUnGo),m(.@Qҳ\9TEYdd#ܼsu.)rUXWqvkG<7yW(Jk)˶yns ?'ȶ섡RtOQ:oNsk(kȯ`U7(ƬjY8n+jRݠ(ʚK@+U೸֙ٚ4Bd^T7( +W ㊞g)}] 4TIQc2+D+H ]noh6<+S`?w~N*c{!q~j`z&VPRe 4hy4AQ5!vQo_}?cEQր*Q >yû(>?-hQV₞ɡ7ߦb~>HRǸ!<^}v~[TTaYUmAX$;9lφ"w9$3;yFQ<b~x-Q.}| ӱu +=9ԭ,jic>9R#bɪ|X_4eb'6~/v K!I"Nbejӎa?f򃔼b꧃1N 3ȺwErU4;q5A6<0tϤ"/R >X$%AZ1c{od6^Sr)k-䔎zD/⇺l,bzs&gGL1HXɲUS]ҋRBrēwLwX|楔]2CI2w,!S*Nf&Ybd]]9U`~qQ]e3}GؑJRYQ඾r֌.͌uNO79ĝ(0'OvJg{d ٥wq9 d+,өQBV=>qU6FB%1ڷD؈_gVPW)By24qaJԌ$pk8q]t q.!y-8́},wȷP%?C>4pTa߇8'ZNm19 m>Q eMi$- :1̱mt^"\˩ 84R!t "!W' }g>fd5hDuO3|m 0I?x]r fR4H4 8BKrYA1cL:{%o;gZpD1[{P|=`2(K^6gr_ 9Nو? 9,zYD4<*W)*/ws8y+<.E  嚞˹/u%NQA>9ϴch @93hvs~~I7k[|9)s&*þ[<#e +ٜӓ(m!èkzP\`\̞hOa^Q]Bvl:P]}~Ո~zyfduۅjz'> )o\n`i%4Nk4G RI]/[|M=.-uV'W3A̯ _:<`I-jFLP]KcH&Ϙ~ W178YnW=!l 3n4)ZPeS V5JR1=9ʾ0ɰAʛt1_d%gh l3%c +nŔZ!g?+sDNoz8'"L5(BY;q5~'ųZ"慊o?JaЛc\%\MsɔiLq]PE['Uʎ_z7(C3rt$@EBe ~9IoN@2?ԫ܍Q972ý.3@v^_}xZɶn\rR. ɳzz_MD I"t:V^Õ +2/;؁y 9 +©h  +5vWP޻H#n 6*8W$1{ eB*rb4$!&?˵bJŰr tǀYGȥI +~ǰװO +NRT62Oy\Yw񑭖C{kKl/,4_}5iCpQ ~"(Py.x1m0Mrڧ/ug]|&S_.=ę!V!t=)l7 t:ݤ'REgH&w 9Zr]3ܺrc;hH9yK *g\mcbG`M@Qj<|)~Et +8;N/$%4qI_KSp{pkx;Vi7u_N$C`F67ˣM-|2(/5)M*>] &%[aǫG$ +B=etHLEy0{oD̔KMpT 7FDA7?7nL aRq Q[^1@(R@lk7 \pRa [yC;e Dx{RSZ\;GɞJh^ipNbH݈x;^XRƼ\gbMBTK-Pp;mpP.v:j ;>*o +ĽIG1|%z((y}D +ć%O1$(wO _=Â7)^'*Bݲ#ULc 6p7nPȫN+\^y;PjG82ܚG?!Vne2doŭϼ +q1JO텘"ӻA n _5mE~qTiwu 8+i*x؆ Vu+^f|`(pp8ԔK} +Zq9= %&6紦uKe }FX\q5&HOhӴTGw;G*@ӡ`n]0ss}ZWhNѰt\\ JYEpN1'{im[/`5a!np)'6}ڟBUǭ~嗩op:Vf/fV F[ !t'<} S1ţc8}.4baΉ"+)!u(ofO| qB K?wCi!bѕ`+bjb1+ /miɭ g.X:rgUKK,3rڐf">[)˚+Dj bna 5[oL"pe|r(L^e̟gQYm5P]tݬĝ鐭xj1ՅDe\X[DV7TEF6/C@hbo1A`PoT:-݈}Vq!,J_j%D1#7;D$I(St(0'KK\SW}/;*b>)9]Jw+[CDi,ТˣRIᅖZe@l=Qbk tjAT`&wm3@] r28\ݸREMP+*zE❩{~|ԃMlwǶpZfo@3/M`cw$V LQ.%D6v]/p*4B )Ddb5~| +J +$ ۝zW3ovѨ}.R{L%o#4>݂q)C?.$a,nl&vJ,c >l*U4v)ɢ +iͿUM`娘lSƩP0؄Ha>"IUh+VQ7aJQr.6ҷǀf3@ŕ +z$e&SR#}[M"ڊPңey׀UA_bP1%2r JTd )J2&2M hIu*k +F\UQ kM}v(Fjb S(I"kc QO%)Ǧ(4L0gUwX^4'R_hXgmׯR9YiF|yLʕ.-%]g^\ϜTRSL1hAI6E  JZt)(PŠ(\@(rF- +endstream +endobj +11 0 obj +<< +/Type /XObject +/Subtype /Image +/Width 520 +/Height 105 +/ColorSpace /DeviceGray +/BitsPerComponent 8 +/DecodeParms <> +/Length 6577 +/Filter /FlateDecode +>> +stream +x] M?c=ȳJQj"*"xIJhGQ"o袌4(`B0_}{}3W3[g{{{k p*Bn"5 -߯Ds0uN\'!WfBKl5Gt\1g}vD]EԄ\᾽3珧/Sډ&B!ދIɻ:fVW&>ľ~Jz\z "`O>o/t[mGT]/u }EM4(uBW+I~ @SvXMq:~=|EP(BxF=hƕnWV/Ϗjpw,z~PvЬ]9ޕ,gv{NM[u)+++?DPɩ~^vJu? )2tGqL +Ï*ʋIȌ'#GR$$뵏[<ҡ䔊]]L'{KG9x)Lԉ +0G6.ݡ92P-b|N2NU#4}K&jG DԷc#By&ZdQ%ND#BݵԚv>)s\RPB>Wiк3k. +p5|aΈ ԈQQ5xO!XdAB"9g~2P<Z2s1v/tFtd/4Yx7wa鮋(:Bc7 E`~wa'S>{~ +0ㄠ)9Zm Δ>EE-# +_xEbeAvc]DeCӏOs@j=oj+58`~W/x} љ^VzMQv7GU| CEbTK0CEңU%ێ^NO{K-q"+W`No`VW~md1JwKf.*(c*s= +@qǭ/G|#A8 tf:Vo 2 g| <ʬ3i|r>V[%{gX7닅;%6&Z8(˰ؚ4+{> 3'HgvM=MBt:LnukTl4ӉHDuNşvGXX~!,!5 :M_cssQI>k#+0~ǎj'1\%P8ՠ* +C"hoW!;yTv9.:64lLd6cm)gӕzʅwLd`:kj/f5O'3w2^ $b^~ejS[z]*_~c#eI2[BӧC.⴨Q({z+WnݺB<=p2nCQ{w)[ב{\zZl[h.jyMt9]'pn7Fخ8Qp%| kN»3g2{ۜ#Հػ/r @`Six΀?_wijpo"9{sS]r61B)z<;h!/ eT  nGAQis79Wbp k=i~ݵ )KX[n +K3w̧$Apbz#D*J)2$)Wo&9VWeޱL\4@)69ֆՠH23`O@?zm~ GBQI ?=))Q,p1'nўXfb,̎ZY06 GYw1=n32 "0pyq0WH|,|WXm`R)^o;{ƌ&?Se * :D?d6G+RQsi9+v +EqwKmfP7JgNJ<ۀ3n-*:侟HvlwRs^0GjFy-NHu{T8xЪ̽ lmd`|8X~g.ty H/m' 4/8Nvor(dO9‹@ 1 bՄoA*e1Z쎕&L`- lR,l1xwݞ9t>D} p1~&)%,,0^j  4>N}춖1w6miW0crAI~aߊ?*{JIڢ &ѿ+qTnLdz.~vKDFyо\y%[6mjrg">tCrRY)S@ڂ`ZرB8]`.f1J|!\2Yc:H6c/Qۜvo^aL% Y"#qwǛqW_i,2Kz=◧IdV^\Y.G+ǻ6Dў4S)UrCD +7#lg]|H'bRNUt~i' n+ f&ݍPr'Rd:4".;mi氧/=j훌wJc neWCn/PA5^b6I#6O%2A|ǧ㽎ԛ^MN@e.z 1ۓ ý6(-+j 6g);8)tKTn?pgN{砱 +L!KI 4aҎ: +r \4l'qK)o5UY#/h 16ƁB2dV yK +6F8"ƍSSK_dRh4*_?LѫVS[+?޺ IzE=B"ҔH׸3n+4d(b"`W~D}Gerp{)/B"hMh@#j~4-f`IkLtؐΒԣI4&ݿ֬_7KR$hyhJw3Tu0W|P&L/Y50_d&ןZB. B4eӋPB?% +xYŰt# m#C`Xhѩp'zOCd~7 p?DQaBC%'Qn'w 9{JCitWq,YO֦ 0:෤'҉FF߹:iy* ~%k/aXxQT4 E Z%{sIb&EjMQw4붘.qT7P@j@LJ7AhY<3P`P(&ia8=n5'>t^B͗Ym\_p2]KN/*5^1@&OVJ` +hN%:OwoF|r`oX"-[ATw m0y( ǂہ[-68*6_558$Cne;h҉1c;[jȱ&gיDvoc߮I|RZ> BO>rBWȉT!9Oe 0+:BcbBP9i{6mB' e>Ty#xOZH{tT<` 3ރә@2l -&@WA>KZumx(11f8RuJWD+(f_ld9qmx1A65nd3RL~ +\rt4z*yKo܀LlYwO/;LoXeBG4WOpWCx) aR$O B?* ʹdՌ]lI yсK|3ܺ60s]n@{)R]#*1ѢX5K,-j."n^`W.8ufR;=w T"a´㓽l(.~iX\kf=Uaۏ*{IcEa1ʹTsxXQ,~Qė@梽R,@UR-J))J$}aͣ/)UXQ3[e¶5KFNe`fEїi Ċ |r|+de&4\!qaj)2Z[E] oz #HFR?2.beгPd +1^a4S)]Hph^@7 +WmNIY]|9ŋK]@toYɱJmͯ7^Al2+XWZ0^߱]^025_f4#/UGCJG[<~7ݲԎۭ5bչk}y1Ԭ0r2euZQM/6Z,`|S2ʺMJ(83w [n +}~s<_t)OΎT+(Zd%I5|`T뉃 +* ͑tb"F4 2/*>>/ԣ@ ;$X2wׂiM=agCʽFWXl˨+RT^Or Cwp]"H:u"##ҘRN/_z#)Kj=r+Vy<+Xn\G!!B_8V'w#Ev·s`EPR7«À!!ZAuTLmV#"oƐlogc"c';oHok/WE0]IXF]!wE0Xy-lx3ōaQ + tjMnUBQf<_E X4f.]A0FIϋ*> ;\DPp#AT ?7 +endstream +endobj +2 0 obj +<< +/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << +/F1 6 0 R +/F2 7 0 R +/F3 9 0 R +>> +/XObject << +/I0 10 0 R +>> +>> +endobj +12 0 obj +<< +/Producer (jsPDF 0.0.0) +/CreationDate (D:20241217154849-00'00') +>> +endobj +13 0 obj +<< +/Type /Catalog +/Pages 1 0 R +/OpenAction [3 0 R /FitH null] +/PageLayout /OneColumn +>> +endobj +xref +0 14 +0000000000 65535 f +0000102899 00000 n +0000118853 00000 n +0000000015 00000 n +0000000125 00000 n +0000102956 00000 n +0000103126 00000 n +0000104180 00000 n +0000104307 00000 n +0000104476 00000 n +0000105520 00000 n +0000112030 00000 n +0000118988 00000 n +0000119074 00000 n +trailer +<< +/Size 14 +/Root 13 0 R +/Info 12 0 R +/ID [ <906A4C76C35816C42EB6FFD13B3B7D92> <906A4C76C35816C42EB6FFD13B3B7D92> ] +>> +startxref +119178 +%%EOF \ No newline at end of file diff --git a/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h b/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h new file mode 100644 index 000000000..2258c3135 --- /dev/null +++ b/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h @@ -0,0 +1,17 @@ +#include "RadioLib.h" + +// RF Switch Matrix SubG RFO_HP_LF / RFO_LP_LF / RFI_[NP]_LF0 +// DIO5 -> RFSW0_V1 +// DIO6 -> RFSW1_V2 +// DIO7 -> ANT_CTRL_ON + ESP_IO9/LR_GPS_ANT_DC_EN -> RFI_GPS (Bias-T GPS) (LR11x0 only) + +static const uint32_t rfswitch_dio_pins[] = {RADIOLIB_LR11X0_DIO5, RADIOLIB_LR11X0_DIO6, RADIOLIB_LR11X0_DIO7, RADIOLIB_NC, + RADIOLIB_NC}; + +static const Module::RfSwitchMode_t rfswitch_table[] = { + // mode DIO5 DIO6 DIO7 + {LR11x0::MODE_STBY, {LOW, LOW, LOW}}, {LR11x0::MODE_RX, {HIGH, LOW, LOW}}, + {LR11x0::MODE_TX, {LOW, HIGH, LOW}}, {LR11x0::MODE_TX_HP, {LOW, HIGH, LOW}}, + {LR11x0::MODE_TX_HF, {LOW, LOW, LOW}}, {LR11x0::MODE_GNSS, {LOW, LOW, HIGH}}, + {LR11x0::MODE_WIFI, {LOW, LOW, LOW}}, END_OF_MODE_TABLE, +}; \ No newline at end of file diff --git a/variants/diy/nrf52_promicro_diy_tcxo/variant.h b/variants/diy/nrf52_promicro_diy_tcxo/variant.h index 5c535ba1e..6ffb86cff 100644 --- a/variants/diy/nrf52_promicro_diy_tcxo/variant.h +++ b/variants/diy/nrf52_promicro_diy_tcxo/variant.h @@ -122,12 +122,13 @@ NRF52 PRO MICRO PIN ASSIGNMENT #define USE_SX1262 #define USE_RF95 #define USE_SX1268 +#define USE_LR1121 // RF95 CONFIG -#define LORA_DIO0 (0 + 29) // P0.10 IRQ +#define LORA_DIO0 (0 + 29) // P0.29 BUSY #define LORA_DIO1 (0 + 10) // P0.10 IRQ -#define LORA_RESET (0 + 9) // P0.09 +#define LORA_RESET (0 + 9) // P0.09 NRST // RX/TX for RFM95/SX127x #define RF95_RXEN (0 + 17) // P0.17 @@ -143,6 +144,19 @@ NRF52 PRO MICRO PIN ASSIGNMENT #define SX126X_RXEN (0 + 17) // P0.17 #define SX126X_TXEN RADIOLIB_NC // Assuming that DIO2 is connected to TXEN pin. If not, TXEN must be connected. +// LR1121 +#ifdef USE_LR1121 +#define LR1121_IRQ_PIN (0 + 10) // P0.10 IRQ +#define LR1121_NRESET_PIN LORA_RESET // P0.09 NRST +#define LR1121_BUSY_PIN (0 + 29) // P0.29 BUSY +#define LR1121_SPI_NSS_PIN LORA_CS // P1.13 +#define LR1121_SPI_SCK_PIN LORA_SCK +#define LR1121_SPI_MOSI_PIN LORA_MOSI +#define LR1121_SPI_MISO_PIN LORA_MISO +#define LR11X0_DIO3_TCXO_VOLTAGE 1.8 +#define LR11X0_DIO_AS_RF_SWITCH +#endif + // #define SX126X_MAX_POWER 8 set this if using a high-power board! /* @@ -164,6 +178,7 @@ settings. | Seeed | Wio-SX1262 | yes | Int | Sooooo cute! | | AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** | | RF Solutions | RFM95 | No | Int | Untested | +| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio | */ @@ -179,4 +194,4 @@ extern float tcxoVoltage; // make this available everywhere * Arduino objects - C++ only *----------------------------------------------------------------------------*/ -#endif +#endif \ No newline at end of file