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
  • 4 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.