Multipoint multiSiK firmware

Is there any fully working multipoint firmware for telemetry i.e. hm-trp?
I’ve tried GitHub - tdnet12434/MultiSiK but it has CRC problem when 2 drones are connected to 1 ground station.

Yes, it’s there. In begin I had some struggle with this too.
Did you set the three NODEID’s according to the description e.g. for your case of three modems to:“0”, “1” and “2” ?
and the NODECOUNT = 3 for all modems.

Thank You for Your answer @VRquaeler
Yes I set NODEID unique for all modems (0,1,2) and NODECOUNT for all modems to 3. Still without success.
image

Hi @owiec,

Assuming the other obvious things (like two different SYS_ID’s of the vehicles) are se up right.
One detail catches my attention: You use NETID=0. I am not sure if it’s an allowed value. I have never used Zero here.

Which tool chain did you use? I had to go back to sdcc 3.5 to get the job done. The newer compiler versions mix up the variable declarations and did not complete. A real coder (not me) could fix this.

Hi @VRquaeler
Of course SYS_ID is also unique on drones.
Can You explain which software You used to work it correctly? What sdcc 3.5 is? I’m using HM-TRP sik 2.0, 2.1 and 2.2 firmware, all of them doesnt work properly.

Hi @owiec

As mentioned in the instructions of the github repo linked in your first post

you have to use the sdcc compiler to build the firmware. I struggled running the latest and greatest version of sdcc. I had to switch back to sdcc3.5. It’s still a rather old version from before the MAVLink2 implementation.

If I remember correctly the the version of MultiSik linked above builds “MP Sik 2.6 on HM-TRP”
I have no idea where you get the other versions from.

I’ve used prebuild ihx file in Firmware folder from this GitHub, I’ll try compile and get back to You. Thanks!

Hi @VRquaeler
can You send us these compiled *.ihx file to test if it work correctly, before I’ll try install Linux?

Hi @owiec

Yes, I can.
Here You will find the two versions of the firmware.
One (MultiSik V26 on HM-TRP) is as is created from the source of github.
For the version V27d I tried to re-implement the functionality of the “noise, remnoise, rssi, remrssi” MAVLink injection. At least it works fine for MAVLink1.

multiSik_fw.zip (48.7 KB)

Good luck!!
PS: Use at your own risk.

HI @VRquaeler

I’ve tested with 3 drones & GCS both firmwares. Here’s my configuration (first with GCS NODEID: 0, second GCS NODEID: 1):

TEST no.1
GCS:
NODEID: 0
NODEDESTINATION: 65535
NODECOUNT: 4

drone #1

SYSID_THISMAV: 1 //arducopter

NODEID: 1 //telemetry
NODECOUNT: 4
NODEDESTINATION: 0

drone #2

SYSID_THISMAV: 2 //arducopter

NODEID: 2 //telemetry
NODECOUNT: 4
NODEDESTINATION: 0

drone #3

SYSID_THISMAV: 3 //arducopter

NODEID: 3 //telemetry
NODECOUNT: 4
NODEDESTINATION: 0

TEST no.2

GCS:
NODEID: 1
NODEDESTINATION: 65535
NODECOUNT: 4

another telemetry with NODEID: 0 for sync network.

drone #1

SYSID_THISMAV: 1 //arducopter

NODEID: 2 //telemetry
NODECOUNT: 4
NODEDESTINATION: 1

drone #2

SYSID_THISMAV: 2 //arducopter

NODEID: 3 //telemetry
NODECOUNT: 4
NODEDESTINATION: 1

drone #3

SYSID_THISMAV: 3 //arducopter

NODEID: 4 //telemetry
NODECOUNT: 4
NODEDESTINATION: 1

Sadly, sending commands into specified drone cause all drones received commands (for example change flight mode into drone #2 - all drones changing it’s flight mode).
There is also a few CRC errors on console.

Both firmwares work correct when there is only 1 drone & gcs. Turning on second drone rapidly slow down rate and gives randomly crc errors. It looks like messages are overlapping in the air. The second guess arducopter doesnt check SYS_ID in mavlink packets if its data into my drone or other - it works like broadcasting messages. Tested also on Mavlink1 & Mavlink2.

What am I doing wrong?

HI @owiec

Thanks for the feedback. I am afraid you did nothing wrong. My guess: You run into the limits of the Sik radios.

I have used this with one GCS and two vehicles. The setup was similar to your test n.1. For your test no.2 I don’t understand how the “NODEID=0 radio” is connected in this setup. From my understanding here the NODECOUNT should be 5. You have 5 radios in use: 3 drones, one GCS and the Sync-radio.
You can have less radio’s in use as NODECOUNT expects as long as NODEID=0 is there. This works fine. The other way around a lot of data packet collisions will be there.

The NODEID=0 is necessary to keep the radio’s synchronized.

To improve the system performance I had to reduce the data streaming rates a lot. Lots of ideas can be found here. The data rate through the Sik-radios is very limited. It’s worse at distance.

This doesn’t solve the problem but reduces the bad effects.

HI @VRquaeler

Thank You for Your reply.

For your test no.2 I don’t understand how the “NODEID=0 radio” is connected in this setup.

The NODEID=0 is necessary to keep the radio’s synchronized.

You are right, You answered Yourself :smiley: This telemetry is only turned on without connection to any drones GCS etc. with NODEID: 0

From my understanding here the NODECOUNT should be 5.

Yes it was copy&paste mistake, I had NODECOUNT: 5

Still it doesnt verify which packet is for specific module. I’ve created another post with assumption of not checking SYSID_THISMAV with “target_system” in mavlink packet.

1 Like