{"library":"ppk2-api","title":"PPK2 API","description":"The ppk2-api is a Python library providing an API for Nordic Semiconductor's Power Profiler Kit II (PPK 2). It enables programmatic control and data acquisition from the PPK 2 device, facilitating power consumption measurements and analysis for embedded development. The current version is 0.9.2, with active development and frequent releases (e.g., v0.9.0, v0.9.1, v0.9.2 in quick succession, aiming for v1.0.0).","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install ppk2-api"],"cli":null},"imports":["from ppk2_api import PPK2","from ppk2_api import PPK2_Port","from ppk2_api import PPK2_Mode","from ppk2_api.examples.power_profiler import PowerProfiler"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from ppk2_api import PPK2, PPK2_Port, PPK2_Mode\n\ndef main():\n    try:\n        # Discover and connect to the PPK2 device\n        ppk2 = PPK2.discover()\n        print(f\"Connected to PPK2: {ppk2.get_device_id()}\")\n\n        # Set mode to ampere meter and connect to channel 0\n        ppk2.set_mode(PPK2_Mode.AMPERE_METER)\n        ppk2.connect_to_port(PPK2_Port.PORT_0)\n        ppk2.start_measurement()\n\n        print(\"Measuring for 5 seconds...\")\n        # In a real application, you'd typically stream data\n        # For simplicity, we'll just wait and then stop.\n        # Data streaming would involve a loop and calling ppk2.get_data()\n        import time\n        time.sleep(5)\n\n        ppk2.stop_measurement()\n        print(\"Measurement stopped.\")\n\n        # Example of getting some data (note: real streaming is more complex)\n        data = ppk2.get_data(num_samples=1000)\n        if data:\n            print(f\"Average current: {sum(data['current'])/len(data['current']):.2f} mA\")\n            print(f\"Average voltage: {sum(data['voltage'])/len(data['voltage']):.2f} V\")\n        else:\n            print(\"No data collected or available in this simple example.\")\n\n    except Exception as e:\n        print(f\"An error occurred: {e}\")\n    finally:\n        # Ensure the device is properly closed\n        if 'ppk2' in locals() and ppk2.is_connected():\n            ppk2.close()\n            print(\"PPK2 connection closed.\")\n\nif __name__ == \"__main__\":\n    main()","lang":"python","description":"This quickstart demonstrates how to discover a PPK2 device, set it to ampere meter mode, start a measurement, wait for a period, and then stop it. It also shows how to retrieve some sample data. Note that actual data streaming involves more continuous polling with `ppk2.get_data()` in a loop.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}