Hey, no worries. The only indication to me was the very brief reference to it in the forum post i linked to, and the line in the firmata.h file:

#define SHIFT_DATA              0x75 // a bitstream to/from a shift register


So thought I’d ask on the off chance it was an undocumented feature . . .

I'm sure it is possible to hack together the shiftOut() function in pd, though as I’m not a programmer how to do that is not immediately obvious to me,* so guess i was hoping that there was a ‘proper’ or more efficient way to do it via pduino.

As you suggest it’s probably better to do the shift register stuff directly on the arduino, but i’m already in quite deep with pduino for this particular project. .

anyway, thanks for your replies !

*source code for shiftOut():

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
uint8_t i;

for (i = 0; i < 8; i++)  {
 if (bitOrder == LSBFIRST)
  digitalWrite(dataPin, !!(val & (1 << i)));
 else
  digitalWrite(dataPin, !!(val & (1 << (7 - i))));
 
 digitalWrite(clockPin, HIGH);
 digitalWrite(clockPin, LOW);  
}
}



From: Pd-list <pd-list-bounces@lists.iem.at> on behalf of Roman Haefeli <reduzent@gmail.com>
Sent: Monday, 1 July 2019 3:21 AM
To: pd-list@lists.iem.at
Subject: Re: [PD] Pduino and shift registers
 
On Sat, 2019-06-29 at 14:23 +0200, Simon Iten wrote:
> i think you should be able to control a shift register
>  from pd within the existing architecture.
>
> if you can access those 3 pins from pd just send them the HIGHs and
> LOWs you would send in arduino code…

Theoretically yes, but it's probably slow and unreliable. If you could
just send the desired bit states from Pd and let the Arduino deal with
timing and ordering, data transmission would have less overhead would
likely be more reliable.

One could still write a little code snippet for the Arduino and an
complementary abstraction based on comport to do something like this.
Right now, I would not know how to make that part of Firmata and
pduino.

Roman