summaryrefslogtreecommitdiff
path: root/docs/src/data
diff options
context:
space:
mode:
authorNick Winans <nick@winans.codes>2021-02-16 14:34:09 -0600
committerPete Johanson <peter@peterjohanson.com>2021-03-11 16:31:34 -0500
commit4ef11ac4aa5185994db19ef3f69a8c54c70fb06c (patch)
tree4053be2ed00fa01f03868ac455d07dc4e1ec1496 /docs/src/data
parent0df71100581d040178bd0fe8ec0382d84dc59a40 (diff)
feat(docs): Add power profiler
Diffstat (limited to 'docs/src/data')
-rw-r--r--docs/src/data/power.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/docs/src/data/power.js b/docs/src/data/power.js
new file mode 100644
index 0000000..bf34f17
--- /dev/null
+++ b/docs/src/data/power.js
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2021 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+/**
+ * This file holds all current measurements related to ZMK features and hardware
+ * All current measurements are in micro amps. Measurements were taken on a Nordic Power Profiler Kit
+ * The test device to get these values was three nice!nanos (nRF52840).
+ */
+
+export const zmkBase = {
+ hostConnection: 23, // How much current it takes to have an idle host connection
+ standalone: {
+ idle: 0, // No extra idle current
+ typing: 315, // Current while holding down a key. Represents polling+BLE notification power
+ },
+ central: {
+ idle: 490, // Idle current for connection to right half
+ typing: 380, // Current while holding down a key. Represents polling+BLE notification power
+ },
+ peripheral: {
+ idle: 20, // Idle current for connection to left half
+ typing: 365, // Current while holding down a key. Represents polling+BLE notification power
+ },
+};
+
+/**
+ * ZMK board power measurements
+ *
+ * Power supply can be an LDO or switching
+ * Quiescent and other quiescent are measured in micro amps
+ *
+ * Switching efficiency represents the efficiency of converting from
+ * 3.8V (average li-ion voltage) to the output voltage of the power supply
+ */
+export const zmkBoards = {
+ "nice!nano": {
+ name: "nice!nano",
+ powerSupply: {
+ type: "LDO",
+ outputVoltage: 3.3,
+ quiescentMicroA: 55,
+ },
+ otherQuiescentMicroA: 4,
+ },
+ "nice!60": {
+ powerSupply: {
+ type: "SWITCHING",
+ outputVoltage: 3.3,
+ efficiency: 0.95,
+ quiescentMicroA: 4,
+ },
+ otherQuiescentMicroA: 4,
+ },
+};
+
+export const underglowPower = {
+ firmware: 60, // ZMK power usage while underglow feature is turned on (SPIM mostly)
+ ledOn: 20000, // Estimated power consumption of a WS2812B at 100% (can be anywhere from 10mA to 30mA)
+ ledOff: 460, // Quiescent current of a WS2812B
+};
+
+export const displayPower = {
+ // Based on GoodDisplay's 1.02in epaper
+ EPAPER: {
+ activePercent: 0.05, // Estimated one refresh per minute taking three seconds
+ active: 1500, // Power draw during refresh
+ sleep: 5, // Idle power draw of an epaper
+ },
+ // 128x32 SSD1306
+ OLED: {
+ activePercent: 0.5, // Estimated sleeping half the time (based on idle)
+ active: 10000, // Estimated power draw when about half the pixels are on
+ sleep: 7, // Deep sleep power draw (display off)
+ },
+};