| 2026-06-04 19:54:04 |
user5@esharp.se |
create |
entry #64 |
api |
show diff
| Field | Before | After |
|---|
| code | — | E-010 | | id | — | 64 | | kind | — | concept | | scope | — | next_revision | | severity | — | info | | status | — | open | | title | — | Deep-sleep + LoRa wake for >30-day battery life |
|
| 2026-05-25 08:33:32 |
gustav.kihlberg@e-sharp.se |
create |
test_case #97 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-B-00 | | id | — | 97 | | nominal | — | | | requirementCode | — | REQ-061 | | signal | — | | | status | — | open | | title | — | BOM cost and production readiness review | | tolerancePct | — | |
|
| 2026-05-25 07:23:41 |
gustav.kihlberg@e-sharp.se |
create |
test_case #81 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-L-02 | | id | — | 81 | | nominal | — | | | requirementCode | — | REQ-057 | | signal | — | | | status | — | open | | title | — | LoRa and WiFi concurrent operation | | tolerancePct | — | |
|
| 2026-05-25 07:23:41 |
gustav.kihlberg@e-sharp.se |
create |
test_case #79 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-L-01 | | id | — | 79 | | nominal | — | | | requirementCode | — | REQ-052 | | signal | — | | | status | — | open | | title | — | SX1276 DIO0 interrupt routing | | tolerancePct | — | |
|
| 2026-05-25 07:23:41 |
gustav.kihlberg@e-sharp.se |
create |
test_case #80 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-L-00 | | id | — | 80 | | nominal | — | | | requirementCode | — | REQ-050 | | signal | — | | | status | — | open | | title | — | SX1276 SPI comms and register read | | tolerancePct | — | |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #68 |
mcp |
show diff
| Field | Before | After |
|---|
| No field changes recorded |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #74 |
mcp |
show diff
| Field | Before | After |
|---|
| requirementCode | REQ-018 | REQ-031 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #66 |
mcp |
show diff
| Field | Before | After |
|---|
| No field changes recorded |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #65 |
mcp |
show diff
| Field | Before | After |
|---|
| requirementCode | REQ-015 | REQ-016 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #64 |
mcp |
show diff
| Field | Before | After |
|---|
| nominal | 10.000000 | 10 | | requirementCode | REQ-017 | REQ-056 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #57 |
mcp |
show diff
| Field | Before | After |
|---|
| nominal | 3.300000 | 3.3 | | tolerancePct | 5.0000 | 5 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #55 |
mcp |
show diff
| Field | Before | After |
|---|
| No field changes recorded |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #51 |
mcp |
show diff
| Field | Before | After |
|---|
| No field changes recorded |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #54 |
mcp |
show diff
| Field | Before | After |
|---|
| nominal | 593.000000 | 593 | | tolerancePct | 10.0000 | 10 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #53 |
mcp |
show diff
| Field | Before | After |
|---|
| nominal | 5.000000 | 5 | | tolerancePct | 5.0000 | 5 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #49 |
mcp |
show diff
| Field | Before | After |
|---|
| requirementCode | | REQ-009 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #52 |
mcp |
show diff
| Field | Before | After |
|---|
| nominal | 3.000000 | 3 |
|
| 2026-05-25 07:23:28 |
gustav.kihlberg@e-sharp.se |
update |
test_case #50 |
mcp |
show diff
| Field | Before | After |
|---|
| No field changes recorded |
|
| 2026-05-24 13:59:18 |
gustav.kihlberg@e-sharp.se |
create |
requirement #157 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | Functional | | code | — | REQ-018 | | id | — | 157 | | statement | — | The module shall support WiFi 802.11ax (WiFi 6) at 2.4 GHz. | | status | — | active | | title | — | WiFi 802.11ax (WiFi 6) at 2.4 GHz |
|
| 2026-05-24 13:59:18 |
gustav.kihlberg@e-sharp.se |
create |
requirement #156 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | Performance | | code | — | REQ-017 | | id | — | 156 | | statement | — | The module shall support deep sleep with total board current consumption ≤ 20 µA (ESP32 + LDO + GPIO expander + ADC power-down + divider off). | | status | — | active | | title | — | Deep sleep total board current ≤ 20 µA |
|
| 2026-05-24 13:58:38 |
gustav.kihlberg@e-sharp.se |
create |
decision #11 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | ECS-320-10-37B-CKY-TR3 (EGP10001939) selected for R0 prototype BOM. NDK NX2016SA noted as cost-effective production alternative. | | code | — | DEC-009 | | id | — | 11 | | rationale | — | NDK NX2016SA unavailable at DigiKey/Mouser at time of BOM build. ECS ECX-1637B series is direct drop-in: 2016 4-pad footprint, CL=10pF, ESR≤50Ω, ±10ppm — all within SX1276 crystal requirements. | | title | — | SX1276 32 MHz crystal — ECS-320-10-37B-CKY-TR3 for R0 prototype | | tradeOffs | — | ECS part used for prototype only. NX2016SA should be evaluated at production BOM review (REQ-061). No functional difference expected. |
|
| 2026-05-24 13:58:30 |
gustav.kihlberg@e-sharp.se |
create |
decision #10 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | 100 mΩ shunt on BAT- (low-side), INA333AIDGKT in-amp (gain≈20.6, R_GAIN=5.1kΩ), VREF÷2=1.25V via 2×10kΩ to INA333 REF (centres output at 0A), AO3407 PMOS power switch (gate pulled up via 100kΩ), PI4IOE P11 (SHUNTn, active-low) controls gate, ADS7828 CH1 reads ISENSE_OUT (0–2.5V, code 2048=0A, ~0.3mA/LSB) | | code | — | DEC-008 | | id | — | 10 | | rationale | — | Bidirectional measurement needed to validate REQ-035/036 battery life estimates. ADS7828 CH1 was spare — no extra I2C device needed. PMOS power-gate preserves REQ-017 deep sleep budget (INA333 Iq=50µA otherwise exceeds 20µA limit). PI4IOE P06 was NC — zero cost. | | title | — | Battery current sense — INA333 + 100 mΩ shunt + AO3407 PMOS power-gate | | tradeOffs | — | Adds R_SHUNT in battery series path (minor voltage drop at 600mA). Firmware must manage SHUNTn enable/disable around deep sleep entry/exit. |
|
| 2026-05-24 13:58:17 |
gustav.kihlberg@e-sharp.se |
create |
decision #9 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | J_UART_TX (GPIO16/Pin31) and J_UART_RX (GPIO17/Pin30) exposed as 1×2 2.54 mm pin headers, DNP by default. Primary flashing via USB-CDC (D-/D+, IO12/IO13). | | code | — | DEC-007 | | id | — | 9 | | rationale | — | If USB-CDC proves unreliable on prototype, headers allow a standard USB-serial adapter for UART0 access. Headers serve as test points when unpopulated. | | title | — | UART0 TX/RX test access via 1×2 2.54 mm pin headers | | tradeOffs | — | Prototype decision — revisit after board verification. If USB-CDC reliable: leave DNP in R1. If unreliable: populate and consider dedicated UART connector in R1. Partially satisfies REQ-030. |
|
| 2026-05-24 13:58:13 |
gustav.kihlberg@e-sharp.se |
create |
decision #8 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | Based on reference E-Sharp product pinout. Two deliberate deviations: Pin 16 (GND→EXT_SHDNn via PI4IOE P02), Pin 18 (GND→EXT_RESETn via PI4IOE P00). Additional: Pin 7 exposes VREF (REF3425 2.5V). Even NC pins >20 tied to GND for improved signal return path. | | code | — | DEC-006 | | id | — | 8 | | rationale | — | Deviations required to expose REQ-038 module control signals (SHDNn, RESETn). No other adjacent NC pins available in that row. VREF exposed for potential mating board use. | | title | — | J_EXT connector pinout (AXK5S60047) — deviations from reference | | tradeOffs | — | Mating cable/PCB MUST NOT connect pins 16 or 18 to GND — deviates from reference product. VREF (pin 7) limited drive; buffer required on mating board if load >5 mA. |
|
| 2026-05-24 13:58:05 |
gustav.kihlberg@e-sharp.se |
create |
decision #7 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | A0=A1=GND → I2C address 0x48 | | code | — | DEC-005 | | id | — | 7 | | rationale | — | No conflict with PI4IOE5V6416 at 0x20. Simplest configuration — both address pins tied to GND. | | title | — | ADS7828 I2C address 0x48 | | tradeOffs | — | Address is fixed in hardware; cannot be changed without PCB rework. |
|
| 2026-05-24 13:58:02 |
gustav.kihlberg@e-sharp.se |
create |
decision #6 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | I2C address: 0x20 (ADDR pin tied to GND). Port allocation: P00=EXT_RESETn (out), P01=EXT_INTERRUPTn (in), P02=EXT_SHDNn (out), P03=EXT_ALERTn (in), P04=EXT_EVENTn (in), P05=EXT_SRQn (in), P06-P07=NC, P10=LORA_RESETn (out), P11-P17=NC | | code | — | DEC-004 | | id | — | 6 | | rationale | — | Address 0x20 selected (no conflict with ADS7828 at 0x48). All 6 connector signals grouped on Port 0 for single-register read. LORA_RESETn on P10 (Port 1) is isolated from connector signals. | | title | — | PI4IOE5V6416ZDEX I2C address and port allocation | | tradeOffs | — | RESET pin passively pulled to VCC via 10kΩ (no free MCU GPIO for soft-reset); I2C General Call Reset available as software alternative. INT pin is open-drain; 10kΩ pull-up to 3.3V; routed to IO22. |
|
| 2026-05-24 13:57:53 |
gustav.kihlberg@e-sharp.se |
create |
decision #5 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | ISET=1.5kΩ (→593 mA charge current), ILIM=1.5kΩ (→1.07A input limit), TMR=56kΩ (→7h safety timer), CE=100kΩ to GND (always enabled), SYSOFF=100kΩ to GND (normal operation), EN1/EN2 default USB100 with solder bridges for USB500/ILIM modes, TS=200kΩ+49.9kΩ divider (NTC disabled) | | code | — | DEC-003 | | id | — | 5 | | rationale | — | ISET and ILIM share 1.5kΩ value for BOM consolidation. TMR=56kΩ gives ~7h fast-charge timer adequate for LiPo cells. NTC thermistor function disabled — divider holds TS at valid level to prevent fault. | | title | — | BQ24075T passive network configuration | | tradeOffs | — | ISET=1.5kΩ → ~593 mA charge current → ~0.77W dissipation on BQ24075; thermal pad copper pour required; BQ24075 TREG will throttle if die overheats. SYSOFF must not be pulled to VBUS. CE must not be pulled to VBUS. |
|
| 2026-05-24 13:57:40 |
gustav.kihlberg@e-sharp.se |
create |
decision #4 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | 4-sheet structure: Power (USB-C, BQ24075, LDO, battery, decoupling), MCU (ESP32-C6, decoupling, EN RC, XTAL_32K, JTAG, BOOT/RESET), On-board Peripherals (PI4IOE5V6416, ADS7828), External (connectors, serial buses, module control signals) | | code | — | DEC-002 | | id | — | 4 | | rationale | — | Logical separation of subsystems improves readability and parallel review. Power sheet is self-contained for electrical safety review. MCU sheet isolates digital complexity. | | title | — | KiCad schematic sheet structure — 4 sheets | | tradeOffs | — | Cross-sheet signals require KiCad hierarchical labels. USB D-/D+ route from Power sheet to MCU sheet. LP_I2C routes from MCU sheet to On-board Peripherals sheet. |
|
| 2026-05-24 13:57:36 |
gustav.kihlberg@e-sharp.se |
create |
decision #3 |
mcp |
show diff
| Field | Before | After |
|---|
| chosenOption | — | GPIO assignments: UART0 TX=GPIO16/Pin31, UART0 RX=GPIO17/Pin30, UART1 TX=IO14/Pin19, UART1 RX=IO15/Pin20, UART1 RTS=IO2/Pin5, UART1 CTS=IO3/Pin6, LP_I2C SDA=IO6/Pin15, LP_I2C SCL=IO7/Pin16, I2C0 SDA=IO8/Pin22, I2C0 SCL=IO9/Pin23, SPI2 MOSI=IO18/Pin24, SPI2 MISO=IO19/Pin25, SPI2 SCK=IO20/Pin26, SPI2 CS=IO21/Pin27, USB D-=IO12/Pin17, USB D+=IO13/Pin18. IO4=LORA_NSS, IO5=LORA_DIO0, IO22=PI4IOE INT. IO23 unallocated. | | code | — | DEC-001 | | id | — | 3 | | rationale | — | GPIO assignments constrained by ESP32-C6-MINI-1-N4 fixed-function pins (UART0, USB) and available GPIO matrix pins. LP_I2C assigned to dedicated low-power capable pins (IO6/IO7). IO4 and IO5 originally reserved for JTAG (MTMS/MTDI) — reservation removed 2026-04-12; reassigned to SX1276 NSS and DIO0. | | title | — | Bus pin assignments for ESP32-C6 | | tradeOffs | — | IO9 (I2C0 SCL) is a boot strapping pin — I2C pull-up holds it high at boot (safe). IO15 (UART1 RX) is a strapping pin for JTAG source. All GPIOs fully allocated except IO23. |
|
| 2026-05-24 13:57:25 |
gustav.kihlberg@e-sharp.se |
create |
test_case #78 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | performance | | code | — | TC-S-04 | | id | — | 78 | | nominal | — | 500 | | requirementCode | — | REQ-034 | | signal | — | wake_to_tx | | status | — | open | | title | — | Wake-to-TX time ≤ 500 ms | | tolerancePct | — | |
|
| 2026-05-24 13:57:25 |
gustav.kihlberg@e-sharp.se |
create |
test_case #77 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | performance | | code | — | TC-S-05 | | id | — | 77 | | nominal | — | 4.8 | | requirementCode | — | REQ-035 | | signal | — | VBAT | | status | — | open | | title | — | Average current at 10 s wake interval | | tolerancePct | — | |
|
| 2026-05-24 13:57:21 |
gustav.kihlberg@e-sharp.se |
create |
test_case #76 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-S-02 | | id | — | 76 | | nominal | — | | | requirementCode | — | REQ-031 | | signal | — | | | status | — | open | | title | — | MQTT publish to Raspberry Pi broker | | tolerancePct | — | |
|
| 2026-05-24 13:57:21 |
gustav.kihlberg@e-sharp.se |
create |
test_case #75 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-S-03 | | id | — | 75 | | nominal | — | | | requirementCode | — | REQ-033 | | signal | — | | | status | — | open | | title | — | Sleep mode toggle via MQTT | | tolerancePct | — | |
|
| 2026-05-24 13:57:17 |
gustav.kihlberg@e-sharp.se |
create |
test_case #74 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-S-00 | | id | — | 74 | | nominal | — | | | requirementCode | — | REQ-018 | | signal | — | | | status | — | open | | title | — | WiFi connection at 2.4 GHz | | tolerancePct | — | |
|
| 2026-05-24 13:57:17 |
gustav.kihlberg@e-sharp.se |
create |
test_case #73 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-S-01 | | id | — | 73 | | nominal | — | | | requirementCode | — | REQ-019 | | signal | — | | | status | — | open | | title | — | BLE 5.0 advertisement | | tolerancePct | — | |
|
| 2026-05-24 13:57:05 |
gustav.kihlberg@e-sharp.se |
create |
test_case #72 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-C-02 | | id | — | 72 | | nominal | — | 3.3 | | requirementCode | — | REQ-023 | | signal | — | 3V3 | | status | — | open | | title | — | Serial bus connector pinout and 3.3V | | tolerancePct | — | 3 |
|
| 2026-05-24 13:57:05 |
gustav.kihlberg@e-sharp.se |
create |
test_case #71 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | Safety | | code | — | TC-C-03 | | id | — | 71 | | nominal | — | | | requirementCode | — | REQ-025 | | signal | — | | | status | — | open | | title | — | USB-C VBUS ESD protection | | tolerancePct | — | |
|
| 2026-05-24 13:56:57 |
gustav.kihlberg@e-sharp.se |
create |
test_case #70 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-C-01 | | id | — | 70 | | nominal | — | | | requirementCode | — | REQ-005 | | signal | — | | | status | — | open | | title | — | JST-PH battery connector fit and polarity | | tolerancePct | — | |
|
| 2026-05-24 13:56:57 |
gustav.kihlberg@e-sharp.se |
create |
test_case #69 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-C-00 | | id | — | 69 | | nominal | — | | | requirementCode | — | REQ-024 | | signal | — | | | status | — | open | | title | — | USB-C connector fit | | tolerancePct | — | |
|
| 2026-05-24 13:56:53 |
gustav.kihlberg@e-sharp.se |
create |
test_case #68 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-D-03 | | id | — | 68 | | nominal | — | | | requirementCode | — | REQ-022 | | signal | — | | | status | — | open | | title | — | SPI loopback — external connector | | tolerancePct | — | |
|
| 2026-05-24 13:56:53 |
gustav.kihlberg@e-sharp.se |
create |
test_case #67 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-D-02 | | id | — | 67 | | nominal | — | | | requirementCode | — | REQ-021 | | signal | — | | | status | — | open | | title | — | UART loopback — external connector | | tolerancePct | — | |
|
| 2026-05-24 13:56:50 |
gustav.kihlberg@e-sharp.se |
create |
test_case #66 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-D-01 | | id | — | 66 | | nominal | — | | | requirementCode | — | REQ-020 | | signal | — | | | status | — | open | | title | — | I2C scan — external connector | | tolerancePct | — | |
|
| 2026-05-24 13:56:49 |
gustav.kihlberg@e-sharp.se |
create |
test_case #65 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-D-00 | | id | — | 65 | | nominal | — | | | requirementCode | — | REQ-015 | | signal | — | | | status | — | open | | title | — | ESP32 boot and UART output | | tolerancePct | — | |
|
| 2026-05-24 13:56:39 |
gustav.kihlberg@e-sharp.se |
create |
test_case #63 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-A-04 | | id | — | 63 | | nominal | — | 2.5 | | requirementCode | — | REQ-058 | | signal | — | VREF | | status | — | open | | title | — | VREF output voltage (REF3425) | | tolerancePct | — | 0.05 |
|
| 2026-05-24 13:56:39 |
gustav.kihlberg@e-sharp.se |
create |
test_case #64 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-A-03 | | id | — | 64 | | nominal | — | 10 | | requirementCode | — | REQ-017 | | signal | — | VBAT | | status | — | open | | title | — | Deep sleep total board current | | tolerancePct | — | |
|
| 2026-05-24 13:56:28 |
gustav.kihlberg@e-sharp.se |
create |
test_case #62 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-A-01 | | id | — | 62 | | nominal | — | 1.5 | | requirementCode | — | REQ-011 | | signal | — | ADC_GPIO | | status | — | open | | title | — | Battery voltage divider at VBAT=3.0V | | tolerancePct | — | 2 |
|
| 2026-05-24 13:56:28 |
gustav.kihlberg@e-sharp.se |
create |
test_case #61 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-A-02 | | id | — | 61 | | nominal | — | 0 | | requirementCode | — | REQ-013 | | signal | — | ADC_GPIO | | status | — | open | | title | — | Battery divider disconnect in deep sleep | | tolerancePct | — | |
|
| 2026-05-24 13:56:19 |
gustav.kihlberg@e-sharp.se |
create |
test_case #60 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-A-00 | | id | — | 60 | | nominal | — | 2.1 | | requirementCode | — | REQ-011 | | signal | — | ADC_GPIO | | status | — | open | | title | — | Battery voltage divider at VBAT=4.2V | | tolerancePct | — | 2 |
|
| 2026-05-24 13:56:19 |
gustav.kihlberg@e-sharp.se |
create |
test_case #59 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-P-06 | | id | — | 59 | | nominal | — | 4 | | requirementCode | — | REQ-008 | | signal | — | LDO_IN | | status | — | open | | title | — | LDO quiescent current | | tolerancePct | — | |
|
| 2026-05-24 13:56:10 |
gustav.kihlberg@e-sharp.se |
create |
test_case #57 |
mcp |
show diff
| Field | Before | After |
|---|
| category | — | functional | | code | — | TC-P-05 | | id | — | 57 | | nominal | — | 3.3 | | requirementCode | — | REQ-006 | | signal | — | 3V3 | | status | — | open | | title | — | 3.3V rail — under load (WiFi active) | | tolerancePct | — | 5 |
|