Hello,
I've had some problems with evok in the past, which I was finally able to solve with a fresh OS installation and by adapting ports before installing Codesys (which I need on the Neuron S103 that I have).
See the linked discussion for further information:
https://forum.unipi.technology/topic/516/evok-high-cpu-usage/10
Recently however another problem appeared.
Evok (service) is running Nginx (service) is running, however I'm unable to access the I/Os through the web page neither throught the modbus server. Both were working for me.
As far as I can remember the only thing that was done during this time was the usual apd-get update / apt-get upgrade.
Unfortunately I cannot pinpoint exactly when the problem appeared because I don't need this functionality all the time.
To make thinfs clear, here is how the web page appears:

No inputs or outputs are accessible.
I'm supplying the information that might help shed some light on the situation if anyone can help
lsmod
Module Size Used by
can_raw 7426 0
can 31515 1 can_raw
w1_therm 6401 0
w1_gpio 4818 0
ds2482 4427 0
wire 32619 3 ds2482,w1_gpio,w1_therm
cn 5889 1 wire
at24 7587 0
spidev 7373 0
nvmem_core 13774 1 at24
rtc_ds1307 13908 0
hwmon 10552 1 rtc_ds1307
brcmfmac 292632 0
brcmutil 9863 1 brcmfmac
cfg80211 544545 1 brcmfmac
rfkill 20851 2 cfg80211
i2c_bcm2835 7167 0
spi_bcm2835 7596 0
bcm2835_gpiomem 3940 0
uio_pdrv_genirq 3923 0
fixed 3285 0
uio 10204 1 uio_pdrv_genirq
i2c_bcm2708 5994 0
i2c_dev 6913 0
ip_tables 13161 0
x_tables 20578 1 ip_tables
ipv6 408900 27
i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
70: -- -- -- -- -- -- -- --
ps -fax
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
3 ? S 0:00 \_ [ksoftirqd/0]
5 ? S< 0:00 \_ [kworker/0:0H]
6 ? S 0:00 \_ [kworker/u8:0]
7 ? S 0:00 \_ [rcu_sched]
8 ? S 0:00 \_ [rcu_bh]
9 ? S 0:00 \_ [migration/0]
10 ? S< 0:00 \_ [lru-add-drain]
11 ? S 0:00 \_ [cpuhp/0]
12 ? S 0:00 \_ [cpuhp/1]
13 ? S 0:00 \_ [migration/1]
14 ? S 0:00 \_ [ksoftirqd/1]
16 ? S< 0:00 \_ [kworker/1:0H]
17 ? S 0:00 \_ [cpuhp/2]
18 ? S 0:00 \_ [migration/2]
19 ? S 0:00 \_ [ksoftirqd/2]
21 ? S< 0:00 \_ [kworker/2:0H]
22 ? S 0:00 \_ [cpuhp/3]
23 ? S 0:00 \_ [migration/3]
24 ? S 0:00 \_ [ksoftirqd/3]
26 ? S< 0:00 \_ [kworker/3:0H]
27 ? S 0:00 \_ [kdevtmpfs]
28 ? S< 0:00 \_ [netns]
29 ? S 0:00 \_ [khungtaskd]
30 ? S 0:00 \_ [oom_reaper]
31 ? S< 0:00 \_ [writeback]
32 ? S 0:00 \_ [kcompactd0]
33 ? S< 0:00 \_ [crypto]
34 ? S< 0:00 \_ [bioset]
35 ? S< 0:00 \_ [kblockd]
36 ? S< 0:00 \_ [watchdogd]
38 ? S< 0:00 \_ [rpciod]
39 ? S< 0:00 \_ [xprtiod]
40 ? S 0:00 \_ [kswapd0]
41 ? S< 0:00 \_ [vmstat]
42 ? S< 0:00 \_ [nfsiod]
52 ? S< 0:00 \_ [kthrotld]
53 ? S< 0:00 \_ [bioset]
54 ? S< 0:00 \_ [bioset]
55 ? S< 0:00 \_ [bioset]
56 ? S< 0:00 \_ [bioset]
57 ? S< 0:00 \_ [bioset]
58 ? S< 0:00 \_ [bioset]
59 ? S< 0:00 \_ [bioset]
60 ? S< 0:00 \_ [bioset]
61 ? S< 0:00 \_ [bioset]
62 ? S< 0:00 \_ [bioset]
63 ? S< 0:00 \_ [bioset]
64 ? S< 0:00 \_ [bioset]
65 ? S< 0:00 \_ [bioset]
66 ? S< 0:00 \_ [bioset]
67 ? S< 0:00 \_ [bioset]
68 ? S< 0:00 \_ [bioset]
69 ? S< 0:00 \_ [bioset]
70 ? S< 0:00 \_ [bioset]
71 ? S< 0:00 \_ [bioset]
72 ? S< 0:00 \_ [bioset]
73 ? S< 0:00 \_ [bioset]
74 ? S< 0:00 \_ [bioset]
75 ? S< 0:00 \_ [bioset]
76 ? S< 0:00 \_ [bioset]
77 ? S< 0:00 \_ [iscsi_eh]
78 ? S< 0:00 \_ [dwc_otg]
80 ? S< 0:00 \_ [DWC Notificatio]
81 ? S< 0:00 \_ [VCHIQ-0]
82 ? S< 0:00 \_ [VCHIQr-0]
83 ? S< 0:00 \_ [VCHIQs-0]
84 ? S 0:00 \_ [VCHIQka-0]
85 ? S< 0:00 \_ [SMIO]
87 ? S 0:00 \_ [irq/92-mmc1]
90 ? S< 0:00 \_ [bioset]
91 ? S 0:01 \_ [mmcqd/0]
93 ? S 0:00 \_ [jbd2/mmcblk0p2-]
94 ? S< 0:00 \_ [ext4-rsv-conver]
96 ? S< 0:00 \_ [ipv6_addrconf]
147 ? S 0:00 \_ [kworker/3:2]
212 ? S 0:00 \_ [spi0]
247 ? S< 0:00 \_ [cfg80211]
249 ? S< 0:00 \_ [brcmf_wq/mmc1:0]
250 ? S 0:00 \_ [brcmf_wdog/mmc1]
285 ? S 0:00 \_ [w1_bus_master1]
479 ? S< 0:00 \_ [kworker/3:1H]
616 ? S< 0:00 \_ [kworker/1:1H]
721 ? S 0:00 \_ [kworker/1:0]
722 ? S< 0:00 \_ [kworker/0:1H]
893 ? S 0:00 \_ [kworker/1:1]
904 ? S 0:00 \_ [kworker/3:0]
909 ? S< 0:00 \_ [kworker/2:1H]
926 ? S 0:00 \_ [kworker/0:0]
991 ? S 0:00 \_ [kworker/0:1]
1092 ? S 0:00 \_ [kworker/u8:1]
1100 ? S 0:00 \_ [kworker/2:0]
1112 ? S 0:00 \_ [kworker/2:2]
1118 ? S 0:00 \_ [kworker/2:1]
1 ? Ss 0:02 /sbin/init
119 ? Ss 0:00 /lib/systemd/systemd-journald
152 ? Ss 0:00 /lib/systemd/systemd-udevd
317 ? Ssl 0:00 /lib/systemd/systemd-timesyncd
359 ? Ss 0:00 /usr/sbin/cron -f
360 ? Ss 0:00 avahi-daemon: running [S103-sn344.local]
390 ? S 0:00 \_ avahi-daemon: chroot helper
362 ? Ss 0:00 /lib/systemd/systemd-logind
368 ? Ss 0:01 /opt/neuron-bin/neuron_tcp_server -p 502 --check-firmware
369 ? Ss 0:00 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event*
375 ? Ss 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
393 ? Ssl 0:00 /usr/sbin/rsyslogd -n
395 ? SNsl 1:04 node-red
413 ? Ssl 0:01 /sbin/apcupsd
469 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux
486 ? Ss 0:00 /sbin/netplugd -p /var/run/netplugd.pid
492 ? S 0:01 /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSControl.cfg
505 ? Sl 8:07 \_ /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSControl.cfg
497 ? Ss 0:00 /usr/sbin/sshd -D
741 ? Ss 0:00 \_ sshd: pi [priv]
756 ? S 0:01 | \_ sshd: pi@pts/0
759 pts/0 Ss 0:00 | \_ -bash
775 pts/0 S+ 1:33 | \_ htop
782 ? Ss 0:00 \_ sshd: pi [priv]
792 ? S 0:00 \_ sshd: pi@pts/1
795 pts/1 Ss 0:01 \_ -bash
1119 pts/1 R+ 0:00 \_ ps -fax
598 ? Ss 0:00 /sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
746 ? Ss 0:00 /lib/systemd/systemd --user
749 ? S 0:00 \_ (sd-pam)
977 ? Ssl 0:22 /usr/bin/python /opt/evok/evok.py
979 ? Z 0:00 \_ [python] <defunct>
986 ? Ss 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
987 ? S 0:00 \_ nginx: worker process
988 ? S 0:00 \_ nginx: worker process
989 ? S 0:00 \_ nginx: worker process
990 ? S 0:00 \_ nginx: worker process
/boot/config.txt (having the dtoverlay=neuron-spu-new was not problematic during this time .. I could comment it out though if that would welp for some test ?)
gpu_mem=32
dtparam=i2c_arm=on,watchdog=on
dtoverlay=i2c-rtc,mcp7941x
# disable it on Unipi 1.x (gpio24, 25!)
dtoverlay=neuron-spi-new
dtoverlay=neuronee
#dtoverlay=unipiee
#Enable kernel driver for I2c OneWire Master
dtoverlay=ds2482
#remove dependency of spi-clock on system freq
core_freq=250
#BT enabled on RPi3 swaps UART (ttyAMA) and miniUART ttyS0.
dtoverlay=pi3-disable-bt
#WIFI disabled
#dtoverlay=pi3-disable-wifi
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
#dtparam=audio=off
eeprom verification
~ $ sudo grep S103 /sys/bus/i2c/devices/1-0057/eeprom
Binary file /sys/bus/i2c/devices/1-0057/eeprom matches
This time however I have a lot of errors in /var/log/evok.log (all the same thought)
2018-01-21 22:09:32,851 - evok - ERROR - 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 217, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan'
2018-01-21 22:09:33,354 - evok - ERROR - 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 217, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan'
2018-01-21 22:09:33,857 - evok - ERROR - 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 217, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan'
2018-01-21 22:09:34,360 - evok - ERROR - 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 217, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan'
2018-01-21 22:09:34,862 - evok - ERROR - 'NoneType' object has no attribute 'do_scan'
Traceback (most recent call last):
File "/opt/evok/neuron.py", line 217, in scan_boards
yield self.modbus_cache_map.do_scan()
AttributeError: 'NoneType' object has no attribute 'do_scan'
It seems that the python script fails in finding the "boards" for the i/o, but I'm not able to find out why.
Please help, I have a running application on this board and have to connect the I/O signals to it, but I came to a stop with this problem.