Complete documentation for every App SDK call, split by category. This page is the index; each entry below links straight to the function.

For each function the reference gives:

  • the full C signature from jpp_sdk_bridge.h,
  • the MicroPython binding from the jppsdk module, where one exists,
  • the capability required — if none is listed, the call is ungated,
  • the return value in both languages, including any output parameters,
  • notes covering what the signature does not tell you.

Signatures are shown as C / MicroPython tabs, switched per signature.

Errors in MicroPython.

Unless a function's entry says otherwise, a jppsdk binding raises jppsdk.SdkError on any non-OK status, and jppsdk.SdkPermissionError (a subclass) when the capability was not granted. Catch the permission error separately and degrade — a denied capability is a normal outcome, not a crash.

The two SDKs expose the same surface.

Every SDK call has both a C and a MicroPython form, with two deliberate exceptions marked (C only): code modules (module_load/module_run/module_unload), which load a second native ELF binary and have no meaning for a MicroPython app — use import instead — and push_key, a firmware-internal input hook rather than an app-facing call.


Index

Core

Data

Connectivity

Compute and lifecycle

⚠ = capability required. See Capabilities for the tier rules and what each one unlocks.


Which SDK level do I need?

The firmware exports a single API level, and an app declares the lowest one it can run on via sdk_min. Most of this reference is available at level 1. A call — or in a few cases just its MicroPython binding, where that arrived after the C form — added at level 2 or level 3 is marked in place with a "Requires SDK level 2/3" note.

The SDK changelog lists every level, what it added, and how to pick a value for sdk_min.