External Pull up gives limited voltage range


I am attempting to use a second Arduino to read the output of a first Arduino. To do this I have constructed an external pull-up circuit as shown below.


I have found on one input I am able to get a readable voltage range of 4.1 to 1 V between high and low (sufficient to get a reading) whereas from a second output pin on the Arduino I am only seeing a 0.3 V change between high and low using an identical pull-up circuit.

Any suggestions as to the possible cause of this behaviours.

Apologies if the description is insufficient,go easy on me I'm only a mechanical engineer :)

Thank you


Hi, Are both outputs set with PinMode??

Within setup the pinMode of both are set as output

 pinMode(26, OUTPUT);  //BA
  pinMode(27, OUTPUT);  //FO

One difference to conversion is when setting high/low, pin addresses are called rather than using using digitalWrite

eg PORTA = 0x60;

Is this likely to make a difference?

Did you connect the grounds?

Initially no, but that did not appear to cause any issues, presumably because both systems were powered from the same PC USB. After switching to external power, grounds were connected. For a short time it was running off external power without the ground connected if that may have caused lasting damage.

OK, for "only a mechanical engineer", connecting to the pin is like connecting the output end of an hydraulic cylinder. You're trying to make some construction machine work or a crane arm go up or whatever.

But if you don't connect the other end of the cylinder to something, it will just flop around loose. It can't transfer any force to the output.

Not connecting the grounds won't normally damage the pin but it is entirely possible that that is the reason this pin no longer works. (Something really heavy was hanging off the hydraulic hoses and broke them.)

Haha, your analogy is greatly appreciated, I’ll have a go with another pin and see if the problem is resolved.