Jump to content

RiftFlyer G-Seat project


Frusheen

Recommended Posts

I have completed the electrical power system for the base and back rest actuators. I added pictures to the first page to show the progress. I ended up going with separate power sources for each rather than running the supplies in parallel.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

Thumbs up. Paint makes miracles. Your entire build looks very solid now.

 

Looking really good!

 

Thanks guys. Anton it sure is solid. Damn thing weighs a ton. I'd love to have been able to build with aluminium but there's no way I would have managed to weld it. I struggled enough with steel ha. The weight of steel in this thing really mounts up. I'm glad I fitted casters!

 

I hope to make the seat base actuators on a slide in platform like what I did at the rear. It will be a tight squeeze though. I really don't want to have to lug this entire thing up and down the stairs to the garage again!

 

I purchased a few idler pulleys which I will mount at the potentiometer belts to take up some slack. This should provide better engagement between the belt teeth and small pulleys and avoid any possibility of the belt jumping. It will take about a week for them to arrive. That should give me time to get to the junk yard and get the two remaining wiper motors.

 

Unfortunately the four point harness I purchased has its length adjustment at the ends rather than nearest the buckle. That will likely result in interference with the sides of the seat. I may have to try my hand at a bit of sewing! The things we do..... :crazy:

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

It did look like you will need a friendly hand to move this thing , so making it modular does make sense. Lugging my wooden structure in and out of garage is definitely not very fun so my first reaction to your pictures was " ouch, that will need some muscle " :)

 

Thanks for the tip on power supplies, Looked that model up and seen some nice high amp projects with it. And they cost next to nothing so I Ordered a pair as well )

Anton.

 

My pit build thread .

Simple and cheap UFC project

Link to comment
Share on other sites

It did look like you will need a friendly hand to move this thing , so making it modular does make sense. Lugging my wooden structure in and out of garage is definitely not very fun so my first reaction to your pictures was " ouch, that will need some muscle " :)

 

Thanks for the tip on power supplies, Looked that model up and seen some nice high amp projects with it. And they cost next to nothing so I Ordered a pair as well )

 

Be sure to connect pin 4 to ground -pin8. It reduces the fan speed but still allows for temp sensing and the fan to ramp up if needed. Without doing so the power supplies are very loud.

 

It will also help to pick up some RC patch cables. Once cut in half they are perfect for connecting to the control pins and soldering a switch etc. You could add a little hot glue to make a 9pin plug.

 

http://www.fast-lad.co.uk/store/mik4141_patchcable_vbar_receiver_(120mm)-p-7096.html


Edited by Frusheen
  • Like 1

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

Guys anyone using sim tools that can test the current dcs release? I'm having trouble getting any info from dcs with the provided export.lua script. It patches to the scripts folder but sim tools tuning utility is not receiving data from the game.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

I got sim tools working with dcs and also managed to get my Arduino code dialed in for good response to commands. Unfortunately the mxl belts and pulley arrangement for the potentiometers isn't going to work out. The belts will occasionally skip on the pulleys during fast direction changes. I added some idler pulleys to increase surface area and tension but it hasn't helped. Increasing tension any further just adds too much drag.

 

It's back to the drawing board and time to find a spur gear arrangement instead. It's proving difficult to find gears that offer a similar ratio with the correct bore sizes. I found one source but the prices are absurd. I'll report further when I have more to show. For anyone considering a build stay away from mxl belts. They just aren't good enough in this application.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

  • 2 weeks later...
Looking really good! I made a G-seat too, and it's incredibly immersive. Everyone needs one!

 

Rico. Can you tell me how you have your axis setup on each set of flaps. I've got pitch on the two flaps in the backrest working well along with a small amount of roll but sway isn't working for me. It's giving a strange result which I have yet to figure out.

 

I've also rewritten the export.lua to give me the slip ball values for each of the dcs helicopters. I am going to try this instead of sway.

 

When you perform a stationary pirouette in a helicopter do you get lateral forces? I'm not getting anything usable and would have thought this would be sway (accel.x)?

 

As most of my flying is in helicopters I've also left out surge for now. For a helicopter I'd have to run it in reverse as helicopters pitch down to accelerate and pitch back to decelerate. The greater force in most cases would therefore be gravity.

 

I'll put roll and heave on the seat base flaps once I get around to finishing them.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

I only used heave, sway, and surge axes. I don't use pitch, roll, or yaw.

 

Heave and surge are mapped to the bottom and back, respectively, and the sway is mixed into both the bottom and the back together.

 

I don't notice any lateral forces during piros, but it may be just a matter of sensitivity, because the sway is pretty apparent while taxiing or during uncoordinated flight.

i5-4670K@4.5GHz / 16 GB RAM / SSD / GTX1080

Rift CV1 / G-seat / modded FFB HOTAS

Link to comment
Share on other sites

I only used heave, sway, and surge axes. I don't use pitch, roll, or yaw.

 

Heave and surge are mapped to the bottom and back, respectively, and the sway is mixed into both the bottom and the back together.

 

I don't notice any lateral forces during piros, but it may be just a matter of sensitivity, because the sway is pretty apparent while taxiing or during uncoordinated flight.

 

That's interesting. Thanks. I'll try a fixed wing just to see if sway works when in uncoordinated flight. Now that I think about it sway also wasn't doing much if anything in sideways flight in the Huey even during fast stops. There may be an issue with the sim tools plugin for dcs. I've received the source code for the plugin to check but I'm having trouble compiling it even without any modification. Ive asked again so hopefully I can get a working version. Man I'm writing lua which I've never done before, editing Arduino sketches and now dabbling in Visual Basic. It's a steep learning curve for someone with know programming background.

 

I take it you are using X-sim? I may have to go back to it if I can't get sim tools to work as needed.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

G'day Frusheen,

 

The PM system doesn't allow more than 5,000 characters so I am posting here.

 

This is my export.lau that works with X-Sim.

 

If there are problems let us know.

 

Cheers,

 

Brass.

 

(Some of the comments are for my force feedback devices.)

 

gHost = "127.0.0.1"
gPort = 9089
gExportInterval = 0.067
gExportLowTickInterval = 1
gEveryFrameArguments = {[540]="%0.1f", [541]="%0.1f", [542]="%0.1f", [730]="%0.1f", [731]="%0.1f", [732]="%0.1f", [76]="%.4f", [77]="%.4f", [78]="%.4f", [80]="%.4f", [84]="%.4f", [85]="%.4f", [70]="%.4f", [73]="%.4f", [82]="%.4f", [83]="%.4f", [13]="%.4f", [14]="%.4f", [48]="%.4f", [12]="%.4f", [4]="%.4f", [55]="%0.1f", [17]="%.4f", [18]="%.4f", [24]="%.4f", [23]="%.4f", [25]="%0.1f", [19]="%0.1f", [26]="%0.1f", [20]="%.4f", [21]="%.4f", [27]="%.4f", [63]="%.4f", [64]="%.4f", [65]="%0.1f", [715]="%.4f", [40]="%0.1f", [32]="%0.1f", [46]="%0.1f", [34]="%.4f", [36]="%.4f", [47]="%.4f", [41]="%.4f", [33]="%.4f", [35]="%.4f", [662]="%0.1f", [663]="%0.1f", [665]="%0.1f", [664]="%0.1f", [215]="%0.1f", [216]="%0.1f", [217]="%0.1f", [404]="%0.1f", [372]="%0.1f", [373]="%0.1f", [374]="%0.1f", [654]="%1d", [659]="%0.1f", [660]="%0.1f", [661]="%0.1f", [737]="%0.1f", [653]="%.4f", [88]="%.4f", [89]="%.4f", [647]="%.4f", [648]="%.4f", [606]="%0.1f", [608]="%0.1f", [610]="%0.1f", [612]="%0.1f", [614]="%0.1f", [616]="%0.1f", [618]="%0.1f", [619]="%0.1f", [620]="%0.1f", [274]="%.4f", [604]="%.4f", [600]="%0.1f", [281]="%.4f", [289]="%1d", [480]="%0.1f", [481]="%0.1f", [482]="%0.1f", [483]="%0.1f", [484]="%0.1f", [485]="%0.1f", [486]="%0.1f", [487]="%0.1f", [488]="%0.1f", [489]="%0.1f", [490]="%0.1f", [491]="%0.1f", [492]="%0.1f", [493]="%0.1f", [494]="%0.1f", [495]="%0.1f", [496]="%0.1f", [497]="%0.1f", [498]="%0.1f", [499]="%0.1f", [500]="%0.1f", [501]="%0.1f", [502]="%0.1f", [503]="%0.1f", [504]="%0.1f", [505]="%0.1f", [506]="%0.1f", [507]="%0.1f", [508]="%0.1f", [509]="%0.1f", [510]="%0.1f", [511]="%0.1f", [512]="%0.1f", [513]="%0.1f", [514]="%0.1f", [515]="%0.1f", [516]="%0.1f", [517]="%0.1f", [518]="%0.1f", [519]="%0.1f", [520]="%0.1f", [521]="%0.1f", [522]="%0.1f", [523]="%0.1f", [524]="%0.1f", [525]="%0.1f", [526]="%0.1f", [527]="%0.1f", [260]="%0.1f", [269]="%.4f", [129]="%1d", [185]="%1d", [186]="%1d", [187]="%1d", [188]="%1d", [191]="%0.1f", [798]="%0.1f", [799]="%0.1f", [178]="%0.1f", [179]="%0.1f", [181]="%0.1f", [182]="%0.1f"}
gArguments = {[22]="%.3f", [101]="%.1f", [102]="%1d", [103]="%1d", [104]="%1d", [105]="%1d", [300]="%.1f", [301]="%.1f", [302]="%.1f", [303]="%.1f", [304]="%.1f", [305]="%.1f", [306]="%.1f", [307]="%.1f", [308]="%.1f", [309]="%.1f", [310]="%.1f", [311]="%.1f", [312]="%.1f", [313]="%.1f", [314]="%.1f", [315]="%.1f", [316]="%.1f", [317]="%.1f", [318]="%.1f", [319]="%.1f", [320]="%1d", [321]="%1d", [322]="%1d", [323]="%1d", [324]="%1d", [325]="%0.1f", [326]="%.1f", [327]="%.1f", [328]="%.1f", [329]="%.1f", [330]="%.1f", [331]="%.1f", [332]="%.1f", [333]="%.1f", [334]="%.1f", [335]="%.1f", [336]="%.1f", [337]="%.1f", [338]="%.1f", [339]="%.1f", [340]="%.1f", [341]="%.1f", [342]="%.1f", [343]="%.1f", [344]="%.1f", [345]="%.1f", [346]="%1d", [347]="%1d", [348]="%1d", [349]="%1d", [350]="%1d", [351]="%0.1f", [385]="%.1f", [386]="%.1f", [387]="%.1f", [388]="%.1f", [389]="%.1f", [390]="%.1f", [391]="%.1f", [392]="%.1f", [393]="%.1f", [395]="%.1f", [396]="%.1f", [394]="%.1f", [397]="%.1f", [398]="%.1f", [399]="%.1f", [400]="%.1f", [401]="%.1f", [402]="%.1f", [405]="%1d", [406]="%1d", [407]="%1d", [408]="%1d", [409]="%1d", [531]="%.1f", [532]="%.1f", [533]="%.1f", [403]="%.1f", [365]="%.1f", [366]="%.1f", [369]="%.1f", [370]="%.1f", [371]="%.1f", [367]="%.3f", [368]="%.3f", [716]="%1d", [655]="%0.1f", [651]="%.1f", [375]="%0.1f", [376]="%0.1f", [377]="%0.1f", [378]="%1d", [379]="%0.1f", [380]="%1d", [381]="%1d", [382]="%1d", [383]="%1d", [384]="%0.1f", [645]="%0.1f", [646]="%.1f", [605]="%.1f", [607]="%.1f", [609]="%.1f", [611]="%.1f", [613]="%.1f", [615]="%.1f", [617]="%.1f", [621]="%1d", [711]="%.1f", [622]="%0.1f", [623]="%1d", [624]="%.3f", [626]="%.3f", [636]="%0.2f", [638]="%0.2f", [640]="%0.2f", [642]="%0.2f", [644]="%1d", [628]="%.1f", [630]="%.1f", [632]="%.1f", [634]="%.1f", [410]="%.1f", [411]="%.1f", [412]="%.1f", [413]="%.1f", [414]="%.1f", [415]="%.1f", [416]="%.1f", [417]="%.1f", [418]="%.1f", [419]="%.1f", [420]="%.1f", [421]="%.1f", [422]="%.1f", [423]="%.1f", [425]="%.1f", [426]="%.1f", [427]="%.1f", [428]="%.1f", [429]="%.1f", [430]="%.1f", [431]="%.1f", [432]="%.1f", [433]="%.1f", [434]="%.1f", [435]="%.1f", [436]="%.1f", [437]="%.1f", [438]="%.1f", [439]="%.1f", [440]="%.1f", [441]="%.1f", [442]="%.1f", [443]="%.1f", [444]="%.1f", [445]="%.1f", [446]="%.1f", [447]="%.1f", [448]="%.1f", [449]="%.1f", [450]="%.1f", [451]="%.1f", [452]="%.1f", [453]="%.1f", [454]="%.1f", [455]="%.1f", [456]="%.1f", [457]="%.1f", [458]="%.1f", [459]="%.1f", [460]="%.1f", [461]="%.1f", [462]="%.1f", [466]="%.1f", [467]="%.1f", [468]="%.1f", [470]="%.1f", [471]="%.1f", [424]="%1d", [463]="%1d", [469]="%1d", [472]="%1d", [241]="%1d", [242]="%1d", [243]="%1d", [244]="%1d", [245]="%1d", [246]="%1d", [601]="%1d", [602]="%1d", [603]="%1d", [712]="%0.2f", [352]="%.1f", [353]="%.1f", [354]="%.1f", [355]="%.1f", [356]="%1d", [357]="%.1f", [358]="%1d", [359]="%.3f", [360]="%0.1f", [361]="%0.1f", [362]="%0.1f", [363]="%0.1f", [364]="%0.1f", [275]="%.1f", [276]="%1d", [277]="%.3f", [278]="%1d", [279]="%1d", [280]="%1d", [282]="%1d", [283]="%1d", [284]="%.3f", [287]="%1d", [288]="%.3f", [290]="%.3f", [291]="%1d", [292]="%.3f", [293]="%.3f", [294]="%1d", [295]="%1d", [296]="%.3f", [297]="%.3f", [258]="%0.2f", [259]="%.1f", [261]="%.3f", [262]="%0.1f", [266]="%1d", [247]="%1d", [248]="%0.1f", [250]="%0.1f", [249]="%.3f", [251]="%0.1f", [252]="%0.1f", [270]="%1d", [273]="%1d", [272]="%1d", [271]="%.3f", [267]="%.1f", [268]="%.3f", [473]="%0.1f", [474]="%1d", [475]="%0.1f", [476]="%1d", [477]="%1d", [106]="%1d", [107]="%1d", [108]="%1d", [109]="%1d", [110]="%1d", [111]="%1d", [112]="%1d", [113]="%1d", [114]="%1d", [115]="%.1f", [117]="%1d", [118]="%1d", [119]="%1d", [120]="%1d", [121]="%1d", [116]="%.3f", [122]="%1d", [123]="%1d", [124]="%1d", [125]="%1d", [126]="%1d", [127]="%.1f", [132]="%1d", [131]="%.1f", [130]="%1d", [137]="%0.3f", [138]="%0.1f", [135]="%0.1f", [133]="%.3f", [136]="%.1f", [134]="%1d", [139]="%0.2f", [140]="%0.2f", [141]="%0.2f", [142]="%0.2f", [151]="%0.3f", [153]="%0.2f", [154]="%0.2f", [155]="%0.2f", [156]="%0.2f", [152]="%0.1f", [149]="%0.1f", [147]="%.3f", [150]="%.1f", [148]="%1d", [189]="%1d", [190]="%.1f", [192]="%.3f", [197]="%.1f", [196]="%1d", [193]="%.3f", [195]="%.3f", [194]="%0.1f", [198]="%.1f", [161]="%0.2f", [162]="%0.1f", [163]="%0.2f", [164]="%0.2f", [165]="%0.2f", [166]="%0.2f", [167]="%0.1f", [168]="%0.1f", [169]="%1d", [170]="%1d", [171]="%.3f", [172]="%.1f", [173]="%.1f", [735]="%.1f", [734]="%1d", [779]="%1d", [778]="%1d", [780]="%1d", [781]="%0.1f", [782]="%0.1f", [783]="%0.1f", [784]="%1d", [772]="%1d", [199]="%0.1f", [200]="%0.1f", [201]="%1d", [202]="%1d", [203]="%1d", [204]="%1d", [205]="%1d", [206]="%1d", [207]="%1d", [208]="%1d", [209]="%0.2f", [210]="%0.2f", [211]="%0.2f", [212]="%0.2f", [213]="%0.2f", [214]="%0.2f", [174]="%1d", [175]="%1d", [176]="%0.1f", [177]="%1d", [180]="%1d", [183]="%1d", [184]="%1d", [221]="%.3f", [222]="%1d", [223]="%.3f", [224]="%1d", [225]="%.3f", [226]="%1d", [227]="%.3f", [228]="%1d", [229]="%.3f", [230]="%1d", [231]="%.3f", [232]="%1d", [233]="%.3f", [234]="%1d", [235]="%.3f", [236]="%1d", [237]="%1d", [238]="%.3f", [239]="%0.1f", [240]="%.1f", [704]="%.3f", [705]="%.3f", [718]="%1d", [722]="%.1f", [733]="%1d"}

function ProcessHighImportance(mainPanelDevice)
-- Send Altimeter Values	
SendData(2051, string.format("%0.4f;%0.4f;%0.5f", mainPanelDevice:get_argument_value(52), mainPanelDevice:get_argument_value(53), mainPanelDevice:get_argument_value(51)))
SendData(2059, string.format("%0.2f;%0.2f;%0.2f;%0.3f", mainPanelDevice:get_argument_value(56), mainPanelDevice:get_argument_value(57), mainPanelDevice:get_argument_value(58), mainPanelDevice:get_argument_value(59)))		
-- Calcuate HSI Value
SendData(2029, string.format("%0.2f;%0.2f;%0.4f", mainPanelDevice:get_argument_value(29), mainPanelDevice:get_argument_value(30), mainPanelDevice:get_argument_value(31)))
-- Calculate Total Fuel
SendData(2090, string.format("%0.2f;%0.2f;%0.5f", mainPanelDevice:get_argument_value(90), mainPanelDevice:get_argument_value(91), mainPanelDevice:get_argument_value(92)))
end

function ProcessLowImportance(mainPanelDevice)
-- Get Radio Frequencies
local lUHFRadio = GetDevice(54)
SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000))
-- ILS Frequency
--SendData(2251, string.format("%0.1f;%0.1f", mainPanelDevice:get_argument_value(251), mainPanelDevice:get_argument_value(252)))
-- TACAN Channel
SendData(2263, string.format("%0.2f;%0.2f;%0.2f", mainPanelDevice:get_argument_value(263), mainPanelDevice:get_argument_value(264), mainPanelDevice:get_argument_value(265)))
end

os.setlocale("ISO-8559-1", "numeric")

-- Simulation id
gSimID = string.format("%08x*",os.time())

-- State data for export
gPacketSize = 0
gSendStrings = {}
gLastData = {}

-- Frame counter for non important data
gTickCount = 0

-- DCS Export Functions
function LuaExportStart()
-- Works once just before mission start.

default_output_file = io.open("./Export.log", "w")

   -- 2) Setup udp sockets to talk to helios
   package.path  = package.path..";.\\LuaSocket\\?.lua"
   package.cpath = package.cpath..";.\\LuaSocket\\?.dll"
  
   socket = require("socket")
   
   c = socket.udp()
c:setsockname("*", 0)
c:setoption('broadcast', true)
   c:settimeout(.001) -- set the timeout for reading the socket 

-- Setup sockets to talk to X-SIM (x)
host = host or "localhost"
port = port or 8080
x = socket.try(socket.connect(host, port)) -- connect to the listener socket
x:setoption("tcp-nodelay",true) -- set immediate transmission mode	


end

function LuaExportBeforeNextFrame()
ProcessInput()
end

function LuaExportAfterNextFrame()	
local t = LoGetModelTime()
local altBar = LoGetAltitudeAboveSeaLevel()
local altRad = LoGetAltitudeAboveGroundLevel()
local pitch, bank, yaw = LoGetADIPitchBankYaw()
local vel = LoGetVerticalVelocity() -- Doesn't appear to be used.
local angle = LoGetAngleOfAttack()  -- Okay with... Su-27. Test other aircraft.
local accel = LoGetAccelerationUnits()
local trueairspeed = LoGetTrueAirSpeed()
local slipball = LoGetSlipBallPosition()
-- local flightcontrolPitch - LoGet()
-- local flightcontrolRoll - LoGet()
-- local flightcontrolYaw - LoGet()
-- get engines rpm from cockpit panel:
--local lDevice = GetDevice(0)
--local engineRPM = lDevice:get_argument_value(76) + lDevice:get_argument_value(77)
local scaler = 100.0
local user1 = accel.x*scaler
-- local user2 = (accel.y-1)*1000.0
local user2 = accel.y*scaler
local user3 = accel.z*scaler
local user4 = vel --engineRPM for Bergison Seat Shaker. Tried Vel which is the VSI component. Make Pilot Pitch Stick position
local user5 = 5 -- Make Pilot Roll Stick position
local user6 = 6 -- Make Pilot Rudder Pedal position
local user7 = 7 -- added to make it work.

default_output_file:write(string.format("t:, %.3f, altBar:, %.2f, altRad:, %.2f, pitch:, %.2f, bank:, %.2f, yaw:, %.2f, ACCEL:, %.2f, AOA:, %.2f, G-LOAD:, %.2f, accel.z:, %.2f, user1:, %.2f, user2:, %.2f, user3:, %.2f, user4:, %.2f, user5:, %.2f, user6:, %.2f\n", t, altBar, altRad, pitch*scaler, bank*scaler, yaw*scaler, accel.x*scaler, angle*scaler, accel.y*scaler, accel.z*scaler, user1, user2, user3, user4, user5, user6, user7))


if x then

socket.try(x:send(string.format("%.3f %.2f %.2f %.2f %.2f %.2f %.7f %.7f %.7f %.7f %.2f %.2f %.2f %.2f %.2f %.2f %.2f \n", t, 
altRad, altBar, pitch*scaler, bank*scaler, yaw*scaler, accel.x*scaler, angle*scaler, accel.y*scaler, accel.z*scaler, 
user1, user2, user3, user4, user5, user6, user7)))

-- socket.try(x:send(string.format("user1 = %.2f, user2 = %.2f, user3 = %.2f \n", user1, user2, user3)))
end

end

function LuaExportStop()
-- Works once just after mission stop.
c:close()

if default_output_file then
default_output_file:close()
default_output_file = nil
end

socket.try(x:send("quit")) -- to close the listener socket
x:close()

end

function ProcessInput()
   local lInput = c:receive()
   local lCommand, lCommandArgs, lDevice, lArgument, lLastValue
   
   if lInput then

       lCommand = string.sub(lInput,1,1)
       
	if lCommand == "R" then
		ResetChangeValues()
	end

	if (lCommand == "C") then
		lCommandArgs = StrSplit(string.sub(lInput,2),",")
		lDevice = GetDevice(lCommandArgs[1])
		if type(lDevice) == "table" then
			lDevice:performClickableAction(lCommandArgs[2],lCommandArgs[3])	
		end
	end
   end 
end

function LuaExportActivityNextEvent(t)
t = t + gExportInterval

gTickCount = gTickCount + 1

local lDevice = GetDevice(0)
if type(lDevice) == "table" then
	lDevice:update_arguments()

	ProcessArguments(lDevice, gEveryFrameArguments)
	ProcessHighImportance(lDevice)

	if gTickCount >= gExportLowTickInterval then
		ProcessArguments(lDevice, gArguments)
		ProcessLowImportance(lDevice)
		gTickCount = 0
	end

	FlushData()
end

return t
end

-- Helper Functions
function StrSplit(str, delim, maxNb)
   -- Eliminate bad cases...
   if string.find(str, delim) == nil then
       return { str }
   end
   if maxNb == nil or maxNb < 1 then
       maxNb = 0    -- No limit
   end
   local result = {}
   local pat = "(.-)" .. delim .. "()"
   local nb = 0
   local lastPos
   for part, pos in string.gfind(str, pat) do
       nb = nb + 1
       result[nb] = part
       lastPos = pos
       if nb == maxNb then break end
   end
   -- Handle the last field
   if nb ~= maxNb then
       result[nb + 1] = string.sub(str, lastPos)
   end
   return result
end

function round(num, idp)
 local mult = 10^(idp or 0)
 return math.floor(num * mult + 0.5) / mult
end

-- Status Gathering Functions
function ProcessArguments(device, arguments)
local lArgument , lFormat , lArgumentValue
	
for lArgument, lFormat in pairs(arguments) do 
	lArgumentValue = string.format(lFormat,device:get_argument_value(lArgument))
	SendData(lArgument, lArgumentValue)
end
end

-- Network Functions
function SendData(id, value)	
if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then
	value = value:sub(2)
end

if gLastData[id] == nil or gLastData[id] ~= value then
	local data =  id .. "=" .. value
	local dataLen = string.len(data)

	if dataLen + gPacketSize > 576 then
		FlushData()
	end

	table.insert(gSendStrings, data)
	gLastData[id] = value	
	gPacketSize = gPacketSize + dataLen + 1
end	
end

function FlushData()
if #gSendStrings > 0 then
	local packet = gSimID .. table.concat(gSendStrings, ":") .. "\n"
	socket.try(c:sendto(packet, gHost, gPort))
	gSendStrings = {}
	gPacketSize = 0
end
end

function ResetChangeValues()
gLastData = {}
gTickCount = 10
end


local Tacviewlfs=require('lfs');dofile(Tacviewlfs.writedir()..'Scripts/TacviewExportDCS.lua')

Link to comment
Share on other sites

Thanks Brass.

 

I've added the slipball value to my export.lua string but still can't get sim tools to compile a new plugin with the added value. I'll give the guys a few days to reply and if I've no joy I'll go back to X-sim.

 

The edit I'm working on for the export lua may interest you brass. The value you have is only for flaming cliffs aircraft. A bit more work is needed to get the value for other aircraft as the naming convention is different.

 

I've written a function to establish the aircraft being flown and based on that to return the slipball value for that aircraft. I only have the dcs helicopters in the function for now but will add other modules as I find time.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

Absolutely interested Frusheen! That functionality will most definitely be needed. I hope that you would be kind enough to post your script when you can.

 

I hope you get the recompile over at XSimulator soon. They seem to have a comprehensive set of plug-ins.

 

Here is the function I have written to get the slipball position and return it.

 

function AircraftType ()
   
	local myInfo = LoGetSelfData()
		local CurrentAircraft = myInfo.Name

	if CurrentAircraft =="P-51D" or CurrentAircraft == "TF-51D" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(28)
			return Slipball
	elseif CurrentAircraft == "Su-25T" then
		local Slipball = LoGetSlipBallPosition()
			return Slipball
	elseif CurrentAircraft == "UH-1H" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(133)
			return Slipball
	elseif CurrentAircraft == "Mi-8MT" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(23)
			return Slipball
	elseif CurrentAircraft == "Ka-50" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(108)
			return Slipball
	elseif CurrentAircraft == "A-10C" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(24)
			return Slipball
	elseif CurrentAircraft == "F-86F Sabre" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(31)
			return Slipball
	elseif CurrentAircraft == "FW-190D9" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(41)
			return Slipball
	elseif CurrentAircraft == "SA342M" then
		local MainPanel = GetDevice(0)
		local Slipball = MainPanel:get_argument_value(20)
			return Slipball
	else
		local Slipball = (0)
			return Slipball
	end
end

 

This is all the aircraft I have at the moment. I also own the Hawk but unfortunately I can't find where it is defined. As I purchase more aircraft I can work on updating the function. As I only really fly helicopters in DCS I'm glad to have all of them covered. I think it will be most useful with helicopters anyway.

 

local user1 = AircraftType()

 

This assigns the number returned by the function to the variable user1. I then add user1 to the string passed to Sim Tools like this:

 

if c then
		socket.try(c:send(string.format("%.4f; %.4f; %.4f; %.4f; %.4f; %.4f; %.4f;\n", pitch, bank, yaw, accel.x, accel.y, accel.z, user1)))

		end

 

 

If anyone has other aircraft and can provide the

myInfo.Name

and

get_argument_value()

for the slipball then I will add them.

 

For FC3 Aircraft I just need the myInfo.Name string and I could add them easily to the "Su-25T". Unfortunately I don't own them.

 

BrassEm I notice your export.lua is not passing any slipball value. If you need help adding it to your script let me know.

 

The function is probably not the prettiest code but it seems to work. Now I've to get back to studying VB in an effort to get Sim Tools to use the extra variable.


Edited by Frusheen

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

Success!! I've created a new force in the SimTools Plugin which outputs the necessary slip value. I finally got it compiled correctly.

 

Now to test its effects :pilotfly:

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

It works really well. I'm delighted with the progress I've made on the SimTools plugin code. The slipball force effect works very well in the planes as well as helicopters. I just took the p51 for a flight and found it really good. I even got thrown around in the seat when I made too sharp a turn taxiing.

 

Now I need to get back working on the base of the seat. I've spent way too much time studying Visual Basic and Lua - its time to get back to soldering! ;-)

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

  • 3 weeks later...

I've started work on the base of the seat. I quickly got the pulley and motor brackets made up. It went much smoother this time having learned a lot doing the backrest. I've updated the first page with images and further details.

__________________________________________________

Win 10 64bit | i7 7700k delid @ 5.1gHz | 32Gb 3466mhz TridentZ memory | Asus ROG Apex motherboard | Asus ROG Strix 1080Ti overclocked

 

Komodosim Cyclic | C-tek anti torque pedals and collective | Warthog stick and throttle | Oculus Rift CV1 | KW-908 Jetseat | Buttkicker with Simshaker for Aviators

 

RiftFlyer VR G-Seat project: http://forums.eagle.ru/showthread.php?p=2733051#post2733051

Link to comment
Share on other sites

  • 5 months later...

What welding unit are you using; brand and model?

 

What sticks do you use?

 

I welded years ago on the job. Welding unit was Hobart that did both DC phases and also AC, stick welding. The best rods were Eutectic brand, Beautyweld.

 

Looking for a not so expensive setup for home use.

 

How many hours do you have into your seat build?

 

Looks nice!


Edited by DieHard

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • 5 months later...

My next big project is making a G-seat, I'll have to give this thread a thorough reading as I haven't found a complete step by step guide yet to follow. If anyone has any links they recommend to help me get it built feel free to send them my way.

 

I have to do it on the cheap, so wipers are probably my best bet right?

[sIGPIC][/sIGPIC]

Demo of my 6DOF Motion VR Sim:

Link to comment
Share on other sites

  • Recently Browsing   0 members

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