assert failed: xQueueSemaphoreTake queue.c (( pxQueue ))
What it looks like
assert failed: xQueueSemaphoreTake queue.c:1545 (( pxQueue ))
What it means
A sanity check failed. The line reads: assert failed: <function> <file>:<line> (<condition>). The condition is what should have been true. This common example means a mutex or semaphore was used before it was created.
Likely causes
- Taking a semaphore or mutex whose xSemaphoreCreate... call has not run yet, or failed.
- Calling a FreeRTOS API that blocks from inside an interrupt handler.
- Heap corruption tripping an allocator check (multi_heap_... in the function name).
How to fix it
- Read the condition in brackets: it says exactly what was wrong.
- Create semaphores, queues and mutexes in setup() before starting any task that uses them.
- Use the ...FromISR variants of FreeRTOS calls inside interrupt handlers.
Paste your full log
The lines around the error usually say more. Paste everything from the reset to the backtrace and the crash translator explains each part. It runs in your browser; nothing is sent anywhere.