Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
4d934ce
Bridge: add link statistics.
kareltucek Sep 29, 2026
5d560fd
Bridge: don't tear RX down on out-of-frame bytes.
kareltucek Sep 29, 2026
cbe2dc8
Messenger: drop duplicate frames.
kareltucek Sep 29, 2026
ea34210
Bridge: first resend at 15ms instead of 64ms.
kareltucek Sep 29, 2026
b386b9e
Fix DEBUG_STRESS_UART having no effect.
kareltucek Sep 29, 2026
b1ec0c4
Bridge: keep uart_tx buffers alive until the transfer completes.
kareltucek Sep 29, 2026
c310733
Bridge: dump invalid frames as lines, not one log message per byte.
kareltucek Sep 30, 2026
33c2234
Bridge: constant resend delay, three retries.
kareltucek Sep 30, 2026
94fd761
BridgeStress: simulate dropped control bytes with higher probability.
kareltucek Sep 30, 2026
fdee18a
Bridge: recompute the resend deadline after resending.
kareltucek Sep 30, 2026
00bd5da
Bridge: reset resendTries when the link goes down.
kareltucek Sep 30, 2026
811a684
Bridge: assert the resend budget fits inside the link timeout.
kareltucek Sep 30, 2026
5229e08
Bridge: key acks to the acked frame's watermark parity.
kareltucek Oct 1, 2026
73e7b27
Bridge: charge the frame's wire time to the resend deadline separately.
kareltucek Oct 2, 2026
8b3296c
Fix DEBUG_STRESS_UART having no effect, properly this time.
kareltucek Oct 2, 2026
29a4ea4
Bridge: lower the resend delay to 7ms, and derive the timings by macro.
kareltucek Oct 4, 2026
d02cd21
Bridge: five retries, and make UART_RESEND_COUNT mean what it says.
kareltucek Oct 4, 2026
a4bcb2b
Bridge: clean AI code.
kareltucek Oct 5, 2026
4f052ad
BridgeStress: log lost bytes.
kareltucek Oct 5, 2026
629f662
LinkTest: test the left-right bridge under stress, across the real link.
kareltucek Oct 6, 2026
1c5ec8a
Bridge: Uhk60 compilation fixes.
kareltucek Oct 6, 2026
37121ca
Messenger: fix hypothetical races in the incoming message fifo.
kareltucek Oct 7, 2026
340dfbd
Bridge: clean packet dump code.
kareltucek Oct 7, 2026
698ddc5
Bridge: restart RX after a run of out-of-frame garbage.
kareltucek Oct 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions adc_issue/saadc_deadlock_repro/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0)

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(saadc_deadlock_repro)

target_sources(app PRIVATE src/main.c)
1 change: 1 addition & 0 deletions device/src/connections.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ void Connections_ResetWatermarks(connection_id_t connectionId) {

Connections[connectionId].watermarks.txIdx = 0;
Connections[connectionId].watermarks.rxIdx = 255;
Connections[connectionId].watermarks.rxIdxValid = false;
}

void Connections_ReportState(connection_id_t connectionId) {
Expand Down
1 change: 1 addition & 0 deletions device/src/connections.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
typedef struct {
uint8_t rxIdx;
uint8_t txIdx;
bool rxIdxValid;
} ATTR_PACKED connection_watermarks_t;

typedef struct {
Expand Down
2 changes: 2 additions & 0 deletions device/src/keyboard/key_scanner.c
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,8 @@ static void scanAllKeys() {
}

if (DEVICE_IS_UHK80_LEFT) {
// If ack gets lost, second key state change will block (because uart is busy with control of the first one). That blocks us. Third keystate change may be lost.
// TODO: consider passing this via postponer queue.
Messenger_Send2(DeviceId_Uhk80_Right, MessageId_SyncableProperty, SyncablePropertyId_LeftHalfKeyStates, compressedBuffer, compressedLength);
}
}
Expand Down
Loading