Compare commits

...

23 Commits

Author SHA1 Message Date
88fbbc103b git bug 2025-08-14 21:05:47 +02:00
76fe86a3bc fix bugs 2025-08-14 20:51:28 +02:00
6bf43409e4 concept for config edit form 2025-08-14 17:14:39 +00:00
2374365f0e Merge remote-tracking branch 'rpi/master' 2025-07-03 20:56:59 +02:00
f5f7184965 minor notes update 2025-07-03 20:56:43 +02:00
FReenen
a2eb47bc59 allow to send commands to boat 2025-07-03 20:55:37 +02:00
c84d17a4d9 update servo trim settings 2024-12-05 21:28:44 +01:00
3fecb101b7 add edits from vesting dagen 2024-09-09 10:17:58 +02:00
4ce7cc1475 fix servo error 2024-08-16 16:09:29 +02:00
0f80e087da update 2024-08-16 01:11:02 +02:00
ddba2120e1 tx works 2024-08-15 17:43:48 +02:00
da75d0a2a0 gs: improve disconnect handeling 2024-08-15 15:24:13 +02:00
07144c04eb update 2024-08-15 15:06:13 +02:00
3cda1316ae gs: more error catching 2024-08-15 14:57:11 +02:00
5beb79b51b supress connection errors errors 2024-08-15 14:51:37 +02:00
45298bd360 gs: fix service file 2024-08-15 14:18:22 +02:00
e1c38f4dc7 gs: add systemd service file 2024-08-15 14:13:57 +02:00
4f47712d27 inital code for adc 2024-08-14 15:29:57 +02:00
80ffc67790 update sdkconfig 2024-08-14 14:24:29 +02:00
7501ece574 add target switching for tx and rx 2024-08-14 14:19:57 +02:00
e1359f78b5 fix kick 2024-08-13 21:08:24 +02:00
543e67929b gs: fix conn check 2024-08-12 23:35:07 +02:00
b2dfdcc14a update 2024-08-12 22:07:28 +02:00
19 changed files with 972 additions and 341 deletions

3
.gitignore vendored
View File

@@ -1,2 +1,3 @@
/.vscode
build
build
.cache

View File

@@ -30,6 +30,17 @@
cursor: pointer;
display: inline-block;
}
#edit_config {
position: absolute;
background-color: var(--background-second);
top: 0;
left: 0;
right: 0;
/* height: 100%; */
}
#edit_config form {
margin: 40px auto;
}
</style>
</head>
<body>
@@ -66,6 +77,19 @@
</thead>
<tbody id="clients"></tbody>
</table>
<div id="edit_config" style="display:none">
<form>
<input type="hidden" name="boart" />
name: <input type="text" name="name" id="edit_name" /><br/>
stuur trim max: <input type="range" name="ch0_max" id="edit_ch0_max" max="8192" min="4096" /><br/>
stuur trim mid: <input type="range" name="ch0_mid" id="edit_ch0_mid" max="8192" min="0" /><br/>
stuur trim min: <input type="range" name="ch0_min" id="edit_ch0_min" max="4096" min="0" /><br/>
motor trim max: <input type="range" name="ch1_max" id="edit_ch1_max" max="8192" min="4096" /><br/>
motor trim mid: <input type="range" name="ch1_mid" id="edit_ch1_mid" max="8192" min="0" /><br/>
motor trim min: <input type="range" name="ch1_min" id="edit_ch1_min" max="4096" min="0" /><br/>
<button class="btn" onclick="updateConfig()">toepassen</button> <button class="btn" onclick="document.getElementById('edit_config').style.display = 'none'">anulleren</button>
</form>
</div>
</main>
<script>
const passEl = document.getElementById('pass');
@@ -174,7 +198,14 @@
function getBoatLog(e)
{
alert("loggy log");
// let cmd = prompt("enter command");
let boat = getDataFomEl(e.target);
// console.log("send cmd", boat, cmd);
// conn.send(passEl.value + ";sendcmd;" + boat['id'] + ";" + cmd);
conn.send(passEl.value + ";sendcmd;" + boat['id'] + ";servotrim:0");
conn.send(passEl.value + ";sendcmd;" + boat['id'] + ";servotrim:1");
}
function reqBoats()
@@ -307,4 +338,4 @@
}
</script>
</body>
</html>
</html>

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python
import asyncio
import websockets
from websockets.server import serve
from datetime import datetime
import json
@@ -12,10 +13,33 @@ BOAT_STATE_INCTRL = 2
BOAT_STATE_AVAILABLE = 1
BOAT_STATE_LOCKED = 0
BOAT_STATE_TERMINATED = -1
BOAT_STATE_DELETE = -2
Boats = []
Clients = []
def client_disconnect(client):
if client['state'] != 'kicked':
client['state'] = 'del'
if client['boat'] is not None:
client['boat']['state'] = BOAT_STATE_AVAILABLE
client['boat'] = None
for i, cli in enumerate(Clients):
if cli['state'] == 'del':
del Clients[i]
def boat_disconnect(boat):
boat['state'] = BOAT_STATE_DELETE
for i, cli in enumerate(Boats):
if cli['state'] == BOAT_STATE_DELETE:
del Boats[i]
async def sendToClient(client, msg):
try:
await client['ws'].send(msg)
except websockets.exceptions.ConnectionClosed:
client_disconnect(client)
async def sendToBoat(boat, cmd):
boat['log'].append({"t": datetime.timestamp(datetime.now()), "type": "tx", "msg": cmd})
await boat['ws'].send(cmd)
@@ -31,7 +55,7 @@ async def echo_boats(client):
data += 'available:'
elif boat["state"] == BOAT_STATE_INCTRL:
data += 'inctrl:'
await client['ws'].send(data)
await sendToClient(client, data)
async def echo_locked_boats(client):
"""echo list of all locked boats to client"""
@@ -40,7 +64,7 @@ async def echo_locked_boats(client):
for boat in Boats:
if boat['state'] == BOAT_STATE_LOCKED:
data += str(boat['id']) + ";" + str(boat['name']) + ";locked:"
await client['ws'].send(data + '\n')
await sendToClient(client, data)
async def echo_clients(client):
"""echo list of all clients to client"""
@@ -54,7 +78,7 @@ async def echo_clients(client):
if (clie['boat'] is not None):
boatId = clie['boat']['id']
data += clientId + ";" + boatId + ";" + str(clie['state']) + ":"
await client['ws'].send(data + '\n')
await sendToClient(client, data)
async def take_controll(client, boat):
"""let a client take controll a boat"""
@@ -67,18 +91,18 @@ async def take_controll(client, boat):
b["state"] = BOAT_STATE_INCTRL
print("take controll: " + str(client["id"]) + " -> " + b["name"])
client["boat"] = b
await client['ws'].send("OK")
await sendToClient(client, "OK")
return
else:
break
await client['ws'].send("FAIL")
await sendToClient(client, "FAIL")
async def free_boat(boat):
"""make boat available for next client"""
for client in Clients:
if client["boat"] is not None and client["boat"]['id'] == boat:
client["boat"] = None
await client['ws'].send("FAIL")
await sendToClient(client, "FAIL")
break
for b in Boats:
if b['id'] == boat and b['state'] != BOAT_STATE_TERMINATED:
@@ -90,7 +114,7 @@ async def lock_boat(boat):
for client in Clients:
if client["boat"] is not None and client["boat"]['id'] == boat:
client["boat"] = None
await client['ws'].send("FAIL")
await sendToClient(client, "FAIL")
break
for b in Boats:
if b['id'] == boat and b['state'] != BOAT_STATE_TERMINATED:
@@ -101,23 +125,26 @@ async def getlog(client, data):
"""send boat log to client"""
for b in Boats:
if b['id'] == data[2]:
await client['ws'].send("log;" + b['id'] + ";" + json.dumps(b['log']))
await sendToClient(client, "log;" + b['id'] + ";" + json.dumps(b['log']))
return
async def sendcmd(data):
"""send command to boat"""
for b in Boats:
if b['id'] == data[2]:
del data[0]
del data[1]
data = ";".join(data)
await sendToBoat(b, data)
return
if len(data) > 3:
for b in Boats:
if b['id'] == data[2]:
del data[2]
del data[1]
del data[0]
print(data)
data = ";".join(data)
await sendToBoat(b, data + "\n")
return
async def kick_client(clientId):
"""kick a client"""
for client in Clients:
if client['id'] == client and client['state'] == "terminated":
if client['id'] == client and client['state'] != "terminated":
if client['boat'] is not None:
client['boat']['state'] = BOAT_STATE_AVAILABLE
client['boat'] = None
@@ -133,7 +160,7 @@ async def on_message(message, client):
data = message.replace('\n', '').split(';')
if data[0] != client["id"]:
print("invalid id: " + str(data[0]) + " != " + str(client["id"]))
else:
elif len(data) >= 2:
if data[1] == "boats":
await echo_boats(client)
elif data[1] == "ctrl":
@@ -166,14 +193,16 @@ async def on_message(message, client):
print("WARN: invalid command (admin): '" + data[1] + "'")
else:
print("WARN: invalid command (" + client['id'] + "): '" + data[1] + "'")
else:
print("WARN: to little arguments")
async def new_client(clientId, ws):
"""handler for every new client connection"""
client = { "id": clientId, "boat": None, "ws": ws, "state": "active" }
if client['id'] == ADMIN_ID:
print("new client connected: admin")
print("INFO: new client connected: admin")
else:
print("new client connected: " + client['id'])
print("INFO: new client connected: " + client['id'])
for clie in Clients:
if clie['id'] == client['id']:
if client['state'] == "kicked":
@@ -185,49 +214,63 @@ async def new_client(clientId, ws):
async def new_boat(boatId, name, ws):
"""handler for every new boat connection"""
boat = { "id": boatId, "name": name, "ws": ws, "state": BOAT_STATE_AVAILABLE, "lastMsg": 0, "log": [] }
print("new boat connected: " + boatId)
for bo in Boats:
print("INFO: new boat connected: " + boatId)
for i, bo in enumerate(Boats):
if bo['id'] == boat['id']:
bo['state'] = BOAT_STATE_TERMINATED
await bo['ws'].close()
# await bo['ws'].close()
# del Boats[i]
Boats.append(boat)
return boat
async def run(ws, path):
"""hadeler for every new websocket connection"""
print("new websocket connection: " + path)
client = None
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
message = message.split(';')
if len(message) == 3 and message[1] == "4675":
client = await new_client(message[0], ws)
if client is not None:
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
if client['state'] == 'active':
await on_message(message, client)
else:
break
break
elif (len(message) == 3 and message[1] == "3440"):
client = await new_boat(message[0], message[2], ws)
if client is not None:
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
print("boat" + client['id'] + " says '" + message + "'")
client['log'].append({
"t": datetime.timestamp(datetime.now()),
"type": "rx",
"msg": message
})
break
try:
print("INFO: new connection")
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
message = message.split(';')
if len(message) == 3 and message[1] == "4675":
client = await new_client(message[0], ws)
if client is not None:
try:
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
if client['state'] == 'active':
await on_message(message, client)
else:
break
except websockets.exceptions.ConnectionClosed:
print("INFO: client " + client['id'] + ": execption")
print("INFO: client " + client['id'] + ": disconnected")
client_disconnect(client)
break
elif (len(message) == 3 and message[1] == "3440"):
client = await new_boat(message[0], message[2], ws)
if client is not None:
try:
async for msg in ws:
for message in msg.split("\n"):
if len(message) == 0:
continue
print("boat" + client['id'] + " says '" + message + "'")
client['log'].append({
"t": datetime.timestamp(datetime.now()),
"type": "rx",
"msg": message
})
except websockets.exceptions.ConnectionClosed:
print("INFO: boat " + client['id'] + ": execption")
print("INFO: boat " + client['id'] + ": disconnected")
boat_disconnect(client)
break
except websockets.exceptions.ConnectionClosed:
print("WARN: connection disconected")
async def main():
"""main"""

15
rcrf-gs.service Normal file
View File

@@ -0,0 +1,15 @@
[Unit]
Description=rcrf ground station
After=network-online.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
User=root
RemainAfterExit=yes
WorkingDirectory=/opt/rcrf-wifi
ExecStart=/usr/bin/python3 /opt/rcrf-wifi/ground-station.py
Restart=always
RestartSec=10

7
rx_esp32/.gitignore vendored
View File

@@ -5,4 +5,9 @@
.vscode/ipch
build
.cache
.cache
/sdkconfig
/dependencies.lock
/src/config.h
*.old

View File

@@ -3,7 +3,7 @@ dependencies:
component_hash: null
source:
type: idf
version: 5.4.0
version: 5.3.0
manifest_hash: 0646c148cf0e35f84678cd2cb46e9929051a1c6db31905f3a584cca01fd1e49a
target: esp32c3
target: {{ IC }}
version: 1.0.0

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) 5.2.2 Project Configuration
# Espressif IoT Development Framework (ESP-IDF) 5.3.0 Project Configuration
#
CONFIG_SOC_ADC_SUPPORTED=y
CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
@@ -14,6 +14,7 @@ CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
CONFIG_SOC_XT_WDT_SUPPORTED=y
CONFIG_SOC_PHY_SUPPORTED=y
CONFIG_SOC_WIFI_SUPPORTED=y
CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y
@@ -42,6 +43,11 @@ CONFIG_SOC_CLK_TREE_SUPPORTED=y
CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y
CONFIG_SOC_WDT_SUPPORTED=y
CONFIG_SOC_SPI_FLASH_SUPPORTED=y
CONFIG_SOC_RNG_SUPPORTED=y
CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y
CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y
CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y
CONFIG_SOC_PM_SUPPORTED=y
CONFIG_SOC_XTAL_SUPPORT_40M=y
CONFIG_SOC_AES_SUPPORT_DMA=y
CONFIG_SOC_AES_GDMA=y
@@ -77,6 +83,7 @@ CONFIG_SOC_CACHE_MEMORY_IBANK_SIZE=0x4000
CONFIG_SOC_CPU_CORES_NUM=1
CONFIG_SOC_CPU_INTR_NUM=32
CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
CONFIG_SOC_CPU_HAS_CSR_PC=y
CONFIG_SOC_CPU_BREAKPOINTS_NUM=8
CONFIG_SOC_CPU_WATCHPOINTS_NUM=8
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000
@@ -95,12 +102,15 @@ CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
CONFIG_SOC_GPIO_IN_RANGE_MAX=21
CONFIG_SOC_GPIO_OUT_RANGE_MAX=21
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=6
CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x00000000003FFFC0
CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y
CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
CONFIG_SOC_I2C_NUM=1
CONFIG_SOC_HP_I2C_NUM=1
CONFIG_SOC_I2C_FIFO_LEN=32
CONFIG_SOC_I2C_CMD_REG_NUM=8
CONFIG_SOC_I2C_SUPPORT_SLAVE=y
@@ -145,6 +155,8 @@ CONFIG_SOC_RMT_SUPPORT_APB=y
CONFIG_SOC_RMT_SUPPORT_RC_FAST=y
CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128
CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=108
CONFIG_SOC_SLEEP_SYSTIMER_STALL_WORKAROUND=y
CONFIG_SOC_SLEEP_TGWDT_STOP_WORKAROUND=y
CONFIG_SOC_RTCIO_PIN_COUNT=0
CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4
CONFIG_SOC_MPI_OPERATIONS_NUM=3
@@ -170,6 +182,10 @@ CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
CONFIG_SOC_SPI_SUPPORT_CLK_APB=y
CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y
CONFIG_SOC_SPI_SCT_SUPPORTED=y
CONFIG_SOC_SPI_SCT_REG_NUM=14
CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
@@ -267,7 +283,7 @@ CONFIG_IDF_TOOLCHAIN="gcc"
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET_ARCH="riscv"
CONFIG_IDF_TARGET="esp32c3"
CONFIG_IDF_INIT_VERSION="5.2.2"
CONFIG_IDF_INIT_VERSION="5.3.0"
CONFIG_IDF_TARGET_ESP32C3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005
@@ -363,10 +379,15 @@ CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y
CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
CONFIG_ESP_ROM_HAS_SPI_FLASH=y
CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y
CONFIG_ESP_ROM_HAS_NEWLIB=y
CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y
CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y
CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y
CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y
CONFIG_ESP_ROM_HAS_SW_FLOAT=y
CONFIG_ESP_ROM_USB_OTG_NUM=-1
CONFIG_ESP_ROM_HAS_VERSION=y
CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
#
# Boot ROM Behavior
@@ -452,6 +473,8 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
CONFIG_COMPILER_RT_LIB_GCCLIB=y
CONFIG_COMPILER_RT_LIB_NAME="gcc"
# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
# end of Compiler options
#
@@ -477,31 +500,16 @@ CONFIG_APPTRACE_LOCK_ENABLE=y
CONFIG_BT_ALARM_MAX_NUM=50
# end of Bluetooth
#
# Console Library
#
# CONFIG_CONSOLE_SORTED_HELP is not set
# end of Console Library
#
# Driver Configurations
#
#
# Legacy ADC Configuration
#
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
#
# Legacy ADC Calibration Configuration
#
# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy ADC Calibration Configuration
# end of Legacy ADC Configuration
#
# SPI Configuration
#
# CONFIG_SPI_MASTER_IN_IRAM is not set
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
# CONFIG_SPI_SLAVE_IN_IRAM is not set
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of SPI Configuration
#
# TWAI Configuration
#
@@ -510,76 +518,46 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y
# end of TWAI Configuration
#
# Temperature sensor Configuration
# Legacy ADC Driver Configuration
#
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
#
# Legacy ADC Calibration Configuration
#
# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy ADC Calibration Configuration
# end of Legacy ADC Driver Configuration
#
# Legacy Timer Group Driver Configurations
#
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy Timer Group Driver Configurations
#
# Legacy RMT Driver Configurations
#
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy RMT Driver Configurations
#
# Legacy I2S Driver Configurations
#
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy I2S Driver Configurations
#
# Legacy SDM Driver Configurations
#
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy SDM Driver Configurations
#
# Legacy Temperature Sensor Driver Configurations
#
# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
# end of Temperature sensor Configuration
#
# UART Configuration
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of UART Configuration
#
# GPIO Configuration
#
# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
# end of GPIO Configuration
#
# Sigma Delta Modulator Configuration
#
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
# end of Sigma Delta Modulator Configuration
#
# GPTimer Configuration
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of GPTimer Configuration
#
# RMT Configuration
#
# CONFIG_RMT_ISR_IRAM_SAFE is not set
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
# end of RMT Configuration
#
# I2S Configuration
#
# CONFIG_I2S_ISR_IRAM_SAFE is not set
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
# end of I2S Configuration
#
# USB Serial/JTAG Configuration
#
# end of USB Serial/JTAG Configuration
#
# LEDC Configuration
#
# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
# end of LEDC Configuration
#
# I2C Configuration
#
# CONFIG_I2C_ISR_IRAM_SAFE is not set
# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
# end of I2C Configuration
# end of Legacy Temperature Sensor Driver Configurations
# end of Driver Configurations
#
@@ -596,7 +574,9 @@ CONFIG_EFUSE_MAX_BLK_LEN=256
CONFIG_ESP_TLS_USING_MBEDTLS=y
CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER is not set
# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
# CONFIG_ESP_TLS_INSECURE is not set
# end of ESP-TLS
@@ -608,11 +588,13 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set
# CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 is not set
# CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 is not set
# CONFIG_ADC_ENABLE_DEBUG_LOG is not set
# end of ADC and ADC Calibration
#
# Wireless Coexistence
#
CONFIG_ESP_COEX_ENABLED=y
# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
# end of Wireless Coexistence
@@ -622,6 +604,83 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
# end of Common ESP-related
#
# ESP-Driver:GPIO Configurations
#
# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
# end of ESP-Driver:GPIO Configurations
#
# ESP-Driver:GPTimer Configurations
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:GPTimer Configurations
#
# ESP-Driver:I2C Configurations
#
# CONFIG_I2C_ISR_IRAM_SAFE is not set
# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:I2C Configurations
#
# ESP-Driver:I2S Configurations
#
# CONFIG_I2S_ISR_IRAM_SAFE is not set
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:I2S Configurations
#
# ESP-Driver:LEDC Configurations
#
# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
# end of ESP-Driver:LEDC Configurations
#
# ESP-Driver:RMT Configurations
#
# CONFIG_RMT_ISR_IRAM_SAFE is not set
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:RMT Configurations
#
# ESP-Driver:Sigma Delta Modulator Configurations
#
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:Sigma Delta Modulator Configurations
#
# ESP-Driver:SPI Configurations
#
# CONFIG_SPI_MASTER_IN_IRAM is not set
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
# CONFIG_SPI_SLAVE_IN_IRAM is not set
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of ESP-Driver:SPI Configurations
#
# ESP-Driver:Temperature Sensor Configurations
#
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:Temperature Sensor Configurations
#
# ESP-Driver:UART Configurations
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of ESP-Driver:UART Configurations
#
# ESP-Driver:USB Serial/JTAG Configuration
#
CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y
# end of ESP-Driver:USB Serial/JTAG Configuration
#
# Ethernet
#
@@ -657,6 +716,7 @@ CONFIG_ESP_GDBSTUB_MAX_TASKS=32
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set
# end of ESP HTTP client
#
@@ -715,6 +775,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y
CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4
# CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES_TWO is not set
CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES_FOUR=y
CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES=4
@@ -734,8 +795,6 @@ CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0
CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y
# end of Sleep Config
CONFIG_ESP_SLEEP_SYSTIMER_STALL_WORKAROUND=y
#
# RTC Clock Config
#
@@ -753,12 +812,12 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
# end of Peripheral Control
#
# GDMA Configuration
# GDMA Configurations
#
# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
# CONFIG_GDMA_ISR_IRAM_SAFE is not set
# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
# end of GDMA Configuration
# end of GDMA Configurations
#
# Main XTAL Config
@@ -766,6 +825,8 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
CONFIG_XTAL_FREQ_40=y
CONFIG_XTAL_FREQ=40
# end of Main XTAL Config
CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
# end of Hardware Settings
#
@@ -779,7 +840,6 @@ CONFIG_XTAL_FREQ=40
#
# LCD Peripheral Configuration
#
CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
# end of LCD Peripheral Configuration
# end of LCD and Touch Panel
@@ -804,6 +864,7 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
#
# PHY
#
CONFIG_ESP_PHY_ENABLED=y
CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
@@ -874,6 +935,7 @@ CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_UART_NUM=0
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
@@ -902,6 +964,7 @@ CONFIG_ESP_BROWNOUT_DET_LVL=7
CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y
CONFIG_ESP_SYSTEM_HW_PC_RECORD=y
# end of ESP System Settings
#
@@ -911,7 +974,7 @@ CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
# end of IPC (Inter-Processor Call)
#
# High resolution timer (esp_timer)
# ESP Timer (High Resolution Timer)
#
# CONFIG_ESP_TIMER_PROFILING is not set
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
@@ -921,11 +984,10 @@ CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set
CONFIG_ESP_TIMER_TASK_AFFINITY=0x0
CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y
CONFIG_ESP_TIMER_ISR_AFFINITY=0x1
CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y
# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
# end of High resolution timer (esp_timer)
# end of ESP Timer (High Resolution Timer)
#
# Wi-Fi
@@ -957,10 +1019,13 @@ CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
# CONFIG_ESP_WIFI_FTM_ENABLE is not set
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set
CONFIG_ESP_WIFI_GMAC_SUPPORT=y
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
@@ -1033,6 +1098,8 @@ CONFIG_FATFS_PER_FILE_CACHE=y
# CONFIG_FATFS_USE_FASTSEEK is not set
CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
# CONFIG_FATFS_IMMEDIATE_FSYNC is not set
# CONFIG_FATFS_USE_LABEL is not set
CONFIG_FATFS_LINK_LOCK=y
# end of FAT Filesystem support
#
@@ -1056,12 +1123,16 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set
CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set
# end of Kernel
@@ -1091,6 +1162,7 @@ CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_FREERTOS_NUMBER_OF_CORES=1
# end of FreeRTOS
#
@@ -1218,6 +1290,7 @@ CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760
CONFIG_LWIP_TCP_WND_DEFAULT=5760
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6
CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4
@@ -1272,6 +1345,8 @@ CONFIG_LWIP_MAX_RAW_PCBS=16
CONFIG_LWIP_SNTP_MAX_SERVERS=1
# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
CONFIG_LWIP_SNTP_STARTUP_DELAY=y
CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
# end of SNTP
#
@@ -1341,6 +1416,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
# end of Certificate Bundle
@@ -1349,7 +1425,7 @@ CONFIG_MBEDTLS_CMAC_C=y
CONFIG_MBEDTLS_HARDWARE_AES=y
CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0
# CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER is not set
CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y
CONFIG_MBEDTLS_HARDWARE_MPI=y
CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y
CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
@@ -1554,6 +1630,7 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y
#
CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y
# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
# end of Optional and Experimental Features (READ DOCS FIRST)
# end of Main Flash configuration

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) 5.2.2 Project Configuration
# Espressif IoT Development Framework (ESP-IDF) 5.3.0 Project Configuration
#
CONFIG_SOC_ADC_SUPPORTED=y
CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
@@ -18,6 +18,7 @@ CONFIG_SOC_IEEE802154_SUPPORTED=y
CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
CONFIG_SOC_PHY_SUPPORTED=y
CONFIG_SOC_WIFI_SUPPORTED=y
CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
CONFIG_SOC_ULP_SUPPORTED=y
@@ -45,6 +46,7 @@ CONFIG_SOC_SECURE_BOOT_SUPPORTED=y
CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y
CONFIG_SOC_BOD_SUPPORTED=y
CONFIG_SOC_APM_SUPPORTED=y
CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y
CONFIG_SOC_PMU_SUPPORTED=y
CONFIG_SOC_PAU_SUPPORTED=y
CONFIG_SOC_LP_TIMER_SUPPORTED=y
@@ -56,6 +58,11 @@ CONFIG_SOC_CLK_TREE_SUPPORTED=y
CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y
CONFIG_SOC_WDT_SUPPORTED=y
CONFIG_SOC_SPI_FLASH_SUPPORTED=y
CONFIG_SOC_RNG_SUPPORTED=y
CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y
CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y
CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y
CONFIG_SOC_PM_SUPPORTED=y
CONFIG_SOC_XTAL_SUPPORT_40M=y
CONFIG_SOC_AES_SUPPORT_DMA=y
CONFIG_SOC_AES_GDMA=y
@@ -92,6 +99,7 @@ CONFIG_SOC_CPU_CORES_NUM=1
CONFIG_SOC_CPU_INTR_NUM=32
CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
CONFIG_SOC_INT_PLIC_SUPPORTED=y
CONFIG_SOC_CPU_HAS_CSR_PC=y
CONFIG_SOC_CPU_BREAKPOINTS_NUM=4
CONFIG_SOC_CPU_WATCHPOINTS_NUM=4
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000
@@ -104,6 +112,7 @@ CONFIG_SOC_AHB_GDMA_VERSION=1
CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1
CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3
CONFIG_SOC_GDMA_SUPPORT_ETM=y
CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y
CONFIG_SOC_ETM_GROUPS=1
CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50
CONFIG_SOC_GPIO_PORT=1
@@ -113,21 +122,27 @@ CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8
CONFIG_SOC_GPIO_SUPPORT_ETM=y
CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y
CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
CONFIG_SOC_GPIO_IN_RANGE_MAX=30
CONFIG_SOC_GPIO_OUT_RANGE_MAX=30
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8
CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00
CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y
CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y
CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y
CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y
CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
CONFIG_SOC_RTCIO_PIN_COUNT=8
CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
CONFIG_SOC_RTCIO_VALID_RTCIO_MASK=0xFF
CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
CONFIG_SOC_I2C_NUM=1
CONFIG_SOC_I2C_NUM=2
CONFIG_SOC_HP_I2C_NUM=1
CONFIG_SOC_I2C_FIFO_LEN=32
CONFIG_SOC_I2C_CMD_REG_NUM=8
CONFIG_SOC_I2C_SUPPORT_SLAVE=y
@@ -140,6 +155,7 @@ CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y
CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y
CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y
CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y
CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y
CONFIG_SOC_LP_I2C_NUM=1
CONFIG_SOC_LP_I2C_FIFO_LEN=16
CONFIG_SOC_I2S_NUM=1
@@ -228,6 +244,10 @@ CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y
CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y
CONFIG_SOC_SPI_SCT_SUPPORTED=y
CONFIG_SOC_SPI_SCT_REG_NUM=14
CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
@@ -258,6 +278,7 @@ CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y
CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2
CONFIG_SOC_TIMER_SUPPORT_ETM=y
CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y
CONFIG_SOC_MWDT_SUPPORT_XTAL=y
CONFIG_SOC_TWAI_CONTROLLER_NUM=2
CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y
@@ -276,7 +297,7 @@ CONFIG_SOC_SECURE_BOOT_V2_ECC=y
CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3
CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y
CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y
CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32
CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64
CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y
CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y
CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y
@@ -291,6 +312,7 @@ CONFIG_SOC_UART_SUPPORT_RTC_CLK=y
CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y
CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y
CONFIG_SOC_UART_HAS_LP_UART=y
CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y
CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y
CONFIG_SOC_COEX_HW_PTI=y
CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y
@@ -326,6 +348,8 @@ CONFIG_SOC_RCC_IS_INDEPENDENT=y
CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y
CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y
CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y
CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y
CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y
CONFIG_SOC_WIFI_HW_TSF=y
CONFIG_SOC_WIFI_FTM_SUPPORT=y
CONFIG_SOC_WIFI_GCMP_SUPPORT=y
@@ -345,12 +369,14 @@ CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y
CONFIG_SOC_PHY_COMBO_MODULE=y
CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y
CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y
CONFIG_SOC_LP_CORE_SUPPORT_ETM=y
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TOOLCHAIN="gcc"
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET_ARCH="riscv"
CONFIG_IDF_TARGET="esp32c6"
CONFIG_IDF_INIT_VERSION="5.2.2"
CONFIG_IDF_INIT_VERSION="5.3.0"
CONFIG_IDF_TARGET_ESP32C6=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D
@@ -443,15 +469,21 @@ CONFIG_ESP_ROM_HAS_RVFPLIB=y
CONFIG_ESP_ROM_HAS_HAL_WDT=y
CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y
CONFIG_ESP_ROM_HAS_HEAP_TLSF=y
CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y
CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y
CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
CONFIG_ESP_ROM_HAS_SPI_FLASH=y
CONFIG_ESP_ROM_HAS_REGI2C_BUG=y
CONFIG_ESP_ROM_HAS_NEWLIB=y
CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y
CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y
CONFIG_ESP_ROM_WDT_INIT_PATCH=y
CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y
CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y
CONFIG_ESP_ROM_HAS_SW_FLOAT=y
CONFIG_ESP_ROM_USB_OTG_NUM=-1
CONFIG_ESP_ROM_HAS_VERSION=y
CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
#
# Boot ROM Behavior
@@ -537,6 +569,8 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
CONFIG_COMPILER_RT_LIB_GCCLIB=y
CONFIG_COMPILER_RT_LIB_NAME="gcc"
# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
# end of Compiler options
#
@@ -562,31 +596,16 @@ CONFIG_APPTRACE_LOCK_ENABLE=y
CONFIG_BT_ALARM_MAX_NUM=50
# end of Bluetooth
#
# Console Library
#
# CONFIG_CONSOLE_SORTED_HELP is not set
# end of Console Library
#
# Driver Configurations
#
#
# Legacy ADC Configuration
#
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
#
# Legacy ADC Calibration Configuration
#
# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy ADC Calibration Configuration
# end of Legacy ADC Configuration
#
# SPI Configuration
#
# CONFIG_SPI_MASTER_IN_IRAM is not set
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
# CONFIG_SPI_SLAVE_IN_IRAM is not set
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of SPI Configuration
#
# TWAI Configuration
#
@@ -594,102 +613,58 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of TWAI Configuration
#
# Temperature sensor Configuration
# Legacy ADC Driver Configuration
#
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
#
# Legacy ADC Calibration Configuration
#
# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy ADC Calibration Configuration
# end of Legacy ADC Driver Configuration
#
# Legacy MCPWM Driver Configurations
#
# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy MCPWM Driver Configurations
#
# Legacy Timer Group Driver Configurations
#
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy Timer Group Driver Configurations
#
# Legacy RMT Driver Configurations
#
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy RMT Driver Configurations
#
# Legacy I2S Driver Configurations
#
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy I2S Driver Configurations
#
# Legacy PCNT Driver Configurations
#
# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy PCNT Driver Configurations
#
# Legacy SDM Driver Configurations
#
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
# end of Legacy SDM Driver Configurations
#
# Legacy Temperature Sensor Driver Configurations
#
# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set
# end of Temperature sensor Configuration
#
# UART Configuration
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of UART Configuration
#
# GPIO Configuration
#
# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
# end of GPIO Configuration
#
# Sigma Delta Modulator Configuration
#
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
# end of Sigma Delta Modulator Configuration
#
# GPTimer Configuration
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of GPTimer Configuration
#
# PCNT Configuration
#
# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
# CONFIG_PCNT_ISR_IRAM_SAFE is not set
# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
# end of PCNT Configuration
#
# RMT Configuration
#
# CONFIG_RMT_ISR_IRAM_SAFE is not set
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
# end of RMT Configuration
#
# MCPWM Configuration
#
# CONFIG_MCPWM_ISR_IRAM_SAFE is not set
# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
# end of MCPWM Configuration
#
# I2S Configuration
#
# CONFIG_I2S_ISR_IRAM_SAFE is not set
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
# end of I2S Configuration
#
# USB Serial/JTAG Configuration
#
# end of USB Serial/JTAG Configuration
#
# Parallel IO Configuration
#
# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set
# CONFIG_PARLIO_ISR_IRAM_SAFE is not set
# end of Parallel IO Configuration
#
# LEDC Configuration
#
# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
# end of LEDC Configuration
#
# I2C Configuration
#
# CONFIG_I2C_ISR_IRAM_SAFE is not set
# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
# end of I2C Configuration
# end of Legacy Temperature Sensor Driver Configurations
# end of Driver Configurations
#
@@ -706,7 +681,9 @@ CONFIG_EFUSE_MAX_BLK_LEN=256
CONFIG_ESP_TLS_USING_MBEDTLS=y
CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER is not set
# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
# CONFIG_ESP_TLS_INSECURE is not set
# end of ESP-TLS
@@ -716,13 +693,16 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
#
# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set
# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set
# CONFIG_ADC_ENABLE_DEBUG_LOG is not set
# end of ADC and ADC Calibration
#
# Wireless Coexistence
#
CONFIG_ESP_COEX_ENABLED=y
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set
# end of Wireless Coexistence
#
@@ -731,6 +711,107 @@ CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
# end of Common ESP-related
#
# ESP-Driver:GPIO Configurations
#
# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
# end of ESP-Driver:GPIO Configurations
#
# ESP-Driver:GPTimer Configurations
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:GPTimer Configurations
#
# ESP-Driver:I2C Configurations
#
# CONFIG_I2C_ISR_IRAM_SAFE is not set
# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:I2C Configurations
#
# ESP-Driver:I2S Configurations
#
# CONFIG_I2S_ISR_IRAM_SAFE is not set
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:I2S Configurations
#
# ESP-Driver:LEDC Configurations
#
# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
# end of ESP-Driver:LEDC Configurations
#
# ESP-Driver:MCPWM Configurations
#
# CONFIG_MCPWM_ISR_IRAM_SAFE is not set
# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:MCPWM Configurations
#
# ESP-Driver:Parallel IO Configurations
#
# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set
# CONFIG_PARLIO_ISR_IRAM_SAFE is not set
# end of ESP-Driver:Parallel IO Configurations
#
# ESP-Driver:PCNT Configurations
#
# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
# CONFIG_PCNT_ISR_IRAM_SAFE is not set
# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:PCNT Configurations
#
# ESP-Driver:RMT Configurations
#
# CONFIG_RMT_ISR_IRAM_SAFE is not set
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:RMT Configurations
#
# ESP-Driver:Sigma Delta Modulator Configurations
#
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:Sigma Delta Modulator Configurations
#
# ESP-Driver:SPI Configurations
#
# CONFIG_SPI_MASTER_IN_IRAM is not set
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
# CONFIG_SPI_SLAVE_IN_IRAM is not set
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of ESP-Driver:SPI Configurations
#
# ESP-Driver:Temperature Sensor Configurations
#
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set
# end of ESP-Driver:Temperature Sensor Configurations
#
# ESP-Driver:UART Configurations
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of ESP-Driver:UART Configurations
#
# ESP-Driver:USB Serial/JTAG Configuration
#
CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y
# end of ESP-Driver:USB Serial/JTAG Configuration
#
# Ethernet
#
@@ -766,6 +847,7 @@ CONFIG_ESP_GDBSTUB_MAX_TASKS=32
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set
# end of ESP HTTP client
#
@@ -821,6 +903,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y
CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y
CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4
# CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set
CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y
CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4
@@ -863,12 +946,12 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
# end of ETM Configuration
#
# GDMA Configuration
# GDMA Configurations
#
# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
# CONFIG_GDMA_ISR_IRAM_SAFE is not set
# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
# end of GDMA Configuration
# end of GDMA Configurations
#
# Main XTAL Config
@@ -886,6 +969,8 @@ CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y
# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set
CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1
# end of Crypto DPA Protection
CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
# end of Hardware Settings
#
@@ -899,7 +984,6 @@ CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1
#
# LCD Peripheral Configuration
#
CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
# end of LCD Peripheral Configuration
# end of LCD and Touch Panel
@@ -924,6 +1008,7 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
#
# PHY
#
CONFIG_ESP_PHY_ENABLED=y
CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
@@ -940,6 +1025,7 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0
# Power Management
#
# CONFIG_PM_ENABLE is not set
CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set
# end of Power Management
@@ -993,6 +1079,7 @@ CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_UART_NUM=0
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
@@ -1022,6 +1109,7 @@ CONFIG_ESP_BROWNOUT_DET_LVL=7
CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y
CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y
CONFIG_ESP_SYSTEM_HW_PC_RECORD=y
# end of ESP System Settings
#
@@ -1031,7 +1119,7 @@ CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
# end of IPC (Inter-Processor Call)
#
# High resolution timer (esp_timer)
# ESP Timer (High Resolution Timer)
#
# CONFIG_ESP_TIMER_PROFILING is not set
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
@@ -1041,11 +1129,10 @@ CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set
CONFIG_ESP_TIMER_TASK_AFFINITY=0x0
CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y
CONFIG_ESP_TIMER_ISR_AFFINITY=0x1
CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y
# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
# end of High resolution timer (esp_timer)
# end of ESP Timer (High Resolution Timer)
#
# Wi-Fi
@@ -1076,15 +1163,17 @@ CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
CONFIG_ESP_WIFI_SLP_IRAM_OPT=y
CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
# CONFIG_ESP_WIFI_FTM_ENABLE is not set
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set
CONFIG_ESP_WIFI_GMAC_SUPPORT=y
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS=y
CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y
CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y
# CONFIG_ESP_WIFI_WAPI_PSK is not set
@@ -1094,8 +1183,9 @@ CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y
# CONFIG_ESP_WIFI_DPP_SUPPORT is not set
# CONFIG_ESP_WIFI_11R_SUPPORT is not set
# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set
CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS=y
CONFIG_ESP_WIFI_ENABLE_WIFI_RX_MU_STATS=y
# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set
# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set
CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3
#
# WPS Configuration Options
@@ -1156,6 +1246,8 @@ CONFIG_FATFS_PER_FILE_CACHE=y
# CONFIG_FATFS_USE_FASTSEEK is not set
CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
# CONFIG_FATFS_IMMEDIATE_FSYNC is not set
# CONFIG_FATFS_USE_LABEL is not set
CONFIG_FATFS_LINK_LOCK=y
# end of FAT Filesystem support
#
@@ -1179,12 +1271,16 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set
CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set
# end of Kernel
@@ -1214,6 +1310,7 @@ CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_FREERTOS_NUMBER_OF_CORES=1
# end of FreeRTOS
#
@@ -1360,6 +1457,7 @@ CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760
CONFIG_LWIP_TCP_WND_DEFAULT=5760
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6
CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4
@@ -1414,6 +1512,8 @@ CONFIG_LWIP_MAX_RAW_PCBS=16
CONFIG_LWIP_SNTP_MAX_SERVERS=1
# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
CONFIG_LWIP_SNTP_STARTUP_DELAY=y
CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
# end of SNTP
#
@@ -1483,6 +1583,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
# end of Certificate Bundle
@@ -1491,7 +1592,7 @@ CONFIG_MBEDTLS_CMAC_C=y
CONFIG_MBEDTLS_HARDWARE_AES=y
CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0
# CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER is not set
CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y
CONFIG_MBEDTLS_HARDWARE_MPI=y
CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y
CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
@@ -1696,6 +1797,7 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y
#
# Features here require specific hardware (READ DOCS FIRST!)
#
CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
# end of Optional and Experimental Features (READ DOCS FIRST)
# end of Main Flash configuration
@@ -1786,6 +1888,11 @@ CONFIG_WS_BUFFER_SIZE=1024
# Ultra Low Power (ULP) Co-processor
#
# CONFIG_ULP_COPROC_ENABLED is not set
#
# ULP Debugging Options
#
# end of ULP Debugging Options
# end of Ultra Low Power (ULP) Co-processor
#
@@ -1880,12 +1987,12 @@ CONFIG_STACK_CHECK_NONE=y
# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
CONFIG_ESP32_APPTRACE_DEST_NONE=y
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
# CONFIG_MCPWM_ISR_IN_IRAM is not set
CONFIG_SW_COEXIST_ENABLE=y
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
# CONFIG_EXTERNAL_COEX_ENABLE is not set
# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set
# CONFIG_MCPWM_ISR_IN_IRAM is not set
# CONFIG_EVENT_LOOP_PROFILING is not set
CONFIG_POST_EVENTS_FROM_ISR=y
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y

35
rx_esp32/set-target.sh Executable file
View File

@@ -0,0 +1,35 @@
case $1 in
"rx")
IC="esp32c3"
opts="-D IC=$IC -D target=rx"
;;
"tx")
IC="esp32c6"
opts="-D IC=$IC -D target=tx"
;;
*)
echo "Use 'rx' or 'tx'."
return
;;
esac
if [ -f sdkconfig.$IC ]
then
rm sdkconfig dependencies.lock
idf.py fullclean
cp sdkconfig.$IC sdkconfig
jinja2 $opts dependencies.lock.j2 >dependencies.lock
jinja2 $opts src/config.h.j2 >src/config.h
idf.py --version &>/dev/null || {
. $IDF_TOOLS_PATH/esp-idf/export.sh
}
idf.py set-target $IC
# idf.py build $2
else
echo "SDK config file for $IC not found."
fi

View File

@@ -12,6 +12,7 @@ idf_component_register(
./servos.c
./logger.c
./ws.c
./adc.c
INCLUDE_DIRS "./"
PRIV_REQUIRES
# project components
@@ -19,6 +20,6 @@ idf_component_register(
# idf extra components
led_strip
# idf base components
esp_websocket_client
esp_websocket_client esp_adc
spi_flash driver nvs_flash esp_wifi
)

80
rx_esp32/src/adc.c Normal file
View File

@@ -0,0 +1,80 @@
#include <stdint.h>
#include <stdbool.h>
#include <esp_adc/adc_continuous.h>
#include "adc.h"
#include "hal/adc_types.h"
adc_digi_output_data_t ADC_Buffer[6][10];
uint8_t ADC_conf_available = 0;
adc_continuous_handle_t adc_handle;
static bool IRAM_ATTR s_conv_done_cb(adc_continuous_handle_t handle, const adc_continuous_evt_data_t *edata, void *user_data)
{
// BaseType_t mustYield = pdFALSE;
// //Notify that ADC continuous driver has done enough number of conversions
// vTaskNotifyGiveFromISR(s_task_handle, &mustYield);
// return (mustYield == pdTRUE);
ADC_conf_available++;
return true;
}
void adc_init()
{
adc_continuous_handle_cfg_t adc_config = {
.max_store_buf_size = sizeof(ADC_Buffer),
.conv_frame_size = sizeof(adc_digi_output_data_t) * 6,
};
adc_continuous_new_handle(&adc_config, &adc_handle);
adc_continuous_config_t dig_cfg = {
.sample_freq_hz = 611, //100 * 6,
.conv_mode = ADC_CONV_SINGLE_UNIT_1,
.format = ADC_DIGI_OUTPUT_FORMAT_TYPE2,
};
adc_digi_pattern_config_t adc_pattern[SOC_ADC_PATT_LEN_MAX] = {0};
dig_cfg.pattern_num = 6;
for (int i = 0; i < 6; i++) {
adc_pattern[i].atten = ADC_ATTEN_DB_12;
adc_pattern[i].unit = ADC_UNIT_1;
adc_pattern[i].bit_width = ADC_BITWIDTH_12;
}
adc_pattern[0].channel = ADC_CHANNEL_0 & 0x7;
adc_pattern[1].channel = ADC_CHANNEL_1 & 0x7;
adc_pattern[2].channel = ADC_CHANNEL_2 & 0x7;
adc_pattern[3].channel = ADC_CHANNEL_3 & 0x7;
adc_pattern[4].channel = ADC_CHANNEL_4 & 0x7;
adc_pattern[5].channel = ADC_CHANNEL_5 & 0x7;
dig_cfg.adc_pattern = adc_pattern;
adc_continuous_config(adc_handle, &dig_cfg);
adc_continuous_evt_cbs_t cbs = {
.on_conv_done = s_conv_done_cb,
};
adc_continuous_register_event_callbacks(adc_handle, &cbs, NULL);
adc_continuous_start(adc_handle);
}
bool adc_read(ADC_Data_t* out_data)
{
adc_digi_output_data_t data[6];
uint32_t ret_num = 0;
esp_err_t ret = adc_continuous_read(
adc_handle,
(uint8_t*)&data,
sizeof(adc_digi_output_data_t) * 6,
&ret_num,
0
);
if (ret == ESP_OK)
{
for (uint8_t i=0; i<3; i++) {
for (uint8_t ii=0; ii<2; ii++) {
out_data->value[i][ii] = data[i*2 + ii].type2.data;
}
}
}
return (ret == ESP_OK);
}

14
rx_esp32/src/adc.h Normal file
View File

@@ -0,0 +1,14 @@
#ifndef ADC_H
#define ADC_H
#include <stdint.h>
#include <stdbool.h>
typedef struct {
uint16_t value[3][2];
} ADC_Data_t;
void adc_init();
bool adc_read(ADC_Data_t* data);
#endif // ADC_H

View File

@@ -68,6 +68,38 @@ int cmd_contrl(char* line, void* cli)
return out;
}
// servotrim:0 410;614;819
int cmd_servotrim(char* line, void* cli)
{
uint8_t ch;
int out = 0;
char msg[40];
char* arg = getNextArg(line, ':');
if (arg == NULL)
{
snprintf(&msg[0], 40, "no arguments given, expect at least one\n");
CLI_stringOut((CLI_t*)cli, &msg[0]);
out = -1;
}
else
{
readInt(arg, &ch);
arg = getNextArg(arg, ' ');
if (arg != NULL)
{
readInt(arg, &Servos[ch].pulse_min);
arg = getNextArg(arg, ':');
readInt(arg, &Servos[ch].pulse_mid);
arg = getNextArg(arg, ':');
readInt(arg, &Servos[ch].pulse_max);
}
snprintf(&msg[0], 40, "servo ch %d: %d:%d:%d\n", Servos[ch].pulse_min, Servos[ch].pulse_mid, Servos[ch].pulse_max);
CLI_stringOut((CLI_t*)cli, &msg[0]);
}
return out;
}
extern volatile bool running;
int cmd_shutdown(char* line, void* cli)
{
@@ -158,11 +190,15 @@ int cmd_clearlog(char* line, void* cli)
}
const CMD_t Commands[] = {
{ "history", &cmd_history },
#if TARGET == TARGET_RX
{ "d", &cmd_contrl },
{ "shutdown", &cmd_shutdown },
{ "status", &cmd_status },
{ "servotrim", &cmd_servotrim},
#elif TARGET == TARGET_TX
{ "led", &setLed },
#endif
{ "history", &cmd_history },
{ "shutdown", &cmd_shutdown },
{ "log", &cmd_showlog },
{ "logclear", &cmd_clearlog }
};

View File

@@ -3,6 +3,10 @@
#include <stdint.h>
#define TARGET_TX 0
#define TARGET_RX 1
#define TARGET {% if target == "tx" %}TARGET_TX{% else %}TARGET_RX{% endif %}
#define WIFI_SSID "MBCBootjes"
#define WIFI_AUTH WIFI_AUTH_WPA_WPA2_PSK
#define WIFI_PASS "hetgrootedok"

View File

@@ -14,10 +14,14 @@
#include "utils.h"
#include "commands.h"
#include "wifi.h"
#include "led.h"
#include "servos.h"
#include "logger.h"
#include "ws.h"
#if TARGET == TARGET_TX
#include "led.h"
#include "adc.h"
#elif TARGET == TARGET_RX
#include "servos.h"
#endif
bool volatile running = true;
CMDList_t* cmdList;
@@ -27,14 +31,33 @@ bool rxBuffer_overflow = false;
typedef enum {
STATE_WIFI_CONNECTING,
STATE_WIFI_WAIT_CONNECTION,
#if TARGET == TARGET_RX
STATE_WS_CONNECTING,
STATE_WS_WAIT_CONNECTION,
STATE_IDEL,
STATE_DRIVING
#elif TARGET == TARGET_TX
STATE_WIFI_CONNECTED,
#endif
} MainState_t;
MainState_t MainState = STATE_WIFI_CONNECTING;
#if TARGET == TARGET_TX
typedef enum {
STATE_WS_CONNECTING,
STATE_WS_WAIT_CONNECTION,
STATE_IDEL,
STATE_DRIVING
} WSState_t;
WSState_t WSStates[3] = {STATE_WS_CONNECTING, STATE_WS_CONNECTING, STATE_WS_CONNECTING};
uint8_t WS_conn_proc = 0;
#endif
#if TARGET == TARGET_RX
ws_client_t ws_client;
#elif TARGET == TARGET_TX
ws_client_t ws_client[3];
#endif
int charOut_uart(const char* c)
{
@@ -42,23 +65,18 @@ int charOut_uart(const char* c)
return 0;
}
#if TARGET == TARGET_RX
int charOut_ws(const char* c)
{
ws_putchar(ws_client, *c);
return 0;
}
#endif
void app_main() {
// disable watchdog
ESP_ERROR_CHECK(esp_task_wdt_deinit());
// wait so I have time to open the serial monitor
// for (unsigned long i=0; i < 10000; i++)
// {
// printf(".");
// }
// printf("\n");
/* Initialize NVS — it is used to store PHY calibration data */
esp_err_t ret = nvs_flash_init();
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND)
@@ -70,11 +88,16 @@ void app_main() {
printChipInfo();
#if TARGET == TARGET_TX
led_init();
led_setRGB(0, 0, 20);
#elif TARGET == TARGET_RX
servo_init();
#endif
wifiInit();
bool adc_inited = false;
uint8_t adc_counter = 0;
running = true;
@@ -85,7 +108,12 @@ void app_main() {
uint8_t charIn = 0;
EventBits_t bits;
MainState_t lastMainState = MainState;
#if TARGET == TARGET_RX
CLI_t cli_ws_client;
#elif TARGET == TARGET_TX
CLI_t cli_ws_client[3];
#endif
LOG_D("main: main loop starting in state %d", MainState);
while (running)
{
@@ -111,29 +139,127 @@ void app_main() {
bits = xEventGroupGetBits(s_wifi_event_group);
if ((bits & WIFI_CONNECTED_BIT) != 0)
{
#if TARGET == TARGET_TX
led_setRGB(0, 20, 0);
MainState = STATE_WIFI_CONNECTED;
#elif TARGET == TARGET_RX
MainState = STATE_WS_CONNECTING;
#endif
LOG_I("main: connected to ap SSID '%s'", WIFI_SSID);
}
else if ((bits & WIFI_FAIL_BIT) != 0)
{
#if TARGET == TARGET_TX
led_setRGB(2, 0, 0);
#endif
MainState = STATE_WIFI_CONNECTING;
// wifi_reconnect();
LOG_E("main: Failed to connect to SSID '%s'", WIFI_SSID);
}
else if (bits != 0)
{
led_setRGB(2, 0, 0);
#if TARGET == TARGET_TX
led_setRGB(20, 0, 0);
#endif
// MainState = STATE_WIFI_CONNECTING;
LOG_C("main: UNEXPECTED EVENT (bits: 0x%04x)", bits);
}
break;
#if TARGET == TARGET_TX
case STATE_WIFI_CONNECTED:
if (!adc_inited)
{
adc_init();
adc_inited = true;
}
ADC_Data_t adc_data;
bool adc_data_valid = false;
if (adc_read(&adc_data))
{
adc_counter++;
if (adc_counter >= 20)
{
// LOG_D("ADC_DATA: %d, %d, %d, %d, %d, %d", adc_data.value[0], adc_data.value[1], adc_data.value[2], adc_data.value[3], adc_data.value[4], adc_data.value[5]);
adc_data_valid = true;
adc_counter = 0;
}
}
for (WS_conn_proc = 0; WS_conn_proc <3; WS_conn_proc++)
{
switch (WSStates[WS_conn_proc])
{
case STATE_WS_CONNECTING:
LOG_I("main: websocket %d: connecting", WS_conn_proc);
ws_client[WS_conn_proc] = ws_connect(WS_URL, BoatId + WS_conn_proc, WS_DEV_CODE_CLIENT);
WSStates[WS_conn_proc] = STATE_WS_WAIT_CONNECTION;
break;
case STATE_WS_WAIT_CONNECTION:
if (ws_client[WS_conn_proc]->connected)
{
LOG_I("main: websocket %d: connected", WS_conn_proc);
WSStates[WS_conn_proc] = STATE_IDEL;
}
break;
case STATE_IDEL:
if (adc_data_valid)
{
char cmd[100];
snprintf(&cmd[0], 100, "%04u;ctrl;%04u",
ws_client[WS_conn_proc]->id,
ws_client[WS_conn_proc]->id
);
ws_sendString(ws_client[WS_conn_proc], &cmd[0]);
}
case STATE_DRIVING:
if (!ws_client[WS_conn_proc]->connected)
{
WSStates[WS_conn_proc] = STATE_WS_WAIT_CONNECTION;
}
char ws_resp[10];
uint16_t ws_resp_len;
while ((ws_resp_len = ws_getstr(ws_client[WS_conn_proc], 10, &ws_resp[0])) > 0)
{
LOG_D("main: websocket %d: resv: %.*s", WS_conn_proc, ws_resp_len, ws_resp);
if (ws_resp_len == 4)
{
ws_resp[4] = 0;
if (strcmp(&ws_resp[0], "FAIL") == 0)
{
WSStates[WS_conn_proc] = STATE_IDEL;
}
}
else if (ws_resp_len == 2)
{
ws_resp[2] = 0;
if (strcmp(&ws_resp[0], "OK") == 0)
{
WSStates[WS_conn_proc] = STATE_DRIVING;
}
}
}
if ((WSStates[WS_conn_proc] == STATE_DRIVING) && adc_data_valid)
{
char ctrl_cmd[100];
snprintf(&ctrl_cmd[0], 100, "%04u;d;%u,%u",
ws_client[WS_conn_proc]->id,
adc_data.value[WS_conn_proc][0] >> 4,
adc_data.value[WS_conn_proc][1] >> 4
);
ws_sendString(ws_client[WS_conn_proc], &ctrl_cmd[0]);
}
break;
}
}
break;
#elif TARGET == TARGET_RX
case STATE_WS_CONNECTING:
ws_client = ws_connect(WS_URL);
ws_client = ws_connect(WS_URL, BoatId, WS_DEV_CODE_BOAT);
MainState = STATE_WS_WAIT_CONNECTION;
break;
case STATE_WS_WAIT_CONNECTION:
@@ -145,7 +271,6 @@ void app_main() {
}
break;
case STATE_IDEL:
case STATE_DRIVING:
if (!ws_client->connected)
@@ -160,12 +285,17 @@ void app_main() {
}
ws_sendData(ws_client);
break;
#endif
}
}
#if TARGET == TARGET_TX
led_setRGB(0, 0, 0);
#endif
#if TARGET == TARGET_RX
servo_deinit();
#endif
CLI_deinit(&cli_uart);
CMDList_deinit(cmdList);

View File

@@ -14,7 +14,7 @@
#define SERVO_DUTY_MIN ( 410) // 2**13 * (1000/20000) // 1000us of the 20ms
#define SERVO_DUTY_MAX ( 819) // 2**13 * (2000/20000) // 2000us of the 20ms
// #define SERVO_DUTY_MAX (1024) // 2**13 * (2500/20000) // 2500us of the 20ms
#define SERVO_DUTY_MID ( 614) // 2**13 * (1500/20000) // 2500us of the 20ms
#define SERVO_DUTY_MID ( 614) // 2**13 * (1500/20000) // 1500us of the 20ms
#define SERVO_DUTY_DIFF (SERVO_DUTY_MAX - SERVO_DUTY_MIN)
@@ -27,8 +27,8 @@ void servo_init(void)
Servos[0].ledc_ch = LEDC_CHANNEL_0;
Servos[0].pulse_min = SERVO_DUTY_MIN;
Servos[0].pulse_mid = SERVO_DUTY_MID;
Servos[0].pulse_max = SERVO_DUTY_MAX - 100;
Servos[0].mid_delay = 10;
Servos[0].pulse_max = SERVO_DUTY_MAX;
Servos[0].mid_delay = 0;
Servos[0].mid_delay_timer = 0;
Servos[0].reversed = false;
@@ -37,9 +37,9 @@ void servo_init(void)
Servos[1].pulse_min = SERVO_DUTY_MIN;
Servos[1].pulse_mid = SERVO_DUTY_MID;
Servos[1].pulse_max = SERVO_DUTY_MAX;
Servos[1].mid_delay = 0;
Servos[1].mid_delay = 5;
Servos[1].mid_delay_timer = 0;
Servos[1].reversed = false;
Servos[1].reversed = true;
// Prepare and then apply the LEDC PWM timer configuration
ledc_timer_config_t ledc_timer = {
@@ -79,25 +79,19 @@ void servo_deinit(void)
void servo_set(uint8_t ch, uint8_t pos)
{
if (Servos_ch_swap)
{
if (ch == 0)
{
ch = 1;
}
else
{
ch = 0;
}
{
ch = (ch == 0) ? 1 : 0;
}
double pos_double = ((int16_t)pos - 128) / 128.0;
if (Servos[ch].reversed)
{
pos = -((int16_t)pos) + 255;
pos_double = -pos_double;
}
double pos_double = ((double) pos) - 128;
if (pos_double < 0)
if (pos_double < 0.0)
{
if (Servos[ch].mid_delay_timer > 0)
{
@@ -109,7 +103,7 @@ void servo_set(uint8_t ch, uint8_t pos)
Servos[ch].mid_delay_timer = -Servos[ch].mid_delay;
}
}
else if (pos_double > 0)
else if (pos_double > 0.0)
{
if (Servos[ch].mid_delay_timer < 0)
{
@@ -125,12 +119,12 @@ void servo_set(uint8_t ch, uint8_t pos)
uint32_t duty;
if (pos_double > 0.0)
{
duty = (pos_double/128.0 * (Servos[ch].pulse_max - Servos[ch].pulse_mid)) + Servos[ch].pulse_mid;
duty = (pos_double * (Servos[ch].pulse_max - Servos[ch].pulse_mid)) + Servos[ch].pulse_mid;
}
else
{
duty = (pos_double/128.0 * (Servos[ch].pulse_mid - Servos[ch].pulse_min)) + Servos[ch].pulse_mid;
}
duty = (pos_double * (Servos[ch].pulse_mid - Servos[ch].pulse_min)) + Servos[ch].pulse_mid;
}
if (duty < SERVO_DUTY_MIN)
{

View File

@@ -16,12 +16,12 @@ static void ws_event_handler(void* handler_args, esp_event_base_t base, int32_t
{
case WEBSOCKET_EVENT_CONNECTED:
LOG_I("ws_event_handler: connected");
client->connected = true;
char str[100];
snprintf(&str[0], 100, "%04d;3440;" BOAT_NAME "\n", BoatId);
esp_websocket_client_send_text(client->handle, &str[0], strlen(str), 1000);
snprintf(&str[0], 100, "%04u;%04u;" BOAT_NAME "\n", client->id, client->dev_code);
esp_websocket_client_send_text(client->handle, &str[0], strlen(str), 1000);
client->connected = true;
break;
case WEBSOCKET_EVENT_DISCONNECTED:
LOG_W("ws_event_handler: disconnected");
@@ -42,7 +42,7 @@ static void ws_event_handler(void* handler_args, esp_event_base_t base, int32_t
break;
case WEBSOCKET_EVENT_DATA:
// LOG_D("ws_event_handler: data recieved opcode %d", data->op_code);
LOG_D("ws_event_handler: data recieved opcode %d", data->op_code);
if (data->op_code == 0x02)
{
LOG_D("ws_event_handler: binary data recieved");
@@ -105,15 +105,20 @@ static void ws_event_handler(void* handler_args, esp_event_base_t base, int32_t
LOG_E("ws_event_handler: captured as transport's socket errno %d", data->error_handle.esp_transport_sock_errno);
}
break;
case WEBSOCKET_EVENT_BEFORE_CONNECT:
LOG_D("ws_event_handler: event before connect fired");
break;
default:
LOG_D("ws_event_handler: a unkown event happened: %d", event_id);
break;
}
}
ws_client_t ws_connect(char *url)
ws_client_t ws_connect(char *url, uint16_t id, uint16_t dev_code)
{
ws_client_t client = malloc(sizeof(ws_client_data_t));
client->id = id;
client->dev_code = dev_code;
client->rxBuffer_rp = 0;
client->rxBuffer_wp = 0;
client->txBuffer_wp = 0;
@@ -136,7 +141,7 @@ int ws_getchar(ws_client_t client)
if (client->rxBuffer_rp != client->rxBuffer_wp)
{
out = client->rxBuffer[client->rxBuffer_rp];
client->rxBuffer_rp++;
client->rxBuffer_rp++;
if (client->rxBuffer_rp >= WS_RX_BUFFER_LEN)
{
client->rxBuffer_rp = 0;
@@ -145,6 +150,47 @@ int ws_getchar(ws_client_t client)
return out;
}
int ws_getstr(ws_client_t client, uint16_t max_size, char *str)
{
uint16_t out = 0;
if (client->rxBuffer_rp != client->rxBuffer_wp)
{
out = WS_RX_BUFFER_LEN + client->rxBuffer_wp - client->rxBuffer_rp;
if (out > WS_RX_BUFFER_LEN)
{
out -= WS_RX_BUFFER_LEN;
}
if (out > max_size)
{
out = max_size;
}
if (client->rxBuffer_rp < client->rxBuffer_wp)
{
memcpy(str, &client->rxBuffer[client->rxBuffer_rp], out);
}
else
{
uint16_t sizeUntilEnd = WS_RX_BUFFER_LEN - client->rxBuffer_rp;
if (sizeUntilEnd >= out)
{
memcpy(str, &client->rxBuffer[client->rxBuffer_rp], out);
}
else
{
memcpy(str, &client->rxBuffer[client->rxBuffer_rp], sizeUntilEnd);
memcpy(str + sizeUntilEnd, &client->rxBuffer[0], out - sizeUntilEnd);
}
}
client->rxBuffer_rp += out;
if (client->rxBuffer_rp >= WS_RX_BUFFER_LEN)
{
client->rxBuffer_rp -= WS_RX_BUFFER_LEN;
}
}
return out;
}
void ws_putchar(ws_client_t client, char c)
{
if (client->txBuffer_wp == WS_TX_BUFFER_LEN)
@@ -166,8 +212,13 @@ void ws_sendData(ws_client_t client)
{
if ((client->txBuffer_wp > 0) && esp_websocket_client_is_connected(client->handle))
{
// LOG_D("ws_sendData: (%d b) '%.*s'", client->txBuffer_wp, client->txBuffer_wp, (char *)&client->txBuffer[0]);
LOG_D("ws_sendData: (%d b) '%.*s'", client->txBuffer_wp, client->txBuffer_wp, (char *)&client->txBuffer[0]);
esp_websocket_client_send_text(client->handle, (char *)&client->txBuffer[0], client->txBuffer_wp, 1000 * portTICK_PERIOD_MS);
client->txBuffer_wp = 0;
}
}
void ws_sendString(ws_client_t client, const char *str)
{
esp_websocket_client_send_text(client->handle, str, strlen(str), 1000 * portTICK_PERIOD_MS);
}

View File

@@ -7,6 +7,9 @@
#include "config.h"
#define WS_DEV_CODE_BOAT 3440
#define WS_DEV_CODE_CLIENT 4675
typedef struct {
esp_websocket_client_handle_t handle;
int connected;
@@ -15,12 +18,16 @@ typedef struct {
uint16_t rxBuffer_rp;
unsigned char txBuffer[WS_TX_BUFFER_LEN];
uint16_t txBuffer_wp;
uint16_t id;
uint16_t dev_code;
} ws_client_data_t;
typedef ws_client_data_t* ws_client_t;
ws_client_t ws_connect(char *url);
ws_client_t ws_connect(char *url, uint16_t id, uint16_t dev_code);
int ws_getchar(ws_client_t client);
int ws_getstr(ws_client_t client, uint16_t max_len, char *str);
void ws_putchar(ws_client_t client, char c);
void ws_sendData(ws_client_t client);
void ws_sendString(ws_client_t client, const char *str);
#endif

BIN
tx_case/tx_case.FCStd Normal file

Binary file not shown.