The circuit is a pretty simple implementation of an
RS-232 converter.
Yes the GND on pin 5 is critical.
Between the DB9 and the DB25 pinouts, pins 2 and 3 are
not the same. They are swapped.
Reasonable reference here:
Some serial ports need handshaking lines looped back to
operate. Couldn't hurt. So circuit could be improved by wiring DB9 pin-6 to
pin-4, also include pin-1. Sometimes also looping 7 to 8, but in your diagram
pin-7 is attached. Pin 7 is Request-to-Send. Not sure what DD stands for. No
telling if this signal is needed or not, but quite possibly the Roomba side
wants to control flow rate with it. Oh, in Roomba documentation, it says it is
Device Detect and it has to be "active low, used to wake up the Roomba from
sleep". You'd probably do just as well by gnd'ing that pin, then, and leaving
the RS-232 convertor out of it.
The Max232 generates RS-232 voltage by
doing a charge pump. Charge pumps work by switching capacitors in parallel
across the power leads to being in series standing on the power lines. Those
caps on 1-3, 4-5 are the ones being switched to generate the higher RS-232
voltages our of the 5V supplied.
It would be very
easy/likely to get the wiring on the Mini-Din wrong, because they show using a
DIN-8, when the actual
connector is supposed to be DIN-7. It appears the PS2 DIN is a DIN-6. Plus
your description of no pin 4 or 7 is also worrisome. Note, which pin is in which
physical position depends on if we are talking a DIN-8 or a DIN-7. I'd be most
suspicious about those. For instance:
says Pin-4 is TxD. That would still be Pin-4 on a
DIN-6. Pin-5 would be
DD.
Finally, there are USB
to TTL adapters which could do this job without going to RS-232 as an
intermediary. Have you considered using those? Then your whole circuit would be
the adapter and the DIN-7.
Randy