Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Power diagnostic on the LED grid at start-up: LiPo, solar, alkaline

未关闭
#9 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
arduino, cpp
领域
embedded-iot

调研方向

Start with Okapi.cpp:397 to determine which voltage reading corresponds to the LiPo, then read readOnBoard() and powerAuto() for the existing power measurements and rail selection. Review NW-Status/studies/okapi-leds/ and the Okapi section of NW-Status/QUEUE.md for the design context. Done means the three sources show the specified levels for three seconds at startup, with charging and USB-only cases handled, messages raised as needed, and the LED driver asleep between displays.

由索引模型根据 Issue 内容生成。

描述

enhancement

Show the state of Okapi's three power sources on the LED grid at start-up, even when none is in a warning zone, so that the installer knows the overall picture before walking away. This is the one deliberate exception to "dark means fine" on the grid, for the same reason the READY chirp exists: the person is standing there, and the question after "is it logging" is "how are the batteries".

The grid as it is laid out (Project-Okapi/Hardware/Okapi.brd, board held USB-C down):

A B C
row 3 red – green
row 2 yellow green yellow
row 1 green yellow red

With fixed cell colours a column is a three-level gauge: one cell lit at the level.

Proposed display, for the three-second window at start-up, then dark:

Column Source Lit cell
A rechargeable (LiPo) A1 green good, A2 yellow middling, A3 red low or absent
B solar B2 green charging, B1 yellow no charge current
C alkaline primary C3 green good, C2 yellow middling, C1 red low or absent

The status RGB LED keeps Margay's patterns unchanged; the grid shows only what Okapi has and Margay does not.

What must exist first, in order. Today readOnBoard() logs VBeta, VPrime, ISolar and IBeta, and powerAuto() tells which rail came up; nothing raises a message.

  1. Decide which of VBeta and VPrime is the LiPo (the open comment at Okapi.cpp:397).
  2. A LiPo voltage-to-level curve. Margay's alkaline fit does not apply.
  3. Two band thresholds per chemistry, in Page 1's battery block (Blocks 0–1 are provisioned for this).
  4. A definition of "charging": ISolar above a floor, or the LT3652's !CHRG line, which reaches the I/O expander at GPA3 and is never read. Check what ADS1115 channel 1 measures, since V_SOLAR_SENSE goes to the PAC1934.
  5. The USB-only discriminator, so a benched board with no pack fitted does not show red (the four bench readings in NW-Status/QUEUE.md).
  6. Messages: BATTERY_LOW exists and is raised nowhere; add the backup-in-use message from _powerState.
  7. The PCA9634 driver: wake, LEDOUT, sleep, with pin 0 reclaimed from the stale ADC_Sense_SW define. Awake it draws 2.5 mA against an 80 µA sleep budget, so it sleeps between displays.

Hardware, while the boards are not yet made (Project-Okapi): label the columns on the silk (LiPo, SOLAR, AA) and mark column C's direction, or fit column C's LEDs the same way up as A. The current labels sit on the documentation layer, not the silkscreen.

Design notes and the studies behind them: NW-Status/studies/okapi-leds/ and the "Okapi's grid carries what Okapi has and Margay lacks" section of NW-Status/QUEUE.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BazaY6meA6yMRDeuUsv1Wd

主要语言
C++
星标
1
派生
0
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

NorthernWidget/Okapi_Library 的其他 Issue

查看 NorthernWidget/Okapi_Library 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。