Compare commits
8 Commits
18f1211428
...
main
Author | SHA1 | Date | |
---|---|---|---|
8a2c0a60d5
|
|||
07f955d949
|
|||
b7f47a60c1
|
|||
295004db97
|
|||
c2e38457b9
|
|||
520c0c0efd
|
|||
21ead32851
|
|||
e173d1ec51
|
@@ -22,6 +22,7 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
idf_ver: [release-v5.4, release-v5.5, latest]
|
idf_ver: [release-v5.4, release-v5.5, latest]
|
||||||
idf_target:
|
idf_target:
|
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Desktop (please complete the following information):**
|
|
||||||
- OS: [e.g. iOS]
|
|
||||||
- Browser [e.g. chrome, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Smartphone (please complete the following information):**
|
|
||||||
- Device: [e.g. iPhone6]
|
|
||||||
- OS: [e.g. iOS8.1]
|
|
||||||
- Browser [e.g. stock browser, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,5 +6,5 @@
|
|||||||
**/pcbway_production/
|
**/pcbway_production/
|
||||||
**/*_front.png
|
**/*_front.png
|
||||||
**/*_back.png
|
**/*_back.png
|
||||||
**/*_schematics.png
|
**/*_schematics*.png
|
||||||
**/*_board.pdf
|
**/*_board.pdf
|
||||||
|
@@ -14,7 +14,11 @@ esp_err_t wled_init(void)
|
|||||||
led_strip_config_t strip_config = {.strip_gpio_num = CONFIG_WLED_DIN_PIN,
|
led_strip_config_t strip_config = {.strip_gpio_num = CONFIG_WLED_DIN_PIN,
|
||||||
.max_leds = led_matrix.size,
|
.max_leds = led_matrix.size,
|
||||||
.led_model = LED_MODEL_WS2812,
|
.led_model = LED_MODEL_WS2812,
|
||||||
.color_component_format = LED_STRIP_COLOR_COMPONENT_FMT_GRB,
|
#if CONFIG_WLED_WITH_WHITE
|
||||||
|
.color_component_format = LED_STRIP_COLOR_COMPONENT_FMT_GRBW,
|
||||||
|
#else
|
||||||
|
.color_component_format = LED_STRIP_COLOR_COMPONENT_FMT_RGB,
|
||||||
|
#endif
|
||||||
.flags = {
|
.flags = {
|
||||||
.invert_out = false,
|
.invert_out = false,
|
||||||
}};
|
}};
|
||||||
|
@@ -7,26 +7,21 @@
|
|||||||
|
|
||||||
static const char *TAG = "outdoor";
|
static const char *TAG = "outdoor";
|
||||||
|
|
||||||
// Timer resolution (10 bit = 1024 steps)
|
#define LEDC_RESOLUTION LEDC_TIMER_10_BIT // Timer resolution (10 bit = 1024 steps)
|
||||||
#define LEDC_RESOLUTION LEDC_TIMER_10_BIT
|
|
||||||
#define MAX_DUTY 1023
|
#define MAX_DUTY 1023
|
||||||
|
|
||||||
// Constant brightness for the "normal state" (approx. 90%)
|
#define NORMAL_DUTY (MAX_DUTY * 0.9) // 90% brightness
|
||||||
#define NORMAL_DUTY (MAX_DUTY * 0.9)
|
|
||||||
|
|
||||||
// Parameters for flickering
|
#define FLICKER_CHANCE 2 // 2% chance of flickering per cycle
|
||||||
#define FLICKER_CHANCE 5 // 5% chance of flickering per cycle
|
|
||||||
#define FLICKER_COUNT 8 // Number of brightness changes during a flicker
|
#define FLICKER_COUNT 8 // Number of brightness changes during a flicker
|
||||||
|
|
||||||
TaskHandle_t outdoor_task_handle = NULL;
|
TaskHandle_t outdoor_task_handle = NULL;
|
||||||
|
|
||||||
void outdoor_task(void *pvParameters)
|
void outdoor_task(void *pvParameters)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Simulation of a defective light bulb started.");
|
|
||||||
|
|
||||||
int led_pin = *(int *)pvParameters;
|
int led_pin = *(int *)pvParameters;
|
||||||
|
|
||||||
// 1. LEDC timer configuration
|
|
||||||
ledc_timer_config_t ledc_timer = {.speed_mode = LEDC_LOW_SPEED_MODE,
|
ledc_timer_config_t ledc_timer = {.speed_mode = LEDC_LOW_SPEED_MODE,
|
||||||
.timer_num = LEDC_TIMER_0,
|
.timer_num = LEDC_TIMER_0,
|
||||||
.duty_resolution = LEDC_RESOLUTION,
|
.duty_resolution = LEDC_RESOLUTION,
|
||||||
@@ -34,7 +29,6 @@ void outdoor_task(void *pvParameters)
|
|||||||
.clk_cfg = LEDC_AUTO_CLK};
|
.clk_cfg = LEDC_AUTO_CLK};
|
||||||
ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer));
|
ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer));
|
||||||
|
|
||||||
// 2. LEDC channel configuration
|
|
||||||
ledc_channel_config_t ledc_channel = {.speed_mode = LEDC_LOW_SPEED_MODE,
|
ledc_channel_config_t ledc_channel = {.speed_mode = LEDC_LOW_SPEED_MODE,
|
||||||
.channel = LEDC_CHANNEL_0,
|
.channel = LEDC_CHANNEL_0,
|
||||||
.timer_sel = LEDC_TIMER_0,
|
.timer_sel = LEDC_TIMER_0,
|
||||||
@@ -44,40 +38,38 @@ void outdoor_task(void *pvParameters)
|
|||||||
.hpoint = 0};
|
.hpoint = 0};
|
||||||
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel));
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel));
|
||||||
|
|
||||||
// 3. Main loop with flicker logic
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// First, set the LED to its normal brightness
|
|
||||||
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, NORMAL_DUTY);
|
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, NORMAL_DUTY);
|
||||||
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
|
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
|
||||||
|
|
||||||
// Random trigger for flickering
|
uint32_t random_val = esp_random() % 100;
|
||||||
uint32_t random_val = esp_random() % 100; // Random number between 0 and 99
|
|
||||||
|
|
||||||
if (random_val < FLICKER_CHANCE)
|
if (random_val < FLICKER_CHANCE)
|
||||||
{
|
{
|
||||||
// Start flicker sequence
|
|
||||||
for (int i = 0; i < FLICKER_COUNT; i++)
|
for (int i = 0; i < FLICKER_COUNT; i++)
|
||||||
{
|
{
|
||||||
// Set a random, lower brightness (e.g., 30-70% of normal brightness)
|
|
||||||
uint32_t flicker_duty = (NORMAL_DUTY * 0.3) + (esp_random() % (uint32_t)(NORMAL_DUTY * 0.4));
|
uint32_t flicker_duty = (NORMAL_DUTY * 0.3) + (esp_random() % (uint32_t)(NORMAL_DUTY * 0.4));
|
||||||
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, flicker_duty);
|
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, flicker_duty);
|
||||||
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
|
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
|
||||||
|
|
||||||
// Short, random delay for irregular flickering
|
|
||||||
vTaskDelay(pdMS_TO_TICKS(20 + (esp_random() % 50)));
|
vTaskDelay(pdMS_TO_TICKS(20 + (esp_random() % 50)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// A fixed delay in normal operation
|
|
||||||
vTaskDelay(pdMS_TO_TICKS(100));
|
vTaskDelay(pdMS_TO_TICKS(100));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t outdoor_start(void)
|
esp_err_t outdoor_start(void)
|
||||||
{
|
{
|
||||||
static const int led_pin = 13;
|
ESP_LOGI(TAG, "Simulation of a defective light bulb started.");
|
||||||
xTaskCreate(outdoor_task, "outdoor_task", 2048, (void *)&led_pin, 5, &outdoor_task_handle);
|
|
||||||
|
static const int led_left_pin = CONFIG_LED_PIN_LEFT;
|
||||||
|
xTaskCreate(outdoor_task, "outdoor_task_left", 2048, (void *)&led_left_pin, 5, &outdoor_task_handle);
|
||||||
|
|
||||||
|
static const int led_right_pin = CONFIG_LED_PIN_RIGHT;
|
||||||
|
xTaskCreate(outdoor_task, "outdoor_task_right", 2048, (void *)&led_right_pin, 5, &outdoor_task_handle);
|
||||||
|
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
VALUE_TYPE_STRING,
|
VALUE_TYPE_STRING,
|
||||||
|
VALUE_TYPE_INT8,
|
||||||
VALUE_TYPE_INT32,
|
VALUE_TYPE_INT32,
|
||||||
} persistence_value_type_t;
|
} persistence_value_type_t;
|
||||||
|
|
||||||
|
@@ -10,6 +10,149 @@ static const char *TAG = "persistence";
|
|||||||
static nvs_handle_t persistence_handle;
|
static nvs_handle_t persistence_handle;
|
||||||
static SemaphoreHandle_t persistence_mutex;
|
static SemaphoreHandle_t persistence_mutex;
|
||||||
|
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "nvs.h"
|
||||||
|
#include "nvs_flash.h"
|
||||||
|
|
||||||
|
static const char *nvs_type_to_str(nvs_type_t type)
|
||||||
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case NVS_TYPE_U8:
|
||||||
|
return "U8";
|
||||||
|
case NVS_TYPE_I8:
|
||||||
|
return "I8";
|
||||||
|
case NVS_TYPE_U16:
|
||||||
|
return "U16";
|
||||||
|
case NVS_TYPE_I16:
|
||||||
|
return "I16";
|
||||||
|
case NVS_TYPE_U32:
|
||||||
|
return "U32";
|
||||||
|
case NVS_TYPE_I32:
|
||||||
|
return "I32";
|
||||||
|
case NVS_TYPE_U64:
|
||||||
|
return "U64";
|
||||||
|
case NVS_TYPE_I64:
|
||||||
|
return "I64";
|
||||||
|
case NVS_TYPE_STR:
|
||||||
|
return "STR";
|
||||||
|
case NVS_TYPE_BLOB:
|
||||||
|
return "BLOB";
|
||||||
|
case NVS_TYPE_ANY:
|
||||||
|
return "ANY";
|
||||||
|
default:
|
||||||
|
return "UNKNOWN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_nvs_value(const char *namespace_name, const char *key, nvs_type_t type)
|
||||||
|
{
|
||||||
|
nvs_handle_t handle;
|
||||||
|
esp_err_t err = nvs_open(namespace_name, NVS_READONLY, &handle);
|
||||||
|
if (err != ESP_OK)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case NVS_TYPE_I8: {
|
||||||
|
int8_t value;
|
||||||
|
if (nvs_get_i8(handle, key, &value) == ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, " -> Value (I8): %d", value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NVS_TYPE_I32: {
|
||||||
|
int32_t value;
|
||||||
|
if (nvs_get_i32(handle, key, &value) == ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, " -> Value (I32): %d", value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NVS_TYPE_STR: {
|
||||||
|
size_t length = 0;
|
||||||
|
nvs_get_str(handle, key, NULL, &length);
|
||||||
|
if (length > 0)
|
||||||
|
{
|
||||||
|
char *value = malloc(length);
|
||||||
|
if (nvs_get_str(handle, key, value, &length) == ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, " -> Value (STR): %s", value);
|
||||||
|
}
|
||||||
|
free(value);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NVS_TYPE_BLOB: {
|
||||||
|
size_t length = 0;
|
||||||
|
nvs_get_blob(handle, key, NULL, &length);
|
||||||
|
if (length > 0)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, " -> Value (BLOB): %d bytes", length);
|
||||||
|
|
||||||
|
// Optional: Erste Bytes als Hex anzeigen
|
||||||
|
uint8_t *blob = malloc(length);
|
||||||
|
if (nvs_get_blob(handle, key, blob, &length) == ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOG_BUFFER_HEX_LEVEL(TAG, blob, MIN(length, 32), ESP_LOG_INFO);
|
||||||
|
}
|
||||||
|
free(blob);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
nvs_close(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void list_all_nvs_entries(void)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, "========== NVS ENTRIES ==========");
|
||||||
|
|
||||||
|
nvs_iterator_t it = NULL;
|
||||||
|
esp_err_t err;
|
||||||
|
|
||||||
|
// Iterator für alle Namespaces und Keys erstellen
|
||||||
|
err = nvs_entry_find(NVS_DEFAULT_PART_NAME, NULL, NVS_TYPE_ANY, &it);
|
||||||
|
|
||||||
|
while (err == ESP_OK)
|
||||||
|
{
|
||||||
|
nvs_entry_info_t info;
|
||||||
|
nvs_entry_info(it, &info);
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "Namespace: %-16s | Key: %-16s | Type: %s", info.namespace_name, info.key,
|
||||||
|
nvs_type_to_str(info.type));
|
||||||
|
|
||||||
|
// Optional: Wert anzeigen
|
||||||
|
display_nvs_value(info.namespace_name, info.key, info.type);
|
||||||
|
|
||||||
|
err = nvs_entry_next(&it);
|
||||||
|
}
|
||||||
|
|
||||||
|
nvs_release_iterator(it);
|
||||||
|
ESP_LOGI(TAG, "==================================");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void check_nvs_stats(void)
|
||||||
|
{
|
||||||
|
nvs_stats_t nvs_stats;
|
||||||
|
esp_err_t err = nvs_get_stats(NULL, &nvs_stats);
|
||||||
|
if (err == ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, "NVS: Used entries = %d, Free entries = %d, Total entries = %d", nvs_stats.used_entries,
|
||||||
|
nvs_stats.free_entries, nvs_stats.total_entries);
|
||||||
|
|
||||||
|
size_t used_kb = (nvs_stats.used_entries * 32) / 1024; // Grobe Schätzung
|
||||||
|
size_t free_kb = (nvs_stats.free_entries * 32) / 1024;
|
||||||
|
ESP_LOGI(TAG, "NVS: ~%d KB used, ~%d KB free", used_kb, free_kb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void persistence_init(const char *namespace_name)
|
void persistence_init(const char *namespace_name)
|
||||||
{
|
{
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
@@ -20,6 +163,9 @@ void persistence_init(const char *namespace_name)
|
|||||||
}
|
}
|
||||||
ESP_ERROR_CHECK(ret);
|
ESP_ERROR_CHECK(ret);
|
||||||
|
|
||||||
|
list_all_nvs_entries();
|
||||||
|
check_nvs_stats();
|
||||||
|
|
||||||
ESP_ERROR_CHECK(nvs_open(namespace_name, NVS_READWRITE, &persistence_handle));
|
ESP_ERROR_CHECK(nvs_open(namespace_name, NVS_READWRITE, &persistence_handle));
|
||||||
|
|
||||||
persistence_mutex = xSemaphoreCreateMutex();
|
persistence_mutex = xSemaphoreCreateMutex();
|
||||||
@@ -43,6 +189,10 @@ void persistence_save(persistence_value_type_t value_type, const char *key, cons
|
|||||||
err = nvs_set_str(persistence_handle, key, (char *)value);
|
err = nvs_set_str(persistence_handle, key, (char *)value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VALUE_TYPE_INT8:
|
||||||
|
err = nvs_set_i8(persistence_handle, key, *(int8_t *)value);
|
||||||
|
break;
|
||||||
|
|
||||||
case VALUE_TYPE_INT32:
|
case VALUE_TYPE_INT32:
|
||||||
err = nvs_set_i32(persistence_handle, key, *(int32_t *)value);
|
err = nvs_set_i32(persistence_handle, key, *(int32_t *)value);
|
||||||
break;
|
break;
|
||||||
@@ -80,6 +230,10 @@ void *persistence_load(persistence_value_type_t value_type, const char *key, voi
|
|||||||
err = nvs_get_str(persistence_handle, key, (char *)out, NULL);
|
err = nvs_get_str(persistence_handle, key, (char *)out, NULL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VALUE_TYPE_INT8:
|
||||||
|
err = nvs_get_i8(persistence_handle, key, (int8_t *)out);
|
||||||
|
break;
|
||||||
|
|
||||||
case VALUE_TYPE_INT32:
|
case VALUE_TYPE_INT32:
|
||||||
err = nvs_get_i32(persistence_handle, key, (int32_t *)out);
|
err = nvs_get_i32(persistence_handle, key, (int32_t *)out);
|
||||||
break;
|
break;
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "host/ble_hs.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint16_t conn_handle;
|
||||||
|
bool is_connected;
|
||||||
|
} ble_connection_t;
|
||||||
|
|
||||||
|
extern ble_connection_t g_connections[CONFIG_BT_NIMBLE_MAX_CONNECTIONS];
|
||||||
|
|
||||||
void remote_control_init(void);
|
void remote_control_init(void);
|
||||||
|
bool is_any_device_connected(void);
|
||||||
|
@@ -14,8 +14,7 @@ extern const ble_uuid128_t gatt_svr_chr_uart_rx_uuid;
|
|||||||
// TX Characteristic UUID: 6E400003-B5A3-F393-E0A9-E50E24DCCA9E
|
// TX Characteristic UUID: 6E400003-B5A3-F393-E0A9-E50E24DCCA9E
|
||||||
extern const ble_uuid128_t gatt_svr_chr_uart_tx_uuid;
|
extern const ble_uuid128_t gatt_svr_chr_uart_tx_uuid;
|
||||||
|
|
||||||
extern uint16_t conn_handle;
|
extern uint16_t tx_chr_val_handle; // This is still needed as it's set once by the stack
|
||||||
extern uint16_t tx_chr_val_handle;
|
|
||||||
|
|
||||||
int gatt_svr_chr_uart_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg);
|
int gatt_svr_chr_uart_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg);
|
||||||
void send_ble_data(const char *data);
|
void send_ble_data(const char *data);
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
#include "persistence.h"
|
#include "persistence.h"
|
||||||
|
|
||||||
static uint8_t g_beacon_enabled = 0;
|
static uint8_t g_beacon_enabled = 0;
|
||||||
|
static int8_t g_led_value = 0;
|
||||||
|
|
||||||
/// Characteristic Callbacks
|
/// Characteristic Callbacks
|
||||||
int gatt_svr_chr_light_led_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt,
|
int gatt_svr_chr_light_led_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt,
|
||||||
@@ -14,13 +15,18 @@ int gatt_svr_chr_light_led_access(uint16_t conn_handle, uint16_t attr_handle, st
|
|||||||
os_mbuf_append(ctxt->om, data, strlen(data));
|
os_mbuf_append(ctxt->om, data, strlen(data));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR)
|
||||||
|
{
|
||||||
|
int8_t led_value = 0;
|
||||||
|
persistence_load(VALUE_TYPE_INT8, "LED_VALUE", &led_value);
|
||||||
|
}
|
||||||
return BLE_ATT_ERR_UNLIKELY;
|
return BLE_ATT_ERR_UNLIKELY;
|
||||||
}
|
}
|
||||||
|
|
||||||
int gatt_svr_chr_light_beacon_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt,
|
int gatt_svr_chr_light_beacon_access(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt,
|
||||||
void *arg)
|
void *arg)
|
||||||
{
|
{
|
||||||
persistence_load(VALUE_TYPE_INT32, "BEACON_ENABLED", &g_beacon_enabled);
|
|
||||||
if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR)
|
if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR)
|
||||||
{
|
{
|
||||||
return os_mbuf_append(ctxt->om, &g_beacon_enabled, sizeof(g_beacon_enabled)) == 0
|
return os_mbuf_append(ctxt->om, &g_beacon_enabled, sizeof(g_beacon_enabled)) == 0
|
||||||
@@ -29,6 +35,9 @@ int gatt_svr_chr_light_beacon_access(uint16_t conn_handle, uint16_t attr_handle,
|
|||||||
}
|
}
|
||||||
if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR)
|
if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR)
|
||||||
{
|
{
|
||||||
|
int8_t beacon_enabled = 0;
|
||||||
|
persistence_load(VALUE_TYPE_INT8, "BEACON_ENABLED", &beacon_enabled);
|
||||||
|
|
||||||
// it has to be 1 Byte (0 or 1)
|
// it has to be 1 Byte (0 or 1)
|
||||||
if (OS_MBUF_PKTLEN(ctxt->om) != 1)
|
if (OS_MBUF_PKTLEN(ctxt->om) != 1)
|
||||||
{
|
{
|
||||||
@@ -56,7 +65,7 @@ int gatt_svr_chr_light_beacon_access(uint16_t conn_handle, uint16_t attr_handle,
|
|||||||
{
|
{
|
||||||
beacon_stop();
|
beacon_stop();
|
||||||
}
|
}
|
||||||
persistence_save(VALUE_TYPE_INT32, "BEACON_ENABLED", &g_beacon_enabled);
|
persistence_save(VALUE_TYPE_INT8, "BEACON_ENABLED", &g_beacon_enabled);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return BLE_ATT_ERR_UNLIKELY;
|
return BLE_ATT_ERR_UNLIKELY;
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "esp_event.h"
|
#include "esp_event.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
|
#include "esp_mac.h"
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/event_groups.h"
|
#include "freertos/event_groups.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
@@ -21,6 +22,8 @@
|
|||||||
#include "services/gap/ble_svc_gap.h"
|
#include "services/gap/ble_svc_gap.h"
|
||||||
#include "services/gatt/ble_svc_gatt.h"
|
#include "services/gatt/ble_svc_gatt.h"
|
||||||
|
|
||||||
|
void ble_store_config_init(void);
|
||||||
|
|
||||||
static const char *TAG = "remote_control";
|
static const char *TAG = "remote_control";
|
||||||
|
|
||||||
static const ble_uuid16_t gatt_svr_svc_device_uuid = BLE_UUID16_INIT(0x180A);
|
static const ble_uuid16_t gatt_svr_svc_device_uuid = BLE_UUID16_INIT(0x180A);
|
||||||
@@ -29,6 +32,29 @@ static const ble_uuid16_t gatt_svr_svc_settings_uuid = BLE_UUID16_INIT(0xA999);
|
|||||||
|
|
||||||
uint8_t ble_addr_type;
|
uint8_t ble_addr_type;
|
||||||
|
|
||||||
|
ble_connection_t g_connections[CONFIG_BT_NIMBLE_MAX_CONNECTIONS];
|
||||||
|
|
||||||
|
static void init_connection_pool()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++)
|
||||||
|
{
|
||||||
|
g_connections[i].conn_handle = BLE_HS_CONN_HANDLE_NONE;
|
||||||
|
g_connections[i].is_connected = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_any_device_connected(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++)
|
||||||
|
{
|
||||||
|
if (g_connections[i].is_connected)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static void ble_app_advertise(void);
|
static void ble_app_advertise(void);
|
||||||
|
|
||||||
// Descriptors for the Beacon Characteristic
|
// Descriptors for the Beacon Characteristic
|
||||||
@@ -121,14 +147,16 @@ static const struct ble_gatt_svc_def gatt_svcs[] = {
|
|||||||
{
|
{
|
||||||
// Beacon Characteristic
|
// Beacon Characteristic
|
||||||
.uuid = BLE_UUID16_DECLARE(0xBEA0),
|
.uuid = BLE_UUID16_DECLARE(0xBEA0),
|
||||||
.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE,
|
.flags =
|
||||||
|
BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC,
|
||||||
.access_cb = gatt_svr_chr_light_beacon_access,
|
.access_cb = gatt_svr_chr_light_beacon_access,
|
||||||
.descriptors = beacon_char_desc,
|
.descriptors = beacon_char_desc,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// LED Characteristic
|
// LED Characteristic
|
||||||
.uuid = BLE_UUID16_DECLARE(0xF037),
|
.uuid = BLE_UUID16_DECLARE(0xF037),
|
||||||
.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE,
|
.flags =
|
||||||
|
BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC,
|
||||||
.access_cb = gatt_svr_chr_light_led_access,
|
.access_cb = gatt_svr_chr_light_led_access,
|
||||||
.descriptors = led_char_desc,
|
.descriptors = led_char_desc,
|
||||||
},
|
},
|
||||||
@@ -165,23 +193,174 @@ static const struct ble_gatt_svc_def gatt_svcs[] = {
|
|||||||
},
|
},
|
||||||
{0}};
|
{0}};
|
||||||
|
|
||||||
|
inline static void format_addr(char *addr_str, uint8_t addr[])
|
||||||
|
{
|
||||||
|
sprintf(addr_str, "%02X:%02X:%02X:%02X:%02X:%02X", addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_conn_desc(struct ble_gap_conn_desc *desc)
|
||||||
|
{
|
||||||
|
/* Local variables */
|
||||||
|
char addr_str[18] = {0};
|
||||||
|
|
||||||
|
/* Connection handle */
|
||||||
|
ESP_LOGI(TAG, "connection handle: %d", desc->conn_handle);
|
||||||
|
|
||||||
|
/* Local ID address */
|
||||||
|
format_addr(addr_str, desc->our_id_addr.val);
|
||||||
|
ESP_LOGI(TAG, "device id address: type=%d, value=%s", desc->our_id_addr.type, addr_str);
|
||||||
|
|
||||||
|
/* Peer ID address */
|
||||||
|
format_addr(addr_str, desc->peer_id_addr.val);
|
||||||
|
ESP_LOGI(TAG, "peer id address: type=%d, value=%s", desc->peer_id_addr.type, addr_str);
|
||||||
|
|
||||||
|
/* Connection info */
|
||||||
|
ESP_LOGI(TAG,
|
||||||
|
"conn_itvl=%d, conn_latency=%d, supervision_timeout=%d, "
|
||||||
|
"encrypted=%d, authenticated=%d, bonded=%d\n",
|
||||||
|
desc->conn_itvl, desc->conn_latency, desc->supervision_timeout, desc->sec_state.encrypted,
|
||||||
|
desc->sec_state.authenticated, desc->sec_state.bonded);
|
||||||
|
}
|
||||||
|
|
||||||
// BLE event handling
|
// BLE event handling
|
||||||
static int ble_gap_event(struct ble_gap_event *event, void *arg)
|
static int ble_gap_event(struct ble_gap_event *event, void *arg)
|
||||||
{
|
{
|
||||||
|
esp_err_t rc;
|
||||||
|
struct ble_gap_conn_desc desc;
|
||||||
|
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
{
|
{
|
||||||
case BLE_GAP_EVENT_CONNECT:
|
case BLE_GAP_EVENT_CONNECT:
|
||||||
ESP_LOGI(TAG, "Connection established; status=%d", event->connect.status);
|
/* A new connection was established or a connection attempt failed. */
|
||||||
conn_handle = event->connect.conn_handle;
|
ESP_LOGI(TAG, "connection %s; status=%d", event->connect.status == 0 ? "established" : "failed",
|
||||||
ESP_LOGI(TAG, "Connection handle: %d", conn_handle);
|
event->connect.status);
|
||||||
break;
|
|
||||||
|
/* Connection succeeded */
|
||||||
|
if (event->connect.status == 0)
|
||||||
|
{
|
||||||
|
bool found_slot = false;
|
||||||
|
for (int i = 0; i < CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++)
|
||||||
|
{
|
||||||
|
if (!g_connections[i].is_connected)
|
||||||
|
{
|
||||||
|
g_connections[i].conn_handle = event->connect.conn_handle;
|
||||||
|
g_connections[i].is_connected = true;
|
||||||
|
found_slot = true;
|
||||||
|
ESP_LOGI(TAG, "Connection stored in slot %d", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found_slot)
|
||||||
|
{
|
||||||
|
ESP_LOGW(TAG, "No free connection slot available!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check connection handle */
|
||||||
|
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
|
||||||
|
if (rc != 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
print_conn_desc(&desc);
|
||||||
|
|
||||||
|
/* Try to update connection parameters */
|
||||||
|
struct ble_gap_upd_params params = {.itvl_min = desc.conn_itvl,
|
||||||
|
.itvl_max = desc.conn_itvl,
|
||||||
|
.latency = 3,
|
||||||
|
.supervision_timeout = desc.supervision_timeout};
|
||||||
|
rc = ble_gap_update_params(event->connect.conn_handle, ¶ms);
|
||||||
|
if (rc != 0)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "failed to update connection parameters, error code: %d", rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Connection failed, restart advertising */
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ble_app_advertise();
|
||||||
|
}
|
||||||
|
return rc;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_DISCONNECT:
|
case BLE_GAP_EVENT_DISCONNECT:
|
||||||
ESP_LOGI(TAG, "Disconnected; reason=%d", event->disconnect.reason);
|
ESP_LOGI(TAG, "Disconnected; reason=%d", event->disconnect.reason);
|
||||||
conn_handle = 0;
|
for (int i = 0; i < CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++)
|
||||||
ble_app_advertise();
|
{
|
||||||
|
if (g_connections[i].conn_handle == event->disconnect.conn.conn_handle)
|
||||||
|
{
|
||||||
|
g_connections[i].is_connected = false;
|
||||||
|
g_connections[i].conn_handle = BLE_HS_CONN_HANDLE_NONE;
|
||||||
|
ESP_LOGI(TAG, "Connection from slot %d removed", i);
|
||||||
|
ble_app_advertise(); // Restart advertising to allow new connections
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BLE_GAP_EVENT_PASSKEY_ACTION:
|
||||||
|
ESP_LOGI(TAG, "Passkey action required: %d", event->passkey.params.action);
|
||||||
|
struct ble_sm_io pkey = {0};
|
||||||
|
|
||||||
|
switch (event->passkey.params.action)
|
||||||
|
{
|
||||||
|
case BLE_SM_IOACT_DISP:
|
||||||
|
pkey.action = BLE_SM_IOACT_DISP;
|
||||||
|
pkey.passkey = CONFIG_BONDING_PASSPHRASE;
|
||||||
|
ESP_LOGI(TAG, "Displaying passkey: %06d", pkey.passkey);
|
||||||
|
rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey);
|
||||||
|
if (rc != 0)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "failed to inject security manager io, error code: %d", rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ESP_LOGE(TAG, "Unknown passkey action: %d", event->passkey.params.action);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BLE_GAP_EVENT_ENC_CHANGE:
|
||||||
|
ESP_LOGI(TAG, "Encryption change event; status=%d", event->enc_change.status);
|
||||||
|
|
||||||
|
if (event->enc_change.status != 0)
|
||||||
|
{
|
||||||
|
ESP_LOGW(TAG, "Encryption failed with status %d", event->enc_change.status);
|
||||||
|
|
||||||
|
rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc);
|
||||||
|
if (rc == 0)
|
||||||
|
{
|
||||||
|
char addr_str[18] = {0};
|
||||||
|
format_addr(addr_str, desc.peer_id_addr.val);
|
||||||
|
ESP_LOGI(TAG, "Deleting bond for peer: %s", addr_str);
|
||||||
|
|
||||||
|
ble_store_util_delete_peer(&desc.peer_id_addr);
|
||||||
|
|
||||||
|
ble_gap_terminate(event->enc_change.conn_handle, BLE_ERR_REM_USER_CONN_TERM);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, "Encryption successfully established");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BLE_GAP_EVENT_REPEAT_PAIRING:
|
||||||
|
ESP_LOGI(TAG, "Repeat pairing requested");
|
||||||
|
|
||||||
|
rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc);
|
||||||
|
if (rc == 0)
|
||||||
|
{
|
||||||
|
char addr_str[18] = {0};
|
||||||
|
format_addr(addr_str, desc.peer_id_addr.val);
|
||||||
|
ESP_LOGI(TAG, "Deleting old bond for specific peer: %s", addr_str);
|
||||||
|
|
||||||
|
ble_store_util_delete_peer(&desc.peer_id_addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return BLE_GAP_REPEAT_PAIRING_RETRY;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_ADV_COMPLETE:
|
case BLE_GAP_EVENT_ADV_COMPLETE:
|
||||||
ESP_LOGI(TAG, "Advertising complete");
|
ESP_LOGI(TAG, "Advertising complete");
|
||||||
ble_app_advertise();
|
ble_app_advertise();
|
||||||
@@ -254,15 +433,29 @@ static void ble_app_advertise(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The application
|
static void on_stack_reset(int reason)
|
||||||
static void ble_app_on_sync(void)
|
|
||||||
{
|
{
|
||||||
|
/* On reset, print reset reason to console */
|
||||||
|
ESP_LOGI(TAG, "nimble stack reset, reset reason: %d", reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void on_stack_sync(void)
|
||||||
|
{
|
||||||
|
esp_err_t ret;
|
||||||
uint8_t ble_addr[6] = {0};
|
uint8_t ble_addr[6] = {0};
|
||||||
int ret = ble_hs_id_copy_addr(BLE_ADDR_PUBLIC, ble_addr, NULL);
|
|
||||||
|
/* Figure out address to use while advertising (no privacy for now) */
|
||||||
|
ret = ble_hs_id_infer_auto(0, &ble_addr_type);
|
||||||
|
if (ret != 0)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "error determining address type; rc=%d", ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = ble_hs_id_copy_addr(ble_addr_type, ble_addr, NULL);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
ESP_LOGE(TAG, "Failed to get BLE MAC address (err: %d)", ret);
|
ESP_LOGE(TAG, "Failed to get BLE MAC address (err: %d)", ret);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char formatted_name[32];
|
char formatted_name[32];
|
||||||
@@ -270,26 +463,88 @@ static void ble_app_on_sync(void)
|
|||||||
ble_svc_gap_device_name_set(formatted_name);
|
ble_svc_gap_device_name_set(formatted_name);
|
||||||
|
|
||||||
// Start Advertising
|
// Start Advertising
|
||||||
ble_hs_id_infer_auto(0, &ble_addr_type); // Determines the best address type automatically
|
|
||||||
ble_app_advertise();
|
ble_app_advertise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static esp_err_t gatt_svc_init(void)
|
||||||
|
{
|
||||||
|
esp_err_t ret;
|
||||||
|
ble_svc_gatt_init();
|
||||||
|
|
||||||
|
ret = ble_gatts_count_cfg(gatt_svcs);
|
||||||
|
if (ret != ESP_OK)
|
||||||
|
{
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = ble_gatts_add_svcs(gatt_svcs);
|
||||||
|
if (ret != ESP_OK)
|
||||||
|
{
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ESP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static esp_err_t gap_init(void)
|
||||||
|
{
|
||||||
|
ble_svc_gap_init();
|
||||||
|
|
||||||
|
return ESP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
// The infinite task
|
// The infinite task
|
||||||
static void host_task(void *param)
|
static void host_task(void *param)
|
||||||
{
|
{
|
||||||
nimble_port_run(); // This function will return only when nimble_port_stop() is executed
|
nimble_port_run(); // This function will return only when nimble_port_stop() is executed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void nimble_host_config_init(void)
|
||||||
|
{
|
||||||
|
// callbacks
|
||||||
|
ble_hs_cfg.reset_cb = on_stack_reset;
|
||||||
|
ble_hs_cfg.sync_cb = on_stack_sync;
|
||||||
|
|
||||||
|
ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_DISP_ONLY;
|
||||||
|
ble_hs_cfg.sm_bonding = 1;
|
||||||
|
ble_hs_cfg.sm_mitm = 1;
|
||||||
|
ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
|
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
|
|
||||||
|
// Initialize BLE store configuration
|
||||||
|
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
||||||
|
|
||||||
|
ble_store_config_init();
|
||||||
|
}
|
||||||
|
|
||||||
void remote_control_init(void)
|
void remote_control_init(void)
|
||||||
{
|
{
|
||||||
nimble_port_init();
|
esp_err_t ret;
|
||||||
ble_svc_gap_init();
|
|
||||||
ble_svc_gatt_init();
|
|
||||||
ble_gatts_count_cfg(gatt_svcs);
|
|
||||||
ble_gatts_add_svcs(gatt_svcs);
|
|
||||||
|
|
||||||
// Callback for synchronization
|
ret = nimble_port_init();
|
||||||
ble_hs_cfg.sync_cb = ble_app_on_sync;
|
if (ret != ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Failed to initialize nimble stack (err: %s)", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
init_connection_pool();
|
||||||
|
|
||||||
|
ret = gap_init();
|
||||||
|
if (ret != ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Failed to initialize GAP service (err: %s)", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = gatt_svc_init();
|
||||||
|
if (ret != ESP_OK)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Failed to initialize GATT server (err: %s)", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
nimble_host_config_init();
|
||||||
|
|
||||||
nimble_port_freertos_init(host_task); // Start BLE host task
|
nimble_port_freertos_init(host_task); // Start BLE host task
|
||||||
|
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
#include "include/uart_service.h"
|
#include "include/uart_service.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "include/remote_control.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
static const char *TAG = "uart_service";
|
static const char *TAG = "uart_service";
|
||||||
|
|
||||||
@@ -14,7 +17,6 @@ const ble_uuid128_t gatt_svr_chr_uart_rx_uuid =
|
|||||||
const ble_uuid128_t gatt_svr_chr_uart_tx_uuid =
|
const ble_uuid128_t gatt_svr_chr_uart_tx_uuid =
|
||||||
BLE_UUID128_INIT(0x9E, 0xCA, 0xDC, 0x24, 0x0E, 0xE5, 0xA9, 0xE0, 0x93, 0xF3, 0xA3, 0xB5, 0x03, 0x00, 0x40, 0x6E);
|
BLE_UUID128_INIT(0x9E, 0xCA, 0xDC, 0x24, 0x0E, 0xE5, 0xA9, 0xE0, 0x93, 0xF3, 0xA3, 0xB5, 0x03, 0x00, 0x40, 0x6E);
|
||||||
|
|
||||||
uint16_t conn_handle;
|
|
||||||
uint16_t tx_chr_val_handle;
|
uint16_t tx_chr_val_handle;
|
||||||
|
|
||||||
// Callback function for GATT events (read/write on characteristics)
|
// Callback function for GATT events (read/write on characteristics)
|
||||||
@@ -51,19 +53,26 @@ int gatt_svr_chr_uart_access(uint16_t conn_handle, uint16_t attr_handle, struct
|
|||||||
// Function to send data via the TX characteristic
|
// Function to send data via the TX characteristic
|
||||||
void send_ble_data(const char *data)
|
void send_ble_data(const char *data)
|
||||||
{
|
{
|
||||||
if (conn_handle != 0)
|
ESP_LOGI(TAG, "Preparing to send data: %s", data);
|
||||||
{ // Only send when connected
|
|
||||||
struct os_mbuf *om = ble_hs_mbuf_from_flat(data, strlen(data));
|
struct os_mbuf *om;
|
||||||
if (om)
|
|
||||||
|
for (int i = 0; i < CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++)
|
||||||
|
{
|
||||||
|
if (g_connections[i].is_connected)
|
||||||
{
|
{
|
||||||
int rc = ble_gatts_notify_custom(conn_handle, tx_chr_val_handle, om);
|
om = ble_hs_mbuf_from_flat(data, strlen(data));
|
||||||
if (rc == 0)
|
if (om)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Sent data: %s", data);
|
int rc = ble_gatts_notify_custom(g_connections[i].conn_handle, tx_chr_val_handle, om);
|
||||||
}
|
if (rc == 0)
|
||||||
else
|
{
|
||||||
{
|
ESP_LOGI(TAG, "Sent data to conn_handle %d: %s", g_connections[i].conn_handle, data);
|
||||||
ESP_LOGE(TAG, "Error sending data: %d", rc);
|
}
|
||||||
|
else if (rc != BLE_HS_ENOTCONN) // Ignore "not connected" errors if a device just disconnected
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Error sending data to conn_handle %d: %d", g_connections[i].conn_handle, rc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -76,7 +85,7 @@ void uart_tx_task(void *param)
|
|||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
vTaskDelay(pdMS_TO_TICKS(2000));
|
vTaskDelay(pdMS_TO_TICKS(2000));
|
||||||
if (conn_handle != 0)
|
if (is_any_device_connected())
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Sending data over BLE UART TX");
|
ESP_LOGI(TAG, "Sending data over BLE UART TX");
|
||||||
sprintf(buffer, "Hello World #%d", count++);
|
sprintf(buffer, "Hello World #%d", count++);
|
||||||
|
@@ -15,4 +15,29 @@ menu "Warnemuende Lighthouse"
|
|||||||
int
|
int
|
||||||
default 1 if WLED_USE_DMA
|
default 1 if WLED_USE_DMA
|
||||||
default 0 if !WLED_USE_DMA
|
default 0 if !WLED_USE_DMA
|
||||||
|
|
||||||
|
config WLED_WITH_WHITE
|
||||||
|
bool "WLED with White Channel"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Use a WLED strip with a white channel (e.g. WS2812B RGBW).
|
||||||
|
|
||||||
|
config LED_PIN_LEFT
|
||||||
|
int "LED Left Pin"
|
||||||
|
default 11
|
||||||
|
help
|
||||||
|
The pin of the LED for the left side.
|
||||||
|
|
||||||
|
config LED_PIN_RIGHT
|
||||||
|
int "LED Right Pin"
|
||||||
|
default 12
|
||||||
|
help
|
||||||
|
The pin of the LED for the right side.
|
||||||
|
|
||||||
|
config BONDING_PASSPHRASE
|
||||||
|
int "Bonding Passphrase"
|
||||||
|
default 123456
|
||||||
|
help
|
||||||
|
The passphrase for the BLE bonding.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@@ -25,14 +25,6 @@ void app_main(void)
|
|||||||
printf("Failed to initialize beacon");
|
printf("Failed to initialize beacon");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/// start beacon service
|
|
||||||
uint8_t beacon_enabled = 1;
|
|
||||||
persistence_load(VALUE_TYPE_INT32, "BEACON_ENABLED", &beacon_enabled);
|
|
||||||
if (beacon_enabled && beacon_start() != ESP_OK)
|
|
||||||
{
|
|
||||||
printf("Failed to start beacon");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// start outdoor light service
|
/// start outdoor light service
|
||||||
if (outdoor_start() != ESP_OK)
|
if (outdoor_start() != ESP_OK)
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
# Name , Type , SubType , Offset , Size , Flags
|
# Name , Type , SubType , Offset , Size , Flags
|
||||||
nvs , data , nvs , 0x9000 , 20k ,
|
nvs , data , nvs , 0x9000 , 24k ,
|
||||||
otadata , data , ota , 0xe000 , 8k ,
|
phy_init , data , phy , , 4k ,
|
||||||
app0 , app , ota_0 , 0x10000 , 1792k ,
|
factory , app , factory , 0x10000 , 3584K ,
|
||||||
app1 , app , ota_1 , , 1792k ,
|
|
||||||
coredump , data , coredump , , 64k ,
|
coredump , data , coredump , , 64k ,
|
||||||
|
|
@@ -3,10 +3,10 @@ CONFIG_BT_ENABLED=y
|
|||||||
CONFIG_BT_NIMBLE_ENABLED=y
|
CONFIG_BT_NIMBLE_ENABLED=y
|
||||||
|
|
||||||
# NimBLE Options
|
# NimBLE Options
|
||||||
CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
|
CONFIG_BT_NIMBLE_SECURITY_ENABLE=y
|
||||||
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="lighthouse"
|
|
||||||
CONFIG_BT_NIMBLE_NVS_PERSIST=y
|
CONFIG_BT_NIMBLE_NVS_PERSIST=y
|
||||||
CONFIG_BT_NIMBLE_SMP_ID_RESET=y
|
CONFIG_BT_NIMBLE_SMP_ID_RESET=y
|
||||||
|
CONFIG_NIMBLE_CRYPTO_STACK_MBEDTLS=y
|
||||||
|
|
||||||
# Flash Size
|
# Flash Size
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
|
Submodule hardware/light_board/library updated: 6fe2d8f450...7a255f4984
@@ -725,13 +725,12 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(pad "1" thru_hole roundrect
|
(pad "1" thru_hole circle
|
||||||
(at 0 0)
|
(at 0 0)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.6)
|
(drill 0.6)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(roundrect_rratio 0.15625)
|
|
||||||
(net 7 "Net-(J4-Pad1)")
|
(net 7 "Net-(J4-Pad1)")
|
||||||
(pinfunction "1")
|
(pinfunction "1")
|
||||||
(pintype "passive")
|
(pintype "passive")
|
||||||
@@ -869,13 +868,12 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(pad "1" thru_hole roundrect
|
(pad "1" thru_hole circle
|
||||||
(at 0 0)
|
(at 0 0)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.6)
|
(drill 0.6)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(roundrect_rratio 0.15625)
|
|
||||||
(net 8 "Net-(J5-Pad1)")
|
(net 8 "Net-(J5-Pad1)")
|
||||||
(pinfunction "1")
|
(pinfunction "1")
|
||||||
(pintype "passive")
|
(pintype "passive")
|
||||||
@@ -1732,6 +1730,32 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(property "MPN" "1212"
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "ddec7a54-c291-4fc6-9971-2b78203f0511")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "LCSC" "511-STM32F405RGT6"
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "5a6552f6-f162-42ba-994d-a5bce00185dd")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
(property ki_fp_filters "LED*WS2812*PLCC*5.0x5.0mm*P3.2mm*")
|
(property ki_fp_filters "LED*WS2812*PLCC*5.0x5.0mm*P3.2mm*")
|
||||||
(path "/483ce52f-60c4-48a2-8bf7-9330166e3f00")
|
(path "/483ce52f-60c4-48a2-8bf7-9330166e3f00")
|
||||||
(sheetname "/")
|
(sheetname "/")
|
||||||
@@ -3173,13 +3197,14 @@
|
|||||||
(xy 92.539505 60.702697) (xy 92.539506 60.70269) (xy 92.549999 60.599986) (xy 92.55 60.599973) (xy 92.55 60.25)
|
(xy 92.539505 60.702697) (xy 92.539506 60.70269) (xy 92.549999 60.599986) (xy 92.55 60.599973) (xy 92.55 60.25)
|
||||||
(xy 91.5 60.25) (xy 91.5 61.299999) (xy 90.999999 61.299999) (xy 91 61.299998) (xy 91 60.25) (xy 89.950001 60.25)
|
(xy 91.5 60.25) (xy 91.5 61.299999) (xy 90.999999 61.299999) (xy 91 61.299998) (xy 91 60.25) (xy 89.950001 60.25)
|
||||||
(xy 89.950001 60.599986) (xy 88.520606 60.599986) (xy 88.505219 60.32599) (xy 88.505024 60.319037)
|
(xy 89.950001 60.599986) (xy 88.520606 60.599986) (xy 88.505219 60.32599) (xy 88.505024 60.319037)
|
||||||
(xy 88.505024 59.680962) (xy 88.505219 59.674009) (xy 88.5245 59.330668) (xy 88.540997 59.036914)
|
(xy 88.505024 59.680962) (xy 88.505219 59.674009) (xy 88.520635 59.3995) (xy 88.540997 59.036914)
|
||||||
(xy 88.541581 59.029997) (xy 88.613025 58.395915) (xy 88.613988 58.389088) (xy 88.720879 57.759974)
|
(xy 88.541581 59.029997) (xy 88.544056 59.008034) (xy 88.613025 58.395915) (xy 88.613988 58.389088)
|
||||||
(xy 88.722234 57.753166) (xy 88.864225 57.13106) (xy 88.865946 57.124388) (xy 89.002619 56.649983)
|
(xy 88.720879 57.759974) (xy 88.722234 57.753166) (xy 88.860439 57.147648) (xy 89.9495 57.147648)
|
||||||
(xy 89.9495 56.649983) (xy 89.9495 57.850001) (xy 89.949501 57.850018) (xy 89.96 57.952796) (xy 89.960001 57.952799)
|
(xy 89.9495 57.352351) (xy 89.981522 57.554534) (xy 90.044781 57.749223) (xy 90.088924 57.835857)
|
||||||
(xy 89.998393 58.068656) (xy 90.015186 58.119334) (xy 90.107288 58.268656) (xy 90.231344 58.392712)
|
(xy 90.128878 57.914271) (xy 90.137715 57.931613) (xy 90.258028 58.097213) (xy 90.402786 58.241971)
|
||||||
(xy 90.380666 58.484814) (xy 90.449302 58.507557) (xy 90.506746 58.54733) (xy 90.533569 58.611845)
|
(xy 90.534522 58.337681) (xy 90.56839 58.362287) (xy 90.750781 58.45522) (xy 90.759548 58.458068)
|
||||||
(xy 90.521254 58.680621) (xy 90.473711 58.731821) (xy 90.449301 58.742969) (xy 90.38088 58.765641)
|
(xy 90.817224 58.497501) (xy 90.844426 58.561858) (xy 90.832516 58.630705) (xy 90.785275 58.682184)
|
||||||
|
(xy 90.721237 58.7) (xy 90.650029 58.7) (xy 90.650012 58.700001) (xy 90.547302 58.710494) (xy 90.38088 58.765641)
|
||||||
(xy 90.380875 58.765643) (xy 90.231654 58.857684) (xy 90.107684 58.981654) (xy 90.015643 59.130875)
|
(xy 90.380875 58.765643) (xy 90.231654 58.857684) (xy 90.107684 58.981654) (xy 90.015643 59.130875)
|
||||||
(xy 90.015641 59.13088) (xy 89.960494 59.297302) (xy 89.960493 59.297309) (xy 89.95 59.400013) (xy 89.95 59.75)
|
(xy 90.015641 59.13088) (xy 89.960494 59.297302) (xy 89.960493 59.297309) (xy 89.95 59.400013) (xy 89.95 59.75)
|
||||||
(xy 91.083012 59.75) (xy 91.065795 59.75994) (xy 91.00994 59.815795) (xy 90.970444 59.884204) (xy 90.95 59.960504)
|
(xy 91.083012 59.75) (xy 91.065795 59.75994) (xy 91.00994 59.815795) (xy 90.970444 59.884204) (xy 90.95 59.960504)
|
||||||
@@ -3188,35 +3213,35 @@
|
|||||||
(xy 91.529556 60.115796) (xy 91.55 60.039496) (xy 91.55 59.960504) (xy 91.529556 59.884204) (xy 91.49006 59.815795)
|
(xy 91.529556 60.115796) (xy 91.55 60.039496) (xy 91.55 59.960504) (xy 91.529556 59.884204) (xy 91.49006 59.815795)
|
||||||
(xy 91.434205 59.75994) (xy 91.416988 59.75) (xy 92.549999 59.75) (xy 92.549999 59.400028) (xy 92.549998 59.400013)
|
(xy 91.434205 59.75994) (xy 91.416988 59.75) (xy 92.549999 59.75) (xy 92.549999 59.400028) (xy 92.549998 59.400013)
|
||||||
(xy 92.539505 59.297302) (xy 92.484358 59.13088) (xy 92.484356 59.130875) (xy 92.392315 58.981654)
|
(xy 92.539505 59.297302) (xy 92.484358 59.13088) (xy 92.484356 59.130875) (xy 92.392315 58.981654)
|
||||||
(xy 92.268345 58.857684) (xy 92.119124 58.765643) (xy 92.119119 58.765641) (xy 92.050698 58.742969)
|
(xy 92.268345 58.857684) (xy 92.119124 58.765643) (xy 92.119119 58.765641) (xy 91.952697 58.710494)
|
||||||
(xy 91.993253 58.703196) (xy 91.96643 58.638681) (xy 91.978745 58.569905) (xy 92.026288 58.518705)
|
(xy 91.95269 58.710493) (xy 91.849986 58.7) (xy 91.778767 58.7) (xy 91.711728 58.680315) (xy 91.665973 58.627511)
|
||||||
(xy 92.050691 58.507559) (xy 92.119334 58.484814) (xy 92.268656 58.392712) (xy 92.392712 58.268656)
|
(xy 91.656029 58.558353) (xy 91.685054 58.494797) (xy 91.740448 58.458069) (xy 91.749219 58.45522)
|
||||||
(xy 92.484814 58.119334) (xy 92.539999 57.952797) (xy 92.539999 57.952793) (xy 92.540912 57.948533)
|
(xy 91.93161 58.362287) (xy 92.049882 58.276358) (xy 92.097213 58.241971) (xy 92.097215 58.241968)
|
||||||
(xy 92.555623 57.921382) (xy 92.56845 57.893297) (xy 92.57212 57.890938) (xy 92.574199 57.887102)
|
(xy 92.097219 58.241966) (xy 92.241966 58.097219) (xy 92.241968 58.097215) (xy 92.241971 58.097213)
|
||||||
(xy 92.601255 57.872214) (xy 92.627228 57.855523) (xy 92.633133 57.854673) (xy 92.635414 57.853419)
|
(xy 92.362284 57.931614) (xy 92.362285 57.931613) (xy 92.362287 57.93161) (xy 92.369117 57.918204)
|
||||||
(xy 92.662163 57.8505) (xy 92.754092 57.8505) (xy 92.821131 57.870185) (xy 92.859636 57.914271)
|
(xy 92.417091 57.867409) (xy 92.479602 57.8505) (xy 92.754092 57.8505) (xy 92.821131 57.870185)
|
||||||
(xy 92.861395 57.913187) (xy 92.865185 57.919331) (xy 92.865186 57.919334) (xy 92.957288 58.068656)
|
(xy 92.859636 57.914271) (xy 92.861395 57.913187) (xy 92.865185 57.919331) (xy 92.865186 57.919334)
|
||||||
(xy 92.957289 58.068657) (xy 93.050951 58.162319) (xy 93.084436 58.223642) (xy 93.079452 58.293334)
|
(xy 92.957288 58.068656) (xy 92.957289 58.068657) (xy 93.050951 58.162319) (xy 93.084436 58.223642)
|
||||||
(xy 93.050951 58.337681) (xy 92.957289 58.431342) (xy 92.865187 58.580663) (xy 92.865186 58.580666)
|
(xy 93.079452 58.293334) (xy 93.050951 58.337681) (xy 92.957289 58.431342) (xy 92.865187 58.580663)
|
||||||
(xy 92.810001 58.747203) (xy 92.810001 58.747204) (xy 92.81 58.747204) (xy 92.7995 58.849983) (xy 92.7995 59.650001)
|
(xy 92.865185 58.580668) (xy 92.851328 58.622486) (xy 92.810001 58.747203) (xy 92.810001 58.747204)
|
||||||
(xy 92.799501 59.650019) (xy 92.81 59.752796) (xy 92.810001 59.752799) (xy 92.855154 59.889059)
|
(xy 92.81 58.747204) (xy 92.7995 58.849983) (xy 92.7995 59.650001) (xy 92.799501 59.650019) (xy 92.81 59.752796)
|
||||||
(xy 92.865186 59.919334) (xy 92.957288 60.068656) (xy 93.081344 60.192712) (xy 93.230666 60.284814)
|
(xy 92.810001 59.752799) (xy 92.855154 59.889059) (xy 92.865186 59.919334) (xy 92.957288 60.068656)
|
||||||
(xy 93.314505 60.312595) (xy 93.371948 60.352366) (xy 93.398772 60.416882) (xy 93.3995 60.4303)
|
(xy 93.081344 60.192712) (xy 93.230666 60.284814) (xy 93.314505 60.312595) (xy 93.371948 60.352366)
|
||||||
(xy 93.3995 63.41333) (xy 93.399499 63.413348) (xy 93.399499 63.579054) (xy 93.399498 63.579054)
|
(xy 93.398772 60.416882) (xy 93.3995 60.4303) (xy 93.3995 63.41333) (xy 93.399499 63.413348) (xy 93.399499 63.579054)
|
||||||
(xy 93.440423 63.731785) (xy 93.469358 63.7819) (xy 93.469359 63.781904) (xy 93.46936 63.781904)
|
(xy 93.399498 63.579054) (xy 93.440423 63.731785) (xy 93.469358 63.7819) (xy 93.469359 63.781904)
|
||||||
(xy 93.519479 63.868714) (xy 93.519481 63.868717) (xy 93.638349 63.987585) (xy 93.638355 63.98759)
|
(xy 93.46936 63.781904) (xy 93.519479 63.868714) (xy 93.519481 63.868717) (xy 93.638349 63.987585)
|
||||||
(xy 94.574957 64.924192) (xy 94.608442 64.985515) (xy 94.603458 65.055207) (xy 94.561586 65.11114)
|
(xy 93.638355 63.98759) (xy 94.574957 64.924192) (xy 94.608442 64.985515) (xy 94.603458 65.055207)
|
||||||
(xy 94.503837 65.133685) (xy 94.503921 65.134077) (xy 94.501514 65.134592) (xy 94.499878 65.135231)
|
(xy 94.561586 65.11114) (xy 94.503837 65.133685) (xy 94.503921 65.134077) (xy 94.501514 65.134592)
|
||||||
(xy 94.497302 65.135494) (xy 94.33088 65.190641) (xy 94.330875 65.190643) (xy 94.181654 65.282684)
|
(xy 94.499878 65.135231) (xy 94.497302 65.135494) (xy 94.33088 65.190641) (xy 94.330875 65.190643)
|
||||||
(xy 94.057684 65.406654) (xy 93.965643 65.555875) (xy 93.965641 65.55588) (xy 93.910494 65.722302)
|
(xy 94.181654 65.282684) (xy 94.057684 65.406654) (xy 93.965643 65.555875) (xy 93.965641 65.55588)
|
||||||
(xy 93.910493 65.722309) (xy 93.9 65.825013) (xy 93.9 66.25) (xy 94.71967 66.25) (xy 94.699925 66.269745)
|
(xy 93.910494 65.722302) (xy 93.910493 65.722309) (xy 93.9 65.825013) (xy 93.9 66.25) (xy 94.71967 66.25)
|
||||||
(xy 94.650556 66.355255) (xy 94.625 66.45063) (xy 94.625 66.54937) (xy 94.650556 66.644745) (xy 94.699925 66.730255)
|
(xy 94.699925 66.269745) (xy 94.650556 66.355255) (xy 94.625 66.45063) (xy 94.625 66.54937) (xy 94.650556 66.644745)
|
||||||
(xy 94.71967 66.75) (xy 93.900001 66.75) (xy 93.900001 67.174986) (xy 93.910494 67.277697) (xy 93.965641 67.444119)
|
(xy 94.699925 66.730255) (xy 94.71967 66.75) (xy 93.900001 66.75) (xy 93.900001 67.174986) (xy 93.910494 67.277697)
|
||||||
(xy 93.965643 67.444124) (xy 94.057684 67.593345) (xy 94.181654 67.717315) (xy 94.330875 67.809356)
|
(xy 93.965641 67.444119) (xy 93.965643 67.444124) (xy 94.057684 67.593345) (xy 94.181654 67.717315)
|
||||||
(xy 94.33088 67.809358) (xy 94.497302 67.864505) (xy 94.497309 67.864506) (xy 94.600019 67.874999)
|
(xy 94.330875 67.809356) (xy 94.33088 67.809358) (xy 94.497302 67.864505) (xy 94.497309 67.864506)
|
||||||
(xy 94.749999 67.874999) (xy 94.75 67.874998) (xy 94.75 66.78033) (xy 94.769745 66.800075) (xy 94.855255 66.849444)
|
(xy 94.600019 67.874999) (xy 94.749999 67.874999) (xy 94.75 67.874998) (xy 94.75 66.78033) (xy 94.769745 66.800075)
|
||||||
(xy 94.95063 66.875) (xy 95.04937 66.875) (xy 95.144745 66.849444) (xy 95.230255 66.800075) (xy 95.25 66.78033)
|
(xy 94.855255 66.849444) (xy 94.95063 66.875) (xy 95.04937 66.875) (xy 95.144745 66.849444) (xy 95.230255 66.800075)
|
||||||
(xy 95.25 67.874999) (xy 95.399972 67.874999) (xy 95.399986 67.874998) (xy 95.502697 67.864505)
|
(xy 95.25 66.78033) (xy 95.25 67.874999) (xy 95.399972 67.874999) (xy 95.399986 67.874998) (xy 95.502697 67.864505)
|
||||||
(xy 95.669119 67.809358) (xy 95.669124 67.809356) (xy 95.818345 67.717315) (xy 95.942315 67.593345)
|
(xy 95.669119 67.809358) (xy 95.669124 67.809356) (xy 95.818345 67.717315) (xy 95.942315 67.593345)
|
||||||
(xy 95.981945 67.529094) (xy 96.033893 67.482368) (xy 96.102855 67.471145) (xy 96.166937 67.498988)
|
(xy 95.981945 67.529094) (xy 96.033893 67.482368) (xy 96.102855 67.471145) (xy 96.166937 67.498988)
|
||||||
(xy 96.175166 67.506508) (xy 96.283072 67.614414) (xy 96.423212 67.716232) (xy 96.577555 67.794873)
|
(xy 96.175166 67.506508) (xy 96.283072 67.614414) (xy 96.423212 67.716232) (xy 96.577555 67.794873)
|
||||||
@@ -3263,112 +3288,117 @@
|
|||||||
(xy 106.939999 61.497203) (xy 106.884814 61.330666) (xy 106.792712 61.181344) (xy 106.699049 61.087681)
|
(xy 106.939999 61.497203) (xy 106.884814 61.330666) (xy 106.792712 61.181344) (xy 106.699049 61.087681)
|
||||||
(xy 106.665564 61.026358) (xy 106.670548 60.956666) (xy 106.699049 60.912319) (xy 106.742517 60.868851)
|
(xy 106.665564 61.026358) (xy 106.670548 60.956666) (xy 106.699049 60.912319) (xy 106.742517 60.868851)
|
||||||
(xy 106.792712 60.818656) (xy 106.884814 60.669334) (xy 106.884815 60.669331) (xy 106.888605 60.663187)
|
(xy 106.792712 60.818656) (xy 106.884814 60.669334) (xy 106.884815 60.669331) (xy 106.888605 60.663187)
|
||||||
(xy 106.890399 60.664293) (xy 106.929687 60.619663) (xy 106.995908 60.6005) (xy 107.337837 60.6005)
|
(xy 106.890399 60.664293) (xy 106.929687 60.619663) (xy 106.995908 60.6005) (xy 107.520398 60.6005)
|
||||||
(xy 107.404876 60.620185) (xy 107.450631 60.672989) (xy 107.459089 60.698541) (xy 107.459999 60.702792)
|
(xy 107.587437 60.620185) (xy 107.630882 60.668204) (xy 107.631458 60.669334) (xy 107.637715 60.681614)
|
||||||
(xy 107.483805 60.774633) (xy 107.515186 60.869334) (xy 107.607288 61.018656) (xy 107.731344 61.142712)
|
(xy 107.758028 60.847213) (xy 107.902786 60.991971) (xy 108.034522 61.087681) (xy 108.06839 61.112287)
|
||||||
(xy 107.880666 61.234814) (xy 108.047203 61.289999) (xy 108.149991 61.3005) (xy 109.350008 61.300499)
|
(xy 108.184607 61.171503) (xy 108.250776 61.205218) (xy 108.250778 61.205218) (xy 108.250781 61.20522)
|
||||||
(xy 109.452797 61.289999) (xy 109.619334 61.234814) (xy 109.768656 61.142712) (xy 109.892712 61.018656)
|
(xy 108.340459 61.234358) (xy 108.445465 61.268477) (xy 108.546557 61.284488) (xy 108.647648 61.3005)
|
||||||
(xy 109.984814 60.869334) (xy 110.039999 60.702797) (xy 110.0505 60.600009) (xy 110.050499 59.399992)
|
(xy 108.647649 61.3005) (xy 108.852351 61.3005) (xy 108.852352 61.3005) (xy 109.054534 61.268477)
|
||||||
(xy 110.04774 59.372987) (xy 110.039999 59.297203) (xy 110.039998 59.2972) (xy 110.036055 59.2853)
|
(xy 109.249219 61.20522) (xy 109.43161 61.112287) (xy 109.549882 61.026358) (xy 109.597213 60.991971)
|
||||||
(xy 109.984814 59.130666) (xy 109.892712 58.981344) (xy 109.768656 58.857288) (xy 109.619334 58.765186)
|
(xy 109.597215 60.991968) (xy 109.597219 60.991966) (xy 109.741966 60.847219) (xy 109.741968 60.847215)
|
||||||
(xy 109.550696 58.742441) (xy 109.493252 58.702669) (xy 109.46643 58.638153) (xy 109.478745 58.569377)
|
(xy 109.741971 60.847213) (xy 109.837892 60.715187) (xy 109.862287 60.68161) (xy 109.95522 60.499219)
|
||||||
(xy 109.526289 58.518177) (xy 109.550699 58.50703) (xy 109.619117 58.484359) (xy 109.619124 58.484356)
|
(xy 110.018477 60.304534) (xy 110.0505 60.102352) (xy 110.0505 59.897648) (xy 110.027558 59.752799)
|
||||||
(xy 109.768345 58.392315) (xy 109.892315 58.268345) (xy 109.984356 58.119124) (xy 109.984358 58.119119)
|
(xy 110.018477 59.695465) (xy 109.955218 59.500776) (xy 109.916352 59.424499) (xy 109.862287 59.31839)
|
||||||
(xy 110.039505 57.952697) (xy 110.039506 57.95269) (xy 110.049999 57.849986) (xy 110.05 57.849973)
|
(xy 109.795018 59.225801) (xy 109.741971 59.152786) (xy 109.597213 59.008028) (xy 109.431613 58.887715)
|
||||||
(xy 110.05 57.5) (xy 108.916988 57.5) (xy 108.934205 57.49006) (xy 108.99006 57.434205) (xy 109.029556 57.365796)
|
(xy 109.431612 58.887714) (xy 109.43161 58.887713) (xy 109.249219 58.79478) (xy 109.240443 58.791928)
|
||||||
(xy 109.05 57.289496) (xy 109.05 57.210504) (xy 109.029556 57.134204) (xy 108.99006 57.065795) (xy 108.934205 57.00994)
|
(xy 109.182771 58.752494) (xy 109.155572 58.688136) (xy 109.167486 58.619289) (xy 109.214729 58.567813)
|
||||||
(xy 108.916988 57) (xy 109 57) (xy 110.049999 57) (xy 110.049999 56.650028) (xy 110.049998 56.650013)
|
(xy 109.278764 58.549999) (xy 109.349971 58.549999) (xy 109.349987 58.549998) (xy 109.452697 58.539505)
|
||||||
(xy 110.039505 56.547302) (xy 109.984358 56.38088) (xy 109.984356 56.380875) (xy 109.892315 56.231654)
|
(xy 109.619119 58.484358) (xy 109.619124 58.484356) (xy 109.768345 58.392315) (xy 109.892315 58.268345)
|
||||||
(xy 109.768345 56.107684) (xy 109.619124 56.015643) (xy 109.619119 56.015641) (xy 109.452697 55.960494)
|
(xy 109.984356 58.119124) (xy 109.984358 58.119119) (xy 110.039505 57.952697) (xy 110.039506 57.95269)
|
||||||
(xy 109.45269 55.960493) (xy 109.349986 55.95) (xy 109 55.95) (xy 109 57) (xy 108.916988 57) (xy 108.865796 56.970444)
|
(xy 110.049999 57.849986) (xy 110.05 57.849973) (xy 110.05 57.5) (xy 108.916988 57.5) (xy 108.934205 57.49006)
|
||||||
(xy 108.789496 56.95) (xy 108.710504 56.95) (xy 108.634204 56.970444) (xy 108.565795 57.00994) (xy 108.50994 57.065795)
|
(xy 108.99006 57.434205) (xy 109.029556 57.365796) (xy 109.05 57.289496) (xy 109.05 57.210504) (xy 109.029556 57.134204)
|
||||||
(xy 108.470444 57.134204) (xy 108.45 57.210504) (xy 108.45 57.289496) (xy 108.470444 57.365796)
|
(xy 108.99006 57.065795) (xy 108.934205 57.00994) (xy 108.916988 57) (xy 109 57) (xy 110.049999 57)
|
||||||
(xy 108.50994 57.434205) (xy 108.565795 57.49006) (xy 108.583012 57.5) (xy 107.450001 57.5) (xy 107.450001 57.849986)
|
(xy 110.049999 56.650028) (xy 110.049998 56.650013) (xy 110.039505 56.547302) (xy 109.984358 56.38088)
|
||||||
(xy 107.460494 57.952697) (xy 107.515641 58.119119) (xy 107.515643 58.119124) (xy 107.607684 58.268345)
|
(xy 109.984356 56.380875) (xy 109.892315 56.231654) (xy 109.768345 56.107684) (xy 109.619124 56.015643)
|
||||||
(xy 107.731654 58.392315) (xy 107.880875 58.484356) (xy 107.880882 58.484359) (xy 107.9493 58.50703)
|
(xy 109.619119 56.015641) (xy 109.452697 55.960494) (xy 109.45269 55.960493) (xy 109.349986 55.95)
|
||||||
(xy 108.006745 58.546802) (xy 108.033569 58.611317) (xy 108.021254 58.680093) (xy 107.973712 58.731294)
|
(xy 109 55.95) (xy 109 57) (xy 108.916988 57) (xy 108.865796 56.970444) (xy 108.789496 56.95) (xy 108.710504 56.95)
|
||||||
(xy 107.949302 58.742441) (xy 107.880674 58.765182) (xy 107.880663 58.765187) (xy 107.731342 58.857289)
|
(xy 108.634204 56.970444) (xy 108.565795 57.00994) (xy 108.50994 57.065795) (xy 108.470444 57.134204)
|
||||||
(xy 107.607289 58.981342) (xy 107.515187 59.130663) (xy 107.515185 59.130668) (xy 107.46 59.297204)
|
(xy 108.45 57.210504) (xy 108.45 57.289496) (xy 108.470444 57.365796) (xy 108.50994 57.434205) (xy 108.565795 57.49006)
|
||||||
(xy 107.459088 59.301467) (xy 107.425801 59.362898) (xy 107.364586 59.396581) (xy 107.337837 59.3995)
|
(xy 108.583012 57.5) (xy 107.450001 57.5) (xy 107.450001 57.849986) (xy 107.460494 57.952697) (xy 107.515641 58.119119)
|
||||||
(xy 106.995908 59.3995) (xy 106.928869 59.379815) (xy 106.890363 59.335728) (xy 106.888605 59.336813)
|
(xy 107.515643 58.119124) (xy 107.607684 58.268345) (xy 107.731654 58.392315) (xy 107.880875 58.484356)
|
||||||
(xy 106.884812 59.330663) (xy 106.792712 59.181344) (xy 106.668656 59.057288) (xy 106.546033 58.981654)
|
(xy 107.88088 58.484358) (xy 108.047302 58.539505) (xy 108.047309 58.539506) (xy 108.150019 58.549999)
|
||||||
(xy 106.519336 58.965187) (xy 106.519331 58.965185) (xy 106.470225 58.948913) (xy 106.352797 58.910001)
|
(xy 108.22123 58.549999) (xy 108.28827 58.569683) (xy 108.334026 58.622486) (xy 108.34397 58.691644)
|
||||||
(xy 106.352795 58.91) (xy 106.25001 58.8995) (xy 105.249998 58.8995) (xy 105.24998 58.899501) (xy 105.147203 58.91)
|
(xy 108.314946 58.7552) (xy 108.259559 58.791927) (xy 108.25078 58.794779) (xy 108.068386 58.887715)
|
||||||
(xy 105.1472 58.910001) (xy 104.980668 58.965185) (xy 104.980663 58.965187) (xy 104.831342 59.057289)
|
(xy 107.902786 59.008028) (xy 107.758028 59.152786) (xy 107.637715 59.318385) (xy 107.630883 59.331795)
|
||||||
(xy 104.707289 59.181342) (xy 104.615187 59.330663) (xy 104.615185 59.330668) (xy 104.56 59.497204)
|
(xy 107.582909 59.382591) (xy 107.520398 59.3995) (xy 106.995908 59.3995) (xy 106.928869 59.379815)
|
||||||
(xy 104.5495 59.599983) (xy 104.5495 60.400001) (xy 104.549501 60.400019) (xy 104.56 60.502796)
|
(xy 106.890363 59.335728) (xy 106.888605 59.336813) (xy 106.884812 59.330663) (xy 106.792712 59.181344)
|
||||||
(xy 104.560001 60.502799) (xy 104.615185 60.669331) (xy 104.615187 60.669336) (xy 104.63576 60.70269)
|
(xy 106.668656 59.057288) (xy 106.519334 58.965186) (xy 106.352797 58.910001) (xy 106.352795 58.91)
|
||||||
(xy 104.679867 60.7742) (xy 104.707289 60.818657) (xy 104.800951 60.912319) (xy 104.834436 60.973642)
|
(xy 106.25001 58.8995) (xy 105.249998 58.8995) (xy 105.24998 58.899501) (xy 105.147203 58.91) (xy 105.1472 58.910001)
|
||||||
(xy 104.829452 61.043334) (xy 104.800951 61.087681) (xy 104.707289 61.181342) (xy 104.615187 61.330663)
|
(xy 104.980668 58.965185) (xy 104.980663 58.965187) (xy 104.831342 59.057289) (xy 104.707289 59.181342)
|
||||||
(xy 104.615186 61.330666) (xy 104.560001 61.497203) (xy 104.560001 61.497204) (xy 104.56 61.497204)
|
(xy 104.615187 59.330663) (xy 104.615185 59.330668) (xy 104.56 59.497204) (xy 104.5495 59.599983)
|
||||||
(xy 104.5495 61.599983) (xy 104.5495 62.299902) (xy 104.529815 62.366941) (xy 104.513181 62.387583)
|
(xy 104.5495 60.400001) (xy 104.549501 60.400019) (xy 104.56 60.502796) (xy 104.560001 60.502799)
|
||||||
(xy 102.519481 64.381282) (xy 102.519477 64.381287) (xy 102.474206 64.459701) (xy 102.474206 64.459702)
|
(xy 104.615185 60.669331) (xy 104.615187 60.669336) (xy 104.63576 60.70269) (xy 104.679867 60.7742)
|
||||||
(xy 102.440423 64.518214) (xy 102.440423 64.518215) (xy 102.399499 64.670943) (xy 102.399499 64.670945)
|
(xy 104.707289 60.818657) (xy 104.800951 60.912319) (xy 104.834436 60.973642) (xy 104.829452 61.043334)
|
||||||
(xy 102.399499 64.839046) (xy 102.3995 64.839059) (xy 102.3995 65.237814) (xy 102.379815 65.304853)
|
(xy 104.800951 61.087681) (xy 104.707289 61.181342) (xy 104.615187 61.330663) (xy 104.615186 61.330666)
|
||||||
(xy 102.348387 65.338131) (xy 102.283072 65.385585) (xy 102.160588 65.508069) (xy 102.160581 65.508078)
|
(xy 104.560001 61.497203) (xy 104.560001 61.497204) (xy 104.56 61.497204) (xy 104.5495 61.599983)
|
||||||
(xy 102.100317 65.591023) (xy 102.044987 65.633689) (xy 101.975374 65.639667) (xy 101.913579 65.607061)
|
(xy 104.5495 62.299902) (xy 104.529815 62.366941) (xy 104.513181 62.387583) (xy 102.519481 64.381282)
|
||||||
(xy 101.899683 65.591023) (xy 101.839655 65.508404) (xy 101.839414 65.508072) (xy 101.716928 65.385586)
|
(xy 102.519477 64.381287) (xy 102.474206 64.459701) (xy 102.474206 64.459702) (xy 102.440423 64.518214)
|
||||||
(xy 101.677104 65.356652) (xy 101.651613 65.338131) (xy 101.608948 65.282801) (xy 101.6005 65.237814)
|
(xy 102.440423 64.518215) (xy 102.399499 64.670943) (xy 102.399499 64.670945) (xy 102.399499 64.839046)
|
||||||
(xy 101.6005 62.721537) (xy 101.620185 62.654498) (xy 101.672989 62.608743) (xy 101.740691 62.598599)
|
(xy 102.3995 64.839059) (xy 102.3995 65.237814) (xy 102.379815 65.304853) (xy 102.348387 65.338131)
|
||||||
(xy 101.751329 62.6) (xy 102.2 62.6) (xy 102.7 62.6) (xy 103.148671 62.6) (xy 103.264019 62.584814)
|
(xy 102.283072 65.385585) (xy 102.160588 65.508069) (xy 102.160581 65.508078) (xy 102.100317 65.591023)
|
||||||
(xy 103.264024 62.584812) (xy 103.407541 62.525366) (xy 103.407542 62.525366) (xy 103.530792 62.430792)
|
(xy 102.044987 65.633689) (xy 101.975374 65.639667) (xy 101.913579 65.607061) (xy 101.899683 65.591023)
|
||||||
(xy 103.625366 62.307542) (xy 103.625366 62.307541) (xy 103.684812 62.164024) (xy 103.684814 62.164019)
|
(xy 101.839655 65.508404) (xy 101.839414 65.508072) (xy 101.716928 65.385586) (xy 101.677104 65.356652)
|
||||||
(xy 103.7 62.04867) (xy 103.7 61.9) (xy 102.7 61.9) (xy 102.7 62.6) (xy 102.2 62.6) (xy 102.2 61.4)
|
(xy 101.651613 65.338131) (xy 101.608948 65.282801) (xy 101.6005 65.237814) (xy 101.6005 62.721537)
|
||||||
(xy 102.7 61.4) (xy 103.7 61.4) (xy 103.7 61.251329) (xy 103.684814 61.13598) (xy 103.684812 61.135975)
|
(xy 101.620185 62.654498) (xy 101.672989 62.608743) (xy 101.740691 62.598599) (xy 101.751329 62.6)
|
||||||
(xy 103.625366 60.992458) (xy 103.625366 60.992457) (xy 103.530792 60.869207) (xy 103.407541 60.774633)
|
(xy 102.2 62.6) (xy 102.7 62.6) (xy 103.148671 62.6) (xy 103.264019 62.584814) (xy 103.264024 62.584812)
|
||||||
(xy 103.264024 60.715187) (xy 103.264019 60.715185) (xy 103.148671 60.7) (xy 102.7 60.7) (xy 102.7 61.4)
|
(xy 103.407541 62.525366) (xy 103.407542 62.525366) (xy 103.530792 62.430792) (xy 103.625366 62.307542)
|
||||||
(xy 102.2 61.4) (xy 102.2 60.7) (xy 101.751333 60.7) (xy 101.740682 60.701402) (xy 101.671647 60.690634)
|
(xy 103.625366 62.307541) (xy 103.684812 62.164024) (xy 103.684814 62.164019) (xy 103.7 62.04867)
|
||||||
(xy 101.619393 60.644253) (xy 101.6005 60.578462) (xy 101.6005 60.100097) (xy 101.620185 60.033058)
|
(xy 103.7 61.9) (xy 102.7 61.9) (xy 102.7 62.6) (xy 102.2 62.6) (xy 102.2 61.4) (xy 102.7 61.4)
|
||||||
(xy 101.636819 60.012416) (xy 102.312417 59.336818) (xy 102.37374 59.303333) (xy 102.400098 59.300499)
|
(xy 103.7 61.4) (xy 103.7 61.251329) (xy 103.684814 61.13598) (xy 103.684812 61.135975) (xy 103.625366 60.992458)
|
||||||
(xy 103.148703 59.300499) (xy 103.264142 59.285303) (xy 103.264146 59.285301) (xy 103.264151 59.285301)
|
(xy 103.625366 60.992457) (xy 103.530792 60.869207) (xy 103.407541 60.774633) (xy 103.264024 60.715187)
|
||||||
(xy 103.407798 59.2258) (xy 103.531149 59.131149) (xy 103.6258 59.007798) (xy 103.685301 58.864151)
|
(xy 103.264019 60.715185) (xy 103.148671 60.7) (xy 102.7 60.7) (xy 102.7 61.4) (xy 102.2 61.4) (xy 102.2 60.7)
|
||||||
(xy 103.7005 58.748701) (xy 103.700499 57.9513) (xy 103.700499 57.951298) (xy 103.700499 57.951296)
|
(xy 101.751333 60.7) (xy 101.740682 60.701402) (xy 101.671647 60.690634) (xy 101.619393 60.644253)
|
||||||
(xy 103.685303 57.835857) (xy 103.685301 57.83585) (xy 103.685301 57.835849) (xy 103.6258 57.692202)
|
(xy 101.6005 60.578462) (xy 101.6005 60.100097) (xy 101.620185 60.033058) (xy 101.636819 60.012416)
|
||||||
(xy 103.531149 57.568851) (xy 103.407798 57.4742) (xy 103.407794 57.474198) (xy 103.264151 57.414699)
|
(xy 102.312417 59.336818) (xy 102.37374 59.303333) (xy 102.400098 59.300499) (xy 103.148703 59.300499)
|
||||||
(xy 103.264149 57.414698) (xy 103.148701 57.3995) (xy 101.751296 57.3995) (xy 101.635857 57.414696)
|
(xy 103.264142 59.285303) (xy 103.264146 59.285301) (xy 103.264151 59.285301) (xy 103.407798 59.2258)
|
||||||
(xy 101.635848 57.414699) (xy 101.492205 57.474198) (xy 101.368851 57.568851) (xy 101.274198 57.692205)
|
(xy 103.531149 59.131149) (xy 103.6258 59.007798) (xy 103.685301 58.864151) (xy 103.7005 58.748701)
|
||||||
(xy 101.214699 57.835848) (xy 101.214698 57.83585) (xy 101.1995 57.951298) (xy 101.1995 58.699901)
|
(xy 103.700499 57.9513) (xy 103.700499 57.951298) (xy 103.700499 57.951296) (xy 103.685303 57.835857)
|
||||||
(xy 101.179815 58.76694) (xy 101.163181 58.787582) (xy 100.631286 59.319478) (xy 100.519481 59.431282)
|
(xy 103.685301 57.83585) (xy 103.685301 57.835849) (xy 103.6258 57.692202) (xy 103.531149 57.568851)
|
||||||
(xy 100.51948 59.431284) (xy 100.481422 59.497203) (xy 100.440423 59.568215) (xy 100.399499 59.720943)
|
(xy 103.407798 57.4742) (xy 103.407794 57.474198) (xy 103.264151 57.414699) (xy 103.264149 57.414698)
|
||||||
(xy 100.399499 59.720945) (xy 100.399499 59.889046) (xy 100.3995 59.889059) (xy 100.3995 65.237814)
|
(xy 103.148701 57.3995) (xy 101.751296 57.3995) (xy 101.635857 57.414696) (xy 101.635848 57.414699)
|
||||||
(xy 100.379815 65.304853) (xy 100.348387 65.338131) (xy 100.283072 65.385585) (xy 100.160588 65.508069)
|
(xy 101.492205 57.474198) (xy 101.368851 57.568851) (xy 101.274198 57.692205) (xy 101.214699 57.835848)
|
||||||
(xy 100.160581 65.508078) (xy 100.100317 65.591023) (xy 100.082137 65.605041) (xy 100.067114 65.622405)
|
(xy 101.214698 57.83585) (xy 101.1995 57.951298) (xy 101.1995 58.699901) (xy 101.179815 58.76694)
|
||||||
(xy 100.054992 65.625973) (xy 100.044987 65.633689) (xy 100.022111 65.635653) (xy 100.000088 65.642137)
|
(xy 101.163181 58.787582) (xy 100.631286 59.319478) (xy 100.519481 59.431282) (xy 100.51948 59.431284)
|
||||||
(xy 99.987962 65.638585) (xy 99.975374 65.639667) (xy 99.955067 65.628952) (xy 99.933035 65.6225)
|
(xy 100.481422 59.497203) (xy 100.440423 59.568215) (xy 100.399499 59.720943) (xy 100.399499 59.720945)
|
||||||
(xy 99.920603 65.610767) (xy 99.913579 65.607061) (xy 99.906345 65.599406) (xy 99.902825 65.595349)
|
(xy 100.399499 59.889046) (xy 100.3995 59.889059) (xy 100.3995 65.237814) (xy 100.379815 65.304853)
|
||||||
(xy 99.839414 65.508072) (xy 99.746225 65.414883) (xy 99.743345 65.411564) (xy 99.730561 65.383624)
|
(xy 100.348387 65.338131) (xy 100.283072 65.385585) (xy 100.160588 65.508069) (xy 100.160581 65.508078)
|
||||||
(xy 99.715834 65.356652) (xy 99.7151 65.349834) (xy 99.714275 65.348029) (xy 99.714635 65.345507)
|
(xy 100.100317 65.591023) (xy 100.082137 65.605041) (xy 100.067114 65.622405) (xy 100.054992 65.625973)
|
||||||
(xy 99.713 65.330295) (xy 99.713 56.650013) (xy 107.45 56.650013) (xy 107.45 57) (xy 108.5 57) (xy 108.5 55.95)
|
(xy 100.044987 65.633689) (xy 100.022111 65.635653) (xy 100.000088 65.642137) (xy 99.987962 65.638585)
|
||||||
(xy 108.150028 55.95) (xy 108.150012 55.950001) (xy 108.047302 55.960494) (xy 107.88088 56.015641)
|
(xy 99.975374 65.639667) (xy 99.955067 65.628952) (xy 99.933035 65.6225) (xy 99.920603 65.610767)
|
||||||
(xy 107.880875 56.015643) (xy 107.731654 56.107684) (xy 107.607684 56.231654) (xy 107.515643 56.380875)
|
(xy 99.913579 65.607061) (xy 99.906345 65.599406) (xy 99.902825 65.595349) (xy 99.839414 65.508072)
|
||||||
(xy 107.515641 56.38088) (xy 107.460494 56.547302) (xy 107.460493 56.547309) (xy 107.45 56.650013)
|
(xy 99.746225 65.414883) (xy 99.743345 65.411564) (xy 99.730561 65.383624) (xy 99.715834 65.356652)
|
||||||
(xy 99.713 56.650013) (xy 99.713 56.421248) (xy 99.732685 56.354209) (xy 99.748651 56.334239) (xy 99.759157 56.32357)
|
(xy 99.7151 65.349834) (xy 99.714275 65.348029) (xy 99.714635 65.345507) (xy 99.713 65.330295) (xy 99.713 56.650013)
|
||||||
(xy 99.768656 56.317712) (xy 99.892712 56.193656) (xy 99.902114 56.178411) (xy 99.911944 56.168431)
|
(xy 107.45 56.650013) (xy 107.45 57) (xy 108.5 57) (xy 108.5 55.95) (xy 108.150028 55.95) (xy 108.150012 55.950001)
|
||||||
(xy 99.930722 56.15799) (xy 99.946694 56.143623) (xy 99.96065 56.14135) (xy 99.97301 56.134479)
|
(xy 108.047302 55.960494) (xy 107.88088 56.015641) (xy 107.880875 56.015643) (xy 107.731654 56.107684)
|
||||||
(xy 99.99445 56.135847) (xy 100.015656 56.132395) (xy 100.028625 56.138029) (xy 100.042737 56.13893)
|
(xy 107.607684 56.231654) (xy 107.515643 56.380875) (xy 107.515641 56.38088) (xy 107.460494 56.547302)
|
||||||
(xy 100.060034 56.151673) (xy 100.07974 56.160234) (xy 100.094019 56.176712) (xy 100.098989 56.180373)
|
(xy 107.460493 56.547309) (xy 107.45 56.650013) (xy 99.713 56.650013) (xy 99.713 56.421248) (xy 99.732685 56.354209)
|
||||||
(xy 100.100403 56.184078) (xy 100.105829 56.190339) (xy 100.107681 56.193341) (xy 100.107683 56.193344)
|
(xy 99.748651 56.334239) (xy 99.759157 56.32357) (xy 99.768656 56.317712) (xy 99.892712 56.193656)
|
||||||
(xy 100.231654 56.317315) (xy 100.380875 56.409356) (xy 100.38088 56.409358) (xy 100.547302 56.464505)
|
(xy 99.902114 56.178411) (xy 99.911944 56.168431) (xy 99.930722 56.15799) (xy 99.946694 56.143623)
|
||||||
(xy 100.547309 56.464506) (xy 100.650019 56.474999) (xy 100.787499 56.474999) (xy 101.2875 56.474999)
|
(xy 99.96065 56.14135) (xy 99.97301 56.134479) (xy 99.99445 56.135847) (xy 100.015656 56.132395)
|
||||||
(xy 101.424972 56.474999) (xy 101.424986 56.474998) (xy 101.527697 56.464505) (xy 101.694119 56.409358)
|
(xy 100.028625 56.138029) (xy 100.042737 56.13893) (xy 100.060034 56.151673) (xy 100.07974 56.160234)
|
||||||
(xy 101.694124 56.409356) (xy 101.843345 56.317315) (xy 101.967315 56.193345) (xy 102.059356 56.044124)
|
(xy 100.094019 56.176712) (xy 100.098989 56.180373) (xy 100.100403 56.184078) (xy 100.105829 56.190339)
|
||||||
(xy 102.059358 56.044119) (xy 102.114505 55.877697) (xy 102.114506 55.87769) (xy 102.124999 55.774986)
|
(xy 100.107681 56.193341) (xy 100.107683 56.193344) (xy 100.231654 56.317315) (xy 100.380875 56.409356)
|
||||||
(xy 102.125 55.774973) (xy 102.125 55.5) (xy 101.2875 55.5) (xy 101.2875 56.474999) (xy 100.787499 56.474999)
|
(xy 100.38088 56.409358) (xy 100.547302 56.464505) (xy 100.547309 56.464506) (xy 100.650019 56.474999)
|
||||||
(xy 100.7875 56.474998) (xy 100.7875 55) (xy 101.2875 55) (xy 102.124999 55) (xy 102.124999 54.725028)
|
(xy 100.787499 56.474999) (xy 101.2875 56.474999) (xy 101.424972 56.474999) (xy 101.424986 56.474998)
|
||||||
(xy 102.124998 54.725013) (xy 102.114505 54.622302) (xy 102.059358 54.45588) (xy 102.059356 54.455875)
|
(xy 101.527697 56.464505) (xy 101.694119 56.409358) (xy 101.694124 56.409356) (xy 101.843345 56.317315)
|
||||||
(xy 101.967315 54.306654) (xy 101.843345 54.182684) (xy 101.694124 54.090643) (xy 101.694119 54.090641)
|
(xy 101.967315 56.193345) (xy 102.059356 56.044124) (xy 102.059358 56.044119) (xy 102.114505 55.877697)
|
||||||
(xy 101.527697 54.035494) (xy 101.52769 54.035493) (xy 101.424986 54.025) (xy 101.2875 54.025) (xy 101.2875 55)
|
(xy 102.114506 55.87769) (xy 102.124999 55.774986) (xy 102.125 55.774973) (xy 102.125 55.5) (xy 101.2875 55.5)
|
||||||
(xy 100.7875 55) (xy 100.7875 54.025) (xy 100.650027 54.025) (xy 100.650012 54.025001) (xy 100.547302 54.035494)
|
(xy 101.2875 56.474999) (xy 100.787499 56.474999) (xy 100.7875 56.474998) (xy 100.7875 55) (xy 101.2875 55)
|
||||||
(xy 100.38088 54.090641) (xy 100.380875 54.090643) (xy 100.231654 54.182684) (xy 100.107683 54.306655)
|
(xy 102.124999 55) (xy 102.124999 54.725028) (xy 102.124998 54.725013) (xy 102.114505 54.622302)
|
||||||
(xy 100.107679 54.30666) (xy 100.105826 54.309665) (xy 100.104018 54.31129) (xy 100.103202 54.312323)
|
(xy 102.059358 54.45588) (xy 102.059356 54.455875) (xy 101.967315 54.306654) (xy 101.843345 54.182684)
|
||||||
(xy 100.103025 54.312183) (xy 100.053874 54.356385) (xy 99.984911 54.367601) (xy 99.920831 54.339752)
|
(xy 101.694124 54.090643) (xy 101.694119 54.090641) (xy 101.527697 54.035494) (xy 101.52769 54.035493)
|
||||||
(xy 99.894753 54.309653) (xy 99.894737 54.309628) (xy 99.892712 54.306344) (xy 99.768656 54.182288)
|
(xy 101.424986 54.025) (xy 101.2875 54.025) (xy 101.2875 55) (xy 100.7875 55) (xy 100.7875 54.025)
|
||||||
(xy 99.619334 54.090186) (xy 99.452797 54.035001) (xy 99.452795 54.035) (xy 99.35001 54.0245) (xy 98.574998 54.0245)
|
(xy 100.650027 54.025) (xy 100.650012 54.025001) (xy 100.547302 54.035494) (xy 100.38088 54.090641)
|
||||||
(xy 98.57498 54.024501) (xy 98.472203 54.035) (xy 98.4722 54.035001) (xy 98.305668 54.090185) (xy 98.305663 54.090187)
|
(xy 100.380875 54.090643) (xy 100.231654 54.182684) (xy 100.107683 54.306655) (xy 100.107679 54.30666)
|
||||||
(xy 98.156342 54.182289) (xy 98.032289 54.306342) (xy 97.940187 54.455663) (xy 97.940185 54.455668)
|
(xy 100.105826 54.309665) (xy 100.104018 54.31129) (xy 100.103202 54.312323) (xy 100.103025 54.312183)
|
||||||
(xy 97.940115 54.45588) (xy 97.885001 54.622203) (xy 97.885001 54.622204) (xy 97.885 54.622204)
|
(xy 100.053874 54.356385) (xy 99.984911 54.367601) (xy 99.920831 54.339752) (xy 99.894753 54.309653)
|
||||||
(xy 97.8745 54.724983) (xy 97.8745 55.775001) (xy 97.874501 55.775019) (xy 97.885 55.877796) (xy 97.885001 55.877799)
|
(xy 99.894737 54.309628) (xy 99.892712 54.306344) (xy 99.768656 54.182288) (xy 99.619334 54.090186)
|
||||||
(xy 97.912404 55.960494) (xy 97.940186 56.044334) (xy 98.032096 56.193345) (xy 98.032289 56.193657)
|
(xy 99.452797 54.035001) (xy 99.452795 54.035) (xy 99.35001 54.0245) (xy 98.574998 54.0245) (xy 98.57498 54.024501)
|
||||||
|
(xy 98.472203 54.035) (xy 98.4722 54.035001) (xy 98.305668 54.090185) (xy 98.305663 54.090187) (xy 98.156342 54.182289)
|
||||||
|
(xy 98.032289 54.306342) (xy 97.940187 54.455663) (xy 97.940185 54.455668) (xy 97.940115 54.45588)
|
||||||
|
(xy 97.885001 54.622203) (xy 97.885001 54.622204) (xy 97.885 54.622204) (xy 97.8745 54.724983) (xy 97.8745 55.775001)
|
||||||
|
(xy 97.874501 55.775019) (xy 97.885 55.877796) (xy 97.885001 55.877799) (xy 97.940185 56.044331)
|
||||||
|
(xy 97.940187 56.044336) (xy 97.975069 56.100888) (xy 98.032096 56.193345) (xy 98.032289 56.193657)
|
||||||
(xy 98.156345 56.317713) (xy 98.162013 56.322195) (xy 98.160818 56.323705) (xy 98.169203 56.327535)
|
(xy 98.156345 56.317713) (xy 98.162013 56.322195) (xy 98.160818 56.323705) (xy 98.169203 56.327535)
|
||||||
(xy 98.182889 56.348831) (xy 98.19982 56.367654) (xy 98.202464 56.379291) (xy 98.206977 56.386313)
|
(xy 98.182889 56.348831) (xy 98.19982 56.367654) (xy 98.202464 56.379291) (xy 98.206977 56.386313)
|
||||||
(xy 98.212 56.421248) (xy 98.212 56.575269) (xy 98.192315 56.642308) (xy 98.175681 56.66295) (xy 97.475449 57.363181)
|
(xy 98.212 56.421248) (xy 98.212 56.575269) (xy 98.192315 56.642308) (xy 98.175681 56.66295) (xy 97.475449 57.363181)
|
||||||
@@ -3379,7 +3409,7 @@
|
|||||||
(xy 96.592202 59.2258) (xy 96.735849 59.285301) (xy 96.851299 59.3005) (xy 98.088 59.300499) (xy 98.155039 59.320184)
|
(xy 96.592202 59.2258) (xy 96.735849 59.285301) (xy 96.851299 59.3005) (xy 98.088 59.300499) (xy 98.155039 59.320184)
|
||||||
(xy 98.200794 59.372987) (xy 98.212 59.424499) (xy 98.212 60.5755) (xy 98.192315 60.642539) (xy 98.139511 60.688294)
|
(xy 98.200794 59.372987) (xy 98.212 59.424499) (xy 98.212 60.5755) (xy 98.192315 60.642539) (xy 98.139511 60.688294)
|
||||||
(xy 98.088 60.6995) (xy 96.851296 60.6995) (xy 96.735857 60.714696) (xy 96.735848 60.714699) (xy 96.592205 60.774198)
|
(xy 98.088 60.6995) (xy 96.851296 60.6995) (xy 96.735857 60.714696) (xy 96.735848 60.714699) (xy 96.592205 60.774198)
|
||||||
(xy 96.592202 60.774199) (xy 96.592202 60.7742) (xy 96.468851 60.868851) (xy 96.396553 60.963072)
|
(xy 96.592202 60.774199) (xy 96.592202 60.7742) (xy 96.468851 60.868851) (xy 96.374378 60.991971)
|
||||||
(xy 96.374198 60.992205) (xy 96.314699 61.135848) (xy 96.314698 61.13585) (xy 96.2995 61.251298)
|
(xy 96.374198 60.992205) (xy 96.314699 61.135848) (xy 96.314698 61.13585) (xy 96.2995 61.251298)
|
||||||
(xy 96.2995 62.048703) (xy 96.314696 62.164142) (xy 96.314699 62.164151) (xy 96.374093 62.307541)
|
(xy 96.2995 62.048703) (xy 96.314696 62.164142) (xy 96.314699 62.164151) (xy 96.374093 62.307541)
|
||||||
(xy 96.3742 62.307798) (xy 96.468851 62.431149) (xy 96.592202 62.5258) (xy 96.735849 62.585301)
|
(xy 96.3742 62.307798) (xy 96.468851 62.431149) (xy 96.592202 62.5258) (xy 96.735849 62.585301)
|
||||||
@@ -3398,36 +3428,35 @@
|
|||||||
(xy 94.6005 60.4303) (xy 94.620185 60.363261) (xy 94.672989 60.317506) (xy 94.685482 60.312599)
|
(xy 94.6005 60.4303) (xy 94.620185 60.363261) (xy 94.672989 60.317506) (xy 94.685482 60.312599)
|
||||||
(xy 94.769334 60.284814) (xy 94.918656 60.192712) (xy 95.042712 60.068656) (xy 95.134814 59.919334)
|
(xy 94.769334 60.284814) (xy 94.918656 60.192712) (xy 95.042712 60.068656) (xy 95.134814 59.919334)
|
||||||
(xy 95.189999 59.752797) (xy 95.2005 59.650009) (xy 95.200499 58.849992) (xy 95.191882 58.765641)
|
(xy 95.189999 59.752797) (xy 95.2005 59.650009) (xy 95.200499 58.849992) (xy 95.191882 58.765641)
|
||||||
(xy 95.189999 58.747203) (xy 95.189998 58.7472) (xy 95.175242 58.702669) (xy 95.134814 58.580666)
|
(xy 95.189999 58.747203) (xy 95.189998 58.7472) (xy 95.174357 58.7) (xy 95.134814 58.580666) (xy 95.042712 58.431344)
|
||||||
(xy 95.042712 58.431344) (xy 94.949049 58.337681) (xy 94.915564 58.276358) (xy 94.920548 58.206666)
|
(xy 94.949049 58.337681) (xy 94.915564 58.276358) (xy 94.920548 58.206666) (xy 94.949049 58.162319)
|
||||||
(xy 94.949049 58.162319) (xy 94.992249 58.119119) (xy 95.042712 58.068656) (xy 95.134814 57.919334)
|
(xy 94.992249 58.119119) (xy 95.042712 58.068656) (xy 95.134814 57.919334) (xy 95.189999 57.752797)
|
||||||
(xy 95.189999 57.752797) (xy 95.2005 57.650009) (xy 95.200499 56.849992) (xy 95.189999 56.747203)
|
(xy 95.2005 57.650009) (xy 95.200499 56.849992) (xy 95.190364 56.750781) (xy 95.189999 56.747203)
|
||||||
(xy 95.134814 56.580666) (xy 95.042712 56.431344) (xy 94.918656 56.307288) (xy 94.796033 56.231654)
|
(xy 95.189998 56.7472) (xy 95.1511 56.629815) (xy 95.134814 56.580666) (xy 95.042712 56.431344)
|
||||||
(xy 94.769336 56.215187) (xy 94.769331 56.215185) (xy 94.730733 56.202395) (xy 94.602797 56.160001)
|
(xy 94.918656 56.307288) (xy 94.769334 56.215186) (xy 94.602797 56.160001) (xy 94.602795 56.16)
|
||||||
(xy 94.602795 56.16) (xy 94.50001 56.1495) (xy 93.499998 56.1495) (xy 93.49998 56.149501) (xy 93.397203 56.16)
|
(xy 94.50001 56.1495) (xy 93.499998 56.1495) (xy 93.49998 56.149501) (xy 93.397203 56.16) (xy 93.3972 56.160001)
|
||||||
(xy 93.3972 56.160001) (xy 93.230668 56.215185) (xy 93.230663 56.215187) (xy 93.081342 56.307289)
|
(xy 93.230668 56.215185) (xy 93.230663 56.215187) (xy 93.081342 56.307289) (xy 92.957289 56.431342)
|
||||||
(xy 92.957289 56.431342) (xy 92.957288 56.431344) (xy 92.867441 56.577011) (xy 92.861395 56.586813)
|
(xy 92.957288 56.431344) (xy 92.872761 56.568386) (xy 92.861395 56.586813) (xy 92.8596 56.585706)
|
||||||
(xy 92.8596 56.585706) (xy 92.855014 56.590916) (xy 92.847805 56.606703) (xy 92.832406 56.616598)
|
(xy 92.820313 56.630337) (xy 92.754092 56.6495) (xy 92.479602 56.6495) (xy 92.412563 56.629815)
|
||||||
(xy 92.820313 56.630337) (xy 92.803425 56.635224) (xy 92.789027 56.644477) (xy 92.754092 56.6495)
|
(xy 92.369117 56.581795) (xy 92.362284 56.568385) (xy 92.241971 56.402786) (xy 92.097213 56.258028)
|
||||||
(xy 92.662163 56.6495) (xy 92.595124 56.629815) (xy 92.549369 56.577011) (xy 92.540911 56.551459)
|
(xy 91.931613 56.137715) (xy 91.931612 56.137714) (xy 91.93161 56.137713) (xy 91.872675 56.107684)
|
||||||
(xy 92.54 56.547207) (xy 92.525879 56.504593) (xy 92.484814 56.380666) (xy 92.392712 56.231344)
|
(xy 91.749223 56.044781) (xy 91.554534 55.981522) (xy 91.379995 55.953878) (xy 91.352352 55.9495)
|
||||||
(xy 92.268656 56.107288) (xy 92.119334 56.015186) (xy 91.952797 55.960001) (xy 91.952795 55.96)
|
(xy 91.147648 55.9495) (xy 91.123329 55.953351) (xy 90.945465 55.981522) (xy 90.750776 56.044781)
|
||||||
(xy 91.85001 55.9495) (xy 90.649998 55.9495) (xy 90.649981 55.949501) (xy 90.547203 55.96) (xy 90.5472 55.960001)
|
(xy 90.568386 56.137715) (xy 90.402786 56.258028) (xy 90.258028 56.402786) (xy 90.137715 56.568386)
|
||||||
(xy 90.380668 56.015185) (xy 90.380663 56.015187) (xy 90.231342 56.107289) (xy 90.107289 56.231342)
|
(xy 90.044781 56.750776) (xy 89.981522 56.945465) (xy 89.9495 57.147648) (xy 88.860439 57.147648)
|
||||||
(xy 90.015187 56.380663) (xy 90.015185 56.380668) (xy 89.998393 56.431344) (xy 89.960001 56.547203)
|
(xy 88.864225 57.13106) (xy 88.865957 57.124351) (xy 89.042602 56.5112) (xy 89.044708 56.504593)
|
||||||
(xy 89.960001 56.547204) (xy 89.96 56.547204) (xy 89.9495 56.649983) (xy 89.002619 56.649983) (xy 89.042602 56.5112)
|
(xy 89.255462 55.902293) (xy 89.257939 55.895807) (xy 89.502126 55.306287) (xy 89.504948 55.299981)
|
||||||
(xy 89.044708 56.504593) (xy 89.255462 55.902293) (xy 89.257939 55.895807) (xy 89.502126 55.306287)
|
(xy 89.781819 54.725051) (xy 89.784988 54.718917) (xy 90.093653 54.16043) (xy 90.097186 54.154442)
|
||||||
(xy 89.504948 55.299981) (xy 89.781819 54.725051) (xy 89.784988 54.718917) (xy 90.093653 54.16043)
|
(xy 90.436678 53.614143) (xy 90.440511 53.608406) (xy 90.809791 53.087955) (xy 90.813923 53.082464)
|
||||||
(xy 90.097186 54.154442) (xy 90.436678 53.614143) (xy 90.440511 53.608406) (xy 90.809791 53.087955)
|
(xy 91.211802 52.583539) (xy 91.216243 52.57828) (xy 91.641475 52.102446) (xy 91.64622 52.097428)
|
||||||
(xy 90.813923 53.082464) (xy 91.211802 52.583539) (xy 91.216243 52.57828) (xy 91.641475 52.102446)
|
(xy 92.097428 51.64622) (xy 92.102446 51.641475) (xy 92.57828 51.216243) (xy 92.583539 51.211802)
|
||||||
(xy 91.64622 52.097428) (xy 92.097428 51.64622) (xy 92.102446 51.641475) (xy 92.57828 51.216243)
|
(xy 93.082464 50.813923) (xy 93.087955 50.809791) (xy 93.608406 50.440511) (xy 93.614143 50.436678)
|
||||||
(xy 92.583539 51.211802) (xy 93.082464 50.813923) (xy 93.087955 50.809791) (xy 93.608406 50.440511)
|
(xy 94.154444 50.097184) (xy 94.160433 50.093652) (xy 94.315338 50.008039) (xy 94.718917 49.784988)
|
||||||
(xy 93.614143 50.436678) (xy 94.154444 50.097184) (xy 94.160433 50.093652) (xy 94.315338 50.008039)
|
(xy 94.725051 49.781819) (xy 95.299981 49.504948) (xy 95.306287 49.502126) (xy 95.89582 49.257933)
|
||||||
(xy 94.718917 49.784988) (xy 94.725051 49.781819) (xy 95.299981 49.504948) (xy 95.306287 49.502126)
|
(xy 95.902293 49.255462) (xy 96.504603 49.044704) (xy 96.5112 49.042602) (xy 97.124388 48.865946)
|
||||||
(xy 95.89582 49.257933) (xy 95.902293 49.255462) (xy 96.504603 49.044704) (xy 96.5112 49.042602)
|
(xy 97.13106 48.864225) (xy 97.75318 48.722231) (xy 97.759974 48.720879) (xy 98.389088 48.613988)
|
||||||
(xy 97.124388 48.865946) (xy 97.13106 48.864225) (xy 97.75318 48.722231) (xy 97.759974 48.720879)
|
(xy 98.395915 48.613025) (xy 99.030007 48.54158) (xy 99.036914 48.540997) (xy 99.67401 48.505219)
|
||||||
(xy 98.389088 48.613988) (xy 98.395915 48.613025) (xy 99.030007 48.54158) (xy 99.036914 48.540997)
|
(xy 99.680963 48.505024) (xy 100.319037 48.505024)
|
||||||
(xy 99.67401 48.505219) (xy 99.680963 48.505024) (xy 100.319037 48.505024)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(filled_polygon
|
(filled_polygon
|
||||||
@@ -3552,84 +3581,95 @@
|
|||||||
(xy 89.504954 64.700031) (xy 89.502117 64.69369) (xy 89.257939 64.104192) (xy 89.255458 64.097694)
|
(xy 89.504954 64.700031) (xy 89.502117 64.69369) (xy 89.257939 64.104192) (xy 89.255458 64.097694)
|
||||||
(xy 89.044708 63.495406) (xy 89.042596 63.488779) (xy 88.865949 62.87562) (xy 88.864223 62.868931)
|
(xy 89.044708 63.495406) (xy 89.042596 63.488779) (xy 88.865949 62.87562) (xy 88.864223 62.868931)
|
||||||
(xy 88.722232 62.246826) (xy 88.720877 62.240011) (xy 88.613989 61.610916) (xy 88.613024 61.604079)
|
(xy 88.722232 62.246826) (xy 88.720877 62.240011) (xy 88.613989 61.610916) (xy 88.613024 61.604079)
|
||||||
(xy 88.54158 60.969995) (xy 88.540996 60.963072) (xy 88.526379 60.702795) (xy 88.520606 60.599986)
|
(xy 88.54158 60.969995) (xy 88.540996 60.963072) (xy 88.520606 60.599986) (xy 89.950001 60.599986)
|
||||||
(xy 89.950001 60.599986) (xy 89.960494 60.702697) (xy 90.015641 60.869119) (xy 90.015643 60.869124)
|
(xy 89.960494 60.702697) (xy 90.015641 60.869119) (xy 90.015643 60.869124) (xy 90.107684 61.018345)
|
||||||
(xy 90.107684 61.018345) (xy 90.231654 61.142315) (xy 90.380875 61.234356) (xy 90.38088 61.234358)
|
(xy 90.231654 61.142315) (xy 90.380875 61.234356) (xy 90.38088 61.234358) (xy 90.547302 61.289505)
|
||||||
(xy 90.547302 61.289505) (xy 90.547309 61.289506) (xy 90.650019 61.299999) (xy 90.999999 61.299999)
|
(xy 90.547309 61.289506) (xy 90.650019 61.299999) (xy 90.999999 61.299999) (xy 91.5 61.299999) (xy 91.849972 61.299999)
|
||||||
(xy 91.5 61.299999) (xy 91.849972 61.299999) (xy 91.849986 61.299998) (xy 91.952697 61.289505) (xy 92.119119 61.234358)
|
(xy 91.849986 61.299998) (xy 91.952697 61.289505) (xy 92.119119 61.234358) (xy 92.119124 61.234356)
|
||||||
(xy 92.119124 61.234356) (xy 92.268345 61.142315) (xy 92.392315 61.018345) (xy 92.484356 60.869124)
|
(xy 92.268345 61.142315) (xy 92.392315 61.018345) (xy 92.484356 60.869124) (xy 92.484358 60.869119)
|
||||||
(xy 92.484358 60.869119) (xy 92.539505 60.702697) (xy 92.539506 60.70269) (xy 92.549999 60.599986)
|
(xy 92.539505 60.702697) (xy 92.539506 60.70269) (xy 92.549999 60.599986) (xy 92.55 60.599973) (xy 92.55 60.25)
|
||||||
(xy 92.55 60.599973) (xy 92.55 60.25) (xy 91.5 60.25) (xy 91.5 61.299999) (xy 90.999999 61.299999)
|
(xy 91.5 60.25) (xy 91.5 61.299999) (xy 90.999999 61.299999) (xy 91 61.299998) (xy 91 60.25) (xy 89.950001 60.25)
|
||||||
(xy 91 61.299998) (xy 91 60.25) (xy 89.950001 60.25) (xy 89.950001 60.599986) (xy 88.520606 60.599986)
|
(xy 89.950001 60.599986) (xy 88.520606 60.599986) (xy 88.505219 60.32599) (xy 88.505024 60.319037)
|
||||||
(xy 88.505219 60.32599) (xy 88.505024 60.319037) (xy 88.505024 59.680962) (xy 88.505219 59.674009)
|
(xy 88.505024 59.680962) (xy 88.505219 59.674009) (xy 88.540996 59.036927) (xy 88.541581 59.029997)
|
||||||
(xy 88.506608 59.64927) (xy 88.540997 59.036914) (xy 88.541581 59.029997) (xy 88.560996 58.857684)
|
(xy 88.544056 59.008034) (xy 88.613025 58.395915) (xy 88.613988 58.389088) (xy 88.720879 57.759974)
|
||||||
(xy 88.613025 58.395915) (xy 88.613988 58.389088) (xy 88.720879 57.759974) (xy 88.722234 57.753166)
|
(xy 88.722234 57.753166) (xy 88.723135 57.749219) (xy 88.860439 57.147648) (xy 89.9495 57.147648)
|
||||||
(xy 88.864225 57.13106) (xy 88.865946 57.124388) (xy 89.002619 56.649983) (xy 89.9495 56.649983)
|
(xy 89.9495 57.352351) (xy 89.981522 57.554534) (xy 90.044781 57.749223) (xy 90.137715 57.931613)
|
||||||
(xy 89.9495 57.850001) (xy 89.949501 57.850018) (xy 89.96 57.952796) (xy 89.960001 57.952799) (xy 90.015115 58.119119)
|
(xy 90.258028 58.097213) (xy 90.402786 58.241971) (xy 90.557749 58.354556) (xy 90.56839 58.362287)
|
||||||
(xy 90.015186 58.119334) (xy 90.107288 58.268656) (xy 90.231344 58.392712) (xy 90.380666 58.484814)
|
(xy 90.750781 58.45522) (xy 90.759548 58.458068) (xy 90.817224 58.497501) (xy 90.844426 58.561858)
|
||||||
(xy 90.449302 58.507557) (xy 90.506746 58.54733) (xy 90.533569 58.611845) (xy 90.521254 58.680621)
|
(xy 90.832516 58.630705) (xy 90.785275 58.682184) (xy 90.721237 58.7) (xy 90.650029 58.7) (xy 90.650012 58.700001)
|
||||||
(xy 90.473711 58.731821) (xy 90.449301 58.742969) (xy 90.38088 58.765641) (xy 90.380875 58.765643)
|
(xy 90.547302 58.710494) (xy 90.38088 58.765641) (xy 90.380875 58.765643) (xy 90.231654 58.857684)
|
||||||
(xy 90.231654 58.857684) (xy 90.107684 58.981654) (xy 90.015643 59.130875) (xy 90.015641 59.13088)
|
(xy 90.107684 58.981654) (xy 90.015643 59.130875) (xy 90.015641 59.13088) (xy 89.960494 59.297302)
|
||||||
(xy 89.960494 59.297302) (xy 89.960493 59.297309) (xy 89.95 59.400013) (xy 89.95 59.75) (xy 91.083012 59.75)
|
(xy 89.960493 59.297309) (xy 89.95 59.400013) (xy 89.95 59.75) (xy 91.083012 59.75) (xy 91.065795 59.75994)
|
||||||
(xy 91.065795 59.75994) (xy 91.00994 59.815795) (xy 90.970444 59.884204) (xy 90.95 59.960504) (xy 90.95 60.039496)
|
(xy 91.00994 59.815795) (xy 90.970444 59.884204) (xy 90.95 59.960504) (xy 90.95 60.039496) (xy 90.970444 60.115796)
|
||||||
(xy 90.970444 60.115796) (xy 91.00994 60.184205) (xy 91.065795 60.24006) (xy 91.134204 60.279556)
|
(xy 91.00994 60.184205) (xy 91.065795 60.24006) (xy 91.134204 60.279556) (xy 91.210504 60.3) (xy 91.289496 60.3)
|
||||||
(xy 91.210504 60.3) (xy 91.289496 60.3) (xy 91.365796 60.279556) (xy 91.434205 60.24006) (xy 91.49006 60.184205)
|
(xy 91.365796 60.279556) (xy 91.434205 60.24006) (xy 91.49006 60.184205) (xy 91.529556 60.115796)
|
||||||
(xy 91.529556 60.115796) (xy 91.55 60.039496) (xy 91.55 59.960504) (xy 91.529556 59.884204) (xy 91.49006 59.815795)
|
(xy 91.55 60.039496) (xy 91.55 59.960504) (xy 91.533158 59.897648) (xy 107.4495 59.897648) (xy 107.4495 60.102351)
|
||||||
(xy 91.434205 59.75994) (xy 91.416988 59.75) (xy 92.549999 59.75) (xy 92.549999 59.400024) (xy 92.549998 59.400016)
|
(xy 107.481522 60.304534) (xy 107.544781 60.499223) (xy 107.637715 60.681613) (xy 107.758028 60.847213)
|
||||||
(xy 92.549995 59.399983) (xy 107.4495 59.399983) (xy 107.4495 60.600001) (xy 107.449501 60.600018)
|
(xy 107.902786 60.991971) (xy 108.057749 61.104556) (xy 108.06839 61.112287) (xy 108.184607 61.171503)
|
||||||
(xy 107.46 60.702796) (xy 107.460001 60.702799) (xy 107.515115 60.869119) (xy 107.515186 60.869334)
|
(xy 108.250776 61.205218) (xy 108.250778 61.205218) (xy 108.250781 61.20522) (xy 108.340459 61.234358)
|
||||||
(xy 107.607288 61.018656) (xy 107.731344 61.142712) (xy 107.880666 61.234814) (xy 108.047203 61.289999)
|
(xy 108.445465 61.268477) (xy 108.546557 61.284488) (xy 108.647648 61.3005) (xy 108.647649 61.3005)
|
||||||
(xy 108.149991 61.3005) (xy 109.350008 61.300499) (xy 109.452797 61.289999) (xy 109.619334 61.234814)
|
(xy 108.852351 61.3005) (xy 108.852352 61.3005) (xy 109.054534 61.268477) (xy 109.249219 61.20522)
|
||||||
(xy 109.768656 61.142712) (xy 109.892712 61.018656) (xy 109.984814 60.869334) (xy 110.039999 60.702797)
|
(xy 109.43161 61.112287) (xy 109.52459 61.044732) (xy 109.597213 60.991971) (xy 109.597215 60.991968)
|
||||||
(xy 110.0505 60.600009) (xy 110.050499 59.399992) (xy 110.039999 59.297203) (xy 109.984814 59.130666)
|
(xy 109.597219 60.991966) (xy 109.741966 60.847219) (xy 109.741968 60.847215) (xy 109.741971 60.847213)
|
||||||
(xy 109.892712 58.981344) (xy 109.768656 58.857288) (xy 109.619334 58.765186) (xy 109.550696 58.742441)
|
(xy 109.794732 60.77459) (xy 109.862287 60.68161) (xy 109.95522 60.499219) (xy 110.018477 60.304534)
|
||||||
(xy 109.493252 58.702669) (xy 109.46643 58.638153) (xy 109.478745 58.569377) (xy 109.526289 58.518177)
|
(xy 110.0505 60.102352) (xy 110.0505 59.897648) (xy 110.028689 59.75994) (xy 110.018477 59.695465)
|
||||||
(xy 109.550699 58.50703) (xy 109.619117 58.484359) (xy 109.619124 58.484356) (xy 109.768345 58.392315)
|
(xy 109.955218 59.500776) (xy 109.921503 59.434607) (xy 109.862287 59.31839) (xy 109.846966 59.297302)
|
||||||
(xy 109.892315 58.268345) (xy 109.984356 58.119124) (xy 109.984358 58.119119) (xy 110.039505 57.952697)
|
(xy 109.741971 59.152786) (xy 109.597213 59.008028) (xy 109.431613 58.887715) (xy 109.431612 58.887714)
|
||||||
(xy 110.039506 57.95269) (xy 110.049999 57.849986) (xy 110.05 57.849973) (xy 110.05 57.5) (xy 108.916988 57.5)
|
(xy 109.43161 58.887713) (xy 109.249219 58.79478) (xy 109.240443 58.791928) (xy 109.182771 58.752494)
|
||||||
(xy 108.934205 57.49006) (xy 108.99006 57.434205) (xy 109.029556 57.365796) (xy 109.05 57.289496)
|
(xy 109.155572 58.688136) (xy 109.167486 58.619289) (xy 109.214729 58.567813) (xy 109.278764 58.549999)
|
||||||
(xy 109.05 57.210504) (xy 109.029556 57.134204) (xy 108.99006 57.065795) (xy 108.934205 57.00994)
|
(xy 109.349971 58.549999) (xy 109.349987 58.549998) (xy 109.452697 58.539505) (xy 109.619119 58.484358)
|
||||||
(xy 108.916988 57) (xy 109 57) (xy 110.049999 57) (xy 110.049999 56.650028) (xy 110.049998 56.650013)
|
(xy 109.619124 58.484356) (xy 109.768345 58.392315) (xy 109.892315 58.268345) (xy 109.984356 58.119124)
|
||||||
(xy 110.039505 56.547302) (xy 109.984358 56.38088) (xy 109.984356 56.380875) (xy 109.892315 56.231654)
|
(xy 109.984358 58.119119) (xy 110.039505 57.952697) (xy 110.039506 57.95269) (xy 110.049999 57.849986)
|
||||||
(xy 109.768345 56.107684) (xy 109.619124 56.015643) (xy 109.619119 56.015641) (xy 109.452697 55.960494)
|
(xy 110.05 57.849973) (xy 110.05 57.5) (xy 108.916988 57.5) (xy 108.934205 57.49006) (xy 108.99006 57.434205)
|
||||||
(xy 109.45269 55.960493) (xy 109.349986 55.95) (xy 109 55.95) (xy 109 57) (xy 108.916988 57) (xy 108.865796 56.970444)
|
(xy 109.029556 57.365796) (xy 109.05 57.289496) (xy 109.05 57.210504) (xy 109.029556 57.134204)
|
||||||
(xy 108.789496 56.95) (xy 108.710504 56.95) (xy 108.634204 56.970444) (xy 108.565795 57.00994) (xy 108.50994 57.065795)
|
(xy 108.99006 57.065795) (xy 108.934205 57.00994) (xy 108.916988 57) (xy 109 57) (xy 110.049999 57)
|
||||||
(xy 108.470444 57.134204) (xy 108.45 57.210504) (xy 108.45 57.289496) (xy 108.470444 57.365796)
|
(xy 110.049999 56.650028) (xy 110.049998 56.650013) (xy 110.039505 56.547302) (xy 109.984358 56.38088)
|
||||||
(xy 108.50994 57.434205) (xy 108.565795 57.49006) (xy 108.583012 57.5) (xy 107.450001 57.5) (xy 107.450001 57.849986)
|
(xy 109.984356 56.380875) (xy 109.892315 56.231654) (xy 109.768345 56.107684) (xy 109.619124 56.015643)
|
||||||
(xy 107.460494 57.952697) (xy 107.515641 58.119119) (xy 107.515643 58.119124) (xy 107.607684 58.268345)
|
(xy 109.619119 56.015641) (xy 109.452697 55.960494) (xy 109.45269 55.960493) (xy 109.349986 55.95)
|
||||||
(xy 107.731654 58.392315) (xy 107.880875 58.484356) (xy 107.880882 58.484359) (xy 107.9493 58.50703)
|
(xy 109 55.95) (xy 109 57) (xy 108.916988 57) (xy 108.865796 56.970444) (xy 108.789496 56.95) (xy 108.710504 56.95)
|
||||||
(xy 108.006745 58.546802) (xy 108.033569 58.611317) (xy 108.021254 58.680093) (xy 107.973712 58.731294)
|
(xy 108.634204 56.970444) (xy 108.565795 57.00994) (xy 108.50994 57.065795) (xy 108.470444 57.134204)
|
||||||
(xy 107.949302 58.742441) (xy 107.880674 58.765182) (xy 107.880663 58.765187) (xy 107.731342 58.857289)
|
(xy 108.45 57.210504) (xy 108.45 57.289496) (xy 108.470444 57.365796) (xy 108.50994 57.434205) (xy 108.565795 57.49006)
|
||||||
(xy 107.607289 58.981342) (xy 107.515187 59.130663) (xy 107.515185 59.130668) (xy 107.515115 59.13088)
|
(xy 108.583012 57.5) (xy 107.450001 57.5) (xy 107.450001 57.849986) (xy 107.460494 57.952697) (xy 107.515641 58.119119)
|
||||||
(xy 107.460001 59.297203) (xy 107.460001 59.297204) (xy 107.46 59.297204) (xy 107.4495 59.399983)
|
(xy 107.515643 58.119124) (xy 107.607684 58.268345) (xy 107.731654 58.392315) (xy 107.880875 58.484356)
|
||||||
(xy 92.549995 59.399983) (xy 92.539505 59.297302) (xy 92.484358 59.13088) (xy 92.484356 59.130875)
|
(xy 107.88088 58.484358) (xy 108.047302 58.539505) (xy 108.047309 58.539506) (xy 108.150019 58.549999)
|
||||||
|
(xy 108.22123 58.549999) (xy 108.28827 58.569683) (xy 108.334026 58.622486) (xy 108.34397 58.691644)
|
||||||
|
(xy 108.314946 58.7552) (xy 108.259559 58.791927) (xy 108.25078 58.794779) (xy 108.068386 58.887715)
|
||||||
|
(xy 107.902786 59.008028) (xy 107.758028 59.152786) (xy 107.637715 59.318386) (xy 107.544781 59.500776)
|
||||||
|
(xy 107.481522 59.695465) (xy 107.4495 59.897648) (xy 91.533158 59.897648) (xy 91.529556 59.884204)
|
||||||
|
(xy 91.49006 59.815795) (xy 91.434205 59.75994) (xy 91.416988 59.75) (xy 92.549999 59.75) (xy 92.549999 59.400028)
|
||||||
|
(xy 92.549998 59.400013) (xy 92.539505 59.297302) (xy 92.484358 59.13088) (xy 92.484356 59.130875)
|
||||||
(xy 92.392315 58.981654) (xy 92.268345 58.857684) (xy 92.119124 58.765643) (xy 92.119119 58.765641)
|
(xy 92.392315 58.981654) (xy 92.268345 58.857684) (xy 92.119124 58.765643) (xy 92.119119 58.765641)
|
||||||
(xy 92.050698 58.742969) (xy 91.993253 58.703196) (xy 91.96643 58.638681) (xy 91.978745 58.569905)
|
(xy 91.952697 58.710494) (xy 91.95269 58.710493) (xy 91.849986 58.7) (xy 91.778767 58.7) (xy 91.711728 58.680315)
|
||||||
(xy 92.026288 58.518705) (xy 92.050691 58.507559) (xy 92.119334 58.484814) (xy 92.268656 58.392712)
|
(xy 91.665973 58.627511) (xy 91.656029 58.558353) (xy 91.685054 58.494797) (xy 91.740448 58.458069)
|
||||||
(xy 92.392712 58.268656) (xy 92.484814 58.119334) (xy 92.539999 57.952797) (xy 92.5505 57.850009)
|
(xy 91.749219 58.45522) (xy 91.93161 58.362287) (xy 92.02459 58.294732) (xy 92.097213 58.241971)
|
||||||
(xy 92.550499 56.650013) (xy 107.45 56.650013) (xy 107.45 57) (xy 108.5 57) (xy 108.5 55.95) (xy 108.150028 55.95)
|
(xy 92.097215 58.241968) (xy 92.097219 58.241966) (xy 92.241966 58.097219) (xy 92.241968 58.097215)
|
||||||
(xy 108.150012 55.950001) (xy 108.047302 55.960494) (xy 107.88088 56.015641) (xy 107.880875 56.015643)
|
(xy 92.241971 58.097213) (xy 92.294732 58.02459) (xy 92.362287 57.93161) (xy 92.45522 57.749219)
|
||||||
(xy 107.731654 56.107684) (xy 107.607684 56.231654) (xy 107.515643 56.380875) (xy 107.515641 56.38088)
|
(xy 92.518477 57.554534) (xy 92.5505 57.352352) (xy 92.5505 57.147648) (xy 92.528689 57.00994) (xy 92.518477 56.945465)
|
||||||
(xy 107.460494 56.547302) (xy 107.460493 56.547309) (xy 107.45 56.650013) (xy 92.550499 56.650013)
|
(xy 92.496049 56.87644) (xy 92.45522 56.750781) (xy 92.455217 56.750777) (xy 92.455217 56.750774)
|
||||||
(xy 92.550499 56.649992) (xy 92.539999 56.547203) (xy 92.484814 56.380666) (xy 92.392712 56.231344)
|
(xy 92.430956 56.70316) (xy 92.430955 56.703159) (xy 92.403876 56.650013) (xy 107.45 56.650013)
|
||||||
(xy 92.268656 56.107288) (xy 92.119334 56.015186) (xy 91.952797 55.960001) (xy 91.952795 55.96)
|
(xy 107.45 57) (xy 108.5 57) (xy 108.5 55.95) (xy 108.150028 55.95) (xy 108.150012 55.950001) (xy 108.047302 55.960494)
|
||||||
(xy 91.85001 55.9495) (xy 90.649998 55.9495) (xy 90.649981 55.949501) (xy 90.547203 55.96) (xy 90.5472 55.960001)
|
(xy 107.88088 56.015641) (xy 107.880875 56.015643) (xy 107.731654 56.107684) (xy 107.607684 56.231654)
|
||||||
(xy 90.380668 56.015185) (xy 90.380663 56.015187) (xy 90.231342 56.107289) (xy 90.107289 56.231342)
|
(xy 107.515643 56.380875) (xy 107.515641 56.38088) (xy 107.460494 56.547302) (xy 107.460493 56.547309)
|
||||||
(xy 90.015187 56.380663) (xy 90.015185 56.380668) (xy 90.015115 56.38088) (xy 89.960001 56.547203)
|
(xy 107.45 56.650013) (xy 92.403876 56.650013) (xy 92.362287 56.56839) (xy 92.362285 56.568387)
|
||||||
(xy 89.960001 56.547204) (xy 89.96 56.547204) (xy 89.9495 56.649983) (xy 89.002619 56.649983) (xy 89.042602 56.5112)
|
(xy 92.362284 56.568385) (xy 92.241971 56.402786) (xy 92.097213 56.258028) (xy 91.931613 56.137715)
|
||||||
(xy 89.044708 56.504593) (xy 89.087999 56.380875) (xy 89.255462 55.902293) (xy 89.257939 55.895807)
|
(xy 91.931612 56.137714) (xy 91.93161 56.137713) (xy 91.872675 56.107684) (xy 91.749223 56.044781)
|
||||||
(xy 89.405196 55.540298) (xy 89.502126 55.306287) (xy 89.504948 55.299981) (xy 89.781819 54.725051)
|
(xy 91.554534 55.981522) (xy 91.379995 55.953878) (xy 91.352352 55.9495) (xy 91.147648 55.9495)
|
||||||
(xy 89.784988 54.718917) (xy 90.093653 54.16043) (xy 90.097186 54.154442) (xy 90.436678 53.614143)
|
(xy 91.123329 55.953351) (xy 90.945465 55.981522) (xy 90.750776 56.044781) (xy 90.568386 56.137715)
|
||||||
(xy 90.440511 53.608406) (xy 90.809791 53.087955) (xy 90.813923 53.082464) (xy 91.211802 52.583539)
|
(xy 90.402786 56.258028) (xy 90.258028 56.402786) (xy 90.137715 56.568386) (xy 90.044781 56.750776)
|
||||||
(xy 91.216243 52.57828) (xy 91.641475 52.102446) (xy 91.64622 52.097428) (xy 92.097428 51.64622)
|
(xy 89.981522 56.945465) (xy 89.9495 57.147648) (xy 88.860439 57.147648) (xy 88.864225 57.13106)
|
||||||
(xy 92.102446 51.641475) (xy 92.57828 51.216243) (xy 92.583539 51.211802) (xy 93.082464 50.813923)
|
(xy 88.865957 57.124351) (xy 89.042602 56.5112) (xy 89.044708 56.504593) (xy 89.150452 56.202395)
|
||||||
(xy 93.087955 50.809791) (xy 93.608406 50.440511) (xy 93.614143 50.436678) (xy 94.154444 50.097184)
|
(xy 89.255462 55.902293) (xy 89.257939 55.895807) (xy 89.405196 55.540298) (xy 89.502126 55.306287)
|
||||||
(xy 94.160433 50.093652) (xy 94.315338 50.008039) (xy 94.718917 49.784988) (xy 94.725051 49.781819)
|
(xy 89.504948 55.299981) (xy 89.781819 54.725051) (xy 89.784988 54.718917) (xy 90.093653 54.16043)
|
||||||
(xy 95.299981 49.504948) (xy 95.306287 49.502126) (xy 95.89582 49.257933) (xy 95.902293 49.255462)
|
(xy 90.097186 54.154442) (xy 90.436678 53.614143) (xy 90.440511 53.608406) (xy 90.809791 53.087955)
|
||||||
(xy 96.504603 49.044704) (xy 96.5112 49.042602) (xy 97.124388 48.865946) (xy 97.13106 48.864225)
|
(xy 90.813923 53.082464) (xy 91.211802 52.583539) (xy 91.216243 52.57828) (xy 91.641475 52.102446)
|
||||||
(xy 97.75318 48.722231) (xy 97.759974 48.720879) (xy 98.389088 48.613988) (xy 98.395915 48.613025)
|
(xy 91.64622 52.097428) (xy 92.097428 51.64622) (xy 92.102446 51.641475) (xy 92.57828 51.216243)
|
||||||
(xy 99.030007 48.54158) (xy 99.036914 48.540997) (xy 99.67401 48.505219) (xy 99.680963 48.505024)
|
(xy 92.583539 51.211802) (xy 93.082464 50.813923) (xy 93.087955 50.809791) (xy 93.608406 50.440511)
|
||||||
(xy 100.319037 48.505024)
|
(xy 93.614143 50.436678) (xy 94.154444 50.097184) (xy 94.160433 50.093652) (xy 94.315338 50.008039)
|
||||||
|
(xy 94.718917 49.784988) (xy 94.725051 49.781819) (xy 95.299981 49.504948) (xy 95.306287 49.502126)
|
||||||
|
(xy 95.89582 49.257933) (xy 95.902293 49.255462) (xy 96.504603 49.044704) (xy 96.5112 49.042602)
|
||||||
|
(xy 97.124388 48.865946) (xy 97.13106 48.864225) (xy 97.75318 48.722231) (xy 97.759974 48.720879)
|
||||||
|
(xy 98.389088 48.613988) (xy 98.395915 48.613025) (xy 99.030007 48.54158) (xy 99.036914 48.540997)
|
||||||
|
(xy 99.67401 48.505219) (xy 99.680963 48.505024) (xy 100.319037 48.505024)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 33,
|
"active_layer": 0,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": true,
|
"auto_track_width": true,
|
||||||
"hidden_netclasses": [],
|
"hidden_netclasses": [],
|
||||||
|
@@ -37,9 +37,9 @@
|
|||||||
"other_text_thickness": 0.15,
|
"other_text_thickness": 0.15,
|
||||||
"other_text_upright": false,
|
"other_text_upright": false,
|
||||||
"pads": {
|
"pads": {
|
||||||
"drill": 0.8,
|
"drill": 0.6,
|
||||||
"height": 1.27,
|
"height": 1.6,
|
||||||
"width": 2.54
|
"width": 1.6
|
||||||
},
|
},
|
||||||
"silk_line_width": 0.1,
|
"silk_line_width": 0.1,
|
||||||
"silk_text_italic": false,
|
"silk_text_italic": false,
|
||||||
|
612
hardware/mcu_board/buck_converter.kicad_sch
Normal file
612
hardware/mcu_board/buck_converter.kicad_sch
Normal file
@@ -0,0 +1,612 @@
|
|||||||
|
(kicad_sch
|
||||||
|
(version 20250114)
|
||||||
|
(generator "eeschema")
|
||||||
|
(generator_version "9.0")
|
||||||
|
(uuid "2b6d4934-f26b-4a9c-be2f-091658a1cf69")
|
||||||
|
(paper "A5")
|
||||||
|
(title_block
|
||||||
|
(title "Mole Beacon")
|
||||||
|
(date "05.10.2025")
|
||||||
|
(rev "2.1")
|
||||||
|
(company "Peter Siegmund")
|
||||||
|
(comment 1 "kicad@mars3142.org")
|
||||||
|
(comment 2 "https://wiki.mars3142.dev/project/maerklin/warnemuende/lighthouse/start")
|
||||||
|
)
|
||||||
|
(lib_symbols
|
||||||
|
(symbol "aliexpress:Buck_Converter"
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "J"
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" "aliexpress:Buck Converter (30V to 5V)"
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "Buck_Converter_0_1"
|
||||||
|
(rectangle
|
||||||
|
(start -7.62 6.35)
|
||||||
|
(end 8.89 -6.35)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type none)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "Buck_Converter_1_1"
|
||||||
|
(pin passive line
|
||||||
|
(at -7.62 3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "IN-"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(number "1"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin passive line
|
||||||
|
(at -7.62 -3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "IN+"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(number "2"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin passive line
|
||||||
|
(at 8.89 3.81 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "OUT-"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(number "3"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin passive line
|
||||||
|
(at 8.89 -3.81 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "OUT+"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(number "4"
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(embedded_fonts no)
|
||||||
|
)
|
||||||
|
(symbol "pcbway:LOGO"
|
||||||
|
(pin_names
|
||||||
|
(offset 1.016)
|
||||||
|
)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property "Reference" "#G"
|
||||||
|
(at 0 1.3915 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "LOGO"
|
||||||
|
(at 0 -1.3915 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "LOGO_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -4.9134 -1.4708) (xy -4.9126 -1.4707) (xy -4.8189 -1.4495) (xy -4.6929 -1.4238) (xy -4.5386 -1.3944)
|
||||||
|
(xy -4.3599 -1.3618) (xy -4.1609 -1.3267) (xy -3.9455 -1.2898) (xy -3.7176 -1.2516) (xy -3.4814 -1.2129)
|
||||||
|
(xy -3.2407 -1.1744) (xy -2.9995 -1.1365) (xy -2.7618 -1.1001) (xy -2.5316 -1.0658) (xy -2.3129 -1.0341)
|
||||||
|
(xy -2.1096 -1.0058) (xy -1.9257 -0.9816) (xy -1.8406 -0.9707) (xy -1.7364 -0.9574) (xy -1.6414 -0.9453)
|
||||||
|
(xy -1.5633 -0.9355) (xy -1.3456 -0.9108) (xy -1.1003 -0.8857) (xy -0.8339 -0.8607) (xy -0.5527 -0.8364)
|
||||||
|
(xy -0.2632 -0.8133) (xy 0.0281 -0.7919) (xy 0.3148 -0.7728) (xy 0.5903 -0.7564) (xy 0.8484 -0.7434)
|
||||||
|
(xy 1.0295 -0.7365) (xy 1.237 -0.7311) (xy 1.459 -0.7275) (xy 1.6882 -0.7256) (xy 1.9173 -0.7254)
|
||||||
|
(xy 2.139 -0.727) (xy 2.346 -0.7303) (xy 2.531 -0.7353) (xy 2.6867 -0.7421) (xy 2.8242 -0.7501)
|
||||||
|
(xy 2.9888 -0.7606) (xy 3.1492 -0.7717) (xy 3.3014 -0.7831) (xy 3.4413 -0.7945) (xy 3.5649 -0.8054)
|
||||||
|
(xy 3.668 -0.8156) (xy 3.7467 -0.8248) (xy 3.7969 -0.8325) (xy 3.8145 -0.8384) (xy 3.8143 -0.8409)
|
||||||
|
(xy 3.8058 -0.871) (xy 3.7886 -0.916) (xy 3.7846 -0.9258) (xy 3.771 -0.9651) (xy 3.7687 -0.9842)
|
||||||
|
(xy 3.7691 -0.9844) (xy 3.7919 -0.9862) (xy 3.8435 -0.9868) (xy 3.9167 -0.9863) (xy 4.0043 -0.9847)
|
||||||
|
(xy 4.2339 -0.979) (xy 4.2463 -0.9225) (xy 4.2587 -0.866) (xy 4.3988 -0.8781) (xy 4.4006 -0.8783)
|
||||||
|
(xy 4.5698 -0.8927) (xy 4.7063 -0.9038) (xy 4.8134 -0.9117) (xy 4.895 -0.9167) (xy 4.9545 -0.919)
|
||||||
|
(xy 4.9956 -0.9186) (xy 5.0218 -0.9159) (xy 5.0369 -0.9109) (xy 5.0411 -0.9085) (xy 5.0489 -0.902)
|
||||||
|
(xy 5.0468 -0.8961) (xy 5.0309 -0.89) (xy 4.9975 -0.8831) (xy 4.9428 -0.8748) (xy 4.8631 -0.8642)
|
||||||
|
(xy 4.7545 -0.8507) (xy 4.6132 -0.8337) (xy 4.5312 -0.8238) (xy 4.4395 -0.8123) (xy 4.3662 -0.8027)
|
||||||
|
(xy 4.3174 -0.7959) (xy 4.2991 -0.7925) (xy 4.2991 -0.7924) (xy 4.3052 -0.7734) (xy 4.3229 -0.7235)
|
||||||
|
(xy 4.3509 -0.6462) (xy 4.3879 -0.5446) (xy 4.4329 -0.4222) (xy 4.4845 -0.2822) (xy 4.5415 -0.1282)
|
||||||
|
(xy 4.6028 0.0367) (xy 4.9097 0.862) (xy 4.6983 0.8672) (xy 4.6201 0.8681) (xy 4.5478 0.8667)
|
||||||
|
(xy 4.4966 0.8633) (xy 4.4741 0.858) (xy 4.4707 0.8511) (xy 4.4567 0.8138) (xy 4.4347 0.7493)
|
||||||
|
(xy 4.4061 0.6628) (xy 4.3729 0.5593) (xy 4.3366 0.4442) (xy 4.3159 0.3788) (xy 4.2814 0.2728)
|
||||||
|
(xy 4.2508 0.1831) (xy 4.2257 0.1145) (xy 4.208 0.0716) (xy 4.1992 0.059) (xy 4.1955 0.0663) (xy 4.1808 0.1038)
|
||||||
|
(xy 4.1572 0.1683) (xy 4.1268 0.2546) (xy 4.0912 0.3576) (xy 4.0523 0.4723) (xy 3.9182 0.8712)
|
||||||
|
(xy 3.6924 0.8712) (xy 3.4666 0.8712) (xy 3.5005 0.7841) (xy 3.508 0.7647) (xy 3.5295 0.7081)
|
||||||
|
(xy 3.5611 0.6249) (xy 3.6009 0.5199) (xy 3.647 0.398) (xy 3.6977 0.264) (xy 3.751 0.1226) (xy 3.9676 -0.4517)
|
||||||
|
(xy 3.9338 -0.5468) (xy 3.9211 -0.5816) (xy 3.8967 -0.6472) (xy 3.877 -0.6975) (xy 3.854 -0.7531)
|
||||||
|
(xy 3.628 -0.7302) (xy 3.4379 -0.7118) (xy 2.7081 -0.6577) (xy 1.9525 -0.6269) (xy 1.1731 -0.6191)
|
||||||
|
(xy 0.3719 -0.6344) (xy -0.449 -0.6725) (xy -1.2878 -0.7334) (xy -2.1424 -0.817) (xy -3.0108 -0.9231)
|
||||||
|
(xy -3.891 -1.0516) (xy -4.7811 -1.2025) (xy -4.8948 -1.2231) (xy -4.9162 -1.3263) (xy -4.9257 -1.3701)
|
||||||
|
(xy -4.9386 -1.424) (xy -4.9477 -1.4556) (xy -4.9489 -1.4591) (xy -4.9449 -1.4741) (xy -4.9134 -1.4708)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -4.4015 -0.1587) (xy -4.4015 0.1685) (xy -4.1218 0.1801) (xy -4.0185 0.1852) (xy -3.8966 0.1948)
|
||||||
|
(xy -3.8007 0.2088) (xy -3.7242 0.229) (xy -3.661 0.2572) (xy -3.6047 0.2953) (xy -3.5488 0.3451)
|
||||||
|
(xy -3.4926 0.4076) (xy -3.4351 0.5046) (xy -3.4029 0.6167) (xy -3.3928 0.752) (xy -3.3973 0.8282)
|
||||||
|
(xy -3.4295 0.9614) (xy -3.4906 1.0768) (xy -3.5783 1.1706) (xy -3.6901 1.2387) (xy -3.7066 1.2458)
|
||||||
|
(xy -3.7363 1.2571) (xy -3.7677 1.2658) (xy -3.806 1.2721) (xy -3.8559 1.2765) (xy -3.9227 1.2794)
|
||||||
|
(xy -4.0111 1.2811) (xy -4.1263 1.282) (xy -4.2731 1.2826) (xy -4.7591 1.2838) (xy -4.7621 0.7332)
|
||||||
|
(xy -4.4015 0.7332) (xy -4.4015 0.984) (xy -4.1542 0.978) (xy -3.9068 0.972) (xy -3.841 0.9062)
|
||||||
|
(xy -3.7879 0.8322) (xy -3.7655 0.7493) (xy -3.7753 0.6671) (xy -3.8164 0.5925) (xy -3.888 0.5325)
|
||||||
|
(xy -3.9112 0.5206) (xy -3.9504 0.5074) (xy -4.0024 0.4985) (xy -4.0753 0.4927) (xy -4.1768 0.4887)
|
||||||
|
(xy -4.4015 0.4823) (xy -4.4015 0.7332) (xy -4.7621 0.7332) (xy -4.7639 0.3989) (xy -4.7686 -0.4859)
|
||||||
|
(xy -4.5851 -0.4859) (xy -4.4015 -0.4859) (xy -4.4015 -0.1587)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -2.2997 -0.4376) (xy -2.145 -0.4058) (xy -2.0093 -0.3536) (xy -1.9936 -0.3451) (xy -1.9404 -0.3123)
|
||||||
|
(xy -1.881 -0.2711) (xy -1.8226 -0.2273) (xy -1.7727 -0.1865) (xy -1.7388 -0.1545) (xy -1.728 -0.1369)
|
||||||
|
(xy -1.7291 -0.135) (xy -1.7474 -0.1118) (xy -1.7829 -0.0707) (xy -1.8293 -0.0194) (xy -1.9254 0.0852)
|
||||||
|
(xy -2.031 0.0037) (xy -2.0456 -0.0075) (xy -2.1453 -0.0738) (xy -2.2391 -0.1143) (xy -2.3399 -0.1333)
|
||||||
|
(xy -2.4607 -0.1348) (xy -2.5469 -0.1275) (xy -2.6582 -0.1012) (xy -2.7542 -0.0527) (xy -2.8461 0.0226)
|
||||||
|
(xy -2.8681 0.0454) (xy -2.9387 0.1496) (xy -2.9831 0.2709) (xy -3.0002 0.4011) (xy -2.9885 0.532)
|
||||||
|
(xy -2.9467 0.6553) (xy -2.9257 0.6949) (xy -2.8431 0.8056) (xy -2.7393 0.8863) (xy -2.614 0.9375)
|
||||||
|
(xy -2.4667 0.9593) (xy -2.4009 0.96) (xy -2.2641 0.9418) (xy -2.1394 0.8938) (xy -2.0174 0.8127)
|
||||||
|
(xy -1.923 0.7375) (xy -1.8235 0.8358) (xy -1.8148 0.8445) (xy -1.7687 0.8936) (xy -1.7362 0.9334)
|
||||||
|
(xy -1.7239 0.9561) (xy -1.7368 0.9774) (xy -1.7714 1.0132) (xy -1.8202 1.0555) (xy -1.8224 1.0573)
|
||||||
|
(xy -1.9755 1.1583) (xy -2.1393 1.2278) (xy -2.3093 1.266) (xy -2.481 1.2731) (xy -2.6498 1.2493)
|
||||||
|
(xy -2.8112 1.1949) (xy -2.9606 1.11) (xy -3.0935 0.9949) (xy -3.1044 0.9832) (xy -3.1893 0.8775)
|
||||||
|
(xy -3.249 0.7677) (xy -3.292 0.6386) (xy -3.2988 0.6111) (xy -3.3213 0.4372) (xy -3.3104 0.2682)
|
||||||
|
(xy -3.2684 0.1081) (xy -3.1975 -0.0393) (xy -3.1001 -0.17) (xy -2.9783 -0.2802) (xy -2.8346 -0.3659)
|
||||||
|
(xy -2.6712 -0.4232) (xy -2.6169 -0.4343) (xy -2.461 -0.4475) (xy -2.2997 -0.4376)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.1233 -0.4824) (xy -0.6144 -0.4768) (xy -0.5044 -0.4253) (xy -0.4147 -0.3761) (xy -0.3096 -0.2901)
|
||||||
|
(xy -0.2368 -0.1887) (xy -0.2186 -0.1342) (xy -0.2057 -0.0498) (xy -0.2012 0.0482) (xy -0.2056 0.1482)
|
||||||
|
(xy -0.2194 0.2385) (xy -0.2196 0.2395) (xy -0.2514 0.3086) (xy -0.3088 0.3766) (xy -0.382 0.4337)
|
||||||
|
(xy -0.4608 0.4706) (xy -0.4769 0.4757) (xy -0.5159 0.4912) (xy -0.5312 0.5027) (xy -0.5303 0.505)
|
||||||
|
(xy -0.5102 0.5238) (xy -0.4723 0.5502) (xy -0.4354 0.5773) (xy -0.3655 0.6584) (xy -0.3198 0.758)
|
||||||
|
(xy -0.2999 0.8684) (xy -0.3078 0.9819) (xy -0.3454 1.0904) (xy -0.3828 1.1433) (xy -0.4566 1.2066)
|
||||||
|
(xy -0.5495 1.2577) (xy -0.6517 1.29) (xy -0.6547 1.2905) (xy -0.7121 1.2974) (xy -0.8003 1.3032)
|
||||||
|
(xy -0.9138 1.3076) (xy -1.0472 1.3103) (xy -1.1952 1.3113) (xy -1.6322 1.3113) (xy -1.6322 0.7886)
|
||||||
|
(xy -1.1738 0.7886) (xy -1.1738 0.9812) (xy -1.0481 0.9812) (xy -0.9444 0.9758) (xy -0.8595 0.9557)
|
||||||
|
(xy -0.8033 0.919) (xy -0.7728 0.8635) (xy -0.7649 0.7872) (xy -0.7798 0.7121) (xy -0.8234 0.6516)
|
||||||
|
(xy -0.8939 0.6154) (xy -0.9248 0.6087) (xy -0.9951 0.5997) (xy -1.0683 0.5962) (xy -1.1738 0.5961)
|
||||||
|
(xy -1.1738 0.7886) (xy -1.6322 0.7886) (xy -1.6322 0.4116) (xy -1.6322 0.0642) (xy -1.1738 0.0642)
|
||||||
|
(xy -1.1738 0.2843) (xy -0.999 0.2843) (xy -0.8935 0.2814) (xy -0.8043 0.2699) (xy -0.7406 0.2477)
|
||||||
|
(xy -0.6969 0.2129) (xy -0.6676 0.1634) (xy -0.6614 0.1473) (xy -0.6473 0.0584) (xy -0.6665 -0.0226)
|
||||||
|
(xy -0.7164 -0.0896) (xy -0.7944 -0.1363) (xy -0.8055 -0.1396) (xy -0.8572 -0.1479) (xy -0.9294 -0.1537)
|
||||||
|
(xy -1.0099 -0.1558) (xy -1.1738 -0.1558) (xy -1.1738 0.0642) (xy -1.6322 0.0642) (xy -1.6322 -0.4881)
|
||||||
|
(xy -1.1233 -0.4824)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 0.9153 0.0572) (xy 0.9251 0.0964) (xy 0.9604 0.2344) (xy 0.9922 0.3536) (xy 1.0194 0.4507)
|
||||||
|
(xy 1.0411 0.5223) (xy 1.0564 0.565) (xy 1.0642 0.5753) (xy 1.0653 0.5727) (xy 1.0753 0.5412)
|
||||||
|
(xy 1.0927 0.4801) (xy 1.1164 0.3939) (xy 1.145 0.2874) (xy 1.1774 0.1652) (xy 1.2121 0.0321)
|
||||||
|
(xy 1.3464 -0.4859) (xy 1.5993 -0.4859) (xy 1.6293 -0.4859) (xy 1.7169 -0.4854) (xy 1.7877 -0.4844)
|
||||||
|
(xy 1.8351 -0.483) (xy 1.8524 -0.4814) (xy 1.8527 -0.4802) (xy 1.8591 -0.4541) (xy 1.8735 -0.3967)
|
||||||
|
(xy 1.895 -0.3114) (xy 1.9228 -0.2014) (xy 1.956 -0.0701) (xy 1.9938 0.079) (xy 2.0353 0.2426)
|
||||||
|
(xy 2.0797 0.4173) (xy 2.3067 1.3113) (xy 2.0743 1.3113) (xy 1.8419 1.3113) (xy 1.7888 1.0591)
|
||||||
|
(xy 1.7741 0.9897) (xy 1.748 0.8675) (xy 1.7185 0.7302) (xy 1.6881 0.5898) (xy 1.6595 0.4587)
|
||||||
|
(xy 1.5832 0.1105) (xy 1.5069 0.4312) (xy 1.4943 0.4842) (xy 1.4612 0.6236) (xy 1.4262 0.7712)
|
||||||
|
(xy 1.3928 0.9122) (xy 1.3644 1.0322) (xy 1.2981 1.3124) (xy 1.0683 1.3073) (xy 0.8385 1.3021)
|
||||||
|
(xy 0.8152 1.2104) (xy 0.8049 1.1696) (xy 0.7869 1.0983) (xy 0.7628 1.0027) (xy 0.734 0.8886)
|
||||||
|
(xy 0.7021 0.7617) (xy 0.6684 0.6278) (xy 0.6647 0.6131) (xy 0.6325 0.4867) (xy 0.6032 0.3735)
|
||||||
|
(xy 0.578 0.2782) (xy 0.5579 0.205) (xy 0.5444 0.1585) (xy 0.5384 0.1432) (xy 0.5348 0.1554) (xy 0.5245 0.1994)
|
||||||
|
(xy 0.5089 0.2704) (xy 0.4889 0.3638) (xy 0.4657 0.4744) (xy 0.4403 0.5975) (xy 0.4238 0.6777)
|
||||||
|
(xy 0.3969 0.8082) (xy 0.3716 0.9304) (xy 0.3493 1.0375) (xy 0.3315 1.1224) (xy 0.3196 1.1784)
|
||||||
|
(xy 0.2909 1.3113) (xy 0.0525 1.3113) (xy -0.0203 1.3111) (xy -0.0949 1.3099) (xy -0.1422 1.3069)
|
||||||
|
(xy -0.1679 1.3013) (xy -0.1774 1.2923) (xy -0.1762 1.2792) (xy -0.1743 1.2727) (xy -0.1641 1.2338)
|
||||||
|
(xy -0.1466 1.166) (xy -0.1229 1.0737) (xy -0.0944 0.9617) (xy -0.062 0.8346) (xy -0.0272 0.6969)
|
||||||
|
(xy 0.0101 0.5501) (xy 0.0593 0.3563) (xy 0.1053 0.1756) (xy 0.1472 0.0112) (xy 0.1844 -0.1336)
|
||||||
|
(xy 0.2159 -0.2558) (xy 0.2408 -0.352) (xy 0.2585 -0.4191) (xy 0.268 -0.4538) (xy 0.2719 -0.4627)
|
||||||
|
(xy 0.2849 -0.4729) (xy 0.3112 -0.4797) (xy 0.3567 -0.4836) (xy 0.4273 -0.4855) (xy 0.5288 -0.4859)
|
||||||
|
(xy 0.78 -0.4859) (xy 0.9153 0.0572)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 2.7284 -0.5176) (xy 2.8095 -0.5036) (xy 2.8434 -0.4913) (xy 2.9068 -0.4604) (xy 2.97 -0.4224)
|
||||||
|
(xy 3.0626 -0.36) (xy 3.0626 -0.423) (xy 3.0626 -0.4859) (xy 3.2735 -0.4859) (xy 3.4844 -0.4859)
|
||||||
|
(xy 3.4844 0.0373) (xy 3.4844 0.1188) (xy 3.4837 0.2684) (xy 3.4817 0.3878) (xy 3.4776 0.4816)
|
||||||
|
(xy 3.4708 0.5543) (xy 3.4604 0.6102) (xy 3.4459 0.654) (xy 3.4264 0.69) (xy 3.4013 0.7227) (xy 3.3698 0.7566)
|
||||||
|
(xy 3.3417 0.7811) (xy 3.2784 0.8224) (xy 3.2103 0.8552) (xy 3.1456 0.8742) (xy 3.0351 0.8928)
|
||||||
|
(xy 2.9059 0.9034) (xy 2.7679 0.9054) (xy 2.6311 0.8987) (xy 2.5053 0.8827) (xy 2.4693 0.8762)
|
||||||
|
(xy 2.403 0.8636) (xy 2.3561 0.8538) (xy 2.3369 0.8484) (xy 2.3351 0.8353) (xy 2.3327 0.794) (xy 2.3305 0.7347)
|
||||||
|
(xy 2.3286 0.6673) (xy 2.3273 0.6022) (xy 2.327 0.5494) (xy 2.3278 0.5192) (xy 2.3289 0.5181)
|
||||||
|
(xy 2.352 0.5205) (xy 2.3992 0.5332) (xy 2.462 0.5541) (xy 2.5151 0.5713) (xy 2.6377 0.5981) (xy 2.7546 0.6071)
|
||||||
|
(xy 2.8601 0.599) (xy 2.9488 0.5746) (xy 3.0148 0.5345) (xy 3.0527 0.4794) (xy 3.0566 0.4676)
|
||||||
|
(xy 3.0605 0.4386) (xy 3.0486 0.4187) (xy 3.0155 0.4051) (xy 2.9561 0.3956) (xy 2.8652 0.3874)
|
||||||
|
(xy 2.8371 0.3851) (xy 2.6604 0.3614) (xy 2.5157 0.3236) (xy 2.4013 0.2706) (xy 2.315 0.2013)
|
||||||
|
(xy 2.2548 0.1144) (xy 2.2189 0.0089) (xy 2.2129 -0.0619) (xy 2.6408 -0.0619) (xy 2.6423 -0.039)
|
||||||
|
(xy 2.6685 0.0286) (xy 2.7271 0.0802) (xy 2.8177 0.1154) (xy 2.9395 0.1337) (xy 3.0643 0.1426)
|
||||||
|
(xy 3.0589 -0.0001) (xy 3.0579 -0.0227) (xy 3.0535 -0.0885) (xy 3.0453 -0.1298) (xy 3.0306 -0.1563)
|
||||||
|
(xy 3.0065 -0.1778) (xy 2.9902 -0.1877) (xy 2.9312 -0.2091) (xy 2.8598 -0.2216) (xy 2.8537 -0.2221)
|
||||||
|
(xy 2.7598 -0.2185) (xy 2.6934 -0.1909) (xy 2.6539 -0.1388) (xy 2.6408 -0.0619) (xy 2.2129 -0.0619)
|
||||||
|
(xy 2.2081 -0.1187) (xy 2.229 -0.2381) (xy 2.2793 -0.3439) (xy 2.3562 -0.4308) (xy 2.4574 -0.4934)
|
||||||
|
(xy 2.4696 -0.4981) (xy 2.5435 -0.5144) (xy 2.6348 -0.521) (xy 2.7284 -0.5176)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0.01)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(type outline)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(embedded_fonts no)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(wire
|
||||||
|
(pts
|
||||||
|
(xy 113.03 57.15) (xy 110.49 57.15)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(uuid "4453f97c-cdbc-4460-9e53-f51c10cc29a5")
|
||||||
|
)
|
||||||
|
(wire
|
||||||
|
(pts
|
||||||
|
(xy 91.44 64.77) (xy 93.98 64.77)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(uuid "67c206ab-60ee-4c7c-b954-bee69696c05f")
|
||||||
|
)
|
||||||
|
(wire
|
||||||
|
(pts
|
||||||
|
(xy 113.03 64.77) (xy 110.49 64.77)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(uuid "9ed28e20-21fd-46b1-a63e-a1e91617e8d5")
|
||||||
|
)
|
||||||
|
(wire
|
||||||
|
(pts
|
||||||
|
(xy 91.44 57.15) (xy 93.98 57.15)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(uuid "b8ec37a6-0ec9-4e6a-9799-41ba25c072f8")
|
||||||
|
)
|
||||||
|
(hierarchical_label "+5V"
|
||||||
|
(shape input)
|
||||||
|
(at 113.03 64.77 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left)
|
||||||
|
)
|
||||||
|
(uuid "49736fc8-7582-437f-b944-e335a12eb6ef")
|
||||||
|
)
|
||||||
|
(hierarchical_label "GND"
|
||||||
|
(shape input)
|
||||||
|
(at 91.44 57.15 180)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify right)
|
||||||
|
)
|
||||||
|
(uuid "7a2c1cd9-2455-4c87-a3c7-0b784b36e211")
|
||||||
|
)
|
||||||
|
(hierarchical_label "IN+"
|
||||||
|
(shape input)
|
||||||
|
(at 91.44 64.77 180)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify right)
|
||||||
|
)
|
||||||
|
(uuid "a24b21ef-aabc-4e5d-b273-111ad1e61ae6")
|
||||||
|
)
|
||||||
|
(hierarchical_label "GND"
|
||||||
|
(shape input)
|
||||||
|
(at 113.03 57.15 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left)
|
||||||
|
)
|
||||||
|
(uuid "bc457276-adce-45f2-9626-ce9aff50f3ce")
|
||||||
|
)
|
||||||
|
(symbol
|
||||||
|
(lib_id "pcbway:LOGO")
|
||||||
|
(at 191.77 106.68 0)
|
||||||
|
(unit 1)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(dnp no)
|
||||||
|
(fields_autoplaced yes)
|
||||||
|
(uuid "1cf32eeb-f182-44f8-a55b-83c815fa5863")
|
||||||
|
(property "Reference" "#G2"
|
||||||
|
(at 191.77 105.2885 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "LOGO"
|
||||||
|
(at 191.77 108.0715 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 191.77 106.68 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 191.77 106.68 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 191.77 106.68 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(instances
|
||||||
|
(project "mcu_board"
|
||||||
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a/3530c7d0-16a6-4646-8301-a5537eed1d29"
|
||||||
|
(reference "#G2")
|
||||||
|
(unit 1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol
|
||||||
|
(lib_id "aliexpress:Buck_Converter")
|
||||||
|
(at 101.6 60.96 0)
|
||||||
|
(unit 1)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(dnp no)
|
||||||
|
(fields_autoplaced yes)
|
||||||
|
(uuid "b229468b-72ca-47f8-8cce-9b4eb7310737")
|
||||||
|
(property "Reference" "J6"
|
||||||
|
(at 101.6 49.53 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "~"
|
||||||
|
(at 101.6 52.07 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" "aliexpress:Buck Converter (30V to 5V)"
|
||||||
|
(at 101.6 60.96 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 101.6 60.96 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 101.6 60.96 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "4"
|
||||||
|
(uuid "b5d773f6-ff23-4250-ad99-ddc43d1dce14")
|
||||||
|
)
|
||||||
|
(pin "3"
|
||||||
|
(uuid "a6ca6a9e-52e1-423f-b1b3-910fc7ca555d")
|
||||||
|
)
|
||||||
|
(pin "2"
|
||||||
|
(uuid "90722ccd-14f2-44b4-822c-7792d3188d0e")
|
||||||
|
)
|
||||||
|
(pin "1"
|
||||||
|
(uuid "41ee7aa9-98e6-4e48-805e-fe101b8b3930")
|
||||||
|
)
|
||||||
|
(instances
|
||||||
|
(project "mcu_board"
|
||||||
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a/3530c7d0-16a6-4646-8301-a5537eed1d29"
|
||||||
|
(reference "J6")
|
||||||
|
(unit 1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
Submodule hardware/mcu_board/library updated: 6fe2d8f450...7a255f4984
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 0,
|
"active_layer": 2,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": false,
|
"auto_track_width": false,
|
||||||
"hidden_netclasses": [],
|
"hidden_netclasses": [],
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
"conflict_shadows",
|
"conflict_shadows",
|
||||||
"shapes"
|
"shapes"
|
||||||
],
|
],
|
||||||
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
|
"visible_layers": "00000000_00000000_00002a8a_aaaaaaaf",
|
||||||
"zone_display_mode": 0
|
"zone_display_mode": 0
|
||||||
},
|
},
|
||||||
"git": {
|
"git": {
|
||||||
|
@@ -490,20 +490,6 @@
|
|||||||
"via_diameter": 0.6,
|
"via_diameter": 0.6,
|
||||||
"via_drill": 0.3,
|
"via_drill": 0.3,
|
||||||
"wire_width": 6
|
"wire_width": 6
|
||||||
},
|
|
||||||
{
|
|
||||||
"clearance": 0.2,
|
|
||||||
"diff_pair_gap": 0.25,
|
|
||||||
"diff_pair_width": 0.2,
|
|
||||||
"microvia_diameter": 0.3,
|
|
||||||
"microvia_drill": 0.1,
|
|
||||||
"name": "Power",
|
|
||||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
|
||||||
"priority": 0,
|
|
||||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
|
||||||
"track_width": 0.5,
|
|
||||||
"via_diameter": 0.6,
|
|
||||||
"via_drill": 0.3
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"meta": {
|
"meta": {
|
||||||
@@ -637,7 +623,7 @@
|
|||||||
"version": 1
|
"version": 1
|
||||||
},
|
},
|
||||||
"net_format_name": "",
|
"net_format_name": "",
|
||||||
"page_layout_descr_file": "",
|
"page_layout_descr_file": "kicad-embed://pcbway.kicad_wks",
|
||||||
"plot_directory": "",
|
"plot_directory": "",
|
||||||
"space_save_all_events": true,
|
"space_save_all_events": true,
|
||||||
"spice_current_sheet_as_root": false,
|
"spice_current_sheet_as_root": false,
|
||||||
@@ -653,6 +639,10 @@
|
|||||||
[
|
[
|
||||||
"7f117d42-0d8b-4a32-a9d3-0b04c0222a5a",
|
"7f117d42-0d8b-4a32-a9d3-0b04c0222a5a",
|
||||||
"Root"
|
"Root"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3530c7d0-16a6-4646-8301-a5537eed1d29",
|
||||||
|
"Buck Converter"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"text_variables": {}
|
"text_variables": {}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
(title_block
|
(title_block
|
||||||
(title "Mole Beacon")
|
(title "Mole Beacon")
|
||||||
(date "05.10.2025")
|
(date "05.10.2025")
|
||||||
(rev "2.0")
|
(rev "2.1")
|
||||||
(company "Peter Siegmund")
|
(company "Peter Siegmund")
|
||||||
(comment 1 "kicad@mars3142.org")
|
(comment 1 "kicad@mars3142.org")
|
||||||
(comment 2 "https://wiki.mars3142.dev/project/maerklin/warnemuende/lighthouse/start")
|
(comment 2 "https://wiki.mars3142.dev/project/maerklin/warnemuende/lighthouse/start")
|
||||||
@@ -743,142 +743,6 @@
|
|||||||
)
|
)
|
||||||
(embedded_fonts no)
|
(embedded_fonts no)
|
||||||
)
|
)
|
||||||
(symbol "aliexpress:Buck_Converter"
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(in_bom yes)
|
|
||||||
(on_board yes)
|
|
||||||
(property "Reference" "J"
|
|
||||||
(at 0 0 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Value" ""
|
|
||||||
(at 0 0 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Footprint" "aliexpress:Buck Converter (30V to 5V)"
|
|
||||||
(at 0 0 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Datasheet" ""
|
|
||||||
(at 0 0 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Description" ""
|
|
||||||
(at 0 0 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol "Buck_Converter_0_1"
|
|
||||||
(rectangle
|
|
||||||
(start -7.62 6.35)
|
|
||||||
(end 8.89 -6.35)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(fill
|
|
||||||
(type none)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol "Buck_Converter_1_1"
|
|
||||||
(pin passive line
|
|
||||||
(at -7.62 3.81 0)
|
|
||||||
(length 2.54)
|
|
||||||
(name "IN+"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(number "1"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin passive line
|
|
||||||
(at -7.62 -3.81 0)
|
|
||||||
(length 2.54)
|
|
||||||
(name "IN-"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(number "2"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin passive line
|
|
||||||
(at 8.89 3.81 180)
|
|
||||||
(length 2.54)
|
|
||||||
(name "OUT+"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(number "3"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin passive line
|
|
||||||
(at 8.89 -3.81 180)
|
|
||||||
(length 2.54)
|
|
||||||
(name "OUT-"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(number "4"
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(embedded_fonts no)
|
|
||||||
)
|
|
||||||
(symbol "pcbway:LOGO"
|
(symbol "pcbway:LOGO"
|
||||||
(pin_names
|
(pin_names
|
||||||
(offset 1.016)
|
(offset 1.016)
|
||||||
@@ -2120,18 +1984,6 @@
|
|||||||
)
|
)
|
||||||
(uuid cf812ae0-560b-413f-92d1-b730cdc0cdf4)
|
(uuid cf812ae0-560b-413f-92d1-b730cdc0cdf4)
|
||||||
)
|
)
|
||||||
(rectangle
|
|
||||||
(start 133.35 41.91)
|
|
||||||
(end 162.56 74.93)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(fill
|
|
||||||
(type none)
|
|
||||||
)
|
|
||||||
(uuid d7f1024f-5623-4315-a2fa-d274f8162a08)
|
|
||||||
)
|
|
||||||
(text "Connector"
|
(text "Connector"
|
||||||
(exclude_from_sim no)
|
(exclude_from_sim no)
|
||||||
(at 109.22 44.45 0)
|
(at 109.22 44.45 0)
|
||||||
@@ -2152,16 +2004,6 @@
|
|||||||
)
|
)
|
||||||
(uuid "ab900126-cfae-4d8f-85d9-7dba67c31e4e")
|
(uuid "ab900126-cfae-4d8f-85d9-7dba67c31e4e")
|
||||||
)
|
)
|
||||||
(text "Buck Converter"
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(at 142.24 44.45 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(uuid "be0a1c83-01b8-4606-9abb-a3283a130ffc")
|
|
||||||
)
|
|
||||||
(text "MCU"
|
(text "MCU"
|
||||||
(exclude_from_sim no)
|
(exclude_from_sim no)
|
||||||
(at 38.1 44.45 0)
|
(at 38.1 44.45 0)
|
||||||
@@ -2230,6 +2072,16 @@
|
|||||||
)
|
)
|
||||||
(uuid "138bb844-b8b0-48b1-96ce-857e99a2861e")
|
(uuid "138bb844-b8b0-48b1-96ce-857e99a2861e")
|
||||||
)
|
)
|
||||||
|
(wire
|
||||||
|
(pts
|
||||||
|
(xy 156.21 68.58) (xy 156.21 66.04)
|
||||||
|
)
|
||||||
|
(stroke
|
||||||
|
(width 0)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(uuid "27cb9d76-8c0d-440f-b1e3-8f10844b28ed")
|
||||||
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 46.99 64.77) (xy 49.53 64.77)
|
(xy 46.99 64.77) (xy 49.53 64.77)
|
||||||
@@ -2242,33 +2094,23 @@
|
|||||||
)
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 158.75 55.88) (xy 158.75 53.34)
|
(xy 137.16 50.8) (xy 137.16 53.34)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0)
|
(width 0)
|
||||||
(type default)
|
(type default)
|
||||||
)
|
)
|
||||||
(uuid "5a7691b5-6a2c-48ef-9f81-1275c7d0cd0d")
|
(uuid "58609cc6-60db-49e2-a8f1-08a56d93dc64")
|
||||||
)
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 156.21 63.5) (xy 158.75 63.5)
|
(xy 170.18 53.34) (xy 173.99 53.34)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0)
|
(width 0)
|
||||||
(type default)
|
(type default)
|
||||||
)
|
)
|
||||||
(uuid "7b259590-ebdd-4457-ba02-bd6359e44d79")
|
(uuid "7472efae-d3c6-4124-be7b-251604dab3ee")
|
||||||
)
|
|
||||||
(wire
|
|
||||||
(pts
|
|
||||||
(xy 156.21 55.88) (xy 158.75 55.88)
|
|
||||||
)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(uuid "8ce447bc-8028-4a90-b3d4-df46351c1100")
|
|
||||||
)
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
@@ -2280,16 +2122,6 @@
|
|||||||
)
|
)
|
||||||
(uuid "8d2604b8-f530-4ca1-ae7b-91ca3249b74c")
|
(uuid "8d2604b8-f530-4ca1-ae7b-91ca3249b74c")
|
||||||
)
|
)
|
||||||
(wire
|
|
||||||
(pts
|
|
||||||
(xy 137.16 63.5) (xy 139.7 63.5)
|
|
||||||
)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(uuid "8fc600ef-a12b-48be-9df9-0a2ff8ec3834")
|
|
||||||
)
|
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 83.82 72.39) (xy 80.01 72.39)
|
(xy 83.82 72.39) (xy 80.01 72.39)
|
||||||
@@ -2322,43 +2154,23 @@
|
|||||||
)
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 137.16 55.88) (xy 139.7 55.88)
|
(xy 173.99 50.8) (xy 173.99 53.34)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0)
|
(width 0)
|
||||||
(type default)
|
(type default)
|
||||||
)
|
)
|
||||||
(uuid "b1ead9fa-0289-42bc-9d81-ae7cc298c405")
|
(uuid "c9915e38-92e5-45a8-9e03-a843c960cc4e")
|
||||||
)
|
)
|
||||||
(wire
|
(wire
|
||||||
(pts
|
(pts
|
||||||
(xy 137.16 66.04) (xy 137.16 63.5)
|
(xy 140.97 53.34) (xy 137.16 53.34)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0)
|
(width 0)
|
||||||
(type default)
|
(type default)
|
||||||
)
|
)
|
||||||
(uuid "c2ae12e3-47b0-42b9-b71a-a4ce7a320c25")
|
(uuid "ed1f9560-0939-497a-a125-8788151a9329")
|
||||||
)
|
|
||||||
(wire
|
|
||||||
(pts
|
|
||||||
(xy 158.75 63.5) (xy 158.75 66.04)
|
|
||||||
)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(uuid "cc175ac2-4858-4503-b814-be26c3a9f6c2")
|
|
||||||
)
|
|
||||||
(wire
|
|
||||||
(pts
|
|
||||||
(xy 137.16 53.34) (xy 137.16 55.88)
|
|
||||||
)
|
|
||||||
(stroke
|
|
||||||
(width 0)
|
|
||||||
(type default)
|
|
||||||
)
|
|
||||||
(uuid "cdd2c775-e2f4-4b53-a44e-524928ab02cd")
|
|
||||||
)
|
)
|
||||||
(global_label "OUTDOOR_L"
|
(global_label "OUTDOOR_L"
|
||||||
(shape input)
|
(shape input)
|
||||||
@@ -2536,138 +2348,6 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(symbol
|
|
||||||
(lib_id "power:VCC")
|
|
||||||
(at 137.16 53.34 0)
|
|
||||||
(unit 1)
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(in_bom yes)
|
|
||||||
(on_board yes)
|
|
||||||
(dnp no)
|
|
||||||
(fields_autoplaced yes)
|
|
||||||
(uuid "0546d755-55a1-487a-9476-3a7ac65ca049")
|
|
||||||
(property "Reference" "#PWR03"
|
|
||||||
(at 137.16 57.15 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Value" "VCC"
|
|
||||||
(at 137.16 48.26 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Footprint" ""
|
|
||||||
(at 137.16 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Datasheet" ""
|
|
||||||
(at 137.16 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Description" "Power symbol creates a global label with name \"VCC\""
|
|
||||||
(at 137.16 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin "1"
|
|
||||||
(uuid "4372f9bc-e3ab-4544-85ef-877fbb0956a3")
|
|
||||||
)
|
|
||||||
(instances
|
|
||||||
(project ""
|
|
||||||
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
|
||||||
(reference "#PWR03")
|
|
||||||
(unit 1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol
|
|
||||||
(lib_id "power:+5V")
|
|
||||||
(at 158.75 53.34 0)
|
|
||||||
(unit 1)
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(in_bom yes)
|
|
||||||
(on_board yes)
|
|
||||||
(dnp no)
|
|
||||||
(fields_autoplaced yes)
|
|
||||||
(uuid "116d424e-08c1-4790-900d-c1079395c7c9")
|
|
||||||
(property "Reference" "#PWR04"
|
|
||||||
(at 158.75 57.15 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Value" "+5V"
|
|
||||||
(at 158.75 48.26 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Footprint" ""
|
|
||||||
(at 158.75 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Datasheet" ""
|
|
||||||
(at 158.75 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Description" "Power symbol creates a global label with name \"+5V\""
|
|
||||||
(at 158.75 53.34 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin "1"
|
|
||||||
(uuid "6da24567-9056-4207-991f-a04f7dfcbdeb")
|
|
||||||
)
|
|
||||||
(instances
|
|
||||||
(project ""
|
|
||||||
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
|
||||||
(reference "#PWR04")
|
|
||||||
(unit 1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol
|
(symbol
|
||||||
(lib_id "power:GND")
|
(lib_id "power:GND")
|
||||||
(at 96.52 57.15 0)
|
(at 96.52 57.15 0)
|
||||||
@@ -2761,7 +2441,7 @@
|
|||||||
(justify left)
|
(justify left)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Footprint" "Connector_JST:JST_PH_S4B-PH-K_1x06_P2.00mm_Horizontal"
|
(property "Footprint" "Connector_JST:JST_PH_S6B-PH-K_1x06_P2.00mm_Horizontal"
|
||||||
(at 121.92 53.34 0)
|
(at 121.92 53.34 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
@@ -2952,80 +2632,6 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(symbol
|
|
||||||
(lib_id "aliexpress:Buck_Converter")
|
|
||||||
(at 147.32 59.69 0)
|
|
||||||
(unit 1)
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(in_bom yes)
|
|
||||||
(on_board yes)
|
|
||||||
(dnp no)
|
|
||||||
(fields_autoplaced yes)
|
|
||||||
(uuid "53815356-ea40-4e41-a9a3-22e2dbcf5773")
|
|
||||||
(property "Reference" "J2"
|
|
||||||
(at 147.32 48.26 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Value" "~"
|
|
||||||
(at 147.32 50.8 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Footprint" "aliexpress:Buck Converter (30V to 5V)"
|
|
||||||
(at 147.32 59.69 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Datasheet" ""
|
|
||||||
(at 147.32 59.69 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Description" ""
|
|
||||||
(at 147.32 59.69 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin "4"
|
|
||||||
(uuid "1ba711ee-3c46-462e-a43b-0a0f5bf487fb")
|
|
||||||
)
|
|
||||||
(pin "3"
|
|
||||||
(uuid "aaa84d7a-8e68-4380-a460-5b3f2200439b")
|
|
||||||
)
|
|
||||||
(pin "2"
|
|
||||||
(uuid "0fb7adc2-71dc-4e5a-84cb-669f302bf5e4")
|
|
||||||
)
|
|
||||||
(pin "1"
|
|
||||||
(uuid "747b5aa1-ec5c-4598-99d7-5f6358378a1a")
|
|
||||||
)
|
|
||||||
(instances
|
|
||||||
(project ""
|
|
||||||
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
|
||||||
(reference "J2")
|
|
||||||
(unit 1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol
|
(symbol
|
||||||
(lib_id "power:GND")
|
(lib_id "power:GND")
|
||||||
(at 116.84 66.04 270)
|
(at 116.84 66.04 270)
|
||||||
@@ -3292,17 +2898,17 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
(symbol
|
(symbol
|
||||||
(lib_id "power:GND")
|
(lib_id "power:+5V")
|
||||||
(at 137.16 66.04 0)
|
(at 173.99 50.8 0)
|
||||||
(unit 1)
|
(unit 1)
|
||||||
(exclude_from_sim no)
|
(exclude_from_sim no)
|
||||||
(in_bom yes)
|
(in_bom yes)
|
||||||
(on_board yes)
|
(on_board yes)
|
||||||
(dnp no)
|
(dnp no)
|
||||||
(fields_autoplaced yes)
|
(fields_autoplaced yes)
|
||||||
(uuid "bcd48e18-5afb-4c3c-94cf-77b3c9b18e73")
|
(uuid "8c9ef1fc-52e4-4e13-9040-6ff498a067fa")
|
||||||
(property "Reference" "#PWR09"
|
(property "Reference" "#PWR014"
|
||||||
(at 137.16 72.39 0)
|
(at 173.99 54.61 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
@@ -3310,8 +2916,8 @@
|
|||||||
(hide yes)
|
(hide yes)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Value" "GND"
|
(property "Value" "+5V"
|
||||||
(at 137.16 71.12 0)
|
(at 173.99 45.72 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
@@ -3319,7 +2925,7 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Footprint" ""
|
(property "Footprint" ""
|
||||||
(at 137.16 66.04 0)
|
(at 173.99 50.8 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
@@ -3328,7 +2934,7 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Datasheet" ""
|
(property "Datasheet" ""
|
||||||
(at 137.16 66.04 0)
|
(at 173.99 50.8 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
@@ -3336,8 +2942,8 @@
|
|||||||
(hide yes)
|
(hide yes)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
|
(property "Description" "Power symbol creates a global label with name \"+5V\""
|
||||||
(at 137.16 66.04 0)
|
(at 173.99 50.8 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
@@ -3346,12 +2952,78 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
(pin "1"
|
(pin "1"
|
||||||
(uuid "e29f0422-730e-445c-aca9-6963a35b90e4")
|
(uuid "9aef3444-d9be-48f1-9705-17fcd5126995")
|
||||||
)
|
)
|
||||||
(instances
|
(instances
|
||||||
(project ""
|
(project "mcu_board"
|
||||||
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
||||||
(reference "#PWR09")
|
(reference "#PWR014")
|
||||||
|
(unit 1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol
|
||||||
|
(lib_id "power:VCC")
|
||||||
|
(at 137.16 50.8 0)
|
||||||
|
(unit 1)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(dnp no)
|
||||||
|
(fields_autoplaced yes)
|
||||||
|
(uuid "b12d1505-06d5-40db-89de-ffdf1c860048")
|
||||||
|
(property "Reference" "#PWR015"
|
||||||
|
(at 137.16 54.61 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "VCC"
|
||||||
|
(at 137.16 45.72 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 137.16 50.8 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 137.16 50.8 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" "Power symbol creates a global label with name \"VCC\""
|
||||||
|
(at 137.16 50.8 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "1"
|
||||||
|
(uuid "6a8c9f70-9387-4f92-ab62-2850449b0a20")
|
||||||
|
)
|
||||||
|
(instances
|
||||||
|
(project "mcu_board"
|
||||||
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
||||||
|
(reference "#PWR015")
|
||||||
(unit 1)
|
(unit 1)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -3487,72 +3159,6 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(symbol
|
|
||||||
(lib_id "power:GND")
|
|
||||||
(at 158.75 66.04 0)
|
|
||||||
(unit 1)
|
|
||||||
(exclude_from_sim no)
|
|
||||||
(in_bom yes)
|
|
||||||
(on_board yes)
|
|
||||||
(dnp no)
|
|
||||||
(fields_autoplaced yes)
|
|
||||||
(uuid "e5d72153-3dda-43e6-9381-527c962657b0")
|
|
||||||
(property "Reference" "#PWR010"
|
|
||||||
(at 158.75 72.39 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Value" "GND"
|
|
||||||
(at 158.75 71.12 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Footprint" ""
|
|
||||||
(at 158.75 66.04 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Datasheet" ""
|
|
||||||
(at 158.75 66.04 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
|
|
||||||
(at 158.75 66.04 0)
|
|
||||||
(effects
|
|
||||||
(font
|
|
||||||
(size 1.27 1.27)
|
|
||||||
)
|
|
||||||
(hide yes)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(pin "1"
|
|
||||||
(uuid "6d9166cf-dca1-4668-bd10-347090075e7a")
|
|
||||||
)
|
|
||||||
(instances
|
|
||||||
(project ""
|
|
||||||
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
|
||||||
(reference "#PWR010")
|
|
||||||
(unit 1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(symbol
|
(symbol
|
||||||
(lib_id "wemos:Conn_ESP32-H2_Super-Mini_-_Pins_only")
|
(lib_id "wemos:Conn_ESP32-H2_Super-Mini_-_Pins_only")
|
||||||
(at 64.77 62.23 0)
|
(at 64.77 62.23 0)
|
||||||
@@ -3579,7 +3185,7 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(property "Footprint" "wemos:PinSocket_S3 Zero"
|
(property "Footprint" "wemos:PinSocket_H2 Super-Mini"
|
||||||
(at 48.26 62.23 0)
|
(at 48.26 62.23 0)
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
@@ -3742,6 +3348,72 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(symbol
|
||||||
|
(lib_id "power:GND")
|
||||||
|
(at 156.21 68.58 0)
|
||||||
|
(unit 1)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(dnp no)
|
||||||
|
(fields_autoplaced yes)
|
||||||
|
(uuid "fb2512d8-8e34-4b0a-bfa3-1706940f6f34")
|
||||||
|
(property "Reference" "#PWR016"
|
||||||
|
(at 156.21 74.93 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "GND"
|
||||||
|
(at 156.21 73.66 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 156.21 68.58 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 156.21 68.58 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
|
||||||
|
(at 156.21 68.58 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "1"
|
||||||
|
(uuid "114b7f86-2385-4dcc-a475-abc0ab785287")
|
||||||
|
)
|
||||||
|
(instances
|
||||||
|
(project "mcu_board"
|
||||||
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
||||||
|
(reference "#PWR016")
|
||||||
|
(unit 1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
(symbol
|
(symbol
|
||||||
(lib_id "power:GND")
|
(lib_id "power:GND")
|
||||||
(at 116.84 60.96 270)
|
(at 116.84 60.96 270)
|
||||||
@@ -3876,10 +3548,102 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(sheet
|
||||||
|
(at 140.97 45.72)
|
||||||
|
(size 29.21 20.32)
|
||||||
|
(exclude_from_sim no)
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(dnp no)
|
||||||
|
(stroke
|
||||||
|
(width 0.1524)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill
|
||||||
|
(color 0 0 0 0.0000)
|
||||||
|
)
|
||||||
|
(uuid "3530c7d0-16a6-4646-8301-a5537eed1d29")
|
||||||
|
(property "Sheetname" "Buck Converter"
|
||||||
|
(at 142.24 44.45 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left bottom)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Sheetfile" "buck_converter.kicad_sch"
|
||||||
|
(at 140.97 66.6246 0)
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left top)
|
||||||
|
(hide yes)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "+5V" input
|
||||||
|
(at 170.18 53.34 0)
|
||||||
|
(uuid "1aec6008-1383-4bf2-ab81-ad9c9493532f")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify right)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "GND" input
|
||||||
|
(at 156.21 66.04 270)
|
||||||
|
(uuid "2a982b45-921e-446c-952b-adf1ef9b7341")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin "IN+" input
|
||||||
|
(at 140.97 53.34 180)
|
||||||
|
(uuid "0387bc56-9531-4a63-ab61-f117e6aaf4da")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
)
|
||||||
|
(justify left)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(instances
|
||||||
|
(project "mcu_board"
|
||||||
|
(path "/7f117d42-0d8b-4a32-a9d3-0b04c0222a5a"
|
||||||
|
(page "2")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
(sheet_instances
|
(sheet_instances
|
||||||
(path "/"
|
(path "/"
|
||||||
(page "1")
|
(page "1")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(embedded_fonts no)
|
(embedded_fonts no)
|
||||||
|
(embedded_files
|
||||||
|
(file
|
||||||
|
(name "pcbway.kicad_wks")
|
||||||
|
(type worksheet)
|
||||||
|
(data |KLUv/WAtCaUUAGZdXSEA1TZqxSYpSnAbOsWn6jgBcMQyc4EzL++4wmTo/39CwQRTAEwAVwAfib/D
|
||||||
|
sXnSvpaTvVHzGxcLF61mdz60Ir9WLFwVbS/Z8kf+BAAgQILey1kpKA2V8dvQNSJJdcbvZb/OIQAC
|
||||||
|
BYxSatVZ+2JbZg8RAIHyI9KEHmg/hLSv2iUmKUr1j/y/v6Z11Z4XaZTBa99z0nP2mzH4Ys+e1AfE
|
||||||
|
4tcuvv32znd4QTh7TfVfH0cM1q4dXj9YPSntz96XFNU+evdBzyP+xwFZpWS5UMRfH+qG0Swht2AY
|
||||||
|
1RBaHVox6YSycRYNo2lkjA1iGlzV1ZNSRYXoBHbSuqyh0S4ct5kGvfD3GjlnUva/DjZpY78Eea7a
|
||||||
|
NCPVq+f3fZNagMBfvAmBAqJeCqtah6qwKKJOi3YTTUK6HjlixqyZSVaRUBiJR5dVOk17cBhmVQdJ
|
||||||
|
NtEim8M6QCt6bztRTapFuq0T33aVhrbfvcMJDCdBuFH93pjxprOTXsWiVQJ/oBFFhhRNSQqSFDLM
|
||||||
|
AXBEpObIdIhoeADgyjYO5AUHII+5zeGUZ8OCCgxpYQqEQHAhLidmCx0AKeQ9n6T/yBrb7V12yDYr
|
||||||
|
OiEXJglxtvK15pFxtmAHCO91fmulXHfWElz75BBUrBctqPwIp/TZhV6iCDIApxHAeXt16x/Kg7DG
|
||||||
|
kiWEXtJRLCUAuZbMBWDdLI5A4osumcUmrV5EsjmvZPcMXsOAYTw4linxEUyETifR+zbQER70Mm3G
|
||||||
|
h/OmhDwS8UnyTSUo/nDK0UuSa6aYZw+3mSUACEI+UaM6ItXawEKAG2ER79AKTrs0yN07DJnJ2GGX
|
||||||
|
ZfKigD5qX0sOMakP3fYKbZusDnmUYtdHdIyXSuldo/AF/MS73bQI2vgwVQ==|
|
||||||
|
)
|
||||||
|
(checksum "9F561F2F5A0DC32E669BBA2695209430")
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user