MembersPage/Kamuto/Orange (2017-07-18 04:20:48)

target is to use orange pi board to read vems data for realtime data over ser2net or dataloging trigger frame stream to vemslog format saved to filesystem (SD, or /dev/shm tmpfs, or network filesystem, or SSD, or rust).

Experimental binaries (primary target: armhf or occasionally unsupported aarch64/x86/x86_64 or amd64)

http://vems.hu/download/arm/orangepi_main/


Sw Environment


current board: Orange pi lite (H3, armhf)

OS Armbian Ubuntu Desktop : https://www.armbian.com/download/

to connect it to vems we need to have serial port on the board, it has some UARTS but they are ttl level, so we need some max232 interface.

using one like [that]

[connect UART3]

to get it working we need to [change orange configuration]

best way to test it is to download minicom and try to capture some aim data from vems serial port, in my case i had to swap rx and tx wires on serial cable which connects between vems and raspberry. both ends of the cable are female gender.

at the moment I'm using orange to have wireless connection for the ecu on test bench using ser2net

config file is located in /etc/ser2net.conf and has line 4400:raw:1000:/dev/ttyS3:19200 8DATABITS NONE 1STOPBIT banner


/etc/fstab

http://vems.hu/download/arm/orangepi_main/


Test simple built binary, linking and serial port


Historical Tests


./OrangeVemslog.armhf /dev/ttyUSB0 > /tmp/err 2>&1

zip the err file (and the NOSERIAL-2017.07.09-14.25.24.vemslog) before uploading for any report.


Checklist - useful initally for review / debug / inspection or for curious geeks. Not needed if/when all goes perfectly.

Sniff the serial stream: PC to v3 direction is used to query data with TF commands (HDLC-7D-7E escaped and 7E between frames)

TF command to query runtime data is A0, it appears regularly (as a0 bf 38, see below)

TF Commands used to query ECU config pages:

<PRE>

marcell@mini:/svn/stm32/orangepi_fat$ grep TF2 /tmp/err | sort

TF2: 00 f4

TF2: 01 f4

TF2: 02 f4

TF2: 03 f4

TF2: 04 f4

TF2: 06 f4

TF2: 07 f4

TF2: 08 f4

TF2: 0a f4

TF2: 0c f4

TF2: 0d f4

TF2: 0e f4

TF2: 0f f4

TF2: 11 f4

TF2: 02 f2

TF2: 03 f2

TF2: 04 f2

TF2: 05 f2

Or the complete hex stream:

000022f0: 17 7e ff 00 f4 40 77 7e ff 02 f4 41 17 7e ff 04

00002300: f4 42 b7 7e ff 0f f4 45 87 7e ff 03 f4 40 87 7e

00002310: ff 0c f4 45 77 7e ff 0d f4 44 e7 7e ff 11 f4 4c

00002320: 27 7e ff 06 f4 43 d7 7e ff 07 f4 42 47 7e a0 bf

00002330: 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf

00002340: 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf

00002350: 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf 38 7e a0 bf

</PRE>

Inspecting the vemslog file saved to filesystem:

hexdump -C NOSERIAL-2017.07.09-16.30.49.vemslog |less


More testing

it works on /dev/ttyUSB0 (or /dev/ttyS3 if available for rw)


Stack smashing on armhf - fixed

root@orangepilite:/mnt/logger# ./orangepi_main.armhf /dev/ttyUSB0 > /tmp/err 2>&1


so I have tested it for a few days playing with it and so on.

not really want to work over internal uart's, with external usb no problem.

managed to write small script which checks is the OrangeLogger working and if not it will try to start it again. added it to crontab so it works nice now and checks for that every minute.

made vemstune to connect to ecu over the vpn with help of ser2net, if I try to connect with it over internal network, no problem, it just breaks logging process and I'm online, if i try that over vpn ip's sadly cant connect until I stop logging process :)

the only issue now is that after it boots up, start's to log, it works just fine, if it crashes it get's autorestart and so on.

problem is when I try to connect to ecu with vemstune over ser2net, it interrupts the logging process and it wont resume after I disconect from ecu, it just writes huge amount on error messages into the log file

(500689) IDLE: ecu not responding, likely OFFLINE

(504201) IDLE: ecu not responding, likely OFFLINE

rebooting ecu does not help for it to start working again, restarting process does. as I understand when the process starts it execute some special command to query the data from the ecu and later are not using that again. anyway if that gets working it will break ser2net process if I'm online, thinking about the solution how to manage 2 apps using same serial port :)

btw, if I switch power off for ecu and later start it again OrangeLogger understands it and no problem creates new log file for it

thinking that it needs somekind of com port mirroring to get working with 2 devices