Stacking Modules

Eduingo modules stack on the Mainboard one on top of another into a tower. Every module in the tower is connected to the same 15 Mainboard signals, so before you combine modules, check that they don't want to use the same pin.

How modules stack

The Mainboard and every module have two connectors with ten pins each:

Connector Pins
Top IO8 – IO1, GND, 5V
Bottom VUSB, GND, 3.3V, IO9 – IO15

Pin layout of the Mainboard

Pin layout of the Mainboard
  1. Unplug the Mainboard from USB. Always stack modules with the power off.
  2. Turn the module so its pin labels match the Mainboard: 5V above 5V, VUSB above VUSB. A module turned the wrong way would put power on signal pins and could get damaged.
  3. Push the module in straight and evenly so no pin gets bent.
  4. Put the next module on the previous one the same way. The signals pass through the whole tower.
  5. When your modules don't fit in one tower, use a Dual Base or a Triple Base. All towers on a base share the same signals, so the rules below apply to them too.

Which pins can collide

  • Each pin IO1 – IO15 may be used by only one module in a build. When two modules use the same pin, they disturb each other's signal: a button and a buzzer fight over one wire, two sliders give nonsense values.
  • The exception is the I2C bus on IO14 and IO15. You can connect several I2C modules to it at once, as long as each one has a different address (table below).
  • Watch out for modules that use IO14 and IO15 for something other than I2C. Blink & Click has LED3 and LED4 there and the Wemos Adapter has pins D7 and D8. Such a module can't be combined with any I2C module.
  • Power pins 5V, 3.3V, VUSB and GND are shared by all modules, and that is fine. The current the modules draw adds up, though.
  • The built-in RGB LED on IO33 is only on the Mainboard and doesn't collide with any module.

Pin matrix

Each row is one module, each column one Mainboard pin. If two modules have something in the same column, they can't be used together. The exception is SDA SCL, the shared I2C bus. On a phone you can scroll the table sideways.

ModuleTop connectorBottom connector
123456789101112131415
EDU02 Blink & ClickSW1SW2SW3SW4LED1LED2LED3LED4
EDU03 RGB LEDRGB
EDU04 7-SegmentABCDDIOCLK
EDU05 MultisensorBUZZIR_TXIR_RXLDRFIRECONNSDASCL
EDU06 Rotary EncoderCLKDTSW
EDU07 SlidersSL1SL2SL3
EDU08 LED MatrixDIN
EDU09 RelayRELAY
EDU10 OLED DisplaySDASCL
EDU11 PotentiometerPOT
EDU12 ButtonsABDC
EDU13 JoystickXYSW
EDU15 MosfetIN1
EDU16 CompassSDASCL
EDU17 SDPlayerTXRX
EDU18 KeypadCLKDIN
EDU19 ServosOUT_ENSDASCL
EDU92 Wemos AdapterD4D3D2D1RXTXRSTA0D0D5D6D7D8

The Connect, SD Card, Gesture Sensor, Perfboard and Terminals modules aren't in the matrix yet, because their pins aren't documented yet.

I2C bus addresses

Module Chip Address
OLED Display 128 × 128 display 0x3C, 0x3D with the ADDR jumper
Compass compass 0x0D
Servos PCA9685 0x40
Multisensor connector for an external sensor depends on the connected sensor

All these addresses are different, so the OLED Display, Compass and Servos can all be in the tower at once. The I2C pull-up resistors are already on the Mainboard, the modules don't need them.

Collisions by pin

Pin Modules that use it
IO1 – IO4 Blink & Click (buttons), 7-Segment (buttons), Multisensor (only IO1 – IO3), Buttons, Wemos Adapter
IO5 RGB LED, LED Matrix, Relay, Mosfet, SDPlayer, Wemos Adapter
IO6 RGB LED, SDPlayer, Wemos Adapter
IO7 RGB LED, Rotary Encoder, Keypad
IO8 Rotary Encoder, Keypad
IO9 7-Segment, Servos, Wemos Adapter
IO10 7-Segment, Wemos Adapter
IO11 Multisensor, Sliders, Potentiometer, Joystick, Wemos Adapter
IO12 Blink & Click, Multisensor, Sliders, Joystick, Wemos Adapter
IO13 Blink & Click, Multisensor, Rotary Encoder, Sliders, Joystick, Wemos Adapter
IO14, IO15 I2C: Multisensor, OLED Display, Compass, Servos. As ordinary pins: Blink & Click, Wemos Adapter

Example builds

These modules work together, because each one has its own pins:

  • Joystick + OLED Display + RGB LED: IO11 – IO13, I2C and IO5 – IO7. A game or a menu on the display.
  • Keypad + OLED Display + Relay: IO7 and IO8, I2C and IO5. A code lock.
  • Rotary Encoder + 7-Segment: IO7, IO8, IO13 and IO1 – IO4, IO9, IO10. Setting a number with a rotary knob.
  • Potentiometer + Servos + Compass: IO11, IO9 and I2C. A servo driven by a knob or by the compass.

These pairs don't work together:

  • Joystick + Sliders: both use IO11 – IO13.
  • RGB LED + LED Matrix, Relay + Mosfet: both use IO5.
  • Rotary Encoder + Keypad: both use IO7 and IO8.
  • Buttons + 7-Segment: both use IO1 – IO4.
  • Blink & Click + OLED Display: LED3 and LED4 sit on the I2C bus.
  • Wemos Adapter + anything else: it takes every pin except IO7 and IO8, only the Keypad fits next to it.