collapse

* Who's Online

  • Dot Guests: 18
  • Dot Hidden: 0
  • Dot Users: 3
  • Dot Users Online:

* Recent Topics/Posts

Seeky's F-16AM BAF pit by Hero
[Today at 03:26:39 AM]


Willy's Pit by Willy
[November 19, 2017, 02:59:36 PM]


Salaxi54's pit progress by henkie
[November 19, 2017, 11:53:49 AM]


Giovanni's Pit by antares190
[November 15, 2017, 02:31:28 PM]


Azul's Pit by Willy
[November 15, 2017, 11:41:34 AM]


TiTi's pit by Lento
[November 12, 2017, 03:21:03 AM]


mcfrag0815's IKEA IVAR-Pit Project by Moon
[November 09, 2017, 06:17:45 AM]


F-16 fuselage by Rufus
[November 08, 2017, 09:04:23 PM]


Blaze's Pit by Blaze
[November 07, 2017, 03:27:37 PM]


John's F16 pit progress by Willy
[November 07, 2017, 01:45:56 PM]


atsalis_p's Viper Pit by atsalis_p
[November 05, 2017, 05:26:57 PM]


Red Dog's pit - I finally started by Catcher
[November 01, 2017, 09:46:20 AM]

Author Topic: Willy's Pit  (Read 171700 times)

Offline Rufus

  • General
  • ******
  • Join Date: Feb 2012
  • Location: California
  • Posts: 3766
  • Country: us
  • VP Awards : Veteran Award: Awarded after 5 years of community service : 3000+ posts Award: Awarded for achieving over 3000 posts : Silver Cup Award: Awarded to someone for a special achievement : Top Poster Award: for those 30 members with most posts
    • Awards
Re: Willy's Pit
« Reply #480 on: November 11, 2017, 11:00:14 PM »
@Willy :  I have one of these...and am looking for specific information on it.  I think you mentioned you had one as well, or had a contact?  I haven't contacted the maker directly as of yet, but I do have them bookmarked.

I had considered picking up one of the older real heads, until I snagged this item... :clap: !
- Rufus

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #481 on: November 11, 2017, 11:29:41 PM »
That is an AWESOME find!!!

However, I suspect that since it is made specifically for a Simulator, you'll need to get the interface information for it (if that is even possible).  It looks like that DB-25M connector on the back provides the interface signals.  Getting that to interface with BMS is probably going to be a real challenge.
Beau "Willy" Williamson

I better go find my monkey!

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #482 on: November 12, 2017, 05:31:11 PM »
Mechanical UHF Switching Unit Interface

I've been giving the "Mechanical Switch Unit interface to BMS" more thought. The easiest way to accomplish this is for non-programmer/uProcessor engineer types is to use a PoKeys 57U board and feed it with the output of 4 x "BCD to decimal decoder" logic chips; one for each frequency switch position (except for the 200/300 line which can be a single direct input. 

The ten outputs of the first 3 BCD logic chips would generate 3 x 10 outputs for the Tens, Ones and Tenths digits for a total of 30 inputs to the Pokeys, the fourth chip would generate only four outputs corresponding to the 00, 25, 50 and 75 hundredths switch position and then one input for the 200/300 Mhz line.  That means you would have 35 discrete digital inputs to the Pokeys which could then be programmed easily to issue the required keystrokes for any changes you make to the position of the Frequency Switches.  You could use the remaining Pokeys input lines for the MODE Switches, Tone, Squelch and Preset switches/buttons.

With a couple of other logic chips you could convert the 11 Channel signal outputs to 20 discrete inputs to the Pokeys to cover the Channel Selector switch.  Unfortunately, that plus the 35 discrete frequency inputs would exhaust the total number of inputs on the Pokeys and would not leave you any inputs for the two MODE switches, Tone, Squelch and Preset Button.

Having said that, it might be possible with a little careful engineering to use a diode matrix approach to try to squeeze everything into a single Pokeys  as the 57U supports a 16 x 8 Matrix.  However, that will require further examination to see if that is even possible with the way the Mechanics Switch unit is wired.

Now If we could just get Pokeys to add support for HEX/BCD decoding this whole thing would be snap!  It would then be just a matter of wiring a Pokeys 57U to the two XAIP1 and XAIP2 connectors and then configuring the Pokeys to issue the keystrokes as needed.  Hmmm, I sent them a request for this enhancement some time ago but never heard back.  I think I need to reconnect with them on this.
Beau "Willy" Williamson

I better go find my monkey!

Offline salaxi54

  • General
  • ******
  • Join Date: Feb 2012
  • Location: Athens
  • Posts: 557
  • Country: gr
  • VP Awards : Veteran Award: Awarded after 5 years of community service : Outstanding Build Award: Awarded for an outstanding pit build
    • Buy me a beer
    • Awards
Re: Willy's Pit
« Reply #483 on: November 13, 2017, 12:20:19 AM »
@Willy : I'm not sure what would be required for the older switching unit to fully interface with the Pokeys board, but my guess would be some PIC chip with the proper algorithm for the conversion. As on the 'digital' switching unit model, there's some board that could come in handy for 7-segment displays:
http://www.flightsimparts.eu/shop_microdriver7segment.htm
You're doing a great job on your pit-painting front there!  :thumbsup:

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #484 on: November 13, 2017, 03:07:45 PM »
@Willy : I'm not sure what would be required for the older switching unit to fully interface with the Pokeys board, but my guess would be some PIC chip with the proper algorithm for the conversion.
@salaxi54
If you count up all the inputs needed you will find there are more than the 54 available inputs on the Pokeys (the 55th can't be used as it sends the unit into Recovery Mode) if you want to interface all of the switches on the old style unit. 

Yes, you could use PIC uProcessor to "decode" the BCD outputs but I doubt you could get one big enough to generate the 55 discrete outputs to connect to the PoKeys. You would have to use multiple PIC's and your chip count would be just as high as using individual CMOS BCD decoder chips.

On the other hand, if you were saying you could use a uProcessor to read all of the signals and build an interface to BMS ala Wolfman's kit, yes you can do that.  However, the desired goal was to NOT have to build a new uProcessor kit and write software for it.  Instead, it would be nice to just interface the Mechanical Switching unit to a Pokeys and have a complete interface.  Given that doing that would take (by my count) 59 Pokeys discrete inputs, you "could" do this with 2 Pokeys and then have some spare inputs left over on the second unit that you could wire to other switches in the pit.  (See my posts on some of my Panels to see what I mean about having a Pokeys on one panel and making the unused inputs available to other panels.)

Then again, maybe you were talking about something entirely different.
« Last Edit: November 13, 2017, 04:39:49 PM by Willy »
Beau "Willy" Williamson

I better go find my monkey!

Offline Focaldesign

  • General
  • ******
  • Join Date: Dec 2012
  • Location: Mol
  • Posts: 899
  • Country: be
  • VP Awards : King for a Day Award: Awarded for an exemplar contribution to the community : Top Poster Award: for those 30 members with most posts : Triplet Award: Awarded after 3 years of community service
    • Buy me a drink
    • Awards
Re: Willy's Pit
« Reply #485 on: November 14, 2017, 07:48:11 AM »
I would love a working mechanical UHF on my future pit. And I'm planning on using Pokeys for everything so that sounds very promising. Keeping an eye on this :)

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #486 on: November 14, 2017, 03:22:34 PM »
Pokeys Interface for the Mechanical UHF Switching Unit

Well I spent some time today following the advice of the folks at Pokeys who suggest we try implementing the BCD decode function using their PoBlocks Compiler.  Here's what that looks like.



In this example, I'm reading Pokeys pins 50-53 and converting those individual BCD Encoded "Bits-to-Byte" which results in a Binary Coded Integer value.  Every 500ms that Integer value is clocked into "Current Value" and at the same time, the "Current Value" is clocked into "Previous Value".  Those two values (Current and Previous) are compared by the "Input Changed" compare function.  If they are not the same, a change has been detected for that frequency switch and a 100ms Keystroke Pulse is generated.

Next, the "Current Value" is decoded by 10 separate compare functions to select one of ten USB Keystroke is to be sent.  The selected Keystroke is then triggered to be sent by the 100ms Keystroke Pulse through an AND function.

This graphical code is compiled into "additional" firmware code that can be downloaded and merged into the Pokeys to get it to interface with one of the frequency switches in the Mechanical Switching unit.  (NOTE: The normal Pokeys firmware still remains available for use as other standard Pokeys input/output functions.)

Now here's the problem, each of the Keystroke 0 - 9 blocks (right side of the drawing) has to be Hard-Coded with the corresponding BMS Keystrokes values currently in use in your BMS Key map.  If you change that key map and use different Keystrokes for the frequency switch settings, you will have to update the values in all of the USB Key blocks on the right side of the drawing to what you are using, recompile and download the updated code to your Pokeys 57U.

Finally, keep in mind that we need the above code replicated about 3 times to cover all of the Tens, Ones, Tenths Mhz binary coded Frequency Switch outputs. The ".000/.025/.050/.075 Mhz switch uses a simpler 2 bit/line Binary Coded output so that one is a subset of the code shown above.  And the finally 200/300 Mhz Frequency Switch is a single Digital Input to Pokeys which doesn't require special PoBlocks code.

Now if we also want to interface to the Channel Switch, we need a 5-bit expanded version of this code to covert 5 bits of Binary Coded input (1, 2, 4, 8, 16) into the 20 Channel switch positions.  Of course if BMS doesn't provide direct keystrokes for the Channel Switch then this won't help and we have to find another way to use the existing Channel-Up/Channel-Down keystrokes and figure out a way to sync up with what BMS thinks the channel currently is.  (NOTE:This "might" be accomplished with special "INIT" code that when activated sends 21 Channel-Down keystrokes to make sure BMS is on Channel 1 and then send the number of Channel-Up Keystrokes to sync it up the the current Channel setting of the Switching Unit.)

I'm waiting to hear back from Pokeys as to what they think of this code and is there a better way to implement these Binary Code inputs and convert them to Keystrokes.  If this works out, I'll probably also make use of this to interface the middle two BCD encoded Digitran Thumbswitches in the AUX_COMM unit.  The first and last Digitrans are only two positions and won't need BCD decoding.  (However, this too will require the special "sync-up" INIT code since to my knowledge BMS doesn't support individual Keystrokes for each Digitran switch position.)

Beau "Willy" Williamson

I better go find my monkey!

Offline Moon

  • General
  • ******
  • Join Date: Sep 2008
  • Location:
  • Posts: 776
  • Country: au
  • VP Awards : Veteran Award: Awarded after 5 years of community service
    • Awards
Re: Willy's Pit
« Reply #487 on: November 15, 2017, 05:24:36 AM »
Nice work Willy.  :thumbsup:

I've looked at PoBlocks, but never really understood it, so I'll be watching your progress with interest. :notes:

If you can crack the UHF and Digitran inputs that will be a great achievement.

Offline Focaldesign

  • General
  • ******
  • Join Date: Dec 2012
  • Location: Mol
  • Posts: 899
  • Country: be
  • VP Awards : King for a Day Award: Awarded for an exemplar contribution to the community : Top Poster Award: for those 30 members with most posts : Triplet Award: Awarded after 3 years of community service
    • Buy me a drink
    • Awards
Re: Willy's Pit
« Reply #488 on: November 15, 2017, 07:08:08 AM »
Sounds promising!

Regarding this part:
Of course if BMS doesn't provide direct keystrokes for the Channel Switch then this won't help and we have to find another way to use the existing Channel-Up/Channel-Down keystrokes and figure out a way to sync up with what BMS thinks the channel currently is.
The currently available callbacks in BMS are SimCycleRadioChannel and SimDecRadioChannel and no way to set one specific channel immediately. BMS always starts with channel 6. So I wouldn't waste too much time on that part and just add "UHF backup: verify chan6" in the cockpit before engine start checklist ;)

Offline Rufus

  • General
  • ******
  • Join Date: Feb 2012
  • Location: California
  • Posts: 3766
  • Country: us
  • VP Awards : Veteran Award: Awarded after 5 years of community service : 3000+ posts Award: Awarded for achieving over 3000 posts : Silver Cup Award: Awarded to someone for a special achievement : Top Poster Award: for those 30 members with most posts
    • Awards
Re: Willy's Pit
« Reply #489 on: November 15, 2017, 12:32:53 PM »
Another way is to read the state of your own switch(es), read the state of BMS, and then send up/down keystrokes until BMS matches your switch setting(s).

I'd like to do something like this universally at startup, and also on command.
- Rufus

Offline mrwell

  • General
  • ******
  • Join Date: Dec 2012
  • Location:
  • Posts: 1191
  • Country: es
  • VP Awards : 1000+ posts Award: Awarded for achieving over 1000 posts : Triplet Award: Awarded after 3 years of community service : Top Poster Award: for those 30 members with most posts
    • Awards
Re: Willy's Pit
« Reply #490 on: November 15, 2017, 05:37:41 PM »
Or just running a preflight checklist ;)

Offline Rufus

  • General
  • ******
  • Join Date: Feb 2012
  • Location: California
  • Posts: 3766
  • Country: us
  • VP Awards : Veteran Award: Awarded after 5 years of community service : 3000+ posts Award: Awarded for achieving over 3000 posts : Silver Cup Award: Awarded to someone for a special achievement : Top Poster Award: for those 30 members with most posts
    • Awards
Re: Willy's Pit
« Reply #491 on: November 15, 2017, 07:22:04 PM »
Yes - the idea is to be able to leave the cockpit in any state when you get out, and then actually have it respond correctly as you are running your pre-flight after BMS has started.  And/or - to be able to recover from some switch state that gets latched in or out of synch because of key collisions, battle damage, etc. 

I'd like to have the routine run at startup, and on command using something like the FLCS Reset or some combination like paddle+FLCS Reset.

In any event, this should allow you to run any checklist you like by insuring that BMS is synched to the physical state of your cockpit at startup.
- Rufus

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #492 on: November 15, 2017, 10:59:01 PM »
@Rufus

Yes that is my long-term goal.  A special unused button in the pit that triggers software to compare PoKeys switch state with BMS Shared Memory and sends the necessary Keystrokes to sync the BMS to the pit.

As for doing the UHF Channel Sync, I think the following PoBlocks code would do it.

PoBlocks UHF Channel "Sync" Logic


Similar to the other PoBlocks BCD Decode function, the Channel Switch inputs are read every 500ms and the bits are converted to a Byte Integer and stored in the Current Chnl Value 8-bit latch.  This is used later in the logic.

When the "Sync Pit Input" line is pulled low, it starts the Sync process by setting the JK Flip Flop and loading a count of 20 into the down counter. This causes the "Q" output of the Downcounter to go low putting a "1" on the Input "B" of the AND Gate along with the "1" of the JK Flip Flop being applied to Input C.  The 200ms clock is applied to Input "A" and as a result 20 - 100ms pulses (200ms clock/2) are sent to the "Chnl_Dwn" USB Keystroke output.  This sends 20 Chnl_Dwn keystrokes to BMS and forces it to move its internal Channel Switch to Channel 1 regardless of where it was before.  (I'm assuming here that BMS doesn't wrap around from Channel 1 to Channel 20. I'm pretty sure that is the case.)

Now when Countdown timer gets to zero, its "Q" output goes high which does a Reset on the Countup timer thereby resetting the Countup counter to zero and loading the value of the channel switch as the maximum count.  The counter then proceeds to count up the number of steps as indicated by the Channel Switch. The logic beyond that works like the count up section but instead sends N number of Chnl_Up USB Keystrokes (where "N" is the Channel Setting) to force BMS to the same channel as the UHF Panel's Channel Switch setting. 

Finally, when the Countup counter reaches the Channel number, it's "Q" output goes high and the JK Flip Flop is reset on the next clock pulse, terminating the "sync" logic.

I'll have to compile and load this into a Pokeys and test it out soon.

Beau "Willy" Williamson

I better go find my monkey!

Offline mrwell

  • General
  • ******
  • Join Date: Dec 2012
  • Location:
  • Posts: 1191
  • Country: es
  • VP Awards : 1000+ posts Award: Awarded for achieving over 1000 posts : Triplet Award: Awarded after 3 years of community service : Top Poster Award: for those 30 members with most posts
    • Awards
Re: Willy's Pit
« Reply #493 on: November 16, 2017, 03:46:26 AM »
Amazing job.
Thanks!

Offline Willy

  • -=VP Veteran Donor=-
  • General
  • *
  • Join Date: Apr 2005
  • Location: Richardson, TX
  • Posts: 852
  • Country: us
  • VP Awards : Top Poster Award: for those 30 members with most posts : Bronze Medal Award: Awarded for special contributions to the community : Old Geezer Award: Awarded after 10 years of community service : Silver Cup Award: Awarded to someone for a special achievement
    • http://www.employees.org/~bwilliam
    • Awards
Re: Willy's Pit
« Reply #494 on: November 16, 2017, 11:41:10 AM »
Guys and Gals,

You can get a better understanding of all of the PoBlocks capabilities by downloading the latest PoBlocks documentation and also the latest Pokeys software that includes the PoBlocks application. Then launch PoBlocks and select the "Pokeys 57U Generic" option. You can then take a look at all of the information about each type of block by hovering your Mouse over each Block in the Toolbar at the top of the application. There you will see info on each block along with the inputs and outputs of each.

Finally, I have attached the PoBlocks code (.xml) file that I used to test the basic BCD function. You can use PoBlocks to load this into a Pokeys 57U and then experiment using input pins 50 - 53 as the BCD switch input. Keep in mind that the inputs are active low (which is the same as the Mechanical Unit) so ground those individual input pins to experiment with it. When you change those input leads the Pokeys will output Keystrokes for "0" - "9" to demonstrate the decoding of the BCD input.

Examples: Ground just input 50 (the "1" line") and the logic will send a "1" keystroke. When you disconnect the pin, the logic will send a "0" keystroke corresponding to all inputs inactive, i.e. high. Now ground input 51 (the "2" input) and the logic will send a "2".

You can also use PoBlocks to Single Step the code as well as turn on "Monitor" mode which graphically displays what is happening. Additionally, you can turn on Memory View which will display the values of each PoBlocks output as you single step the code.

Try it!
Beau "Willy" Williamson

I better go find my monkey!