Jump to content

Mi-24P SPU-8 in DCS-BIOS and SRS Simple Radio functionality


molevitch

Recommended Posts

Hi guys. 

I hope somebody can assist. I have my SPU-8 panel setup in DCS-BIOS on a RS485 network as a 6 position switch. I fly predominantly in multiplayer squad Black Shark den, where we use Ciribob's Simple Radio for inter flight comms and intercom. 

When I had the Mi-8 setup for SPU-7, also in DCS-BIOS, it worked in Simple Radio for changing radio choice. What I have been unable to figure out is how to do the same for the Mi-24.... Am I just being dumb?

If anybody has this working, would you mind sharing some info, eg SRS settings, DCS-BIOS sketch for SPU-8, etc

Any help greatly appreciated!

SCAN Intel Core i9 10850K "Comet Lake", 32GB DDR4, 10GB NVIDIA RTX 3080, HP Reverb G2

Custom Mi-24 pit with magnetic braked cyclic and collective. See it here: Molevitch Mi-24 Pit.

 

[sIGPIC][/sIGPIC] www.blacksharkden.com

bsd sig 2021.jpg

Link to comment
Share on other sites

Hey @molevitch,

I was impatient, so I wrote a bit of crappy LUA myself to make the Radios work how you'd expect in the Hind. This enables the radio selector and PTT for intercom and radio on the two stage trigger. 

You can replace the Mi24 section in your {path}/Saved Games/DCS(openbeta)/Mods/Services/DCS-SRS/Scripts/DCS-SimpleRadioStandalone.lua with this

function SR.exportRadioMI24P(_data)

    _data.capabilities = { dcsPtt = true, dcsIFF = false, dcsRadioSwitch = true, intercomHotMic = false, desc = "" }

    _data.radios[1].name = "Intercom"
    _data.radios[1].freq = 100.0
    _data.radios[1].modulation = 2 --Special intercom modulation
    _data.radios[1].volume = 1.0
    _data.radios[1].volMode = 0

    _data.radios[2].name = "R-863"
    _data.radios[2].freq = SR.getRadioFrequency(49)
    _data.radios[2].modulation = SR.getRadioModulation(49)
    _data.radios[2].volume = SR.getRadioVolume(0, 511, { 0.0, 1.0 }, false)
    _data.radios[2].volMode = 0

    local guard = SR.getSelectorPosition(507, 1)
    if guard == 1 and _data.radios[2].freq > 1000 then
        _data.radios[2].secFreq = 121.5 * 1000000
    end

    _data.radios[3].name = "JADRO-1I"
    _data.radios[3].freq = SR.getRadioFrequency(50, 500)
    _data.radios[3].modulation = SR.getRadioModulation(50)
    _data.radios[3].volume = SR.getRadioVolume(0, 426, { 0.0, 1.0 }, false)
    _data.radios[3].volMode = 0

    _data.radios[4].name = "R-828"
    _data.radios[4].freq = SR.getRadioFrequency(51)
    _data.radios[4].modulation = 1 --SR.getRadioModulation(50)
    _data.radios[4].volume = SR.getRadioVolume(0, 339, { 0.0, 1.0 }, false)
    _data.radios[4].volMode = 0

    _data.radios[5].name = "R-852"
    _data.radios[5].freq = SR.getRadioFrequency(52)
    _data.radios[5].modulation = SR.getRadioModulation(52)
    _data.radios[5].volume = SR.getRadioVolume(0, 517, { 0.0, 1.0 }, false)
    _data.radios[5].volMode = 0
	
	local _switch = SR.getSelectorPosition(455, 0.1)
	
	if _switch == 0 then
        _data.selected = 1
    elseif _switch == 4 then
        _data.selected = 3
	elseif _switch == 6 then
		_data.selected = 2
    else
        _data.selected = -1
    end
	
	local _pilotPTT = SR.getButtonPosition(738)
    if _pilotPTT >= 0.1 then

        if _pilotPTT == 0.5 then
            -- intercom
            _data.selected = 0
        end

        _data.ptt = true
    end

    _data.control = 1; -- HOTAS for now

    return _data

end

or you can just replace the whole thing with my file. It'll be wiped out the next time SRS updates, but the official Mi-24 support will be in the next SRS release. So, works either way. (I submitted a PR to the SRS github but it's already included in the release so it wasn't merged. And it's a little sloppy since I'm not familiar with the project. Just wanted my Hind radios to work and I'm not a very patient person lmao)

DCS-SimpleRadioStandalone.lua

  • Like 2
Link to comment
Share on other sites

7 hours ago, gnomechild said:

Hey @molevitch,

I was impatient, so I wrote a bit of crappy LUA myself to make the Radios work how you'd expect in the Hind. This enables the radio selector and PTT for intercom and radio on the two stage trigger. 

You can replace the Mi24 section in your {path}/Saved Games/DCS(openbeta)/Mods/Services/DCS-SRS/Scripts/DCS-SimpleRadioStandalone.lua with this

function SR.exportRadioMI24P(_data)

    _data.capabilities = { dcsPtt = true, dcsIFF = false, dcsRadioSwitch = true, intercomHotMic = false, desc = "" }

    _data.radios[1].name = "Intercom"
    _data.radios[1].freq = 100.0
    _data.radios[1].modulation = 2 --Special intercom modulation
    _data.radios[1].volume = 1.0
    _data.radios[1].volMode = 0

    _data.radios[2].name = "R-863"
    _data.radios[2].freq = SR.getRadioFrequency(49)
    _data.radios[2].modulation = SR.getRadioModulation(49)
    _data.radios[2].volume = SR.getRadioVolume(0, 511, { 0.0, 1.0 }, false)
    _data.radios[2].volMode = 0

    local guard = SR.getSelectorPosition(507, 1)
    if guard == 1 and _data.radios[2].freq > 1000 then
        _data.radios[2].secFreq = 121.5 * 1000000
    end

    _data.radios[3].name = "JADRO-1I"
    _data.radios[3].freq = SR.getRadioFrequency(50, 500)
    _data.radios[3].modulation = SR.getRadioModulation(50)
    _data.radios[3].volume = SR.getRadioVolume(0, 426, { 0.0, 1.0 }, false)
    _data.radios[3].volMode = 0

    _data.radios[4].name = "R-828"
    _data.radios[4].freq = SR.getRadioFrequency(51)
    _data.radios[4].modulation = 1 --SR.getRadioModulation(50)
    _data.radios[4].volume = SR.getRadioVolume(0, 339, { 0.0, 1.0 }, false)
    _data.radios[4].volMode = 0

    _data.radios[5].name = "R-852"
    _data.radios[5].freq = SR.getRadioFrequency(52)
    _data.radios[5].modulation = SR.getRadioModulation(52)
    _data.radios[5].volume = SR.getRadioVolume(0, 517, { 0.0, 1.0 }, false)
    _data.radios[5].volMode = 0
	
	local _switch = SR.getSelectorPosition(455, 0.1)
	
	if _switch == 0 then
        _data.selected = 1
    elseif _switch == 4 then
        _data.selected = 3
	elseif _switch == 6 then
		_data.selected = 2
    else
        _data.selected = -1
    end
	
	local _pilotPTT = SR.getButtonPosition(738)
    if _pilotPTT >= 0.1 then

        if _pilotPTT == 0.5 then
            -- intercom
            _data.selected = 0
        end

        _data.ptt = true
    end

    _data.control = 1; -- HOTAS for now

    return _data

end

or you can just replace the whole thing with my file. It'll be wiped out the next time SRS updates, but the official Mi-24 support will be in the next SRS release. So, works either way. (I submitted a PR to the SRS github but it's already included in the release so it wasn't merged. And it's a little sloppy since I'm not familiar with the project. Just wanted my Hind radios to work and I'm not a very patient person lmao)

DCS-SimpleRadioStandalone.lua 145.45 kB · 2 downloads

WOW! Thanks @gnomechild, this is great. I wish I knew how to do this kind of stuff….

SCAN Intel Core i9 10850K "Comet Lake", 32GB DDR4, 10GB NVIDIA RTX 3080, HP Reverb G2

Custom Mi-24 pit with magnetic braked cyclic and collective. See it here: Molevitch Mi-24 Pit.

 

[sIGPIC][/sIGPIC] www.blacksharkden.com

bsd sig 2021.jpg

Link to comment
Share on other sites

  • 1 month later...

Thanks gnomechild!

 

If anyone is interested I also wrote keybindings to select the SPU-8 position settings that works nicely with gnomechild's script. I have a 6 position selector on my button box this is bound to. By default the only thing you can do is increment or decrement the position but this lets you bind a key to each selector position.

 

 

Simply add the following code under ---- Intercom Panels---- in the default.lua file. This file is located at

 

\Eagle Dynamics\DCS World\Mods\aircraft\Mi-24P\Input\Mi_24P_pilot\joystick\default.lua

 

--Custom Radio Selector
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 0,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - R-863'),	category = {_('SPU-8 Intercom Panels')}},
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 0.2,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - VHF *NF*'),	category = {_('SPU-8 Intercom Panels')}},
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 0.4,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - R-828 EUCALYPT'),	category = {_('SPU-8 Intercom Panels')}},
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 0.6,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - JADRO-1A'),	category = {_('SPU-8 Intercom Panels')}},
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 0.8,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - ARC-15'),	category = {_('SPU-8 Intercom Panels')}},
{pressed = SPU_8_Mi24_commands.CMD_SPU8_P_MODE,			 value_pressed = 1,   	cockpit_device_id = devices.SPU_8,	name = _('SPU-8 - ARC-U2'),	category = {_('SPU-8 Intercom Panels')}},

 

 

I also edited gnomechild's script a bit so the order matches that of the SPU-8. It also goes intercome if youre on the ARK15 or U2

function SR.exportRadioMI24P(_data)

    _data.capabilities = { dcsPtt = true, dcsIFF = false, dcsRadioSwitch = true, intercomHotMic = false, desc = "" }

    _data.radios[1].name = "Intercom"
    _data.radios[1].freq = 100.0
    _data.radios[1].modulation = 2 --Special intercom modulation
    _data.radios[1].volume = 1.0
    _data.radios[1].volMode = 0

    _data.radios[2].name = "R-863"
    _data.radios[2].freq = SR.getRadioFrequency(49)
    _data.radios[2].modulation = SR.getRadioModulation(49)
    _data.radios[2].volume = SR.getRadioVolume(0, 511, { 0.0, 1.0 }, false)
    _data.radios[2].volMode = 0
	
	_data.radios[3].name = "R-852 VHF"
    _data.radios[3].freq = SR.getRadioFrequency(52)
    _data.radios[3].modulation = SR.getRadioModulation(52)
    _data.radios[3].volume = SR.getRadioVolume(0, 517, { 0.0, 1.0 }, false)
    _data.radios[3].volMode = 0
	
	_data.radios[4].name = "R-828"
    _data.radios[4].freq = SR.getRadioFrequency(51)
    _data.radios[4].modulation = 1 --SR.getRadioModulation(50)
    _data.radios[4].volume = SR.getRadioVolume(0, 339, { 0.0, 1.0 }, false)
    _data.radios[4].volMode = 0
	
	_data.radios[5].name = "JADRO-1I"
    _data.radios[5].freq = SR.getRadioFrequency(50, 500)
    _data.radios[5].modulation = SR.getRadioModulation(50)
    _data.radios[5].volume = SR.getRadioVolume(0, 426, { 0.0, 1.0 }, false)
    _data.radios[5].volMode = 0


    local guard = SR.getSelectorPosition(507, 1)
    if guard == 1 and _data.radios[2].freq > 1000 then
        _data.radios[2].secFreq = 121.5 * 1000000
    end


	
	local _switch = SR.getSelectorPosition(455, 0.1)
	
	if _switch == 0 then
        _data.selected = 1
    elseif _switch == 2 then
        _data.selected = 2
	elseif _switch == 4 then
		_data.selected = 3
	elseif _switch == 6 then
		_data.selected = 4
    else
        _data.selected = 0
    end
	
	local _pilotPTT = SR.getButtonPosition(738)
    if _pilotPTT >= 0.1 then

        if _pilotPTT == 0.5 then
            -- intercom
            _data.selected = 0
        end

        _data.ptt = true
    end

    _data.control = 1; -- HOTAS for now

    return _data

end

 

  • Like 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...