Driving five stepper motors on one NodeMCU-32S

For a Weasley clock I’m making, I am trying to drive five stepper motors on one NodeMCU-32s. I am using these steppers with ULN2003 driver board with 5v 3a power adapter.

There’s a problem though, I can’t fit five times four pins on the ESP. I thought I’d solved that by adding a PCF8575, but then I found out that works different than I expected. The lights on the fifth ULN2003 board that I connected to the PCF8575 are dimly lit always, and the stepper doesn’t run. It tries to, though. I can hear it hum softly.
For added info, here’s the yaml that controls the fifth stepper:

api:
  services:
    - service: control_hand_5
      variables:
        target: int
      then:
        - stepper.set_target:
            id: hand_5
            target: !lambda 'return target;'

i2c:
  sda: GPIO21
  scl: GPIO22
  scan: true
  id: bus_a

pcf8574:
  - id: 'pcf8574_hub'
    address: 0x20
    pcf8575: true

# Stepper Motors
stepper:
  - platform: uln2003
    id: hand_5
    pin_a:
      pcf8574: pcf8574_hub
      number: 14
      mode:
        output: true
      inverted: false
    pin_b: 
      pcf8574: pcf8574_hub
      number: 15
      mode:
        output: true
      inverted: false
    pin_c: 
      pcf8574: pcf8574_hub
      number: 16
      mode:
        output: true
      inverted: false
    pin_d: 
      pcf8574: pcf8574_hub
      number: 17
      mode:
        output: true
      inverted: false
    sleep_when_done: true
    acceleration: 80 steps/s^2
    deceleration: 80 steps/s^2
    max_speed: 500 steps/s

One possible solution seems to be adding pull-up resistors - the problem is I’m rather new at all this and have no clue where to add those, and what kind of resistors. I’ve found values between 3k and 10k, which leaves me puzzled.

Another solution might be using MCP23017. I’m just not quite sure if that one is easier then the PCF8575. I might be mistaken again.

Last solution seems to be to swap the ULN2003’s for three 74HC595’s, to free up pins. I’ve found some info on how to wire those, but I just don’t quite know how to use them with ESPHome. Also, it seems to me I’d have to know how exactly the steppers work, which I don’t: If I swap the ULN2003’s out, I can’t use the ESPHome config for the steppers.

So, as I’m currently tired and can’t think anymore - could anyone with a little more experience then me help me out? Which option would work? Or do none of them work? Did I miss something somewhere to get the stupid PCF8575 working?

(Bonus: I also want to have five 3v solenoids working on the same PCF8575. Considering the way it’s currently going, I’m sure that doesn’t work as hoped either.
Extra bonus, if you’d like to see the clock I have images of the build in my instagram profile, @levend_lichtje. I’m not sure if linking to social media is allowed here.)

Do you need a dev board with more GPIOs?

Thanks, I’ll try that one then! Hope I can get it to work.

@nickrout I might need a bigger board, but this one I have already. Plus, I don’t know bigger boards :slight_smile:

Keep looking, here is one https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528/