Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add alexex1993/mcu-skills --skill stm32h750-weactgit clone --depth 1 https://github.com/alexex1993/mcu-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/alexex1993/mcu-skills/stm32h750-weact)<a href="https://agentmods.dev/skills/alexex1993/mcu-skills/stm32h750-weact"><img src="https://agentmods.dev/badge/skills/alexex1993/mcu-skills/stm32h750-weact/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/alexex1993/mcu-skills/stm32h750-weact"><img src="https://agentmods.dev/badge/skills/alexex1993/mcu-skills/stm32h750-weact.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 45 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.02092 |
| Opus 5 | $0.00000 | $0.01046 |
| Sonnet 5 | $0.00000 | $0.00418 |
| Haiku 4.5 | $0.00000 | $0.00209 |
Grade A, and why
stm32h750-weact scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
WeAct STM32H750VBT6 core board
Board-specific firmware knowledge. The two reference files hold the detail — read the one you need rather than guessing, because most of the failure modes below are silent (the board runs, just wrongly).
reference/board-hardware.md— complete hardware reference: schematic-level pin map, every connector, power tree, memory map, SDK/examples inventory, plus a full development guide (Part II: §12 PlatformIO, §13 clocks, §14 peripheral cookbook, §15 M7 gotchas, §16 flashing, §17 pitfall table).reference/recipes.md— copy-paste-ready code:platformio.ini, clock config, LCD driver with the fast blit path, backlight PWM, ADC temperature sensor, USB CDC, DWT frame pacing.template/— a complete working project that builds and flashes, plus a scaffolding script. It is where every recipe was extracted from; seetemplate/README.md.
Orientation
| MCU | STM32H750VBT6, Cortex-M7, 128 KB flash, 1 MB RAM, LQFP100 |
| Clocks | HSE 25 MHz (X1), LSE 32.768 kHz. Working tree: PLL1 M5/N96/P2 → SYSCLK 240, HCLK 120 |
| Display | ST7735S 160×80 on SPI4 (PE12 SCK, PE14 MOSI, PE11 CS, PE13 D/C, PE10 backlight) |
| LED / button | PE3 active-high / PC13 pressed = high |
| Storage | 8 MB QSPI flash @ 0x90000000 (XIP), 8 MB SPI flash on SPI1, MicroSD on SDMMC1 |
| USB | OTG_FS on PA11/PA12, crystal-less off HSI48; ROM DFU bootloader on the same Type-C |
| Debug | SWD on header P3 (PA13/PA14) |
Rules that prevent the expensive mistakes
Check these before writing code — each one produces a failure that looks like something else.
-DHSE_VALUE=25000000inbuild_flags. The stockframework-stm32cubeh7CMSIS template already defaultsHSE_VALUEto 25 MHz — matching this board's crystal by coincidence, the same way the F4 template does for the Black Pill — so this currently works without the flag. It stops working the moment a CubeMX-generatedstm32h7xx_hal_conf.hfrom a different H7 board (most Nucleo/Eval H7 boards run their HSE from an 8 MHz ST-Link MCO) gets dropped in: the PLL still locks, but every derived timing is wrong by ~3×. Set it explicitly so the project doesn't depend on whichhal_conf.hhappens to be in play.PWR_LDO_SUPPLY— this board has no SMPS. Configuring one leaves the core under-supplied and unresponsive to SWD until a BOOT0 power cycle. The setting latches on first write after reset.- Fix the board definition's swapped sizes in
platformio.ini:board_upload.maximum_size = 131072(flash),board_upload.maximum_ram_size = 524288(RAM). Otherwise nothing warns you when an image exceeds the real 128 KB. board_build.stm32cube.disable_embedded_libs = yesif you vendor an ST7735 driver intolib/— Cube's embedded BSP ships its own and they collide at link time.FLASH_LATENCY_1at HCLK 120 MHz. Too few wait states → hard fault on the first flash read.- Cache enable before
HAL_Init(), clock config before any peripheral init. - D-cache vs DMA: buffers
__attribute__((aligned(32))), size a multiple of 32, clean before TX / invalidate after RX. And DMA1/DMA2 cannot reach DTCM or ITCM — a buffer there silently never updates. Default linker puts everything in RAM_D1 (AXI SRAM), which is fine. - Backlight is TIM1_CH2N, a complementary output:
HAL_TIMEx_PWMN_Start(), notHAL_TIM_PWM_Start(), andHAL_TIMEx_ConfigBreakDeadTime()+HAL_TIM_MspPostInit()are mandatory or the pin never drives. - USB needs
HAL_PWREx_EnableUSBVoltageDetector()plusHSI48State = RCC_HSI48_ON. Missing it means the host sees nothing at all. 9a. The AF macro isGPIO_AF10_OTG2_FS, notGPIO_AF10_OTG1_FS. This part has two USB_OTG controllers, sostm32h7xx_hal_gpio_ex.hdefinesUSB2_OTG_FSand compiles out theOTG1_FSmacro name entirely — code copied from an H7A3/H72x example (which has only one controller) fails to build with an undefined-identifier error that doesn't say why. - LCD and camera reset lines are tied to the board reset net — no GPIO control, ever. A wedged panel needs a full MCU reset.
What ships with it
43 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/IMAGE.md 447 B
- reference/board-hardware.md 68 KB
- reference/recipes.md 33 KB
- template/.gitignore 94 B
- template/include/board.h 1.3 KB
- template/include/lcd.h 2.3 KB
- template/include/README 1.2 KB
- template/include/temp_sensor.h 456 B
- template/include/usb_device.h 165 B
- template/include/usbd_cdc_if.h 201 B
- template/include/usbd_conf.h 1.6 KB
- template/include/usbd_desc.h 131 B
- template/lib/README 1.0 KB
- template/lib/ST7735/font.h 34 KB
- template/lib/ST7735/library.json 265 B
- template/lib/ST7735/st7735_reg.c 2.5 KB
- template/lib/ST7735/st7735_reg.h 7.9 KB
- template/lib/ST7735/st7735.c 30 KB
- template/lib/ST7735/st7735.h 7.7 KB
- template/lib/USBDeviceCDC/library.json 240 B
- template/lib/USBDeviceCDC/usbd_cdc.c 28 KB
- template/lib/USBDeviceCDC/usbd_cdc.h 5.3 KB
- template/lib/USBDeviceCDC/usbd_core.c 30 KB
- template/lib/USBDeviceCDC/usbd_core.h 5.7 KB
- template/lib/USBDeviceCDC/usbd_ctlreq.c 25 KB
- template/lib/USBDeviceCDC/usbd_ctlreq.h 2.1 KB
- template/lib/USBDeviceCDC/usbd_def.h 16 KB
- template/lib/USBDeviceCDC/usbd_ioreq.c 4.9 KB
- template/lib/USBDeviceCDC/usbd_ioreq.h 2.4 KB
- template/platformio.ini 1.5 KB
- template/README.md 3.9 KB
- template/src/lcd.c 9.9 KB
- template/src/main.c 14 KB
- template/src/stm32h7xx_hal_msp.c 3.2 KB
- template/src/stm32h7xx_it.c 663 B
- template/src/temp_sensor.c 3.7 KB
- template/src/usb_device.c 602 B
- template/src/usbd_cdc_if.c 2.6 KB
- template/src/usbd_conf.c 7.4 KB
- template/src/usbd_desc.c 4.6 KB
- template/variants/minimal/main.c 4.2 KB
- template/variants/minimal/stm32h7xx_it.c 544 B
- template/variants/new-project.sh 1.7 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 121 lines · 0 tokens per session scan A 67b276fe59ce
stm32h750-weact is a skill published in the GitHub repository alexex1993/mcu-skills (17 stars, last pushed 2d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,092 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
iot-developer
Expert in IoT development, microcontrollers, sensors, and MQTT protocols.
edge-iot
Edge computing, IoT protocols, and embedded systems integration.
ruview-configure
Configure RuView — ESP32 sdkconfig variants, NVS provisioning, WiFi channel / MAC filter overrides (ADR-060), edge intelligence modules (ADR-041), sensing-server flags, multi-node mesh, and Cognitum Seed integration. Use when adjusting how a deployed RuView system behaves without changing code.
ruview-applications
Run RuView sensing applications — presence/occupancy, breathing & heart rate, activity & fall detection, 17-keypoint pose estimation (WiFlow), sleep monitoring & apnea screening, environment mapping, Mass Casualty Assessment (MAT), and the 3D point-cloud fusion demo. Use when someone wants to actually do something…
ruview-mmwave
Set up and run RuView mmWave / FMCW radar sensing — ESP32-C6 + Seeed MR60BHA2 (60 GHz, heart rate / breathing rate / presence) and HLK-LD2410 (24 GHz, presence + distance), plus mmWave↔WiFi-CSI sensor fusion (48-byte fused vitals, MR60BHA2/LD2410 auto-detect, v0.5.0+). Use when the deployment includes a…
provision-node
Build, flash, and provision an ESP32-S3/C6 CSI node for RuView — firmware variant choice, ESP-IDF Windows-subprocess flow, NVS/WiFi/channel/MAC-filter overrides.