Translate

Oct 18, 2017

SimVimCockpit (ArdSimX.2) I/O structure

Like with previous versions of the interface, SimVimCockpit (working title ArdSimX.2) allows you to use any Arduino pins for direct inputs, namely buttons, switches and encoders, and direct outputs (LEDs).

If the available pins are not enough, now you can use CD74HC4067  modules as input multiplexers to expand any pin to 16 inputs, guaranteeing that a single Arduino will be enough for a cockpit of any complexity.

This is the structure diagram of SimVimCockpit connections:




In general, all Arduino pins except of #62...69 (or A8 ... A15), can be utilized for all cockpit inputs control (direct or extended) or for direct LEDs (digital outputs).

For such output devices as 7-segment displays, serial-driven LEDs, analog (PWM) outputs  and steppers two more CD74HC4067  modules are used as output multiplexers.

For all CD74HC4067 modules used in your system the pins #62...69 are reserved:

  • Pins 62,63,64,65 (A8...A11)  serve as address lines for multiplexers
  • Pin 66 (A12) is used as "S" signal for one multiplexer module that controls all 7-segment displays, PWM controller and serial output.
  • Pin 67 (A13) is reserved as "S" signal  for one multiplexer module that controls 16 stepper motors.
  • Pin 68 (A14) is the "D" (data) signal for 7-segment displays, PWM controller and serial LEDs, and also used as "D" (Dir) signal for all stepper controllers.
  • Pin 69 (A15) is used as "L" (Latch) output for 7-segment displays built around MAX7219 or shift registers (HC595 or DM13A etc.).

If you need more analog axis inputs,  pin #54 (A0) can also be expanded with a multiplexer. So, totally 23 axis can be configuraed.


Note: Despite the large number of possible inputs (over 500) and various output devices, you can be sure that SimVimCockpit firmware will always have momentary reactions to any input, no matter how many of them will be used in your system, and flawless output (to every display or instrument).

The firmware code directly works with AVR ports without Arduino functions, which guarantees very fast  input/output processing  in case of multiple output devices connected and multiplexed inputs.

Using this approach requires to have several fixed Arduino outputs linked with the programmed port. In SimVimCockpit several (9) pins are reserved for all multiplexers (I/O), and S,D,L signals for controlling the displays, steppers, serial LED output, PWM controller.



More thorough connection instructions will be available here and on our website when it gets updated for SimVimCockpit, as soon as we can spare more time for it.


29 comments:

  1. We will be building separate modules/devices (i.e. comm radios, switch panels, etc. will be physically separated from the Arduino main board) rather than having one big panel. Trying to decide on a wiring layout between these devices. It's looking like we would need a 4 wire address bus, 1 wire input, power (7 wires) to run between the 'Arduino control box' and the multiplexer in each device, maybe more if more than one multiplexer in certain devices. Does this sound correct? Hoping as things move along us users will have a place to collaborate on design ideas. This is shaping up to be a busy winter!

    As always, great work.

    ReplyDelete
    Replies
    1. Yes, this version allows you to have more clean wiring. One 6-wire bus (address, +5v for multiplexers and GND) could be laid across all panel. The flat ribbon cable with headers can be used for that (as I've described this earlier on the website regarding to "matrix" wiring).

      Other Power lines (other +5v or some other voltage for some devices) should be selected more specifically for each used device. It can be "Power Bus" (+V1, +V2 ... and GND) across the panel.

      But I would prefer not to give exact wiring recommendations for everyone, in any case, everything will depend on specific panel design, its size (Cessna or Boeing) and used output devices.

      Someone will make all inputs direct, without multiplexer boards, or will have only one input multiplexer (e.g. for encoders), it will make no sense to have a common bus.

      As for outputs, 4 other signal lines of the output port can be also included in this bus.

      On the other hand, it would be more suitable for someone when "Display" or "Stepper" multiplexer is placed near to Arduino, especially if all display (stepper) modules are placed apart from each other.

      I will make a special page about all possible wiring options later.

      Vlad

      Delete
    2. I have corrected my previous message above (about common bus) and also, the diagram in the post has been altered.
      Vlad

      Delete
    3. Yeah, that is the way we were thinking of doing things. Each of our devices could possibly have an input and display module in it, for example a COM radio has buttons, encoders and displays. So would it be a fair assumption that this could possibly work by having a 6 wire main bus (address, + and -), 4 wire port bus (SS, SD, D and L) and would then also need a MUX input pin wire for each Input multiplexer?

      Just to clarify, can the signal lines (SS, SD, D and L) be used for more than one multiplexer and be treated as a bus? Like for example, can we have as many Display multiplexers hooked up to one single SD line? Just wasn't clear on the above description.

      Thanks again!

      Delete
    4. "SS" signal is used for all 16 steppers (one mux, maybe later will be extended), "SD" signal - for all displays (one mux). I don't think you will ever need more than 16 7-segm. displays.
      V.

      Delete
    5. Ok, I see it more clearly now. We will have to take another look at our end goal.

      So in general for a setup like we are designing (multiple separate devices), the arduino and multiplexers should be contained "together" in there own device? In doing so, there would be no actual bus to each of the devices (separate physical boxes), just individual wires from the device's switches/encoders/displays/etc to the arduino/multiplexer "box"...

      Sorry for all the questions, just trying to plan ahead. Maybe we should just wait till v2 is released and just start experimenting!

      Delete
    6. For example:
      1. you have switch panel with 5...16 switches/buttons. It has one MPx, (not necessary utilize all 16 inputs), and it is connected to 4-wire (and +5v and GND) address bus. PLus, one input wire goes to Arduino pin.
      2. If you have another panel with 20-32 switches, it includes 2 MPx ans also connected to the same address bus. Plus, 2 wires go to 2 Arduino inputs.

      In other words, with multiplexers you can have less long wires going to Arduino, you can place every multiplexer board closer to specific group of switches, buttons and encoders, not separate "modules".

      As I have mentioned, no need to make modules for home cockpit, though if you want, you can have some "detachable" panels, display modules etc, that don't have any ICs, boards, inside them, but have only connectors (i.e. every single module, even small gear handle panel with indicators, for example, hay have connector to easily detach it.).

      This is more convenient, because several groups/modules may be connected to one multiplexer...

      By the way, what are you designing exactly, why "multiple separate devices", and who you are, as you saying "we" :)

      Vlad

      Delete
    7. 'We' is just me and a friend of mine, nothing but a project for us to keep busy. We were thinking of designing a modular setup that isn't as permanent/specific as a complete panel such as your Baron setup. The idea was that if it was modular it may be more versatile as for flying different aircraft. But as we think about it more, we may just go all out and do a full panel. From a wiring perspective, this would definitely make things easier as well.

      Delete
  2. Good afternoon, it would be possible to use PWM or stepper motors for the instrument "prop sync" I do not like to use a monitor LCD, for this instrument, thank you.

    ReplyDelete
  3. where we can get gauges annemeter 270 degrees or more for instruments

    ReplyDelete
  4. I realize that pin usage is not as big a factor as it was on v1, but will it still work with encoders in a matrix?

    ReplyDelete
    Replies
    1. No, "matrix" connection (both for switches and encoders) in ARdSimX.2 is finally discarded. I never liked this concept, as I have mentioned in times of very first versions of our system, in Baron 58 I have used bus-like extension, that eventually became prototype for ArdSimX2.)

      As for encoders, now you will be able to use any pair of extended inputs as "direct' encoder inputs along with switches.

      Vlad

      Delete
  5. Hi Vlad,

    74HC595 can be used instead of the 74HC4067 in the scheme above?

    Best Regards

    Max

    ReplyDelete
    Replies
    1. NO, the first IC is a output shift register and the second one is a multiplexer.
      V.

      Delete
  6. Hello, is possible to use 2x Max7219 for displays, 2x 74HC595 for LED and 2x 74HC4051 for buttons with new ArdSimX2

    ReplyDelete
    Replies
    1. 1 - Yes, up to 16 MAX7219 (read the post "7-Segment displays support in ArdSimX.2x")
      2 - Yes, as many 595 ICs as you need ( but DM13A preferred)
      3 - No, only 16-bit, not 8, but I will think about this if needed.
      Vlad

      Delete
    2. Because we have in Europe local suplier of PCB´s for Airbus cockpit builders. His concept is create PCB kit (PCB with components without logic) and you can use them with any device which u want so typically with Arduino or another interface card. He is using 74HC595 and 74HC4051 in his designs. Is possible to consider add 74HC4051 support to ArdSimX2 please?

      Delete
    3. 4051 can be supported, but NOTE, that for CD74HC4067 you don't need any PCB, because there are plenty of ready-to-use boards online for less than $1, some links you can see on the "Overview" page:
      https://ardsimx.blogspot.com/p/blog-page.html

      Delete
    4. Is easier to create this https://ibb.co/mwEP6b with this https://ibb.co/eYk8XG ;) i hate all the wires in my sim...

      Delete
    5. Will be 4051 support mentioned on development status page?

      Delete
  7. hello. I have terrible soldering skills which show every time I have to deal with the 7 segment displays.

    I have yet to be successful at assembling one 5 digit section for my panel.

    besides the MAX7219 for 8 digits and tm1637 for 6 .. are there any plans to support off the shelf components for 3/4/5 digits?

    ReplyDelete
    Replies
    1. ASX/ASX2 supports any displays with number of digits from 1 to 8.
      As you can see in the ArdSimX Configurator - you can set any number.
      Vlad

      Delete
  8. Happy New Year 2018 to all and congratulations for your interfaxe

    ReplyDelete

  9. Hello
    when i put the latest version library and plugin in xplane at the beginning in the window of the plug it shows well the input and output and suddenly it turns searching and finds nothing .Oblige to submit an old version plug and library and everything works what do you think of problem knowing that I did not change anything thank you to you.
    Cdt

    ReplyDelete
  10. I a very exited to see the improvements from V1 to V2.. Is ther a date planned for when V2 will be available? also is there a beta planned?

    ReplyDelete
  11. Current status:
    On the development status page everythingis displayed as it is, we can't display progress every day (and even every week), sometimes a specific change can take a weeks, all depends on our available time.

    It was expected to be launched before the new year, but we obviously need more time.

    In last 3-4 weeks we practically could work only with configuration page, new website (devoted to SimVimControl) and database of parameters, a large amount of information needs to be organized to let people start working with new version.

    Vlad

    ReplyDelete
  12. Hi Vlad,
    It would be possible to have both ASX1 and ASX2 in the same project? I mean, I started my project with ardsimx1, can I develop the rest of my project with v2?
    thanks
    stefano

    ReplyDelete
  13. How made the configuration is made by ardsimx configurator or there is another way?.

    ReplyDelete

    ReplyDelete