Jump to content

=VG= SemlerPDX

  • Content count

  • Joined

  • Last visited

Community Reputation

2,910 Invaluable

About =VG= SemlerPDX

  • Rank
  • Birthday 06/05/1979

Profile Information

  • Gender
  • Location
    Portland, OR
  • Interests
    Camping, hiking, shooting, and fast gaming computers
  • Occupation
    Scruffy looking Nerf Herder

Contact Methods

  • YouTube

Recent Profile Visitors

24,952 profile views
  1. SitRep: I have several great suggestions and will be working on adding several of these ideas to the next working beta (0.99b), if possible. My release plan is simply this beta, and the 0.99b beta, for a few weeks until VoiceAttack beta that we are using gets it's own release, and then I'll add any final changes and polish, and release it as a version 1.0 - I don't expect much need for editing in future unless the radio menus get changed again, but will maintain the profile and entertain any useful suggestions even after final release. If anyone has any other suggestions, feel free to let me know! Thanks for all the feedback so far!
  2. *For anyone with issues, per a message I received about keys not getting through: You can ensure that keys are getting sent to the application by opening the VoiceAttack Profile, and clicking on Options along the top, and select "Send commands to this target" and then write in *Falcon BMS* between asterisks (*) for a wildcard catchall for the BMS game window. This will ensure these keystrokes go where they are needed. See image:
  3. Thanks for the feedback! If people prefer English for VoiceAttack, there is no sense to waste time on localization. I believe I can include an option for QUERTY or AZERTY. Is this correct? // AI COMMS Menu Lists Set Text [KEY_AWACS_LIST] to 'A' Set Text [KEY_WINGMAN_LIST] to 'Z' Set Text [KEY_ELEMENT_LIST] to 'E' Set Text [KEY_ATC_LIST] to 'T' Set Text [KEY_FLIGHT_LIST] to 'R' Set Text [KEY_TANKER_LIST] to 'Y'
  4. Server Pause

    We don't pause when no players online. Not sure if there is a setting for that. EDIT: I thought we tweaked the campaign to change some setting when no players were online, but it seems that our setting was no different than the default 2 hours, and it has nothing to do with actually pausing the server or action on the server. I have notes going back to Allied Force, things get confusing, so I hope this is relevant. Admittedly, I've not tested it. I set it like 3 years ago as I read in some ancient forum post here, and haven't changed it since, and have included it in our servers falcon bms.cfg file throughout version changes over the years. Here's the original post from three years ago: More info from the interwebs: Technically, it's a 24/7 Campaign, so things happen even when we are not present to witness them, the clock keeps ticking in real time. At all times, a war is going on with thousands of units all over a full scale map of Korea. (if only they could have maps this size and units of that volume for an infantry+vehicles military game like PR or Arma, a map change could be more of a location change/teleport!!) Hope that answers your question - there is no literal "pause" - time moves ever forward: set g_nNoPlayerPlay 2 //VG server changed- extend playtime when no players online *after re-reading all that old info, I think the comment I put in our config "extend playtime when no players online" was what confused me, as I don't think it's the most accurate interpretation and I think I'll revisit this particular setting when I have time
  5. VincentJames96 Memorial - 24 Hours at Muttrah

    VincentJames96 Annual Memorial - 24 Hours at Muttrah 06.22.2019 0600 PRT In remembrance of our dear departed friend H8CrazyVet67, also known in games as VincentJames96, whom we lost last year, we will be hosting a 24 hour event based around his favorite map. All map layers will be included in the rotation. Please join us as we remember the good times we had with our old friend. In game messages will help inform our regular players of this change, but please be patient with those who do not notice and may complain, and kindly explain this temporary event to them so they may know to conduct themselves with respect accordingly, or to choose to play on another server for the remainder of the day. Thank you!
  6. In memory of H8CrazyVet67

    Roger. I'll set it at around 0600 ZULU for Muttrah All Layers 24 Hours in remembrance of our dear departed friend H8CrazyVet67 aka VincentJames, and an in-game message will display such on the server title, and at the join screen & in-game. *(the denotation of 24/7 implies seven days a week/twenty four hours per day -- this will be a 24 hour event)
  7. Nom nom nom VG background

    I was thinking more along the lines of Conrad Poohs Dancing Teeth... (don't skip ahead, the buildup is key!)
  8. Nom nom nom VG background

    hahahaha! Still works, too! Love it! nomnomnomnomnom
  9. Thank you very much! (It's my profile, not Kavelenko - lost in translation, I'm sure, don't worry about it!) I had a feeling that the profile may look odd, all of my AVCS4 profiles follow a similar format, and must be grouped by category in order for the list to look correct. By consolidating multi-part commands, and collapsing all categories, it should begin to appear much more ordered. I enjoy placing as much as possible into "initialization" scripts so that if I change anything later, I can make changes in one place. If you look inside most of the commands like "go stack;go spread;..." their content is almost exactly the same as the next or previous commands, and again, this makes it very easy to expand or edit in future if needed. I would love to work with someone to add localization to this profile! If we could translate my command words into French, and if Windows Voice Recognition and VoiceAttack both work in the French language, it would be very easy to modify this profile. Again, all speech variables are in one file, so anything spoken by the profile can be changed to any language without hunting for them throughout the profile. And editing the commands themselves would let you change any of the command words to French equivalents. Proper nouns would likely remain the same, of course, OR you could change ALL callsigns in the profile to different ones if you edit the .vap and find/replace all. I'll include a readme with instructions on changing/adding callsigns to the .vap profile file before the beta is finished. If anyone would like to help with localization, RSVP
  10. Napalm

  11. I have a touch screen monitor below my main one when I fly in flight simulators like Falcon BMS or DCS or Microsoft Flight Simulator. It's great for the MFD buttons, as opposed to the actual wired USB Thrustmaster MFD's physically attached to the screen like I used to have, and I can use the monitor for other things, too. But one thing I would love to have attached to the screen would be the Course and Heading knobs of the HSI (horizontal situation indicator) . It would need to be removable so I can store it when not in use. I've heard about a micro-suction tape that can stick to anything smooth and flat without leaving a residue or losing stickiness, so this is a good excuse to buy some and play around with sticking things to my monitors. ← On the left is the (green) Arduino Micro board I used to test the concept with a rotary encoder on a breakout board, where I wrote the initial sketch with the Joystick and Encoder libraries. Later, because I didn't want to sacrifice my Arduino Micro to this controller, I bought a 3 pack of these much smaller Sparkfun Pro Micro clones for fifteen bucks (blue one in the middle). That one is gonna stay there for future tests and such, they'll be the heart of many projects in the future since they cost so little and include so much! My DIY USB Game Controller - Rotary Encoders as Course & Heading Knobs for Falcon BMS / DCS / FSX *parts list with links at bottom The initial goals I had for this project were: Two Rotary Encoders with Push Buttons recognized as USB Game Controller in Windows Thin and flat, without taking up too much viewing space on the monitor Can stick and restick to the monitor with micro-suction tape USB connector can be removed so it can be boxed (NetDot magnetic) Fine control for one-degree per detent and Fast Speeds for turning quickly Encased in semi-rigid form like shrink wrap so it won't scratch the monitor Total cost for one single unit less than $10 First, I affixed the Rotary Encoders and the Pro Micro clone to an 8cm x 2cm prototype PCB with a couple header pins bent outwards and crimped down, and with the two blue solid copper switch wires soldered in place from the top. I also ran the 10k Ohm resistors for the switches now. These are for the push buttons built into the rotary encoders, and although they only have two pegs on the actual component, they require three wires from the controller board (ground, 5 volt power, and the blue switch wire going to the Pro Micro). All this added plenty of structure. There is no wiggle or play, I'm not gonna try to break it, but it is very rigid now. Here's a close look at the first stage of soldering. (okay, don't look too close) I don't have the highest quality tools or solder, or even a lot of skill and experience at this, but it's good enough -- and good enough should always be good enough for a DIY project for personal use. If I wanted to, I could order a custom circuit board if I was going to make a bunch of these, but I'm happy as it is. It is so cheap to buy some of this stuff, if you messed up, you can always just buy another. Those Pro Micro controller boards cost about as much as a value meal at a fast food joint, so you can literally afford to make mistakes as you learn even if you're on a very tight budget like I am. A homemade carbon filter fume extractor, a simple soldering iron with a power switch and a temperature controller, some handy dandy helping hands and that brass soldering tip cleaner make little projects like this very easy, and all these items together costs less than the Logitech mouse to it's right. Good enough to play. If anyone reading this has any idea to get into working with things like this, my advice is to jump right in, get the most basic stuff you can get, not the cheapest, but things with good reviews from some good online store like Amazon, Sparkfun, Adafruit, etc. Soldering the top side here, used one of the helping hands to hold a string of solder from the spool. When I'm dealing with tiny bits that are between 0.5mm-2mm, anything that helps is appreciated. One slip and this 225C soldering iron would burn through any one of those tiny chips or components on the board. I find myself holding my breath and doing one or two, then letting go for a sec. I had to redo a few, and I always wait for it to cool down so I don't transfer too much heat to this poor little board. I had a few bits of solid copper wire with colored insulators, from a breadboard jumpers kit, so I cut some to length, but used others as is. This resulted in an odd looking crossover of the Orange and Yellow wires, but they are not taller than the micro USB port on the other side of the board and that's fine. Once I was all done, I tested every connection for continuity and unintentional bridges, and it all checked out, so I encased it in shrink wrap. By some sort of miracle, it works, it looks decent, and I think that will do just great! I connected it to the computer and uploaded the sketch, which I had to modify slightly since I used a few different pins for the push buttons on the rotary encoders, now at pins 15 and 6 instead of 6 and 7. I am thoroughly hooked on these NetDot magnetic adapters. When I looked at the reviews for Pro Micro boards, one of the only issues I saw that I'd be concerned with is accidentally popping the micro-USB port off the Pro Mini board if dropped or yanked too hard. A magnetic connector completely eliminates this issue, as well as the standard wear and tear issues that plugging and unplugging creates over time. And they're as cheap as regular braided USB cables, too. Why not? Here it is connected to the touchscreen monitor. It is far more satisfying to have tactile dials for these knobs than trying to make little circles on the screen with my finger over the touchscreen dials. The micro-suction tape keeps it in place and actually has some grab when trying to pull it off the screen. I've started using a peeling action but I doubt the screen would ever have problems. I might get a 3D printed case someday and maybe even a 90 degree angle connector so the cord goes back behind the monitor naturally instead of downwards, but for now, it's done and working great. Turning the dial with the most basic rotary encoder sketch from that Arduino library results in a "one degree per detent" meaning one turn is one click, and one click is one degree. No matter how fast you turn it, with 20 detents per 360 degrees with these encoders, it would take FOREVER to turn the dial from heading 000 to 180!! I wrote two separate jump speeds to detect how fast the dial is being turned, one jumps 18 degrees per click, and the other 30 per click. Now, it's easy to twist the dial fast to get it spinning fast on screen, while also being able to dial in one degree at a time when needed. All in all, it was a fun project and it's made me think seriously about getting a 3D printer someday to make little plastic cases for things like this. Here's the code if someone wants to use it (or modify it to make it better): Rotary Encoders HSI Course and Heading Knobs.ino for Arduino IDE https://pastebin.com/drUnCfKN /* Simple HSI Knobs Sketch for Falcon BMS / DCS / FSX * for Arduino Micro/Leonardo / Sparkfun Pro Micro or equiv. clones * by SemlerPDX June2019 * VETERANS-GAMING.COM * * Pins: * Rotary Encoder 1 - (OUTA-OUTB-SW) = Arduino Pins (0,1,15) * Rotary Encoder 2 - (OUTA-OUTB-SW) = Arduino Pins (2,3,6) * * Encoder Library * http://www.pjrc.com/teensy/td_libs_Encoder.html * * Joystick Library * by Matthew Heironimus * https://github.com/MHeironimus/ArduinoJoystickLibrary */ #define ENCODER_USE_INTERRUPTS #define ENCODER_OPTIMIZE_INTERRUPTS #include <Encoder.h> #include <Joystick.h> //Tell the Encoder Library which pins have encoders Encoder axisXRotation(0, 1); Encoder axisYRotation(2, 3); //Rotary Encoder Push Button Pins int buttonArray[2] = {15, 6}; //Rotary Encoder Interrupt Pins int EncoderPin0 = 0; int EncoderPin1 = 1; int EncoderPin2 = 2; int EncoderPin3 = 3; //Delay Time between loops int debounceDelay = 260; //Variables to compare current to old values int oldX = 0; int oldY = 0; int RxAxis_Value = 1; int RyAxis_Value = 1; //Intervals for Jump/Warp Speed Rotations int JumpSpeed = 18; int WarpSpeed = 30; //Set generic joystick with id 42 with 2 buttons and 2 axes Joystick_ Joystick(0x42, 0x04, 2, 0, false, false, false, true, true, false, false, false, false, false, false); void setup() { //Set Encoder Pins as Pullups pinMode(EncoderPin0, INPUT_PULLUP); pinMode(EncoderPin1, INPUT_PULLUP); pinMode(EncoderPin2, INPUT_PULLUP); pinMode(EncoderPin3, INPUT_PULLUP); //Loop through buttons and set them as Pullups for(int x = 0; x < sizeof(buttonArray); x++) { pinMode(buttonArray[x], INPUT_PULLUP); } //Set Range of custom Axes Joystick.setRxAxisRange(0, 359); Joystick.setRyAxisRange(0, 359); // Initialize Joystick Library Joystick.begin(false); } void loop() { // Loop through button pin values & set to Joystick for (int x = 0; x < sizeof(buttonArray); x++) { byte currentButtonState = !digitalRead(buttonArray[x]); Joystick.setButton(x, currentButtonState); } // Read "Heading" X Axis Rotation Encoder Knob int newX = axisXRotation.read(); if (newX > oldX) { //Determine speed of increment & set output int difX = newX - oldX; RxAxis_Value = speedVal(difX, RxAxis_Value, 1); Joystick.setRxAxis(RxAxis_Value); axisXRotation.write(newX); oldX = newX; }else if (newX < oldX) { //Determine speed of decrement & set output int difX = oldX - newX; RxAxis_Value = speedVal(difX, RxAxis_Value, 0); Joystick.setRxAxis(RxAxis_Value); axisXRotation.write(newX); oldX = newX; } // Read "Course" Y Axis Rotation Encoder Knob int newY = axisYRotation.read(); if (newY > oldY) { //Determine speed of increment & set output int difY = newY - oldY; RyAxis_Value = speedVal(difY, RyAxis_Value, 1); Joystick.setRyAxis(RyAxis_Value); axisYRotation.write(newY); oldY = newY; }else if (newY < oldY) { //Determine speed of decrement & set output int difY = oldY - newY; RyAxis_Value = speedVal(difY, RyAxis_Value, 0); Joystick.setRyAxis(RyAxis_Value); axisYRotation.write(newY); oldY = newY; } //Send Joystick info through USB Joystick.sendState(); delay(debounceDelay); } //Function to set Rotation value adjusted for the turning speed int speedVal(int dif, int val, int dir){ if (dif >= WarpSpeed) { if (dir == 1) { val = val + WarpSpeed; }else{ val = val - WarpSpeed; } }else if (dif >= JumpSpeed) { if (dir == 1) { val = val + JumpSpeed; }else{ val = val - JumpSpeed; } }else{ if (dir == 1) { val = val + 1; }else{ val = val - 1; } } //Correct Rotation within 360 deg. if (val < 0) { val = val + 360; }else if (val >= 360) { val = val - 360; } return val; } Here's a cost breakdown: Pro Micro (clone of Sparkfun Pro Micro board sold by KeeYees) (3 pack) - $15.99 https://www.amazon.com/gp/product/B07FXCTVQP/ $5.33 per board PCB Prototype Board Kit - $15.99 https://www.amazon.com/gp/product/B07CK3RCKS/ $0.25 (just a guestimate - it's one part out of a huge kit) 360 Degree Rotary Encoders (5 pack w/knob caps) - $8.89 https://www.amazon.com/gp/product/B07DM2YMT4/ $3.56 for 2 dials Microsuction Tape (25cm X 30cm Sheet) - $14.95 https://www.amazon.com/gp/product/B00M7FC1K8/ $0.12 (just a guestimate - used 1.5cm x 6cm strip of a huge sheet) NetDot 5ft Braided Magnetic Tip USB Micro Cable (3 pack) - $13.90 https://www.amazon.com/gp/product/B074TB8XTL/ $4.64 for 1 cord (Not taking into account things like double sided sticky tape, solder, wires, or shrink wrap tubing segments used because they cost less than a few pennies) Total: $13.65 (USD) _________________________________ I spent a fair bit more money than I initially expected to (almost $55!), but much of that went towards components or materials that I'll be able to use for several projects in the future. At about $14 bucks, it is twice what I thought it would be per unit, so that will help me to better gauge other ideas. It seemed like it would be cheap as dirt, using many parts I already owned, but it all adds up - they don't sell less than a sheet of micro-suction tape, and buying control boards in bulk is the only wise way to do it (if you can call 3 units "bulk", that is). In conclusion, it was great to have an idea, play around with some proof of concepts, and then make it into a reality within a few days. Single game controllers today.... one day, a full cockpit of switches! Not sure what my next project will be, but among other ideas, I've considered making a custom control board for Kerbal Space Program, or maybe some kind of wireless gear that can connect to a computer and translate into RF to control some DIY RC cars or whatever with my Xbox controller already attached to my PC. Eventually, I want to get into wireless stuff, and even RC, but I might start with button boards that use USB cables just like this one. If anyone has any questions on this project, feel free to ask. Thanks for reading!
  12. FNG on Deck!

    Hello and welcome!
  13. screen047.jpg

  14. How to install BMS 4.34

    Hello and welcome! BMS 4.34 is a standalone release. You can keep 4.33 installed if you want, 4.34 won't mind and will install to it's own separate folder. I'm sure there are better instructions on the BMS website, if you need further detail. I have 4.32, 4.33 (U5) and 4.34 all installed on the same hard drive.
  15. Arma 3 Liberation Server crashing

    This is a known issue that we have not been able to resolve yet (mostly because I'm the only one really doing it and I'm out of ideas). Zadra has been invaluable in helping pin down the issue, but to no success. He doesn't even read English, so our communication is always passive and not a lot gets accomplished fast. I feel like I'm spinning plates sometimes..... I used to have several technical people helping manage the difficult technical aspects of various servers at VG, and now it is pretty much down to me. I remember back when I didn't know anything technical and Savage/Poffadder/Solar taught me a little and encouraged me to learn more. Now, here I am. Thank God for Kav and Stark being so helpful and getting through a lot of training this year managing the PR Server.... but still, I'm alone in the dark here and not sure how to fix the Arma 3 server(s)... One possible work around (if I understand Zadra correctly) is to restart it 3 times.... apparently, the third time will be stable(?) So sorry for the technical issues, I hate when things fall into disrepair. If you know anyone in our group with technical know-how who'd be willing to help ol' SemlerPDX out, tell them to msg me.