Feasibility question

Hello all,

I'm currently working on a project which is getting quite complex compared to what I had originally expected. To be fair, it is my first proper project, but even so, I'd like to know what you guys think in regards to whether or not it's feasible.

Basically, I'm making a custom interface for a Playstation 3 steering wheel controller. I want to break out the 16 buttons on the wheel itself and connect them to a custom instrument panel, much like the dashboard of a racing car. The actual breaking out has been done and is very straightforward (it's just a matter of connecting one wire to another via a diode, which I'm doing with Solid State Relays), but the circuitry of the new inputs is what I'm concerned about.

A rundown of the controls:

Power switch for the ATMega 328
'Display' switch which toggles a cluster of LEDs on or off
Reset button for the ATMega
Three (on) - off - (on) DPDT toggle switches
Three mechanical rotary encoders
Two (on) - off DPST toggles
Seven pushbuttons (three DPST, four SPST)
Three DPST microswitches
One pressure sensitive resistor.

The three rotary encoders and three DPDT toggles, plus one of the SPST pushbuttons are interfaced with a 328 via some 4021 PISO shift registers, and then six out of the 16 Solid State Relays I'm using as outputs are interfaced with the 328 via a 595.

So as the project has gone on I seem to be incorporating more and more IC's. As far as I am (which isn't far) through the build, I've got:

9 74HC132 quad 2-input NAND gates (two gates on each have been made into an S-R latch to debounce the DPST switches)
1 74LS14 six element inverter (I may need more than that, even)
3 74LS75's,
3 74LS86's,
2 74LS32's
3 74LS193's and
1 74LS00, all to decode the rotary encoders (basically three of these circuits: Rotary Max

I still need to include the 4021's, 595 and 328 microcontroller, and I need one AND gate. I might also need to debounce an SPST button which will most likely mean another inverter, unless I separate the 74LS14 from the rest of the rotary encoder decoder board.

So far I haven't actually included any decoupling capacitors at all, mainly because I don't understand how it works but also because I don't have any capacitors under 1uF, however I have just ordered some. I need to read up about it on Grumpy Mike's site, but I'm assuming it'll definitely be necessary with that many IC's,right?

Also I'm going to drive all of this with a 9V 1A supply through a LM7805 regulator. Oh, and there are about 6 5mm LED's, maybe less, but not more. I'm building the circuit on a few small stripboards (mostly 95x65mm) so it's easily replaceable and such.

So, is this all feasible? It just seems like a lot of ICs to me, I can't think of a single schematic I've ever seen that has that many... Is it just a case of getting the decoupling right, or will there not be enough current? 1 amp seems like quite a lot. I don't even know how to work out the current draw of a circuit yet, so I'm just off to Google that.

Thanks!

Wow, neema_t, that IS ambitious.

Obviously, you understand some logic design with TTL etc.... And that's not a lot of ICs for complex stuff in TTL. I've some some with >256 IC's (not all by myself)..

But that's the Old Skool. I have to put on my WayBack hat.

I can't help thinking that all this COULD be done with just the Arduino, or at least a MEGA.

The debouncing could be done is simpler hardware, as the Arduino has some hysteresis on it's inputs.

The Encoders could be decoded in software..

Maybe I don't understand the project well enough yet.. I'll read it again... I hate to suggest changing direction, but maybe breadboard a piece using Arduino only?? HHmmm... Interesting...

Thanks for the reply!

You're definitely right, of course, that it could be done with one Arduino, but I made a simple test sketch which shifted in from a 4021 and shifted straight out to a 595, and there was a surprisingly long delay between a pushbutton being pressed and the corresponding LED lighting up, so I was a bit concerned about the input lag. That was just with one of each type of shift register, too, so I would imagine there would be more lag as it shifts in the data from each register in the chain. Then, if I were to only press a button for, say, 1/10th of a second, it might miss it.
Therefore, I felt like I should take a standalone logic approach to the buttons which were just linked directly to the corresponding output (which accounts for 10 of the outputs), just to make sure they'd be as quick as possible. I realised earlier (just as I was making a strip board of 10 S-R latches made from 74HC132's to debounce the DPST/DT switches) that I probably don't need to debounce them anyway, I could get away with just using a 74LS14 inverter (to get the signal the right way round), because the controller I'm modifying uses remote-control-style buttons in the first place, which must be kind of bouncy... Surely? Still, it was a useful learning experience, so not a waste of time (or money... I hope!). That simplifies the project a great deal, so that's reassuring.

The encoders, though, I spent quite a while trying to get to grips with. I had quite a lengthy discussion in a thread I posted with Grumpy Mike who showed me exactly what I needed to do to get a useful signal from them which didn't need to use interrupts or rely on the Arduino polling them quickly enough; if I only had one encoder I probably would have just used software. So, to that end, I quite want to use hardware for a number of reasons, the main ones being the time and money I put into learning about them.

Finally, as much as I'd love to use a Mega, I think it would be a bit of a waste permanently installing it in this rig!

I really hope that didn't come across as me completely disregarding your advice, it was more me talking to myself to you, if you see what I mean. You have just reminded me that I have yet to test reading the rotary encoder output through two 4021's, oops.

neema_t, I certainly didn't mean to be negative about what you're doing.. and you obviously know what you're doing with the TTL/HC stuff. And you're not building quantity...

There are definitely those days when I'd prefer to have hardware problem than software problems :slight_smile:

What you have defined is feasible for you. Probably not for many newbies...

Let us know how it works out. And photos!