Skip to content
Back to skills

C And Embedded

ASecurity

"Operate Porcupine from C and embedded/MCU targets: native linking,

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
developmentjavascriptpythonjavareactnodenodejsapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill c-and-embedded --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of C And Embedded?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for C And Embedded
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-c-and-embedded/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-c-and-embedded)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: c-and-embedded
description: "Operate Porcupine from C and embedded/MCU targets: native linking,
  frame processing, C demos, and static asset embedding."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# c-and-embedded

Use this sub-skill when a task involves Porcupine's C headers, native library loading/linking, file or microphone demo recipes in C, hardware-device enumeration, or MCU/STM32 embedding.

Do not use this sub-skill for:

- Python or CLI package usage; route to `../python-and-cli/SKILL.md`.
- Node.js/server-side JavaScript; route to `../nodejs-server/SKILL.md`.
- Browser, React, mobile, Java, .NET, Flutter, or React Native SDKs; route to the matching sibling sub-skill.
- Custom wake-word training, language/model inventory, and cross-platform `.ppn`/`.pv` selection; route to `../custom-keywords-and-assets/SKILL.md`.

## Operating map

1. For exact C and MCU signatures, lifecycle, device strings, status handling, and asset path conventions, use [`references/c-api-reference.md`](references/c-api-reference.md).
2. For build-command shapes, direct-link vs dynamic-load choices, file/microphone frame loops, C demo adaptation, STM32 concepts, and C-array conversion, use [`references/c-and-mcu-workflows.md`](references/c-and-mcu-workflows.md).
3. For linker failures, header/library mismatch, AccessKey, invalid device strings, sample-rate/frame-length, endian/int16, MCU memory/toolchain, and invalid C symbols, use [`references/troubleshooting.md`](references/troubleshooting.md).
4. To convert a `.ppn`, `.pv`, or other binary asset into a validated C array header, use [`scripts/porcupine_binary_to_c_array.py`](scripts/porcupine_binary_to_c_array.py).

## Quick checklist

- Select the platform library, common/language model `.pv`, and platform-matched keyword `.ppn` before initialization.
- Keep `access_key` secret; Porcupine initialization requires a valid Picovoice AccessKey.
- Query `pv_sample_rate()` and `pv_porcupine_frame_length()` from the same library that will process audio.
- Feed `pv_porcupine_process()` exactly one mono `int16_t` frame per call, with sample rate equal to `pv_sample_rate()`.
- Delete the engine with `pv_porcupine_delete()` on every success path and after recoverable failures that created an object.
- Treat C demos/tests as optional native candidates: they need a compiler, platform library, and AccessKey; microphone runs also need audio hardware.
- Treat MCU/STM32 board runs as skipped unless the exact board, STM32 toolchain, middleware, and AccessKey are available.

Files in this skill

  • SKILL.md2.5 KB
  • references/c-and-mcu-workflows.md9.7 KB
  • references/c-api-reference.md7.6 KB
  • references/troubleshooting.md7.5 KB
  • scripts/porcupine_binary_to_c_array.py4.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…