Skip to content

Instantly share code, notes, and snippets.

View cardil's full-sized avatar

Chris Suszynski cardil

View GitHub Profile
@cardil
cardil / bug4-probe-test.py
Created March 27, 2026 14:40
APC Modbus word-order probe test - tests EchterAgo's CANCEL|ON|OFF detection method
#!/usr/bin/env python3
"""Test EchterAgo's probe idea: write CANCEL|OUTPUT_ON|OUTPUT_OFF to OutletCommand_BF.
On spec-compliant firmware: EMBXILVAL (invalid command combo detected)
On LE-buggy firmware: different error or no error (combo lands in reserved bits)
Must run with NUT driver stopped: systemctl stop nut-driver@apc
"""
import sys
@cardil
cardil / bug4-test-modbus-tcp.py
Created March 27, 2026 11:16
Bug 4 — Modbus/TCP word order test via APC NMC (NUT #2338)
#!/usr/bin/env python3
"""Test: Modbus/TCP word order via APC NMC.
Reads raw register values to verify read word order, then tests write
word order for OutletCommand (load.on) in both big-endian and little-endian.
Safe: load.on while already on is a NOOP.
Usage:
python3 bug4-test-modbus-tcp.py <NMC_HOST> [NMC_PORT]
@cardil
cardil / bug4-test-word-order.py
Created March 26, 2026 23:11
NUT apc_modbus word-order bug proof — confirms big-endian vs little-endian register write issue
#!/usr/bin/env python3
"""Bug 4 — Test: Confirm word-order bug in apc_modbus OutletCommand writes.
The NUT driver's _apc_modbus_from_uint64() stores 32-bit values in big-endian
word order: [MSW, LSW]. But APC UPS expects little-endian: [LSW, MSW].
For command value 0x0102 (load.on + MOG):
- NUT sends: [0x0000, 0x0102] → FAILS (value in wrong register)
- Correct: [0x0102, 0x0000] → WORKS (value in register 1538)
@cardil
cardil / bug4-test-source-bit.py
Last active March 27, 2026 01:19
NUT apc_modbus word-order bug proof — source bit hypothesis test (disproved)
#!/usr/bin/env python3
"""Bug 4Test: Does setting SOURCE_RJ45_PORT bit fix OutletCommand writes?
This script bypasses the NUT driver and sends a raw Modbus write to register
1538 (OutletCommand_BF) with the SOURCE_RJ45_PORT bit (bit 14) set.
Command: load.on targeting MOG (Main Outlet Group)
- Without source bit: 0x0102 = CMD_OUTPUT_ON | TARGET_MOG
- With source bit: 0x4102 = CMD_OUTPUT_ON | TARGET_MOG | SOURCE_RJ45_PORT
@cardil
cardil / mcp_settings.json
Created February 23, 2026 23:28
RooCode MCP settings by @cardil
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
@cardil
cardil / gh-review.py
Created January 23, 2026 12:14
Helper scripts to get GH review comments in LLM-friendly way
#!/usr/bin/env python
"""Fetch unresolved review comments from a GitHub PR.
Based on: https://stackoverflow.com/a/66072198/844449
Usage:
python scripts/gh-comments.py [PR_NUMBER]
python scripts/gh-comments.py 17
"""
@cardil
cardil / hpa-kpa-v2.patch
Last active July 18, 2025 10:36
Paper prototype on how HPA with custom KPA scaler may look like, without changing HPA api
--- a
+++ b
+---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
scaleTargetRef:
apiVersion: apps/v1
@cardil
cardil / hpa-kpa.patch
Last active July 17, 2025 17:51
Paper prototype on how HPA with custom KPA scaler may look like
--- a
+++ b
-apiVersion: autoscaling/v2
+apiVersion: autoscaling/v3
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
scaleTargetRef:
apiVersion: apps/v1
@cardil
cardil / deviate-pr1.log
Created February 19, 2025 13:35
Log of executing https://github.com/openshift-knative/deviate/pull/1 for a copy of kn-event repo
Feb 19 14:29:32.470 [deviate:sync] WARNING: Using downstream remote URL as downstream remote: git@github.com:wavesoftware/midstream-kn-plugin-event.git
Feb 19 14:29:32.471 [deviate:sync] Check if there's an upstream release we need to mirror downstream
Feb 19 14:29:33.835 [deviate:sync] No missing releases found
Feb 19 14:29:33.969 [deviate:sync] Re-syncing releases: ["1.12" "1.13" "1.14" "1.15" "1.16" "1.17"]
Feb 19 14:29:33.969 [deviate:sync] Re-syncing release: 1.12
Feb 19 14:29:35.367 [deviate:sync] - no changes detected
Feb 19 14:29:37.663 [deviate:sync] Re-syncing release: 1.13
Feb 19 14:29:38.951 [deviate:sync] - no changes detected
Feb 19 14:29:41.131 [deviate:sync] Re-syncing release: 1.14
Feb 19 14:29:42.412 [deviate:sync] - no changes detected
@cardil
cardil / dmesg.log
Created December 20, 2024 17:28
Dmesg errors whie running ill-booted X9SBAA board
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to set bank to 2, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to set bank to 2, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x040, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x046, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to write to register 0x040, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x041, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x042, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x043, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x044, err -5
Dec 17 12:01:44 baldur kernel: w83795 5-002f: Failed to read from register 0x045, err -5