Well I found out why the Pi was having trouble bit-banging at 4200 baud. It seems it just can’t do it due to Linux multitasking. I thought he libraries would have that fixed but it seems not. This leaves only the hardware supported channels: UART, I2C and SPI. These at least should buffer some data and send it even if the processor is busy.
So after a bit of hacking I have two-way IO between the Pi and Arduino over the UART. I’ll try the SPI AND I2C another day but this means I can control the Arduino from the Pi and let the Arduino control peripheral hardware. Not ideal but further forward than before.
Next I’ll try using the Arduino UART to control my OLED display. This requires some detective work with a borrowed digital storage oscilloscope. I’m not sure what I’m doing wrong. It may not be possible. Alternatively I might turn to programming a Pic 18m and using that instead. That should work at 3.3v too.
So, finally all the comms are coming together so I better get planning on my first proper project.