Android Pinguino & PureData


Pinguino Control is an Android Application that controls a Pinguino PIC32 OTG board in real time, offering the possibility to act on every input and output available of this platform. The user can set Ports/Pins to input or outputs, plus setting their logic state. This App also offers control over the Analogue Outputs (PWM) and monitoring of all Analogue Inputs implemented on the board. Feedback is also provided, so the user can see what is happening in the board, regardless if it was caused by interaction with the App or directly on the hardware. This is accomplished by loading Pinguino with a Firmware that I developed and is provided here. The communication is done with the aid of interfacing using Pure Data(free and open source) or Max MSP.

Available files.



Get the App:
Android app on Google Play


Pinguino has to have this firmware installed.

Pinguino must be connected via USB to a computer running either Pure Data or Max MSP. These will have a patch that receives UDP data over wifi from the Android device, and in turn communicates via Serial (USB) with Pinguino. All devices must be within the same wireless LAN (wifi).

Later, from the application the logic value of the Digital Outputs can be changed with a toggle button. Analogue Inputs are only monitored, whereas Analogue Outputs, 3 for this board, can be set through sliders on the Application interface. 

At this point, a RS 323 Emulator might be needed, you can get one here. 

Once you have the Pinguino programmed with the firmware provided here, and the Pure Data or Max MSP patch open, it is just a matter of adjusting the parameters of the connection. In the Android App this means typing in the IP address of the computer, and selecting a port, by default the port 10001 is used.

Android Art

In the patches you do the same, but this time you type in the IP address of the Android device, this is given in both Pure Data and Max MSP as part of the udpreceive objects. So simply add the IP address of the computer in the Android device first, start sending data and look at the address posted in the patches, then set this address for the udpsend objects.

Pure Data seems to have a bug, and every time the patch is open the udp objects are not created, I could get around this by opening the PD help patches about networking, especially about UDP and this would always refresh my patch. Then all I did was to recreate such objects.

Please help finding bugs and abusing projects, so we can improve them and keep on doing thing in an effort to increase the amount of  developments for this and more platforms!

2 thoughts on “Android Pinguino & PureData

Comments are closed.