Home‎ > ‎Arduino Projects‎ > ‎

Arduino Skypipe UDS

For many of my projects I have always wanted to be able to log my data, create a real time graph and be able to upload my received data to a website. In the past I have used a software package called Radio Skypipe for logging scientific data from a radio or custom ADC but never had the time to try and connect my projects to it.

I have now developed an Arduino sketch that will utilize the UDS (User Data Source) system that is implemented by the Pro Version of the software. It uses a serial link and a RS232 to TCP/IP converter to communicate with the Skypipe software.

The software used is made by Piracom and called Pira CZ Remote COM Port. It can be downloaded at http://www.pira.cz/eng/piracom.htm for free!

For this code I have assumed that you have got a compatible Arduino set up and ready to go. I also assume that you have the administrator passwords for your PC. The code is on the bottom of the page. To use the sketch for other inputs, remove the frequency counting code and replace with your own (I developed it for a FGM3 sensor). Skypipe will accept it as long as it is a number (Sent as a string). You have to have the pro version of the software for this to work!

How to set up for FGM-3 Sensor:

  • Install the Frequency Counter library 
  • Upload attached code to Arduino
  • Start Piracom software.
    • Set port to 5555
    • Set COM port to Arduino's COM port, e.g. 2
  • Start Skypipe software
    • Set data source as UDS
    • Select UDS settings
    • Set IP to
    • Set port to 5555
    • Select "UDS push data to skypipe"
  • Press start chart
  • Sometimes the Arduino needs resetting here for some reason, not entirely sure why
  • You now have a live magnometer readout using your arduino!
To use other data sources, e.g. a temperature sensor, replace the "frq" variable with the variable required, such as "analogRead(A0)". This then measures the voltage on pin A0 and sends it to skypipe.

I hope that it comes in useful :)

Here is the code:

  Arduino UDS by Jonathan Rawlinson, M0ZJO.
  Frequency Counter code by Martin Nawrath

#include <FreqCounter.h>

void setup() {
  Serial.begin(9600);                    // connect to the serial port

long int frq;
void loop() {
 FreqCounter::f_comp= 8;             // Set compensation to 12
 FreqCounter::start(100);            // Start counting with gatetime of 100ms
 while (FreqCounter::f_ready == 0)         // wait until counter ready
 frq=FreqCounter::f_freq; // read result
 Serial.write(255); // print result

Jonathan Rawlinson,
Jan 22, 2013, 6:49 AM