# Raspberry Pi OPC-UA Server

**URL:** <https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290>\
**Category:** General Discussion\
**Created:** [November 5, 2014, 2:09am UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290 "2014-11-05T02:09:29Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 5, 2014, 2:09am UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/1 "2014-11-05T02:09:29Z")

</div>

I built a very simple OPC-UA server that exposes the Raspberry Pi GPIO this afternoon… thought some of you might get a kick out of it. It’s just for the GPIO - there’s no free PLC drivers or anything like that, so don’t get your hopes up 😉

I’ve got 4 LEDs hooked up that I can toggle on and off via Ignition. Kinda neat.

You can download the source and/or binaries here: [github.com/kevinherron/pi-server](https://github.com/kevinherron/pi-server)

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [November 5, 2014, 5:35pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/2 "2014-11-05T17:35:43Z")

</div>

## It runs smoothly on both Rpi and ARMV7 platforms. Let’s hope for the drivers soon.

This is the output from my test machine:

alam@debian-armhf:~$ uname -a  
Linux debian-armhf 3.2.0-4-vexpress #1 SMP Debian 3.2.51-1 armv7l GNU/Linux

## alam@debian-armhf:~/pi-server-1.0.0$ sudo tail -f logs/wrapper.log | cut -d ‘|’ -f 4 … 17:00:14.923 [WrapperSimpleAppMain] INFO c.i.opcua.sdk.server.OpcUaServer - Binding endpoint opc.tcp://0.0.0.0:12685/ [None/None]

BTW when i tried to connect from Ignition, i get this error message. Not sure what i missed.

RaspberryPi OPC-UA Server:  
Faulted Error: show details  
Server did not return any endpoints matching the current criteria: SecurityPolicy=Basic128Rsa15, MessageSecurityMode=SignAndEncrypt, TransportProfileUri=http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary

Host: 192.168.1.80  
Port: 12685

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 5, 2014, 5:51pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/3 "2014-11-05T17:51:21Z")

</div>

In Ignition you need to configure SecurityPolicy and MessageSecurityMode to both be ‘None’

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [November 7, 2014, 8:04am UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/4 "2014-11-07T08:04:05Z")

</div>

## It gets connected to ignition perfectly on ARMV7 platform. even with 256mb RAM. On Rpi which is ARMV6 with 256mb RAM, doesn’t get connected to Ignition. I think, it’s better to focus on ARMV7 and Rpi will catch up in next release.

HP had released ARM64-bit moonshot servers. Very interesting things are happening.

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [November 7, 2014, 5:53pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/5 "2014-11-07T17:53:22Z")

</div>

[color=#0040BF]How to emulate ARM V7 with "Ubuntu+QEMU" on x86 machines:[/color]

This is to help those who do NOT have ARM harware for cross platform testing and development.

[color=#0000FF]Step 1: Requirements:[/color]

1. Ubuntu 14.04 desktop
2. Install QEMU from Ubuntu software centre.

[color=#0040FF]Check QEMU with these commands:[/color]

$ qemu-system-arm -version  
QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.6), Copyright (c) 2003-2008 Fabrice Bellard

$ qemu-system-arm --machine help  
Supported machines are:  
versatileab ARM Versatile/AB (ARM926EJ-S)  
versatilepb ARM Versatile/PB (ARM926EJ-S)  
lm3s811evb Stellaris LM3S811EVB  
z2 Zipit Z2 (PXA27x)  
connex Gumstix Connex (PXA255)  
sx1 Siemens SX1 (OMAP310) V2  
realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)  
cubieboard cubietech cubieboard  
vexpress-a9 ARM Versatile Express for Cortex-A9

* * *

* * *

## midway Calxeda Midway (ECX-2000) virt ARM Virtual Machine borzoi Borzoi PDA (PXA270)

[color=#0040FF]Step 2: To quckly start ARM Debian VM under QEMU follow these steps:[/color]

1. $ sudo mkdir emulator
2. Download and copy all these files into emulator folder from this link:  
[people.debian.org/~aurel32/qemu/armhf/](https://people.debian.org/~aurel32/qemu/armhf/)

[color=#0040FF]README.txt 06-Jan-2014 18:29 3.4K  
debian\_wheezy\_armhf\_desktop.qcow2 17-Dec-2013 02:43 1.7G  
debian\_wheezy\_armhf\_standard.qcow2 17-Dec-2013 00:04 229M  
initrd.img-3.2.0-4-vexpress 17-Dec-2013 01:57 2.2M  
vmlinuz-3.2.0-4-vexpress 20-Sep-2013 18:33 1.9M [/color]

[color=#0040FF]To start Debian headless server:[/color]  
$ qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian\_wheezy\_armhf\_standard.qcow2 -append "root=/dev/mmcblk0p2" -m 512 -no-reboot -serial stdio

[color=#0040FF]To start Debian desktop:[/color]  
$ qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian\_wheezy\_armhf\_desktop.qcow2 -append "root=/dev/mmcblk0p2" -m 512 -no-reboot -serial stdio

- Hostname: debian-armel
- Root password: root
- User account: user
- User password: user

* * *

[color=#0000FF]  
To install Java 8 on debian ARM follow this link or download the attached pdf:[/color]  
[webupd8.org/2014/03/how-to-i ... ebian.html](http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html)

## user@debian-armhf:~$ java -version java version "1.8.0\_06" Java(TM) SE Runtime Environment (build 1.8.0\_06-b23) Java HotSpot(TM) Client VM (build 25.6-b23, mixed mode)

user@debian-armhf:~$ sudo ifconfig  
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56  
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0  
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1  
RX packets:2 errors:0 dropped:0 overruns:0 frame:0  
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0  
collisions:0 txqueuelen:1000  
RX bytes:1180 (1.1 KiB) TX bytes:684 (684.0 B)  
Interrupt:47

## lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

user@debian-armhf:~$ sudo route -n  
Kernel IP routing table  
Destination Gateway Genmask Flags Metric Ref Use Iface  
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0  
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

With this default subnet 10.0.2.x, we can update and install software on the Debian VM from the internet. But it's NOT possible to ssh or ftp from the host or any other machine. For that, we must assign static ip as explained below.  
[Install Java 8 on Debian ARM.pdf](https://us1.discourse-cdn.com/inductiveautomation/original/2X/5/5f8464509ea2d4fb38f972002ccccff61255d72c.pdf) (900 KB)

---

<div class="post-metadata">

**Author:** ![R.Alamsha](https://avatars.discourse-cdn.com/v4/letter/r/e5b9ba/32.png) [@R.Alamsha](https://forum.inductiveautomation.com/u/R.Alamsha)\
**Post date:** [November 7, 2014, 6:32pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/6 "2014-11-07T18:32:43Z")

</div>

[color=#0000FF]  
Establishing an ethernet/wifi bridge network between the Ubuntu host and the Debian ARM VM on QEMU:[/color]

This is very useful for transfering files between the host and the VM. You can follow these 2 links to understand it better.  
[mediaonfire.com/tech\_tips/QE ... rking.html](http://www.mediaonfire.com/tech_tips/QEMUNetworking.html)  
[blog.ericwhite.ca/articles/2011/ ... ss-bridge/](http://blog.ericwhite.ca/articles/2011/04/creating-a-wireless-bridge/)

# edit these 2 files on the Debian ARM VM:

## [color=#0000FF]1. $ sudo nano /etc/network/interfaces[/color]

# The loopback network interface

auto lo  
iface lo inet loopback

# This is for static ip. If you do NOT want static ip, uncomment the 2 lines. If you uncomment, DHCP will allocate 10.0.2.3.

#allow-hotplug eth0  
#iface eth0 inet dhcp  
################################

# This is for static ip. If you do NOT want static ip, comment out all the 8 lines.

## auto eth0 iface eth0 inet static address 192.168.1.80 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4

## [color=#0040FF]2. sudo nano /etc/resolv.conf[/color] nameserver 8.8.8.8 nameserver 8.8.4.4

For a quick setup of "tapo" bridge via "wlan0" on your laptop, just download the "QEMU wlan.zip" file, unzip and copy the "kvm\_networking" script file into the emulator folder, edit the user name and ip addresses as per the comments and enter the command

[color=#0000FF]On Ubuntu host:[/color]

$ sudo modprobe tun  
$ echo tun \>\> /etc/modules  
$ sudo apt-get install uml-utilities  
$ sudo kvm\_networking start

user@ubuntult:~/emulator$ ifconfig

eth0 Link encap:Ethernet HWaddr 00:1e:68:5f:e4:23  
UP BROADCAST MULTICAST MTU:1500 Metric:1  
RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
collisions:0 txqueuelen:1000  
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)  
Interrupt:17

lo Link encap:Local Loopback  
inet addr:127.0.0.1 Mask:255.0.0.0  
inet6 addr: ::1/128 Scope:Host  
UP LOOPBACK RUNNING MTU:65536 Metric:1  
RX packets:155919 errors:0 dropped:0 overruns:0 frame:0  
TX packets:155919 errors:0 dropped:0 overruns:0 carrier:0  
collisions:0 txqueuelen:0  
RX bytes:32861159 (32.8 MB) TX bytes:32861159 (32.8 MB)

tap0 Link encap:Ethernet HWaddr e2:09:90:1a:bf:05  
inet addr:192.168.1.100 Bcast:0.0.0.0 Mask:255.255.255.255  
inet6 addr: fe80::e009:90ff:fe1a:bf05/64 Scope:Link  
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1  
RX packets:579 errors:0 dropped:0 overruns:0 frame:0  
TX packets:688 errors:0 dropped:0 overruns:0 carrier:0  
collisions:0 txqueuelen:500  
RX bytes:74293 (74.2 KB) TX bytes:81324 (81.3 KB)

## wlan0 Link encap:Ethernet HWaddr 00:1f:3b:9c:a0:cd inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21f:3bff:fe9c:a0cd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:81656 errors:0 dropped:1 overruns:0 frame:0 TX packets:37944 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38401362 (38.4 MB) TX bytes:5183650 (5.1 MB)

[color=#0000FF]Launch Debian arm with tap0:[/color]

## user@ubuntult:~/emulator$ sudo qemu-system-arm -M vexpress-a9 -net tap,ifname=tap0,script=no,downscript=no -net nic -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -drive if=sd,file=debian\_wheezy\_armhf\_standard.qcow2 -append "root=/dev/mmcblk0p2" -m 512 -no-reboot -serial stdio

user@debian-armhf:~$ sudo ifconfig

eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56  
inet addr:192.168.1.80 Bcast:192.168.1.255 Mask:255.255.255.0  
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1  
RX packets:108 errors:0 dropped:0 overruns:0 frame:0  
TX packets:80 errors:0 dropped:0 overruns:0 carrier:0  
collisions:0 txqueuelen:1000  
RX bytes:12577 (12.2 KiB) TX bytes:9911 (9.6 KiB)  
Interrupt:47

## lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

[color=#0040FF]Now we can do ssh from the host and trasfer files between the host and VM using the "Filezilla FTP" software.[/color]

$ sudo ssh -X -Y [user@192.168.1.80](mailto:user@192.168.1.80)  
Change the "user" and IP address as per your etho "inet addr" as shown above.

With tap0 bridge on wlano, it may NOT be possible to connnet the Debian VM to the internet and update. In this case, we must remove "tap0" bridge and disable static ip on the VM by editing the "/etc/network/interfaces" file as explained above.

## To remove "tapo" bridge from the host: $ sudo kvm\_networking stop

If you want to emulate Raxpberry pi on QEMU, follow this link:  
[xecdesign.com/qemu-emulating-ras ... -easy-way/](http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/)  
[QEMU wlan.zip](https://us1.discourse-cdn.com/inductiveautomation/original/2X/a/a9b0df05e5618c83f4492a1e869f78d81ae5fd49.zip) (411 KB)

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 21, 2014, 5:01pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/7 "2014-11-21T17:01:49Z")

</div>

OK,  
I have a brand new Model B+ to play with your server. Its loaded from github.  
After sudo/bin/pi-server.sh start  
it shows waiting for about 5 seconds  
THEN

Raspberry Pi OPC-UA Server may have failed to start.  
Question: On a fresh raspbian install what are the pre-requisites?

Maybe I need to update or install something additional?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 21, 2014, 7:07pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/8 "2014-11-21T19:07:16Z")

</div>

You need to have Java 8 installed. I typically get it from the webupd8team repository: [webupd8.org/2012/09/install- … a-ppa.html](http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html)

If that’s not the issue then upload your log files and I can take a look.

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 21, 2014, 8:27pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/9 "2014-11-21T20:27:33Z")

</div>

looks like the java install did it!!

running: PID:24873  
I am assuming this is good??!!

I have to wait till Monday to give the PI an ip address that can connect to my main gateway.  
Or maybe I will take it home with me for the weekend!!!  
I did notice with the gpio.json that it does not exist in the config directory but the example does.  
Do I need to create one that correlates with my breadboard derived from the example?  
I am super excited to see this work!!

From the posts the security settings in the gateway also need modified.

I do realize that this only offers up the gpio.  
The main ignition gateway will ‘poll’ the pi for inputs and outputs right?  
Since it is opc ua I just create tags? or is that what the gpio.json is doing?  
When the gateway browses the rpi what ‘tags’ will be visible…

I guess I am over stimulate. I better get back to work. 🙂  
 ![:mrgreen:](https://us1.discourse-cdn.com/inductiveautomation/original/1X/d23659b203d2d24d394be983a52adb2fa6fe23d4.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 21, 2014, 8:52pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/10 "2014-11-21T20:52:17Z")

</div>

gpio.json will create tags based on its contents. You must configure the GPIO pins in this config file because it’s impossible for the serve to know ahead of time which pins you’re using and whether you’re using the for input or output, pull-up/pull-down, etc…

Once it’s configured, you should see the tags in Ignition’s OPC browser and just be able to drag them in.

Keep in mind this is just a toy server built on a snapshot of the development version of the new UA SDK I’m building… so what I’m saying is don’t be surprised if there are bugs ![:thumb_right:](https://us1.discourse-cdn.com/inductiveautomation/original/1X/2026e28c0c425034352c1b75807edf956adc75f4.gif ":thumb\_right:")

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 26, 2014, 4:19pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/11 "2014-11-26T16:19:52Z")

</div>

I have the eth0 setup but I have a couple more questions.  
What is the port value in the ignition configuration?  
I set the security policies to none so I should not have any username/password data to enter?

the wrapper log says 'unable to bind listener to any port in range 32000 to 32999 (cannot assign requested address)  
wrapper stopped.  
I created the gpoi.json which other than configuring the eth0 with an address is the only thing that has changed since it worked on last friday…

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 26, 2014, 5:46pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/12 "2014-11-26T17:46:56Z")

</div>

update-- after restarting my Pi the server appears to be running.  
PID 2324  
I still cannot get connected through the gateway- it faults immediately after configuring.  
I tried port 12685 and that seems to be what faults it. I also set the security to none.

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 26, 2014, 6:11pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/13 "2014-11-26T18:11:33Z")

</div>

error details from gateway—  
UAException: Bad\_NotConnected…  
com.inductiveautomation.xopc.client.stack.TCPClientChannel.stopIOAndShutdown(TCPClientChannel.java:303)com.inductiveautomation.xopc.client.stack.TCPClientChannel.notifyChannelError(TCPClientChannel.java:684)com.inductiveautomation.xopc.common.stack.UAChannel$1.deliver(UAChannel.java:790)com.inductiveautomation.xopc.common.stack.UAChannel$DeliverToDelegate.run(UAChannel.java:1592)com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$RunnableExecutor.execute(SerialExecutionQueue.java:100)com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$RunnableExecutor.execute(SerialExecutionQueue.java:97)com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$PollAndExecute.run(SerialExecutionQueue.java:75)java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)java.util.concurrent.FutureTask.run(Unknown Source)java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)java.lang.Thread.run(Unknown Source)

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 26, 2014, 6:14pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/14 "2014-11-26T18:14:11Z")

</div>

12:01:02 PM GetEndpoints TCPClientChannel Channel error, closing connection.

StatusCode[Severity=Bad, Subcode=Bad\_TcpSecureChannelUnknown]: Channel expired. Created at Fri Nov 21 18:08:41 CST 2014, lifetime=30000

this is from the system console

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [November 26, 2014, 8:05pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/15 "2014-11-26T20:05:07Z")

</div>

update—  
edited the name servers to point to my dns

I am able to browse the RPi but no gpio are showing up.  
After tailing the log it looks like gpio 3 does not support analog output like the example implies.  
I modified the config. also I created 2 json files.  
gpio.json and  
gpio-config.json

according to the git hub writeup it uses gpio-config.json.  
My problem could have been the analog bit. not sure…  
I also like that pi-server.sh has a “restart” command

---

<div class="post-metadata">

**Author:** ![tailfire](https://avatars.discourse-cdn.com/v4/letter/t/b5a626/32.png) [@tailfire](https://forum.inductiveautomation.com/u/tailfire)\
**Post date:** [December 1, 2014, 5:54pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/16 "2014-12-01T17:54:04Z")

</div>

I just wanted to give a quick update after the wonderful holiday! I hope everyone had a good thanksgiving.  
I did get the UA Server working on the raspberry Pi. I do have an application where I need to detect 5v and I thought the Pi or arduino would be suited for the task.  
I found the server to be a bit un-reliable. as Kevin stated it could be. I had several time out errors and issues throughout the log. It did successfully turn on an led on my test becnch however  
It does have some cool factor but is is far away from being a ‘reliable appliance type solution’.  
It will be nicely suited for my home automation projects but not useful at the widget factory.  
I was thinking about giving the modbus tcp route a try and there is a really nice codesys ui that is affordable.  
[store.codesys.com/codesys-contro … pi-sl.html](http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html)  
Its quite nice! It might serve as a nice modbus tcp solution that i could connect to ignition.  
Anyway; ❗  
I just wanted to thank Kevin for sharing and send happy holiday wishes to everyone!  
Also wanted to say thanks to Jordan Clark for being a dedicated Ignition enthusiast and helping so much on the forum!

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 1, 2014, 5:56pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/17 "2014-12-01T17:56:15Z")

</div>

Not surprised about the timeouts… the thing is super slow. I have some updates that hopefully I can push to github later this week that might improve the stability a bit. It will definitely cut the startup time to something reasonable, if nothing else.

---

<div class="post-metadata">

**Author:** ![svalebaek](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@svalebaek](https://forum.inductiveautomation.com/u/svalebaek)\
**Post date:** [August 24, 2015, 12:05pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/18 "2015-08-24T12:05:35Z")

</div>

Hello Kevin

First I would like to say that this is a very nice test edition of an OPC-UA server.  
Currently I'm am doing a project were I'm very keen to learn how to use OPC-UA servers on small embedded systems like a Raspberry Pi.

First off I would like to ask if I understand your setup right:

On a Raspberry Pi (installed with Linux Ubuntu Mate and Java8 ) I launch the PI-Server.sh as described in your "guide lines".

Then I have connect this Raspberry to a router in order to give the Raspberry a TCP IP Address.

When this done I should be able to locate (if everything is setup right) my GPIO inputs in Ignition Client on another e.g. Windows computer were I have Ignition installed.

Is that understand correctly?

If so, then I think I’m on the right track. Though I believe that my OPC-UA server doesn't startup correctly. I get following error when executing the $ sudo ./bin/pi-server.sh command in linux:

* * *

## $ c.i.opcua.sdk.server.OpcUaServer - Binding endpoint opc.tcp://0.0.0.0:12685/ [None/None] $ JVM exited unexpectedly. $ Aug 24, 2015 12:19:12 PM com.pi4j.util.NativeLibraryLoader loadLibraryFromResource $ WARNING: The temporary file already exists [/tmp/libpi4j.so]; attempting to delete it now. $ wiringPiSetup: mmap (GPIO) failed: Operation not permitted $ There were 5 failed launches in a row, each lasting less than 300 seconds. Giving up. $ There may be a configuration problem: please check the logs. $ \<-- Wrapper Stopped

I have attached my wrapper.log in windows format if you want to take a look at it. Maybe I get this error because I haven't changed the IP adress in the ./config/wrapper.confile ?! 😕

Secondly I would like to ask you, do you think that this IP-Server could run on an ARM9 processorlike the LEGO Mindstorm EV3?

Looking forward to here from you!  
[wrapper\_windows.log](https://us1.discourse-cdn.com/inductiveautomation/original/2X/d/dc2d6e50715a621f7e76c58d1d4349a2fe11dc1f.log) (67.3 KB)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 24, 2015, 1:13pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/19 "2015-08-24T13:13:07Z")

</div>

It looks like the pi4j library might be crashing. Give me a day or so and I’ll release a new build of pi-server that updates both the OPC-UA libraries and the pi4j stuff. This should mean it supports the new RPi 2 as well.

---

<div class="post-metadata">

**Author:** ![svalebaek](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@svalebaek](https://forum.inductiveautomation.com/u/svalebaek)\
**Post date:** [August 24, 2015, 1:15pm UTC](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290/20 "2015-08-24T13:15:43Z")

</div>

Great, sounds fantastic. It is actually also that version I’m using.

[Next page](https://forum.inductiveautomation.com/t/raspberry-pi-opc-ua-server/9290.md?page=2)
