← AXO-006

Circuit review & bench-test guide

AXO-006 — SSD1306 OLED carrier PMOD module

Design-stage — board not yet fabricated

Document purpose#

Component-level explanation and bench-test plan for the axo-006-oled carrier, based on generate_design.py, the module README.md, and the SSD1306 controller datasheet (the plug-in breakout's controller). The carrier has never been fabricated; all values are verification targets. Because this is a carrier, the plug-in breakout is in scope and gets a mandatory pin-order check (Section 4a) before power.

1. What the board does#

A socket carrier that adapts a common 0.96" SSD1306 128×64 I2C OLED breakout to the AruviX PMOD. It provides the I2C bus, cuttable pull-ups, and decoupling; the display module itself carries the panel, its charge pump, and the SSD1306.

PMOD J1 ── SCL/SDA ──> [4.7k pull-ups JP1/JP2] ──> J2 socket ──> SSD1306 breakout
           3V3/GND ──> C1/C2 ──> J2 (VCC/GND)

2. Safety and scope boundaries#

4. Interfaces#

4a. PLUG-IN VERIFICATION (do this before first power)#

0.96" SSD1306 breakouts ship in two pin ordersGND VCC SCL SDA and VCC GND SCL SDA. The carrier silkscreen labels one order (GND/VCC/SCL/SDA). A swapped VCC/GND will destroy the breakout. Before plugging in:

  1. Read the breakout's own silkscreen. Compare to J2's labels.
  2. If they differ, do not force orientation — the breakout must be wired to match, or use jumper leads. Buzz out J2 pin 1 → the carrier GND net and confirm it matches the breakout's GND pin.
  3. Confirm the breakout is a 3.3 V I2C variant (not the SPI 7-pin version).

5. Component-by-component review#

6. Datasheet summary (SSD1306)#

7. Expected values before bench testing#

8. Manual review checklist#

9. Ordered bench-test procedure#

A. Unpowered: with the breakout removed, buzz J2: pin order vs silkscreen, VCC↔3V3 net, GND↔GND net, SCL/SDA to the PMOD. Confirm no VCC-GND short.

B. Plug-in check: verify the breakout's silkscreen order matches J2 (Section 4a). Seat it fully.

C. Power, idle: 3.3 V ≤50 mA. Confirm idle current low, bus idle-high, panel dark (expected before init).

D. Bus bring-up: I2C scan → expect ACK at 0x3C. If nothing, recheck plug-in orientation immediately (do not leave a mis-powered module energized).

E. Init + fill: play the SSD1306 init sequence, then write 0x40 followed by 1024 bytes of 0xFF. Expect a fully lit screen. Write 0x00 ×1024 → blank.

F. Pattern: draw a checkerboard (0x55/0xAA alternating) to confirm column/ page addressing and no stuck segments.

10. Troubleshooting map#

11. Bench record template#

Board: axo-006  Breakout P/N:____  Pin order matched: [ ]
Idle current: ____ mA   ACK address: 0x____
Full-fill current: ____ mA   Checkerboard clean: [ ]
Notes:

12. Review conclusion#

The carrier is trivial (a socket, two pull-ups, two caps); all the risk is in the plug-in step, where a VCC/GND swap is fatal. The Section-4a check is the single most important action. Once a known-good breakout initialises, this board is the platform's framebuffer-graphics starting point.