Coder Social home page Coder Social logo

picontrol's People

Contributors

iluminat23 avatar jaapcrezee avatar jruelli avatar l1k avatar linosanfilippo-kunbus avatar naruxde avatar nbuchwitz avatar ramigspo avatar tboehler1 avatar xeduardx avatar zhan-kunbus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

picontrol's Issues

ksz8851ProcessInterrupt: serious error

Hello,

We are facing a ksz8851ProcessInterrupt: serious error using KUNBUS DeviceNet Gateway.
In /var/log/kern.log, we have the following entries (and both Power and MS LEDs turn flashing red) :

Dec  4 00:12:27 RevPi100257 kernel: [36405.378660] piControl: Module L: Link check   Module R: run no data
Dec  4 00:12:27 RevPi100257 kernel: [36405.383607] piControl: Module L: Link check   Module R: run
Dec  4 00:14:27 RevPi100257 kernel: [36525.487958] piControl: 0: ksz8851ProcessInterrupt: serious error 0xffff
Dec  4 00:14:27 RevPi100257 kernel: [36525.488379] piControl: ksz8851PacketRead(0) wrong chip id 33224 != 34930
Dec  4 00:14:27 RevPi100257 kernel: [36525.492918] piControl: Module L: Link check   Module R: Link check
Dec  4 00:14:27 RevPi100257 kernel: [36525.742946] piControl: 0: ksz8851ProcessInterrupt: serious error 0x226
Dec  4 00:14:27 RevPi100257 kernel: [36525.742956] piControl: ksz8851ReInit(0)
Dec  4 00:14:29 RevPi100257 kernel: [36527.327958] piControl: ksz8851ReInit(0)
Dec  4 00:14:31 RevPi100257 kernel: [36529.417966] piControl: ksz8851ReInit(0)
Dec  4 00:14:33 RevPi100257 kernel: [36531.507967] piControl: ksz8851ReInit(0)
Dec  4 00:14:35 RevPi100257 kernel: [36533.597978] piControl: ksz8851ReInit(0)

We use a RevPi Core 3 upgraded with Linux Stretch (https://revolution.kunbus.de/shop/de/stretch).

Best,

Make config.rsc friendlier to use for interfacing

Hi,

I happen to have to parse the config.rsc for the groundwork to a bigger project with RevPi's I'm involved with, and could not help but notice some inconsistencies and potential compatibility risks along the way of figuring out what is what and how the whole fits together.

  • Is there any reason to not directly reflect the structures in piControl.h in the serialized JSON? There are JSON fields that pack multiple struct fields, that then have to be "stringly interpreted".
  • I notice some discrepancies between the types in the struct declarations and the JSON equivalent being used. Like the index of a particular SEntryInfo entry, inlined the declared structure as u16, yet outside as key in the JSON as string.
  • Also no keys at all for SEntryInfo's at all. Would break at any position shifting change done to the structure.

Now all this might at first glance seem as nitpicking, but what I'm trying to say is that the format itself depends a lot on a custom tailored state machine to parse instead of encoding the information declaratively as probably intended. This makes it hard to see the JSON itself as a solid point of interfacing.
We use Rust, which essentially requires us in this case to basically imitate the piConfig.c state machine. If the structures where purely declarative (no additional intelligence in the FSM) we would get everything for free ^^.
Another way around might be providing an officially supported serialization/deserialization functionality of the config.rsc as a dynamic library for other programs to then wrap. Dynamic because it is critical for a wrapping program to break on breaking changes. Statically linking in the piConfig.c/h would mean potentially undefined behavior on upstream introducing breaking changes.

Any thoughts on this?

Best Regards,
~lwk

Is this project alive?

I got to know Revolution Pi last week. I'm committed to replace my Siemens PLC. However, I can't find where can I get support. There is no eMail, phone number or even a chat channel. Forum didn't allow my registration. Is this project ongoing?

piControl: spi_busnum_to_master(0) returned NULL

Hi,

piControl module fails to load at boot time. Tried uploading it at manually, even then it fails. Here are the kernel logs and stack trace.

Feb 27 05:51:45 RevPi kernel: [ 3.542413] piControl: loading out-of-tree module taints kernel.
Feb 27 05:51:45 RevPi kernel: [ 3.551875] usb 1-1.5.1: new high-speed USB device number 6 using dwc_otg
Feb 27 05:51:45 RevPi kernel: [ 3.552709] piControl: built: Mon Feb 18 12:54:08 IST 2019
Feb 27 05:51:45 RevPi kernel: [ 3.552724] piControl: RevPi Core
Feb 27 05:51:45 RevPi kernel: [ 3.552731] piControl: MAJOR-No. : 244
Feb 27 05:51:45 RevPi kernel: [ 3.553145] piControl: MAJOR-No. : 244 MINOR-No. : 0
Feb 27 05:51:45 RevPi kernel: [ 3.595596] piControl: vfs_read returned 0: b97bb700, 1297
Feb 27 05:51:45 RevPi kernel: [ 3.598589] piControl: 1 devices found
Feb 27 05:51:45 RevPi kernel: [ 3.601389] piControl: 8 entries in total
Feb 27 05:51:45 RevPi kernel: [ 3.607377] piControl: cl-comp: 0 addr 6 bit ff len 8
Feb 27 05:51:45 RevPi kernel: [ 3.611008] uart-pl011 3f201000.serial: no DMA platform data
Feb 27 05:51:45 RevPi kernel: [ 3.616953] piControl: filp_open -1194221568
Feb 27 05:51:45 RevPi kernel: [ 3.619517] piControl: ksz8851HardwareReset
Feb 27 05:51:45 RevPi kernel: [ 3.692669] usb 1-1.5.1: New USB device found, idVendor=0424, idProduct=ec00
Feb 27 05:51:45 RevPi kernel: [ 3.695449] usb 1-1.5.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Feb 27 05:51:45 RevPi kernel: [ 3.699298] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Feb 27 05:51:45 RevPi kernel: [ 3.701899] smsc95xx v1.0.5
Feb 27 05:51:45 RevPi kernel: [ 3.761926] piControl: ksz8851HardwareReset
Feb 27 05:51:45 RevPi kernel: [ 3.818941] smsc95xx 1-1.5.1:1.0 eth1: register 'smsc95xx' at usb-3f980000.usb-1.5.1, smsc95xx USB 2.0 Ethernet, 46:19:58:a9:a3:c2
Feb 27 05:51:45 RevPi kernel: [ 3.901894] piControl: spi_busnum_to_master(0) returned NULL
Feb 27 05:51:45 RevPi kernel: [ 3.901902] piControl: MODGATECOM_error fatal 0x00150000
Feb 27 05:51:45 RevPi kernel: [ 3.901909] piControl: MODGATECOM_init error 0x150000
Feb 27 05:51:45 RevPi kernel: [ 3.901919] piControl: filp_close -1194221568
Feb 27 05:51:45 RevPi kernel: [ 3.901967] piControl: Remove MINOR-No. : 0

Stack Trace:

Feb 27 06:17:44 RevPi kernel: [ 1548.058211] piControl: built: Mon Feb 18 12:54:08 IST 2019
Feb 27 06:17:44 RevPi kernel: [ 1548.058226] piControl: RevPi Core
Feb 27 06:17:44 RevPi kernel: [ 1548.058233] piControl: MAJOR-No. : 242
Feb 27 06:17:44 RevPi kernel: [ 1548.058463] piControl: MAJOR-No. : 242 MINOR-No. : 0
Feb 27 06:17:44 RevPi kernel: [ 1548.059022] piControl: vfs_read returned 0: b7e80000, 1297
Feb 27 06:17:44 RevPi kernel: [ 1548.059044] piControl: 1 devices found
Feb 27 06:17:44 RevPi kernel: [ 1548.059048] piControl: 8 entries in total
Feb 27 06:17:44 RevPi kernel: [ 1548.059074] piControl: cl-comp: 0 addr 6 bit ff len 8
Feb 27 06:17:44 RevPi kernel: [ 1548.059315] Unable to handle kernel paging request at virtual address 7f10a04c
Feb 27 06:17:44 RevPi kernel: [ 1548.061795] pgd = ab034000
Feb 27 06:17:44 RevPi kernel: [ 1548.064438] [7f10a04c] *pgd=38c30811, *pte=00000000, *ppte=00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067675] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
Feb 27 06:17:44 RevPi kernel: [ 1548.067728] Modules linked in: piControl(O+) xt_conntrack iptable_filter xt_REDIRECT nf_nat_redirect xt_tcpudp iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack evdev joydev bcm2835_gpiomem ftdi_sio usbserial uio_pdrv_genirq uio ti_dac082s085 mcp320x iio_mux mux_gpio mux_core fixed gpio_74x164 spi_bcm2835aux spi_bcm2835 gpio_max3191x industrialio crc8 i2c_dev ip_tables x_tables ipv6
Feb 27 06:17:44 RevPi kernel: [ 1548.067736] CPU: 0 PID: 2195 Comm: modprobe Tainted: G O 4.9.76-rt60-v7+ #1
Feb 27 06:17:44 RevPi kernel: [ 1548.067737] Hardware name: BCM2835
Feb 27 06:17:44 RevPi kernel: [ 1548.067740] task: b7fd6c80 task.stack: ab060000
Feb 27 06:17:44 RevPi kernel: [ 1548.067753] PC is at gpiod_add_lookup_table+0x3c/0x50
Feb 27 06:17:44 RevPi kernel: [ 1548.067756] LR is at 0x0
Feb 27 06:17:44 RevPi kernel: [ 1548.067760] pc : [<8049b1c0>] lr : [<00000000>] psr: 60000013
Feb 27 06:17:44 RevPi kernel: [ 1548.067760] sp : ab061d40 ip : 00000000 fp : ab061d54
Feb 27 06:17:44 RevPi kernel: [ 1548.067763] r10: 7f214c00 r9 : 00000000 r8 : 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067766] r7 : 7f214c78 r6 : 7f22a558 r5 : 80d0d778 r4 : 7f21704c
Feb 27 06:17:44 RevPi kernel: [ 1548.067769] r3 : 80c52640 r2 : 7f10a04c r1 : 80c526e0 r0 : 80d0d778
Feb 27 06:17:44 RevPi kernel: [ 1548.067774] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Feb 27 06:17:44 RevPi kernel: [ 1548.067777] Control: 10c5383d Table: 2b03406a DAC: 00000055
Feb 27 06:17:44 RevPi kernel: [ 1548.067780] Process modprobe (pid: 2195, stack limit = 0xab060210)
Feb 27 06:17:44 RevPi kernel: [ 1548.067785] Stack: (0xab061d40 to 0xab062000)
Feb 27 06:17:44 RevPi kernel: [ 1548.067791] 1d40: 7f229cf8 00000000 ab061d84 ab061d58 7f20ed20 8049b190 ab061d84 7f214c78
Feb 27 06:17:44 RevPi kernel: [ 1548.067797] 1d60: 7f216cf8 7f216cec 7f214c78 7f216cf8 7f216cec 7f216c78 ab061dbc ab061d88
Feb 27 06:17:44 RevPi kernel: [ 1548.067802] 1d80: 7f23237c 7f20ecc0 7f216cec 00000000 b7fd6c80 7f217180 00000001 b7df0dc0
Feb 27 06:17:44 RevPi kernel: [ 1548.067807] 1da0: 7f217180 7f232000 00000000 b7e4cf48 ab061e3c ab061dc0 8010186c 7f23200c
Feb 27 06:17:44 RevPi kernel: [ 1548.067813] 1dc0: 80b7b220 397ea000 ab061e1c ab060000 b7f66480 bab7fa58 8025aac4 b9c01e40
Feb 27 06:17:44 RevPi kernel: [ 1548.067818] 1de0: ab061df8 00048c54 ab061e2c ab061df8 8026b1dc 80215160 00000001 8025aac4
Feb 27 06:17:44 RevPi kernel: [ 1548.067823] 1e00: 00000001 a0000013 b7f66480 b9c01e40 00000001 7f217180 00000001 b7df0dc0
Feb 27 06:17:44 RevPi kernel: [ 1548.067829] 1e20: 7f217180 00000001 b7e4cf64 b7e4cf48 ab061e64 ab061e40 8021519c 8010182c
Feb 27 06:17:44 RevPi kernel: [ 1548.067834] 1e40: ab061e64 ab061e50 8025abb8 ab061f3c 00000001 b7e4cf40 ab061f14 ab061e68
Feb 27 06:17:44 RevPi kernel: [ 1548.067839] 1e60: 801ad280 8021513c 7f21718c 00007fff 7f217180 801aa594 00000003 7f238938
Feb 27 06:17:44 RevPi kernel: [ 1548.067845] 1e80: 7f21718c 7f22e02c 7f22a8cc 00000000 7f2171c8 bcb6146c ab061ee4 ab061ea8
Feb 27 06:17:44 RevPi kernel: [ 1548.067850] 1ea0: 80284dcc 80421aa4 00000003 00000000 00000000 00000000 00000000 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067854] 1ec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067859] 1ee0: 00000000 00000000 7fffffff 7fffffff 00000000 00000000 00000003 0002cd30
Feb 27 06:17:44 RevPi kernel: [ 1548.067865] 1f00: ab060000 00000000 ab061fa4 ab061f18 801ad99c 801ab5fc 7fffffff 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067870] 1f20: 00000003 801708f4 ab061f74 bc878000 002e9c14 00000000 00000002 bc878000
Feb 27 06:17:44 RevPi kernel: [ 1548.067875] 1f40: 002e9c14 bcb6146c bcb6128c bcabacf4 0002a8cc 0002e02c 00000000 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067880] 1f60: 00000000 00006938 0000002e 0000002f 00000017 0000001b 00000010 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067886] 1f80: 7e8a43e8 76ecae88 00000000 7e8a43e8 0000017b 80107f24 00000000 ab061fa8
Feb 27 06:17:44 RevPi kernel: [ 1548.067891] 1fa0: 80107d80 801ad90c 76ecae88 00000000 00000003 0002cd30 00000000 00249f70
Feb 27 06:17:44 RevPi kernel: [ 1548.067897] 1fc0: 76ecae88 00000000 7e8a43e8 0000017b 00040000 000139bc 00000000 00249f70
Feb 27 06:17:44 RevPi kernel: [ 1548.067902] 1fe0: 7e8a43c0 7e8a43b0 0002212c 76eb8960 60000010 00000003 00000000 00000000
Feb 27 06:17:44 RevPi kernel: [ 1548.067953] [<8049b1c0>] (gpiod_add_lookup_table) from [<7f20ed20>] (revpi_core_init+0x6c/0x4a0 [piControl])
Feb 27 06:17:44 RevPi kernel: [ 1548.068038] [<7f20ed20>] (revpi_core_init [piControl]) from [<7f23237c>] (piControlInit+0x37c/0x410 [piControl])
Feb 27 06:17:44 RevPi kernel: [ 1548.068079] [<7f23237c>] (piControlInit [piControl]) from [<8010186c>] (do_one_initcall+0x4c/0x188)
Feb 27 06:17:44 RevPi kernel: [ 1548.068087] [<8010186c>] (do_one_initcall) from [<8021519c>] (do_init_module+0x6c/0x1e0)
Feb 27 06:17:44 RevPi kernel: [ 1548.068097] [<8021519c>] (do_init_module) from [<801ad280>] (load_module+0x1c90/0x21cc)
Feb 27 06:17:44 RevPi kernel: [ 1548.068105] [<801ad280>] (load_module) from [<801ad99c>] (SyS_finit_module+0x9c/0xac)
Feb 27 06:17:44 RevPi kernel: [ 1548.068113] [<801ad99c>] (SyS_finit_module) from [<80107d80>] (ret_fast_syscall+0x0/0x1c)
Feb 27 06:17:44 RevPi kernel: [ 1548.068119] Code: e59320a4 e28310a0 e58340a4 e8840006 (e5824000)
Feb 27 06:17:44 RevPi kernel: [ 1548.274399] ---[ end trace 0000000000000002 ]---

I have customised raspbian stretch lite using imagebakery scripts, and loading kernel from u-boot loader. I also tried building piControl kernel module source using Kernelbakery script. None of the piTest command works, including setting RevPiLEDs. Let me know if you need more details.

Recv timouts using balena image

Hi guys.

I have been using your hardware for quite some time, and have recently migrated to the balena image, built here: https://github.com/balena-os/balena-revpi . But when using that image my dmesg looks something like this:

[83045.206105] piControl: recv timeout: 9/33
[83297.207187] piControl: recv timeout: 9/33
[83646.708287] piControl: recv timeout: 25/33
[83659.208381] piControl: recv timeout: 1/33
[84020.219527] piControl: recv timeout: 1/33
[84501.211413] piControl: recv timeout: 1/33
[84854.842933] piControl: recv timeout: 1/33
[84854.843538] piControl: dev 32: recv ioprotocol crc error 39/18269406
[84854.862840] piControl: recv timeout: 2/33
[84965.713352] piControl: recv timeout: 33/33
[85221.724425] piControl: recv timeout: 33/33
[85326.714902] piControl: recv timeout: 9/33
[85326.734856] piControl: recv timeout: 24/33
[85584.225692] piControl: recv timeout: 17/33
[85824.716497] piControl: recv timeout: 9/33
[85936.176896] piControl: recv timeout: 7/33
[85945.226945] piControl: recv timeout: 25/33
[85945.246935] piControl: recv timeout: 8/33
[86063.717479] piControl: recv timeout: 1/33
[86289.438469] piControl: recv timeout: 17/33
[86424.719090] piControl: recv timeout: 1/33
[86534.719496] piControl: recv timeout: 9/33
[86545.089612] piControl: recv timeout: 1/33
[86903.031099] piControl: recv timeout: 9/33
[87148.572198] piControl: recv timeout: 6/33
[87148.572774] piControl: dev 32: recv ioprotocol crc error 40/18763378
[87148.576924] piControl: dev 32: recv ioprotocol crc error 41/18763378
[87268.722737] piControl: recv timeout: 9/33
[87613.224195] piControl: recv timeout: 33/33
[87733.454690] piControl: recv timeout: 9/33
[87738.224732] piControl: recv timeout: 25/33
[87738.244662] piControl: recv timeout: 16/33
[87749.414831] piControl: recv timeout: 25/33
[88113.986283] piControl: recv timeout: 33/33
[88406.227552] piControl: recv timeout: 1/33
[88816.449190] piControl: recv timeout: 17/33

And continues like that.

Do you have any idea about why all of these timeouts occur? The exact same hardware works as expected with your stretch build.

Is this something that could cause issues? I am experiencing random wrong measurements in the process image, but i cannot tell if they are related to this.

wrong DO offsets for several expansion modules

I guess there's an issue with offset asignement. I have a revpi core. When I configure a DO expansion module and then run piTest -d I get:

Address: 31 module type: 98 (0x62) RevPi DO V1.5
Module is present
     input offset: 0 length: 70
    output offset: 70 length: 18

And every digital output works fine.

When I add a DI expansion module (and configurate it) I get:

Address: 31 module type: 98 (0x62) RevPi DO V1.5
Module is present
     input offset: 0 length: 70
    output offset: 66 length: 18

And digital inputs work fine but every output don't work. No led errors, no configuration errors. Nothing. Just these wrong offsets and the only solution at this point is to reflash the sd card. Removing DI and reconfiguration is not enough.

At this point, some strange things happen. For example see offsets here:

pi@RevPi69931:~ $ piTest -w O_1,1
Set bit 0 on byte at offset 66. Value 1
pi@RevPi69931:~ $ piTest -w O_1,0
Set bit 0 on byte at offset 66. Value 0
pi@RevPi69931:~ $ piTest -w O_2,0
Set bit 1 on byte at offset 67. Value 0
pi@RevPi69931:~ $ piTest -w O_3,0
Set bit 2 on byte at offset 68. Value 0
pi@RevPi69931:~ $ piTest -w O_4,0
Set bit 3 on byte at offset 69. Value 0
pi@RevPi69931:~ $ piTest -w O_5,0
Set bit 4 on byte at offset 70. Value 0
pi@RevPi69931:~ $ piTest -w O_6,0
Set bit 5 on byte at offset 70. Value 0
pi@RevPi69931:~ $ piTest -w O_6,1
Set bit 5 on byte at offset 70. Value 1

And even O_6 and beyond are correct in offsets, no digital output work after DI configuration.

On reboot, revpi launch a boot message of reconfiguring these offsets. Seems that something is wrong there.

Revolution PI Connect recognized as PI Compact

I'm using a custom image and compiled piControl module from source.

When I test it with "piTest -d", it recognizes as "RevPi Compact V1.0".
I'm using RevolutionPi kernel an piControl in "revpi-5.10" branch.

What may be wrong?
Best regards,
Luan

Documentation anywhere?

Hi,

I'm really impressed by the open nature of this project "RevolutionPi"

You are also providing a Maker-Set in a DIN-rail housing in your web shop. To make this really useful, one has to understand the communication protocol on the PiBridge.

Do you have any kind of documentation for this kernel-module? There are many abbrevations, which one only can guess, what they mean.

Especially interesting would be some hints, where to implement a new module type, and if this source code can also be used on the module-side for its microcontrollers firmware.

Big Thumbs Up and kind regards from Austria,
Karl

Compilation fails for 64 bit balena-OS for revpi-connect-s [REVPI-2894]

Hello all,
We are trying to make revpi connect s device an officially supported balena OS device and are working on a PR here balena-os/balena-raspberrypi#913:

We are building a 64 bit OS image and the compilation of PiControl fails with the follow errors:
Any idea on how to fix it?

ERROR: picontrol-1.0-r0 do_compile: oe_runmake failed
ERROR: picontrol-1.0-r0 do_compile: ExecutionError('/home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/temp/run.do_compile.2088370', 1, None, None)
ERROR: Logfile of failure stored in: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/temp/log.do_compile.2088370
Log data follows:
| DEBUG: Executing shell function do_compile  
| NOTE: make -j 8 KERNEL_SRC=/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source KDIR=/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source K
ERNEL_PATH=/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source KERNEL_VERSION=5.10.120-rt70-v8 CC=aarch64-poky-linux-gcc   -fuse-ld=bfd -fmacro-prefix-map=/home/ubuntu/bal
ena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0=/usr/src/debug/picontrol/1.0-r0                      -fdebug-prefix-map=/home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_con
nect_s-poky-linux/picontrol/1.0-r0=/usr/src/debug/picontrol/1.0-r0                      -fdebug-prefix-map=/home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/recip
e-sysroot=                      -fdebug-prefix-map=/home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/recipe-sysroot-native=  -fdebug-prefix-map=/home/ubuntu/balen
a-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source=/usr/src/kernel -fdebug-prefix-map=/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-build-artifacts=/usr/src/
kernel LD=aarch64-poky-linux-ld.bfd   AR=aarch64-poky-linux-ar  O=/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-build-artifacts KBUILD_EXTRA_SYMBOLS=
| echo "#define COMPILETIME \""`date`"\"" > compiletime.h
| make ARCH=arm CROSS_COMPILE="aarch64-poky-linux- arm-linux-gnueabihf-" -C /home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source M=/home/ubuntu/balena-raspberrypi/build/tmp
/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git  modules
| make[1]: Entering directory '/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source'
| make[2]: Entering directory '/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-build-artifacts'
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piControlMain.o
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piIOComm.o
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piDIOComm.o
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piAIOComm.o
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/RevPiDevice.o
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/json.o
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piConfig.o
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piControlMain.o] Error 1  
| make[3]: *** Waiting for unfinished jobs....
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piIOComm.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
|   CC [M]  /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/RS485FwuCommand.o
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/RevPiDevice.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized argument in option '-mabi=apcs-gnu'
| aarch64-poky-linux-gcc: note: valid arguments to '-mabi=' are: ilp32 lp64
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piAIOComm.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mapcs'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piDIOComm.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/json.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-mno-sched-prolog'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/piConfig.o] Error 1
| aarch64-poky-linux-gcc: error: unrecognized command-line option '-msoft-float'
| make[3]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/scripts/Makefile.build:287: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git/RS485FwuCommand.o] Error 1
| make[2]: *** [/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source/Makefile:1846: /home/ubuntu/balena-raspberrypi/build/tmp/work/revpi_connect_s-poky-linux/picontrol/1.0-r0/git] Error 2
| make[2]: Leaving directory '/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-build-artifacts'
| make[1]: Leaving directory '/home/ubuntu/balena-raspberrypi/build/tmp/work-shared/revpi-connect-s/kernel-source'
| make[1]: *** [Makefile:185: __sub-make] Error 2
| make: *** [Makefile:44: all] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.  
ERROR: Task (/home/ubuntu/balena-raspberrypi/build/../layers/meta-balena-raspberrypi/recipes-kernel/picontrol/picontrol.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4385 tasks of which 4376 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/ubuntu/balena-raspberrypi/build/../layers/meta-balena-raspberrypi/recipes-kernel/picontrol/picontrol.bb:do_compile
Summary: There were 2 ERROR messages, returning a non-zero exit code.
[000000057][LOG]Build for revpi-connect-s failed. Check failed log in build/tmp/log/cooker/revpi-connect-s .
[000000057][LOG]If build for revpi-connect-s succeeded, final image should have been generated here:
[000000057][LOG]   build/tmp/deploy/images/revpi-connect-s/balena-image-revpi-connect-s.balenaos-img
[000000057][LOG]Done.

Any plans on supporting linux-5.4.y (or later)?

See title ;).

I am trying to get this module compiled for a linux-5.4.y kernel (or newer, 5.10.y is now the default RPI tree).
Or even better, can I use external modules (like the DIO) without having a kernel driver? I am not interested in RT, I just want it to work with a vanilla kernel preferably from userspace only.

kernel NULL pointer dereference

I was updated to new kernel 5.10.103-rt62-v7 and now my application triggers a kernel fault immediatly

[   10.581949] ------------[ cut here ]------------
[   10.581960] WARNING: CPU: 3 PID: 316 at lib/refcount.c:25 refcount_warn_saturate+0x108/0x174
[   10.581986] refcount_t: addition on 0; use-after-free.
[   10.581989] Modules linked in: piControl(O) ad5446 ti_dac082s085 mcp320x iio_mux mux_gpio mux_core gpio_74x164 spi_bcm2835aux gpio_max3191x crc8 industrialio cdc_acm snd_bcm2835(C) bcm2835_codec(C) snd_pcm bcm2835_v4l2(C) v4l2_mem2mem bcm2835_isp(C) bcm2835_mmal_vchiq(C) videobuf2_dma_contig videobuf2_vmalloc videobuf2_memops snd_timer videobuf2_v4l2 videobuf2_common snd videodev vc_sm_cma(C) mc uio_pdrv_genirq uio sch_fq_codel drm drm_panel_orientation_quirks backlight ip_tables x_tables ipv6 ks8851_spi ks8851_common eeprom_93cx6 spi_bcm2835 fixed
[   10.582188] CPU: 0 PID: 316 Comm: plcdatasource Tainted: G         C O      5.10.103-rt62-v7 #1
[   10.582197] Hardware name: BCM2835
[   10.582201] Backtrace: 
[   10.582206] [<80a55220>] (dump_backtrace) from [<80a555ac>] (show_stack+0x20/0x24)
[   10.582224]  r7:80feace4 r6:00000000 r5:60000113 r4:80feace4
[   10.582227] [<80a5558c>] (show_stack) from [<80a59918>] (dump_stack+0xbc/0xe8)
[   10.582239] [<80a5985c>] (dump_stack) from [<80120010>] (__warn+0xfc/0x114)
[   10.582257]  r9:00000009 r8:80654c98 r7:00000019 r6:00000009 r5:80654c98 r4:80d5357c
[   10.582260] [<8011ff14>] (__warn) from [<80a55c40>] (warn_slowpath_fmt+0xa4/0xc0)
[   10.582273]  r7:00000019 r6:80d5357c r5:80f07808 r4:80d5358c
[   10.582276] [<80a55ba0>] (warn_slowpath_fmt) from [<80654c98>] (refcount_warn_saturate+0x108/0x174)
[   10.582291]  r9:aed2e000 r8:00004b0c r7:80f07808 r6:00000000 r5:81f0000c r4:81f00000
[   10.582294] [<80654b90>] (refcount_warn_saturate) from [<8014775c>] (kthread_stop+0x1cc/0x284)
[   10.582308] [<80147590>] (kthread_stop) from [<7f26f384>] (revpi_gate_fini+0x48/0x178 [piControl])
[   10.582375]  r7:80f07808 r6:00000000 r5:7f27c73c r4:7f27c628
[   10.582378] [<7f26f33c>] (revpi_gate_fini [piControl]) from [<7f269688>] (PiBridgeMaster_Stop+0x24/0x44 [piControl])
[   10.582477]  r9:aed2e000 r8:00004b0c r7:aed38200 r6:00000000 r5:00000000 r4:7f27c2fc
[   10.582480] [<7f269664>] (PiBridgeMaster_Stop [piControl]) from [<7f2631cc>] (piControlIoctl+0x16e0/0x1808 [piControl])
[   10.582574]  r5:00000000 r4:80f07808
[   10.582577] [<7f261aec>] (piControlIoctl [piControl]) from [<8036c544>] (sys_ioctl+0x1d4/0x8e4)
[   10.582636]  r10:00000007 r9:aed2e000 r8:00000000 r7:aed38200 r6:aed38201 r5:80f07808
[   10.582640]  r4:00004b0c
[   10.582642] [<8036c370>] (sys_ioctl) from [<80100060>] (ret_fast_syscall+0x0/0x28)
[   10.582655] Exception stack(0xaed2ffa8 to 0xaed2fff0)
[   10.582662] ffa0:                   7e9fea70 7e9fea60 00000007 00004b0c 00000000 02194de0
[   10.582669] ffc0: 7e9fea70 7e9fea60 02194de0 00000036 00000001 00000009 00000004 7e9fea50
[   10.582674] ffe0: 7690d1f1 7e9fe98c 73db2413 7690d1f8
[   10.582682]  r10:00000036 r9:aed2e000 r8:80100224 r7:00000036 r6:02194de0 r5:7e9fea60
[   10.582686]  r4:7e9fea70
[   10.582723] ---[ end trace 0000000000000002 ]---
[   11.791914] 8<--- cut here ---
[   11.791924] Unable to handle kernel NULL pointer dereference at virtual address 00000014
[   11.791933] pgd = 5cbfd4c9
[   11.791940] [00000014] *pgd=00000000
[   11.791953] Internal error: Oops: 5 [#1] PREEMPT_RT SMP ARM
[   11.791959] Modules linked in: piControl(O) ad5446 ti_dac082s085 mcp320x iio_mux mux_gpio mux_core gpio_74x164 spi_bcm2835aux gpio_max3191x crc8 industrialio cdc_acm snd_bcm2835(C) bcm2835_codec(C) snd_pcm bcm2835_v4l2(C) v4l2_mem2mem bcm2835_isp(C) bcm2835_mmal_vchiq(C) videobuf2_dma_contig videobuf2_vmalloc videobuf2_memops snd_timer videobuf2_v4l2 videobuf2_common snd videodev vc_sm_cma(C) mc uio_pdrv_genirq uio sch_fq_codel drm drm_panel_orientation_quirks backlight ip_tables x_tables ipv6 ks8851_spi ks8851_common eeprom_93cx6 spi_bcm2835 fixed
[   11.792075] CPU: 1 PID: 316 Comm: plcdatasource Tainted: G        WC O      5.10.103-rt62-v7 #1
[   11.792083] Hardware name: BCM2835
[   11.792086] PC is at wait_task_inactive+0x68/0x2e8
[   11.792099] LR is at __kthread_bind_mask+0x24/0x80
[   11.792107] pc : [<801580a0>]    lr : [<80147468>]    psr: 600e0013
[   11.792111] sp : aed2fd60  ip : aed2fdb8  fp : aed2fdb4
[   11.792115] r10: 00000040  r9 : ffffe000  r8 : ffffe000
[   11.792119] r7 : 80f07808  r6 : 7059b68c  r5 : 81f005f8  r4 : 81f00000
[   11.792123] r3 : 80f07858  r2 : 00000000  r1 : 00000000  r0 : 81f00000
[   11.792128] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   11.792135] Control: 10c5383d  Table: 02e5006a  DAC: 00000055
[   11.792138] Process plcdatasource (pid: 316, stack limit = 0x2efda27b)
[   11.792143] Stack: (0xaed2fd60 to 0xaed30000)
[   11.792152] fd60: aed2fd94 80f07858 80120020 8103cbc0 00000019 80654c98 80d5358c 80f07808
[   11.792159] fd80: 80d5357c d79a2aad aed2fdd8 81f00000 832c4d80 7059b68c 80f07808 00004b0c
[   11.792166] fda0: aed2e000 aedf6400 aed2fdd4 aed2fdb8 80147468 80158044 81f00000 832c4d80
[   11.792173] fdc0: 832c4d80 80f07808 aed2fdec aed2fdd8 80147574 80147450 81f00000 81f0000c
[   11.792180] fde0: aed2fe0c aed2fdf0 80147610 80147508 7f27c628 7f27c73c 00000000 80f07808
[   11.792187] fe00: aed2fe4c aed2fe10 7f26f384 8014759c 00000000 00000000 aed38200 00004b0c
[   11.792195] fe20: aed2e000 d79a2aad 7f27c2fc 00000000 00000000 aed38200 00004b0c aed2e000
[   11.792202] fe40: aed2fe64 aed2fe50 7f269688 7f26f348 80f07808 00000000 aed2ff14 aed2fe68
[   11.792209] fe60: 7f2631cc 7f269670 82dfb900 803578d8 00000000 80f79680 aed2febc aed2fe88
[   11.792216] fe80: 801a8258 8023eb2c 8067d054 801506c0 ffffffff 82dfb900 aed2fecc aed2fea8
[   11.792223] fea0: 8010c168 8010d048 80f07808 00000000 00000000 80378eb8 aed38200 00000007
[   11.792230] fec0: 00004000 8240e780 aed2ff04 aed2fed8 80378eb8 801a7214 d79a2aad 00004b0c
[   11.792237] fee0: 80f07808 d79a2aad 00000036 00004b0c 80f07808 aed38201 aed38200 00000000
[   11.792244] ff00: aed2e000 00000007 aed2ffa4 aed2ff18 8036c544 7f261af8 ffffe000 8103d520
[   11.792251] ff20: 00000000 80101064 aed2ff6c 00000000 8010d0c8 8010c144 0000d520 00000000
[   11.792258] ff40: 00000000 00000000 80e86f10 80100ed0 ffffe000 8103d520 00000000 80101064
[   11.792265] ff60: aed2ff94 aed2ff70 8023eba8 802403b4 76f63246 d79a2aad ffffffff 7e9fea70
[   11.792272] ff80: 7e9fea60 02194de0 00000036 80100224 aed2e000 00000036 00000000 aed2ffa8
[   11.792279] ffa0: 80100060 8036c37c 7e9fea70 7e9fea60 00000007 00004b0c 00000000 02194de0
[   11.792286] ffc0: 7e9fea70 7e9fea60 02194de0 00000036 00000001 00000009 00000004 7e9fea50
[   11.792293] ffe0: 7690d1f1 7e9fe98c 73db2413 7690d1f8 80070030 00000007 00000000 00000000
[   11.792297] Backtrace: 
[   11.792301] [<80158038>] (wait_task_inactive) from [<80147468>] (__kthread_bind_mask+0x24/0x80)
[   11.792318]  r10:aedf6400 r9:aed2e000 r8:00004b0c r7:80f07808 r6:7059b68c r5:832c4d80
[   11.792322]  r4:81f00000
[   11.792325] [<80147444>] (__kthread_bind_mask) from [<80147574>] (kthread_unpark+0x78/0x94)
[   11.792340]  r7:80f07808 r6:832c4d80 r5:832c4d80 r4:81f00000
[   11.792343] [<801474fc>] (kthread_unpark) from [<80147610>] (kthread_stop+0x80/0x284)
[   11.792356]  r5:81f0000c r4:81f00000
[   11.792359] [<80147590>] (kthread_stop) from [<7f26f384>] (revpi_gate_fini+0x48/0x178 [piControl])
[   11.792423]  r7:80f07808 r6:00000000 r5:7f27c73c r4:7f27c628
[   11.792426] [<7f26f33c>] (revpi_gate_fini [piControl]) from [<7f269688>] (PiBridgeMaster_Stop+0x24/0x44 [piControl])
[   11.792525]  r9:aed2e000 r8:00004b0c r7:aed38200 r6:00000000 r5:00000000 r4:7f27c2fc
[   11.792528] [<7f269664>] (PiBridgeMaster_Stop [piControl]) from [<7f2631cc>] (piControlIoctl+0x16e0/0x1808 [piControl])
[   11.792623]  r5:00000000 r4:80f07808
[   11.792626] [<7f261aec>] (piControlIoctl [piControl]) from [<8036c544>] (sys_ioctl+0x1d4/0x8e4)
[   11.792685]  r10:00000007 r9:aed2e000 r8:00000000 r7:aed38200 r6:aed38201 r5:80f07808
[   11.792688]  r4:00004b0c
[   11.792691] [<8036c370>] (sys_ioctl) from [<80100060>] (ret_fast_syscall+0x0/0x28)
[   11.792703] Exception stack(0xaed2ffa8 to 0xaed2fff0)
[   11.792710] ffa0:                   7e9fea70 7e9fea60 00000007 00004b0c 00000000 02194de0
[   11.792717] ffc0: 7e9fea70 7e9fea60 02194de0 00000036 00000001 00000009 00000004 7e9fea50
[   11.792722] ffe0: 7690d1f1 7e9fe98c 73db2413 7690d1f8
[   11.792730]  r10:00000036 r9:aed2e000 r8:80100224 r7:00000036 r6:02194de0 r5:7e9fea60
[   11.792734]  r4:7e9fea70
[   11.792739] Code: e50b3050 e5941018 e5942008 e3510000 (e5922014) 
[   11.792746] ---[ end trace 0000000000000003 ]---

I think this happens because while a instance of the applications does a read request, another does issue a reset.
I know this is not the way piControl is intended to works (multiple users), but prior to the update I had not an issue with multiple instances running

Documentation missing

This module lacks documentation. There should be at least a readme file. This module seems to be doing communication with external modules/systems. There should actually be decent communication of this protocol and/or content. I also estimate that most - if not all - of the functionality this module offers could (and should) be done from userspace.
I would also expect the DI, DO and DIO modules to register themselves with the kernel GPIO subsystem in /sys/class/gpio.
There seems to be a /sys/class/piControl class which is also undocumented.

Minimum safe value for INTERVAL_IO_COMM

What's the minimum safe value for INTERVAL_IO_COMM?

I want to achieve ~1ms delay between python code writing to /dev/piControl0 to pin reaction (or the other way around). Also, it would be really nice to have timings configurable at runtime.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.