No entiendo completamente las conexiones que se están realizando o cómo Firmata está mediando las cosas.
Me parece que el boceto Firmata convierte a tu arduino en un periférico tonto de tu PC.
Si tengo razón, cuando ejecuto Firmata, no tiene otro código ejecutándose en el Arduino. Por lo tanto, no tiene ninguna variable en un croquis de Arduino a la que necesite acceder.
La biblioteca de Firmata y el bosquejo de Firmata manejan las comunicaciones por usted. Solo interactúas con la biblioteca en tu PC
Usted hace todos el procesamiento que desea hacer en su PC usando un idioma con una biblioteca de Firmata.
pase una variable de mi código de Arduino a PureData en tiempo real
En este caso, estás escribiendo dos programas, un boceto que se ejecuta en un Arduino y un programa PureData que se ejecuta en una PC. Desea que los dos programas se comuniquen en tiempo real.
Utilice un método de comunicación apropiado. Si su programa PureData se ejecuta en una PC y la PC está conectada al Arduino mediante un cable USB, puede usar comunicaciones en serie. El Arduino tiene una biblioteca en serie y espero que PureData tenga una forma de leer y escribir en los puertos COM.
La comunidad PureData debería (y probablemente tenga) un foro de soporte con código de ejemplo para este tipo de tarea.