Add the following new attachment content to the Open Modular UNO-Q PLC Rev B project as a separate detailed design package document. Create or update a document named rev-b-poc-combo-module-design that captures: Arduino UNO Q power/processor notes, OMUPLC-COMBO-4DI-4DO-HS-RevB module architecture, KiCad/Fritzing sheet structure, core net names, power section, MCU/CAN/addressing, 4DI input circuits, 4DO smart high-side output circuits, 10-pin backplane pinout, CAN baud/ID/message formats, watchdog behavior, safety checklist, bench bring-up checklist, Fritzing-first build list, and KiCad BOM skeleton. Keep it scoped to the PLC project.
Also update the existing project specification only if needed to reference this new POC combo module as the Rev B minimum build target.
SOURCE CONTENT:
The Arduino UNO Q features a split-processing architecture combining a Qualcomm Dragonwing QRB2210 MPU (Quad-core ARM Cortex-A53) and an STM32U585 MCU. Its CPU and power distribution are managed through a dual-input power supply schematic.
Power Supply Architecture: dual power inputs USB-C and 7-24V DC VIN; USB-C VBUS and 5V from 7-24V buck diode-OR into 5V_SYS; PMIC/core rails from Qualcomm PM4145; secondary 3.8V and 3.3V bucks; QRB2210 Debian Linux high-level brain; STM32U585 Zephyr real-time brain.
Rev B proof-of-concept package:
- 4DI / 4DO-HS combo test module schematic
- CAN connector / backplane pinout and module addressing
- Safety and bring-up checklist
Module: OMUPLC-COMBO-4DI-4DO-HS-RevB. Inputs: 4x opto-isolated 12/24 V digital inputs. Outputs: 4x smart high-side 24 VDC sourcing outputs. Comms: CAN backplane. Power: +24 V logic/module power, +24 V safety-switched output power, 0 V common. No onboard relays; smart outputs may drive external DIN relay coils.
Top blocks: power section (+24V_LOGIC -> fuse/PTC -> buck -> 5V -> 3.3V; +24V_OUT_EN -> output bank fuse -> smart switches), local MCU STM32G0B1 or similar native CAN, address DIP, SWD header, CAN transceiver, termination jumper, ESD/TVS, 4 DIs terminal/resistor/filter/opto/MCU, 4 smart outputs MCU/smart switch/terminal/load plus diagnostics.
KiCad sheets: 01_POWER_INPUT_AND_REGULATION, 02_MODULE_MCU, 03_CAN_INTERFACE, 04_ADDRESS_AND_SERVICE, 05_DIGITAL_INPUTS_4CH, 06_SMART_HIGH_SIDE_OUTPUTS_4CH, 07_TERMINALS_AND_LEDS, 08_WATCHDOG_AND_FAILSAFE, 09_MOUNTING_AND_MECHANICAL.
Core nets: +24V_LOGIC, +24V_OUT_EN, +24V_SENSOR, +5V, +3V3, 0V, PE_SHIELD, CANH, CANL, CAN_SHIELD, DI1_FIELD..DI4_FIELD, DI_COM, DI1_LOGIC..DI4_LOGIC, DO1_CMD..DO4_CMD, DO1_OUT..DO4_OUT, DO_FAULT, DO_SENSE, OUT_BANK_FAULT, MODULE_RUN, OUTPUT_ENABLE, WATCHDOG_OK.
Power: separate +24V_LOGIC and +24V_OUT_EN. +24V_LOGIC path: F1 0.5-1A PTC/fuse, reverse polarity protection, 33V TVS, bulk 100-470uF, buck 24V to 5V, 3.3V regulator, decoupling. +24V_OUT_EN path: F2 3-5A prototype output bank fuse, TVS, bulk, high-side switch VS.
MCU: STM32G0B1 family native FDCAN preferred. Pins: CAN_TX/RX, DI1-4_LOGIC, DO1-4_CMD, DO_FAULT/DIAG, DO_SENSE_ADC, ADDR0-3, RUN_LED, CAN_LED, FAULT_LED, OUT_EN_CTRL, SWDIO, SWCLK, NRST. SWD header 5/6 pins.
CAN: MCU CAN_TX/RX to transceiver TXD/RXD, CANH/L to backplane, 120R termination jumper, CAN TVS/ESD, optional common-mode choke, CAN activity LED. Only bus ends terminated.
Address DIP: 4-position, 10k pullups to 3V3 and DIP to GND, 16 addresses. 0x0 reserved, 0x1 first normal module, 0xF diagnostics/test. First combo module address 0x1, module type 0x21.
4DI: DI terminal through 6.8k 0.25W resistor to optocoupler LED to DI_COM; reverse diode across opto LED; optional RC/filter/TVS. Logic side 3V3 10k pullup to DIx_LOGIC and opto transistor to GND; optional 74LVC14 Schmitt. MCU drives input status LED.
4DO: quad smart high-side or two dual parts, e.g. TPS274160-class/TPS272C45-class. DO terminal block +24V_OUT_EN, DO1-DO4, 0V_OUT. MCU DOx_CMD through 100R to smart switch INx; 100k pulldown; VS to fused +24V_OUT_EN; OUTx to terminal; load returns to 0V_OUT. Add output LED, TVS/clamp footprint, diagnostic/fault, current sense to ADC if available. Failsafe: reset/boot/CAN timeout/watchdog/out power removal/overcurrent/overtemp all force outputs off.
10-pin backplane pinout: 1 +24V_LOGIC, 2 0V_LOGIC/0V_BUS, 3 +24V_OUT_EN, 4 0V_OUT, 5 CANH, 6 CANL, 7 PE_SHIELD/CAN_SHIELD, 8 SYNC/IRQ, 9 MODULE_PRESENT, 10 RESERVED/ID_CHAIN. Use keyed connector; first version short jumpers, later passive DIN-rail backplane.
CAN: 250 kbit/s initially; later 500 kbit/s, 1 Mbit/s only after SI proven. 11-bit IDs: 0x000 broadcast/emergency, 0x100+addr heartbeat/hello, 0x200+addr CPU poll, 0x300+addr input status, 0x400+addr output command, 0x500+addr diagnostics, 0x600+addr config, 0x700+addr bootloader. Define heartbeat, input status, output command, diagnostic packet bytes as in attachment. Watchdog normal command 20-50ms, timeout 250ms default, hard fault 500ms max; timeout shuts all outputs off and reports fault.
Safety: hardwired safety chain removes +24V_OUT_EN; PLC monitors SAFETY_OK but is not safety enforcement. Do not rely on OpenPLC for E-stop; do not directly switch large motors/heaters/pumps/compressors; use contactors/starters/SSRs/VFDs; use fuses, proper enclosures, PE/grounding, shielding; separate relay/mains wiring from logic/CAN.
Include electrical design safety checklist and bench bring-up stages 1-9: inspection, power rails, MCU firmware, CAN test, digital input test, output power test, fault tests, watchdog/safety tests, OpenPLC integration test.
Fritzing-first build list: MCU block, CAN transceiver, 10-pin backplane, 4 optos, input resistors/terminals, quad high-side block, outputs, buck, 3.3V reg, 4-pos DIP, LEDs, test points. Fritzing proves power flow/isolation/output sourcing/CAN/address/terminal labels; KiCad gets real symbols/footprints/spacing/copper/thermal/manufacturing.
KiCad BOM skeleton: STM32G0B1-class MCU, 3.3V CAN transceiver, CAN TVS, 120R + jumper, fuses/PTC, reverse protection, 24V TVS, buck, 3.3V reg, caps, 4 optos, 6.8k 0.25W resistors, reverse diodes, pullups, optional Schmitt, quad high-side, pulldowns, LEDs, output bank fuse, diagnostic filters, backplane in/out, DI/DO terminal blocks, SWD, DIP, M3 holes, enclosure alignment, label silkscreen.