CPLD/FPGA advice for a classic Atari-style joystick switch project - Page 1
Forum section: electronics / beginners

author: emuola
author_rank: Contributor
timestamp: September 29, 2020, 07:28:31 am
content: Hi all! First post here, hope I manage to follow the rules and formulate my post in a sensible way.I'm hoping to be able to create a classic Atari-style joystick switcher for up to 8 classic computers/consoles. I'd need your help to select a affordable FPGA/CPLD (dev board most probably) to perform the actual switching. The attached pdf should have the crucial information to be able to choose an appropriate FGPA/CPLD/else for the main task. I know I'll need some level shifters, because the joystick port level is 5V and the modern stuff accepts 3.3V, correct? I'm planning to use a 19" 1U rack case, where there are 2 joystick ports on front and 8 x 2 ports on the back.What would you guys choose to be the "brains" of this kind of a switch?

author: ebclr
author_rank: Super Contributor
timestamp: September 30, 2020, 02:37:53 am
content: Does not need a FPGA, one arduino will do that with very little CPU usage

author: KrudyZ
author_rank: Frequent Contributor
timestamp: September 30, 2020, 02:41:17 am
content: An Arduino wouldn't have enough pins...However, as said, there are no real smarts required.I would probably look at 5V capable open drain (or open collector) transceivers with an enable line.You would then simply route the inputs to all the transceivers and only enable the one you are interested in.That selection could even be made with an 8 pole rotary switch, in which case you would need no extra logic at all, just some pull-ups (or downs depending on the enable pin)

author: ebclr
author_rank: Super Contributor
timestamp: September 30, 2020, 02:46:01 am
content: Arduino can operate in matrix multiplex mode, Pins will be enough to do very easily

author: ebclr
author_rank: Super Contributor
timestamp: September 30, 2020, 02:48:43 am
content: If you insist in do with FPga, a simple resistor on the input , and counting with the clamp diodes inside the fpga will do the 5V to 3.3 V conversion

author: emuola
author_rank: Contributor
timestamp: September 30, 2020, 05:37:21 am
content: Quote from: ebclr on September 30, 2020, 02:37:53 amQuote from: KrudyZ on September 30, 2020, 02:41:17 amQuote from: ebclr on September 30, 2020, 02:46:01 amI also thought that Arduino would not have enough pins, when looking through the Arduino specs, but apparently it can be run in the matrix multiplex modeI'll investigate that, now I know better.The tranceiver + rotary switch route would also be of interest, thank you both for the suggestions.Quote from: ebclr on September 30, 2020, 02:48:43 amOk, this was also a valuable adviceI'll keep investigating this, stay tunedThank you all for the advice

author: Renate
author_rank: Super Contributor
timestamp: September 30, 2020, 11:42:42 am
content: Me? I'd concentrate on the big picture and the most troublesome aspect.Sixteen 9 pin DB cables? Yuck. Eighteen 9 pin DB cutouts in a chassis? Yuck.How about this:A master box that takes the two controllers.It spits out data on a 4 conductor cable.This is chained to slave boards that plug into the back of the consoles.If the spacing between the two player's inputs is fixed you could even make a single board that plugs into both.Are the consoles all the same model or is the connector spacing the same?Pro: You can get this thing working with only one slave board at first.You can expand to over eight consoles without a problem.Instead of 16 thick cables you have one skinny cable.Con: The little slave boards must have a bit of smarts.

author: rstofer
author_rank: Super Contributor
timestamp: September 30, 2020, 11:55:50 am
content: Maybe the Arduino Mega has enough pins:https://store.arduino.cc/usa/mega-2560-r3It's also a 5V chip

author: emuola
author_rank: Contributor
timestamp: September 30, 2020, 12:39:03 pm
content: Quote from: Renate on September 30, 2020, 11:42:42 amI like the ideaUnfortunately the computers/consoles are all different, so the spacing between the ports is different. The reason I started planning this with that many cables is that it seems to be easier to make one. But, I'm a beginner here, so all suggestions are welcomeQuote from: rstofer on September 30, 2020, 11:55:50 amI'm trying to get my head around the number of pins actually needed... pin9 is for paddles etc. -> not needed, so it's 8 pins/port that would need to be switched, of which one pin is GND. Does that make 8 x 8 pins or what? Sorry

author: Renate
author_rank: Super Contributor
timestamp: September 30, 2020, 01:01:04 pm
content: Quote from: emuola on September 30, 2020, 12:39:03 pmOk, well you could still have the little slave boards have two 10 pin headers.Then you just need to make two 6" 10 pin IDC to 9 pin DB connector ribbon cables, a piece of cake.(Besides, a board big enough to bridge the connectors would be more expensive than a tiny slave card.)What about switching video? power?You could have the slaves boards switch power too.

author: Bud
author_rank: Super Contributor
timestamp: September 30, 2020, 01:11:51 pm
content: The selected tool for the task...

author: emuola
author_rank: Contributor
timestamp: September 30, 2020, 01:15:58 pm
content: Quote from: Renate on September 30, 2020, 01:01:04 pmOK, regarding power and video most of the computers/consoles output RGB and are already hooked up to a Sony Broadcast studio CRT monitor and quality speakers via a Extron av switchThe setup is otherwise ready after a quite a few hours of building and trial and error, but I'd like to avoid connecting and disconnecting the joysticks as much as possible. I haven't found anything even close to my needs as a ready made solution, so I guess I have to build it myself... Of course there are also wireless solutions, but those will get pretty expensive, because I'd have to have 8 x 2 receivers on every computer/console.

author: Renate
author_rank: Super Contributor
timestamp: September 30, 2020, 01:42:09 pm
content: You probably don't care, but the 12 key controller uses some of the pins as outputs (to matrix).You'd have to make hardware accomodate that if you cared.Have you thought about having controller switching on the source side too?That is, multiple styles of controllers?Not to be too old skool, but if you wanted to make this all through hole then an ATMega328 and a 75176 RS485 would do the job.Of course SMD would be smaller.At some point we'll have to see photos of this all.

author: KrudyZ
author_rank: Frequent Contributor
timestamp: September 30, 2020, 02:29:19 pm
content: Quote from: ebclr on September 30, 2020, 02:46:01 amHow would this help?Looks to me like he needs to read 12 switches judging by his sketch. And I agree that you could mux these to some degree to save some pins.However the real issue is that you then need to drive 8 sets of 12 outputs, which is a lot of pins.Of course the solution would be a lot simpler if the unselected ports don't care about their inputs. In that case all you need are isolation diodes and zero active components.

author: Buriedcode
author_rank: Super Contributor
timestamp: September 30, 2020, 10:05:55 pm
content: There are several approaches, and using a CPLD/FPGA isn't a bad one really - they have plenty of IO's and would be easy to implement by just using a schematic editor (or you could learn VHDL/verilog!) with 14 8-to-1 multiplexers.A completely passive/unpowered approach would involve a huge ganged rotary switch. These are pretty expensive, especially if you've got 14 gangs in one.. So I'm thinking a powered approach is the only way.You could also do with with TTL logic, 14x 74HC4051 (or HCT) 8-to-1 multiplexers will do (thats 7 for each input line, but double that as you have two Dsub inputs, and two Dsub outputs). As these are analogue multiplexers it won't matter whats an input or whats an output - although clearly your schematic shows that all the joystick lines are outputs (from the joystick) and inputs to your multiplexer.These are controlled by 3 lines, along with a master "enable" that can disable all connections. The 3 lines are binary 0-7 for your 8 inputs, so you could control these from an Arduino that can just increment this value with a button press, or another TTL IC, a binary counter, so a simple button will change channel from 0, to 1, 2 etc.. Another multiplexer to control 8 LED's indicating what channel is selected and you're done. An Arduino provides much more flexibility in how you select the inputs, and can allow channel indication via simple LED, 7 segment display, LCD module etc.. but probably overkill.The whole thing could easily be done without having to write any software/code at all, but these days micros, and Arduino's are so cheap, and provide the possibility of adding many more features that if you're well versed in writing code for them, you might as well. But if you're completely new to it all, it can be done with raw logic, all running at 5V (no need for level shifters).

author: Renate
author_rank: Super Contributor
timestamp: September 30, 2020, 11:17:17 pm
content: Quote from: Renate on September 30, 2020, 11:42:42 amAre people serious when they talk about running 126 ((8+1)*2*7) parallel signals into a central box and playing with them there?Are you going to use that BGA with 126 GPIOs on it? Or just the 160 pin DIP?Are you going to mount 18 DB9s on a circuit board a foot and a half long?Or are you going to handwire the 126 connections (plus grounds and power)?Edit: Most sane solution if you really dig the central box.Make standard PCBs with 4 DB9s on them.Put 4-1/2 boards in a card cage that is bussed with 14 commons.(The half board has only two connectors and jumpers instead of switching.)P.S. Or 9 PCBs of 2 DB9s, but your backplane will be bigger.You could use stacking instead too.

author: floobydust
author_rank: Super Contributor
timestamp: September 30, 2020, 11:30:53 pm
content: Considering the Atari 2600 CPU runs at 1.2MHz with game code synchronous to video vertical refresh I believe, here is no need for speed or an FPGA here. It's only 12 bytes of data.A sample rate of 1kHz is plenty fast. You can read 8-bit SPI shift registers for the 96 inputs and ship out USB or whatever every 1msec, just like gaming mice and keyboards do.There are already joystick to USB converters galore used for MAME arcade games, using pic or arduino.

author: Renate
author_rank: Super Contributor
timestamp: October 01, 2020, 12:13:16 am
content: You could make per console slave boards like JTAG chained.A 5 wire connection, gnd, vcc, data, clock, load and only need two CMOS shift registers, nothing smarter.It would need only a clock greater than 128 kHz.

author: emuola
author_rank: Contributor
timestamp: October 01, 2020, 05:24:15 am
content: Quote from: floobydust on September 30, 2020, 11:30:53 pmThanks for the ideaUnfortunately I don't quite follow how this would work with an USB converter. Could you explain what you had in mind?Quote from: Buriedcode on September 30, 2020, 10:05:55 pmThank you for this comprehensive comparison between these two approaches. Unfortunately I have very little experience with Arduino. All I have so is that I have modded/fixed quite a number of those old computers/consoles. So, I guess it would be best for me to build this project with discrete components as you described. Like I said I can solder, but my overall understanding/capability of planning something like that is poor to say the least. But I'm not giving up just yetLike I said, I'm kinda surprised that there does not seem to be any similar project out there, because plugging/re-plugging the joystick ports is a real strain for those old computes/consoles.

author: agehall
author_rank: Frequent Contributor
timestamp: October 01, 2020, 06:49:38 am
content: I think this would be a fun and rather straight forward project, regardless if you go for an Arduino/shift register approach or the somewhat more complicated FPGA/CPLD approach.However, if all you want to do is reduce the strain on your DB9 connectors, just build a few short male-female cables and keep those plugged into your systems and joysticks at all times so that you only connect and disconnect connectors you can easily replace.

author: emuola
author_rank: Contributor
timestamp: October 01, 2020, 06:58:19 am
content: Quote from: agehall on October 01, 2020, 06:49:38 amYou're correct, but in addition to reduce the wear and tear of those precious joystick connectors, I'd naturally like the idea of not needing to tamper with anything else than just the "central hub" front, when changing to some other kind of Atari-compatible joystick. Switching between computers/consoles already works regarding video/audio, so then it would be a complete system with the joystick switching also being "just behind a switch". All the computers/consoles would be ready-to-play anytimeYeah, you can call me a bit crazy here

author: Renate
author_rank: Super Contributor
timestamp: October 01, 2020, 11:24:35 am
content: Let me put it another way.You've got a big box matrix already, the Extron V/A with 4 cables (or a triple and a single) running from 8 consoles.So you know what that is like.Let's ignore the question of the electronics themselves.Do you want:A central big box, like the ExtronA distributed solution with much less cablingI'll admit, I've changed my mind on the FPGA idea.You could get something in a flat pack.The FPGA would have a simpler PCB layout than 14 1-of-8 muxes.But it's still a heck of a lot of connections in a small space.Oh, you want to have it work with 5 V logic, there's not a lot of that.Here's one for $112https://www.digikey.com/product-detail/en/microchip-technology/AT40K40-2DQC/AT40K40-2DQC-ND/Also, bear in mind, you move one of your cables while shuffling across the carpet and blow out the FPGA.So you are going to add buffers on all the inputs and output?Maybe level shifters so that you can use a lower voltage FPGA?In the end, it's not really a question of what's in a big box, but whether you really want one.

author: Buriedcode
author_rank: Super Contributor
timestamp: October 01, 2020, 09:35:15 pm
content: Quote from: emuola on October 01, 2020, 05:24:15 amYeah the real bummer as a few others have pointed out is the logistics (panel cutouts, wiring etc..), rather than the actual circuit. And the idea of making it "modular" is definitely a good one - the cost of one large PCB is much more than several smaller ones of the same design. These days 10x 10cm x 10cm can be had for $10 (but shipping will cost a fair bit). Whilst how you switch (be it an FPGA dev board, multiplexers/discrete) will of course be important, it doesn't have much bearing on how you house this thing and how you handle panel cutouts. So you can treat these are separate problems (you don't have to decide one before the other).As for the connectors, whilst much more expensive (~$1), you can get IDC Dsub connectors (example:https://www.aliexpress.com/item/320068336.html) - thats just terminated on a 10 pin IDC socket, so no soldering required, and replacements can just be unscrewed from panel, and unplugged form the PCB.I wonder if you can get a panel for a 1U rack case with VGA cutouts like an 8-way KVM switch, the VGA Dsub15 connector is the same the DB9. A much larger and shittier option would be a PC case with 8 PCI bays, and using dual DB9 brackets: (https://www.amazon.co.uk/StarTech-com-Port-Serial-BRacket-Header-Gray/dp/B008635ANK). If they are the wrong gender, you can just use the brackets.I'm with ranate, leave the electronics for now:Quote from: Renate on October 01, 2020, 11:24:35 amI'll try and not post more because it'll just flood the thread with "oh how about this!" and it becomes an endless list of smaller problems that are discussed.

author: Buriedcode
author_rank: Super Contributor
timestamp: October 01, 2020, 09:39:53 pm
content: Quote from: emuola on October 01, 2020, 05:24:15 amYeah the real bummer as a few others have pointed out is the logistics (panel cutouts, wiring etc..), rather than the actual circuit. And the idea of making it "modular" is definitely a good one - the cost of one large PCB is much more than several smaller ones of the same design. These days 10x 10cm x 10cm can be had for $10 (but shipping will cost a fair bit). Whilst how you switch (be it an FPGA dev board, multiplexers/discrete, shift registers etc..) will of course be important, it doesn't have much bearing onhowyou house this thing and how you handle panel cutouts.So you can treat these as independent problems (you don't have to decide one before the other). If you eventually decide on the simpler approach, I'll be happy to knock up a diagram or schematic for using nothing but logic chips, discretes and passives, it isn't particularly complex, just large. But I'm by no means suggesting its "best" (or worst).As for the connectors, whilst much more expensive (~$1), you can get IDC Dsub connectors (example:https://www.aliexpress.com/item/320068336.html) - thats just terminated on a 10 pin IDC socket, so no soldering required, and replacements can just be unscrewed from panel, and unplugged form the PCB.I wonder if you can get a panel for a 1U rack case with VGA cutouts like an 8-way KVM switch, the VGA Dsub15 connector is the same the DB9. A much larger and shittier option would be a PC case with 8 PCI bays, and using dual DB9 brackets: (https://www.amazon.co.uk/StarTech-com-Port-Serial-BRacket-Header-Gray/dp/B008635ANK). If they are the wrong gender, you can just use the brackets.I'm with ranate, leave the electronics for now:Quote from: Renate on October 01, 2020, 11:24:35 amI'll try and not post more because it'll just flood the thread with "oh how about this!" and it becomes an endless list of smaller problems that are discussed.

author: emuola
author_rank: Contributor
timestamp: October 02, 2020, 05:40:57 am
content: Quote from: Buriedcode on October 01, 2020, 09:39:53 pmThanks you for the IDC tipHere's what I'm planning to do (at the moment).Case: 1U 19" rack. Some kind of front panel and this panel for the back:https://www.l-com.com/patch-panel-server-rack-175-x-19-blank-panel-w-16-universal-db9-hd15-hdmi-cutouts-blackConnectors:https://www.aliexpress.com/item/320068336.htmlThanks Buriedcode!Connector for the pcb:https://www.aliexpress.com/item/32864328748.htmlor just plain 10-pin headers.Brains: Lattice Mach dev board:https://www.digikey.fi/product-detail/en/lattice-semiconductor-corporation/LCMXO2-7000HE-B-EVN/220-2625-ND/3906092Actually a friend of mine has experience on this, so I just might go with this although it's kinda overkill. At least there's plenty of IO

author: james_s
author_rank: Super Contributor
timestamp: October 02, 2020, 07:06:41 am
content: You could certainly do it with a 5V tolerant CPLD, the code to implement it would be trivial. It might make more sense to use jellybean logic ICs though, these joysticks are digital so you can switch the lines using AND gates with one input from each gate wired to the enable.

author: emuola
author_rank: Contributor
timestamp: October 02, 2020, 10:19:59 am
content: Quote from: james_s on October 02, 2020, 07:06:41 amYeah, it seems to be pretty tricky to find a 5V tolerant CPLD with enough IO. Been googling for hours, and basically nothing. The Lattice I posted earlier is indeed a 3.3V part, so I'd need some level shifter ICs in addition to that.

author: Renate
author_rank: Super Contributor
timestamp: October 02, 2020, 10:40:48 am
content: Quote from: emuola on October 02, 2020, 05:40:57 am

author: emuola
author_rank: Contributor
timestamp: October 02, 2020, 10:41:47 am
content: Quote from: Renate on October 02, 2020, 10:40:48 amYeah, you can call me stubbornI'm trying to choose a design that I even remotely could accomplish. If someone would like to build this for money for me, I'm interested as wellThen the design could be whatever possible.

author: Ground_Loop
author_rank: Frequent Contributor
timestamp: October 02, 2020, 12:05:50 pm
content: Do you really need to switch them or can all the outputs run 'hot' and maybe just switch pin 8? Also, is the switching being done locally at the box or through some remote signaling? If locally, I think I would consider a multi-wafer rotary switch.

author: emuola
author_rank: Contributor
timestamp: October 02, 2020, 03:20:00 pm
content: Quote from: Ground_Loop on October 02, 2020, 12:05:50 pmAt least the C64 is notorius for having its CIA IC blown, if/when you re-plug joysticks while the computer is powered. So, regarding that, I guess some kind of a "protection" would be cool to have. Otherwise I just want the functionality, no matter the technical solution.

author: james_s
author_rank: Super Contributor
timestamp: October 02, 2020, 05:09:56 pm
content: Quote from: emuola on October 02, 2020, 10:19:59 amIt is tricky unfortunately, and once you need level shifters it may be easier to just use 5V jellybean logic. The XC9572 CPLD is 5V tolerant, I've used them before, I forget what the largest pin count in that series is.

author: emuola
author_rank: Contributor
timestamp: October 03, 2020, 06:31:35 am
content: Quote from: james_s on October 02, 2020, 05:09:56 pmHow about using two 5v tolerant CPLDs, since it seems there are only something like 100 pins available e.g. with the Max2 series. The other would switch port "1" and the other port "2". I know nothing about this, but I presume it would be doable? Is it reasonable, I really don't knowhttps://www.ebay.co.uk/itm/5V-MAX-II-EPM240-CPLD-Minimum-System-Core-Board-Development-Board-/173615395086

author: emuola
author_rank: Contributor
timestamp: October 06, 2020, 04:43:23 am
content: Any pointers for using two (cheap) ones as I suggested in the previous post?

author: Buriedcode
author_rank: Super Contributor
timestamp: October 06, 2020, 05:35:14 am
content: As far as I am aware, the MAX II series isn't 5v tolerant. Not sure why the ebay listing mentions 5v max.You might get away with just putting series resistors, but the only 5V tolerant CPLDs I know of, are the XC9500XL series from Xilinx and the original Altera MAX series (7000A is 5v. 3000A is 3.3V but has 5V tolerant IO).They are pretty old so sourcing them might be tough.

author: emuola
author_rank: Contributor
timestamp: October 06, 2020, 06:15:49 am
content: Quote from: Buriedcode on October 06, 2020, 05:35:14 amOk, seems to be pretty complicated to find a suitable one. This is 5V tolerant, but as the other's with XC9XXX CPLDs, there are only something like 40 IOs/board. (going with the dev board route, that is).https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/102990001/5488214?s=N4IgjCBcoLQdIDGUAuAnArgUwDQgPZQDa4ArAJwDsIAugL514BMx4ADE%2BeWzxPUAhttps://www.joom.com/en/products/5f237db9df78080106ccb906Maybe the design should be based on 4 of those then? Sounds even more complicated? It would mean something like this. (Attached image)

author: Renate
author_rank: Super Contributor
timestamp: October 06, 2020, 11:46:48 am
content: "O, what a tangled web we weave when first we practice to aggregate multitudinous signals centrally!"(With apologies to Walter Scott, "Marmion", 1808)

author: Buriedcode
author_rank: Super Contributor
timestamp: October 06, 2020, 07:45:59 pm
content: I know I said I would refrain from posting lots of things, but you seem to be focused on the electronics, rather than the housing, and the practical aspect of 16 Dub9 inputs, and 2 outputs.Rather than CPLD's, you could just use 16 of these:https://www.mouser.co.uk/ProductDetail/Texas-Instruments/CD74HCT4051E?qs=sGAEpiMZZMutXGli8Ay4kKsQJz56INPOm5KL7JomaBQ%3D

author: emuola
author_rank: Contributor
timestamp: October 07, 2020, 05:07:31 am
content: Quote from: Buriedcode on October 06, 2020, 07:45:59 pmYeah, the housing and related stuff I can manage without any special knowledge. It's the electronics (especially designing and overall understanding) that I suck at :/ Thank you for the suggestionI guess I could manage to build a working circuit using those with a lot of patience. I looked through the datasheet. How do you actually "tell" the IC to switch the channel (S1/S1/S3)? Sorry, this is the competency level I'm operating with these :O

author: Renate
author_rank: Super Contributor
timestamp: October 07, 2020, 11:33:49 am
content: The selection boils down to three control lines (2^3 = 8 selections).You connect all the S2 together, all the S1 together, all the S0 together.Then the question comes to how you control that?Simplest (and not suggesting it) would be a rotary single pole 8 position switch, some diodes and resistors.Most elegant would be having this work in tandem with your Extron A/V matrix.If the Extron is already running on an external panel (or a builtin panel that you like) you could decode the communication and have your stuff switch too.If you don't like what you have for a user panel, you could build your own to switch your stuff and send RS-232 or whatever the Extron takes.What model, what panel, do you like it?

author: emuola
author_rank: Contributor
timestamp: October 07, 2020, 12:29:49 pm
content: Quote from: Renate on October 07, 2020, 11:33:49 amThank you for the advice RenateAs the IC has this one "enable" pin (that enables/disables all the switchable pins), could/should I just get 16 pcs of these ICs "before" the out put ports and then by controlling the "enable" pin with a rotary switch, select which one of those 16 output ports are active?Integrating this to the Extron would of course be coolBut I want to have the basic functionality working firstRotary switch as the selector would be nice, no problem there for me.

author: Renate
author_rank: Super Contributor
timestamp: October 07, 2020, 01:01:24 pm
content: All the enables are always grounded.A single IC in this setup would be for all the player A left pushbuttons for all eight consoles.Another IC would be for all the player A right pushbuttons for all eight consoles.Obviously you would always want your player A left pushbutton going somewhere.That is, unless you want to totally disable everything so that the cat doesn't play video games.Then you would have the enables of all 16 (actually 14) 4051 connected to a single toggle switch.If you just want to get this to work (with an eye on a better controller) you can just use 3 toggles switches for console selection.I actually did this once in the old days.I built a digital video matrix (RP-125 parallel D1 video).The matrix was a lot of ICs wirewrapped.To start I built a small panel with thumbwheels to select the input for each output.I then went to work reverse engineering the control panel protocol that our large broadcast router used.I built an interface (also wirewrapped) to interface to the control panel bus and then configured the main router.When people came back from Xmas break they used the new router and didn't even know that it wasn't really part of the main router.

author: emuola
author_rank: Contributor
timestamp: October 08, 2020, 05:00:00 am
content: Quote from: Renate on October 07, 2020, 01:01:24 pmThank you Renate for the detailed descriptionI now understand how the basic principle would work (one IC for each joy port pin), but I don't quite get the idea of selecting the output ports with a toggle switch. Sorry, like I said I'm a noobieCould you give my another example on how to connect the switch to the circuit?

author: Renate
author_rank: Super Contributor
timestamp: October 08, 2020, 11:52:16 am
content: You need some pullup resistors, 2.2k should be fine.You have 3 switches, 8 possibilities.

author: emuola
author_rank: Contributor
timestamp: October 08, 2020, 05:09:10 pm
content: Quote from: Renate on October 08, 2020, 11:52:16 amThanks again RenateNow it makes sense even for me