Jump to content

Blue73

Members
  • Posts

    473
  • Joined

  • Last visited

Everything posted by Blue73

  1. Hi, I get a good grip from the hex nuts, they slightly bite into the plastic locking the switch in. Yes I've modeled everything except the screws.
  2. Hi, The Master Arm panel is complete. As with all panels, I'll design the back side once I start on the rear frame. cheers John
  3. It's the startup license you need.
  4. It sure will. I'll need to complete the CAD work for all front panels before I print anything more. I have a modular frame idea in mind that will hold an arbitrary set of modules. Once all panels are complete I can get a feel for how the panels attach to the rear frame. Printing will then begin.
  5. HUD control panel complete.
  6. Lots of great vids on YouTube, I learnt allot from that and Pluralsight. Top plate is 2mm, bottom is 4.5mm. I went thicker on the bottom so there was zero flex with the controls. Yes lid plan dimensions are 150x40/80/120mm. cheers John
  7. :) my excuse, probably too much free time.
  8. Cheers for that FoxDelta :) Every time I peruse the forum you've knocked out another mod with full instructions, awesome work!
  9. Cheers mate. :) I won't be but I've made the display sections as separate screw in modules, so it can be done. All buttons are mounted on the same plane so I can wire it up easier. When the button-headers are vapour smoothed they're real slippery so I get no binding. You cannot see in the cut-away, but buttons have corner guides to the rear.
  10. Hood Complete
  11. Reliability and repeatability is the biggest benefit of the M200, you wont have to worry about the printing process. Load up the STL file, come back in the morning and it's done. Haha, they aren't cheap but what you get is your sanity and free time. Worked mine hard for the past 2 years, still no issues, worth every cent. If you go the Zortrax route, buy generic ABS, though their filament is high quality it is expensive. I use Zortrax filament for my knobs. cheers John
  12. Thank you. :) I'll be 3d printing this panel on my Zortrax. cheers John
  13. Hi All, I haven't posted in a while, I've been busy CAD'ing my UFC. It's not complete yet the top section needs some work and base mounting plate needs to be designed. Like the DDI's, all button headers are 3d printed and connected to push buttons mounted to the rear plate. A single Nano will drive this panel. cheers John
  14. I was at University in the mid 90's, the courses available now are allot more interesting. I did have unit on the foundations of CPU architecture, that was fun. Awesome, yes it's all hiding in the advanced view. As a rotary is feeding relative data to the sim, +3200 which is sent as a string and not an integer, would simple add 3200 to the current value. You could send the same dcs command message with an integer and it would simply replace the current value with that integer. I haven't checked but I assume "INC" and "DEC" is the same as sending "+1" and "-1". Yes, I'd send off DcsBios::tryToSendDcsBiosMessage("ANT_EGIHQTOD", "TOGGLE"); It's great you're making progress, keep firing any equations you have at me, happy as always to help. cheers John
  15. This shows how even a basic button box can add allot more immersion than using a keyboard and mouse. Maybe my multi-aircraft DCS-BIOS technique can be of some help with your generic controls? https://forums.eagle.ru/showthread.php?t=231236
  16. Hi, My responses are in-line. I'll write some sample code for you, if it helps? You have 4 players. 1. A trigger pin assigned to pin 4 2. fcsBitSw - a circuit breaker. a 2pos sw both connected to slave 5 board? yes but the circuit breaker has no relevance here, it's just to show a local switch that also reacts to the message. 3. RIGHT_LOUVER - a pot? connected to slave 5 or 20 or somewhere else? does it even matter? since it seems to be the global guy. It's an encoder but can be a pot. It needs to be connected to the Arduino that has your push button that kicks off the sync process. Yes can be anywhere. if trigger pin toggle is flipped, send signal to right louver, the global switch then poll controls yes this is correct clear fcsBitSw poll on slave 5 yes it's sync'd like all other controls then stopped after 10 rounds. On Slave 20 4. lstNflrSw - some toggle on sensor panel? yes, like fcsBitSw it's just a control that is synced. check if right louver value changed and if so, poll controls for switches this board yes clear LST_NFLR_SW poll on slave 20 yes it clears after 10 rounds of sync. Did I understand the logic correctly? Questions. 1. onRightLouverChange is anything you made up for a switch state? So I say onAntEGIChange etc? This all comes from the DCS-BIOS documentation, find one that suits, it can be anything really. IntegerBuffer rightLouverBuffer(0x54ec, 0xffff, 0, onRightLouverChange); 2. Similarly, rightLouverBuffer is a variable, i can call whateverBuffer? Same as one, needs to be derived from the documentation. I'm sure the name is irrelevant it's more the parameters. Just use the one from the reference doco. 3. then the values inside 0x54ec, 0xffff, 0, are these fixed? These need's to be correct for the message generated, again it's from the doco. 4. DcsBios::tryToSendDcsBiosMessage("RIGHT_LOUVER", "+3200"); if this is a pot you do a +3200. what does that mean? It increments the value by 3200, used by rotary's. Valid values are between 0->65535. It can be anything. If i check change for a global button or light or toggle then how do i say tryToSendDcsBiosMessage (?,?) It's the message name that needs to change, the doco will show you what they are. i'm amazed how did you know to code all these! By building a PIT you learn a few things :)
  17. :thumbup:
  18. No problems rocketeer, happy to help. The global signal can be derived from anything, POT, Rotary, Toggle, push button, it's just a message. Just as long as it generates an event message that you can listen for. It will work across multiple systems as I have two mega masters with a bunch of slaves that all hear the same event message generated from a single slave. cheers John
  19. Hi rocketeer, this code should work, let me know if you have any issues. Note this works with a momentary, it sets up a 10 round button sync operation across all slaves when it senses Arduino Pin D4 going low. It moves the right louver right one position with all other slaves detecting the event. Slave Unit With Global Message Trigger #define DCSBIOS_RS485_SLAVE 5 #define TXENABLE_PIN 2 //#define DCSBIOS_IRQ_SERIAL #include "DcsBios.h" DcsBios::Switch2Pos fcsBitSw("FCS_BIT_SW", 5); #define FORCEPOLLCYCLES 10 unsigned int g_iInitIntervalCounter = 0; unsigned int g_iForcePollCycles = 0; int g_iTriggerPin = 4; // the number of the toggle switch pin void onRightLouverChange(unsigned int newValue) { g_iForcePollCycles = FORCEPOLLCYCLES; } DcsBios::IntegerBuffer rightLouverBuffer(0x54ec, 0xffff, 0, onRightLouverChange); void setup() { pinMode(g_iTriggerPin, INPUT_PULLUP); // initialize the toggle switch pin as an input DcsBios::setup(); } void loop() { DcsBios::loop(); if (!digitalRead(g_iTriggerPin) && !g_iForcePollCycles) { DcsBios::tryToSendDcsBiosMessage("RIGHT_LOUVER", "+3200"); delay(10); } if ( g_iForcePollCycles > 0 ) { //repeat poll for this many cycles if ( ++g_iInitIntervalCounter == 0 ) { PollAllControls(); //main loop 1->65535->0 then polls g_iForcePollCycles--; } } } void PollAllControls() { fcsBitSw.pollInputCurrent(); } Other Slave Units #define DCSBIOS_RS485_SLAVE 20 #define TXENABLE_PIN 2 #include "DcsBios.h" DcsBios::Switch2Pos lstNflrSw("LST_NFLR_SW", 15); #define FORCEPOLLCYCLES 10 unsigned int g_iInitIntervalCounter = 0; unsigned int g_iForcePollCycles = 0; void onRightLouverChange(unsigned int newValue) { g_iForcePollCycles = FORCEPOLLCYCLES; } DcsBios::IntegerBuffer rightLouverBuffer(0x54ec, 0xffff, 0, onRightLouverChange); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); if ( g_iForcePollCycles > 0 ) { //repeat poll for this many cycles if ( ++g_iInitIntervalCounter == 0 ) { PollAllControls(); //main loop 1->65535->0 then polls g_iForcePollCycles--; } } else { g_bGlobalMessageSent = false; } } void PollAllControls() { lstNflrSw.pollInputCurrent(); } cheers John
  20. You can send DCS-BIOS messages manually, they don't need to be generated from io functions. When I get home tonight I'll upload code showing how you can achieve what you're after.
  21. Hi Mr Burns, Not quite ebay but much cheaper. I used to have a small amount fail but since pulling down the rx'/tx pin they've been okay. I think the pin floating high when connected to the bus was the issue. They're also so cheap you can swap them out if you have any issues. What's running now on my slaves have not failed. https://www.aliexpress.com/item/10PCS-lot-MAX487CPA-DIP8-MAX487-RS-422-RS-485-Interface-IC-RS-485-RS-422-Transceiver/32807108224.html?spm=a2g0s.9042311.0.0.2d564c4dbs1eUK
  22. Hi, As Hans has said placing a decoupling cap right up close to the 487 will help filter off any high frequency supply noise from reaching the 487. All my 487 bus transceivers have one. https://forums.eagle.ru/showthread.php?t=219982&page=22 cheers John
  23. That's great news, glad you got it working! Sorry I don't know how to send a global DCS-BIOS packet to other slaves. You could toggle an indicator light state somewhere (even though it doesn't exist) then look for the event on the other slaves?
  24. Hi Chouclak, these components are unique to the way I've implemented my DDI, it allows me to drive all 20 buttons using only two pins on the Arduino. This may not be relevant to what you're doing? If it is, let me know and I'll produce a cct diagram. cheers John
  25. Hi, Which resistor are you referring to?
×
×
  • Create New...