Design Notes
Modular Sensor System Architecture
- Main controller: Arduino Nano ESP32
- Shared bus: 3.3V I2C
- Peripheral node representations: Modulino Buttons and Modulino Pixels modeled as I2C-addressable functional blocks
- External connector: Qwiic JST-SH 4-pin daisy-chain interface
- Additional sensor interface: dedicated 3-wire E3JK retro-reflective sensor input block
Bus Rules
- Logic level: 3.3V only
- Shared pull-ups: 4.7k on SDA and 4.7k on SCL to 3.3V
- Qwiic pin order: GND, 3.3V, SDA, SCL
Addressing Plan
- Keep each node on a unique I2C address
E3JK Sensor Power Architecture
- The E3JK retro-reflective laser sensor is treated as a strict 12V field device in this project.
- The sensor power domain is separate from the Arduino and Qwiic logic domain.
- J2 is the field wiring connector for the E3JK block.
- J2 pin mapping: Pin_1 = +12V sensor supply, Pin_2 = GND, Pin_3 = sensor output.
- Net 12V_SENSOR powers only the E3JK connector supply pin and its local bypass capacitor.
- Net 3V3 powers only the Arduino Nano ESP32, the I2C bus pull-ups, and the Qwiic/Modulino logic domain.
- Grounds are shared so the sensor output has a defined reference to the MCU input stage.
E3JK Sensor Signal Conditioning
- The E3JK output is not routed directly into the MCU.
- The raw field output net is E3JK_OUT_12V.
- R3 is the top resistor of the divider from E3JK_OUT_12V to the MCU-facing node.
- R4 is the bottom resistor of the divider from the MCU-facing node to GND.
- Divider values: R3 = 27kΩ and R4 = 10kΩ.
- Expected MCU input voltage at 12V sensor output:
- Vout = 12V x 10k / (27k + 10k)
- Vout = 3.243V
- The conditioned net is E3JK_OUT_3V3 and it connects to Arduino Nano ESP32 pin D2.
- This divider keeps the MCU input within the 3.3V logic domain while preserving a direct digital indication from the sensor.
Local Decoupling
- C1 is a 100nF bypass capacitor from 12V_SENSOR to GND at the sensor connector.
- This capacitor is local to the field connector and supports the dedicated 12V sensor domain.
Integration Notes
- The existing I2C Modulino architecture remains unchanged on SDA and SCL.
- The E3JK interface is isolated functionally from the I2C bus and only adds one GPIO input on the controller.
- No Qwiic or Modulino signals are exposed to the 12V sensor domain.
Notes
- The Modulino nodes are represented by functionally equivalent I2C devices available in the library so the bus architecture, addressing, and connector scheme can be captured in the schematic.