always on Parallel in parallel out bidirectional shifter

MisterBill2

Joined Jan 23, 2018
27,535
Is the actual goal to have 64 lines in and 64 lines out, and the connections all shifted one position at a time? That suddenly becomes rather complex because now each input needs to be able to switch to each output. It can easily be done with a 64 by 64 matrix, but it is now far from "simple" because of the size. Double ended reed relays and two circuit boards can make the wiring error free, but the arrangement of 4096 reed relays will be tedious. And also a bit expensive. It could also be done with IC shift registers, but it would still take quite a few devices.
The basic reality is that it would require 64 switches for each of the 64 inputs, no matter what the switching devices are. That is 4096 switches. Simple to do on a programmable gate array, (PGA), for somebody who knows how to program them. That device will need a minimum of 135 connection points, so it will be a Ball Grid Array (BGA) package. So it gets complicated.
 

AnalogKid

Joined Aug 1, 2013
12,139
IF (biiiiiig if) the drawing in #19 is 64 inputs across the bottom and 64 outputs across the top;

AND IF (another one) the inputs do not change values or positions when the circuit is operating;

THEN -

The box could be eight 16 4-bit bidirectional shift registers in a circular arrangement (output 64 is connected to the leftmost Data In). This would require a Load input signal or button, maybe an automatic power-on-Load circuit, to load the 64 inputs into the registers. After that, the two buttons shift the bit pattern left or right.

- OR -

If the input values can change between shifts, things are way more complex. There are two possible routings. If initial input 5 has been shifted over to output 17, and then the value at input 5 changes -

a) The value of output 5 changes.

b) the value of output 17 changes.

ak
 

BobTPH

Joined Jun 5, 2013
11,517
In you early diagram you showed different voltages for the inputs. They seem to be analog, or maybe not?

What do they actually represent? I think they represent positions on the wheels of the enigma machine. Is that correct? If so, there are 26 distinct values for each rotor, requiring 5 bits to represent it. So where does the 64 come from?

I really think we are spinning our wheels here (pun intended) because, at least for me, I still don’t know what you are trying to do and various posters seem to have have different ideas.
 

Thread Starter

Sniper567

Joined Jul 2, 2022
14
Is the actual goal to have 64 lines in and 64 lines out, and the connections all shifted one position at a time? That suddenly becomes rather complex because now each input needs to be able to switch to each output. It can easily be done with a 64 by 64 matrix, but it is now far from "simple" because of the size. Double ended reed relays and two circuit boards can make the wiring error free, but the arrangement of 4096 reed relays will be tedious. And also a bit expensive. It could also be done with IC shift registers, but it would still take quite a few devices.
The basic reality is that it would require 64 switches for each of the 64 inputs, no matter what the switching devices are. That is 4096 switches. Simple to do on a programmable gate array, (PGA), for somebody who knows how to program them. That device will need a minimum of 135 connection points, so it will be a Ball Grid Array (BGA) package. So it gets complicated.
64 in and 64 out is the goal, I'm not sure if they are 100% the same but I did look into an FPGA that had something like 200 points so that might work if I can figure out how to program it, will have to look at that further
 

Thread Starter

Sniper567

Joined Jul 2, 2022
14
In you early diagram you showed different voltages for the inputs. They seem to be analog, or maybe not?

What do they actually represent? I think they represent positions on the wheels of the enigma machine. Is that correct? If so, there are 26 distinct values for each rotor, requiring 5 bits to represent it. So where does the 64 come from?

I really think we are spinning our wheels here (pun intended) because, at least for me, I still don’t know what you are trying to do and various posters seem to have have different ideas.
that more or less what I'm trying to build, the position wheels, however I plan on upgrading the original hardware a bit and fixing some of the flaws that the original had, and yes id like to keep it as analog as possible for FPGAs/coding are not my prefeed methods, with all the help from this form I'm thing designing a relay of sorts that still has moving parts might be the best way to go about this
 

BobTPH

Joined Jun 5, 2013
11,517
You didn't answer either of my questions, though you confirmed my suspicion that the inputs and outputs represented the wheels on the enigma. So I will try again:

Where does the number 64 come from?

What does each of those 64 lines represent and how?

A valid answer would be, for example:
"The 64 lines are 8 lines for each of 8 wheels, each of the 8 lines are single bits and, together, they represent an ascii character, which labels one position of one wheel."

I don't think you are trying to be difficult, but you are not getting us the information we need. If each of those 64 lines is an analog signal, this is an extremely difficult problem.
 

Thread Starter

Sniper567

Joined Jul 2, 2022
14
You didn't answer either of my questions, though you confirmed my suspicion that the inputs and outputs represented the wheels on the enigma. So I will try again:

Where does the number 64 come from?

What does each of those 64 lines represent and how?

A valid answer would be, for example:
"The 64 lines are 8 lines for each of 8 wheels, each of the 8 lines are single bits and, together, they represent an ascii character, which labels one position of one wheel."

I don't think you are trying to be difficult, but you are not getting us the information we need. If each of those 64 lines is an analog signal, this is an extremely difficult problem.
I think i get what your asking now, my bad, the the number 64 is the character set that I want to use, unlike the original Enigma id like to have numbers and other characters as well like $, %, #. I have 64 lanes because that the total size of my Character set that i picked, i only need to pass a positive signal through the circuit and the LEDs on the output side will all be connected to the negative so i don't need to pass a positive and negative signal through the relay. each lane is basically one contact on a single wheel with 64 lanes per wheel, as you said I believe you would classify these lanes as analog signals, in terms of how, the scrambling comes from the shifting of the inputs and outputs but the light that is illuminated on the output side of the device is for all intensive purposes an LED with a battery that goes around a really long loop, i hope that answered everything you asked
 
Last edited:

Thread Starter

Sniper567

Joined Jul 2, 2022
14
I think i get what your asking now, my bad, the the number 64 is the character set that I want to use, unlike the original Enigma id like to have numbers and other characters as well like $, %, #. I have 64 lanes because that the total size of my Character set that i picked, i only need to pass a positive signal through the circuit and the LEDs on the output side will all be connected to the negative so i don't need to pass a positive and negative signal through the relay. each lane is basically one contact on a single wheel with 64 lanes per wheel, as you said I believe you would classify these lanes as analog signals, in terms of how, the scrambling comes from the shifting of the inputs and outputs but the light that is illuminated on the output side of the device is for all intensive purposes an LED with a battery that goes around a really long loop, i hope that answered everything you asked
id also like to add that at the end of these relays/wheels there is a component that send the signal back through the wheels which leads me to believe that the other solutions mention previously like the multiplexers might not work because at some point in the loop the outputs would actually become inputs
 

BobTPH

Joined Jun 5, 2013
11,517
You need 6 bits to represent the position of a wheel with 64 positions. For 4 wheels you need 24 bits.

Edited to add: rotating a wheel by n positions is simulated by adding n to the 6 bit position. You are making this more difficult than it is.
 
Last edited:

MisterBill2

Joined Jan 23, 2018
27,535
OK, now the mechanical/electrical device is quite clear to me. It is a rotary arrangemeIt could be as simple as 409nt with 64 segments, separate conductors on a PC board, arranged so that a matching set of 64 spring loaded contacts(often called POGO PINS) each touch just one segment. Then a shift command rotates it one position in one or the other direction. Easier to do mechanically than electronicly, it appears. BUT it is within the realm of FPGA capabilities.
It would not be a shift register, it would be a matrix switch. It could be as simple as 4096 two-input and gates, maybe.It will also need 64 OR gates, each with 64 inputs.
 
Last edited:

BobTPH

Joined Jun 5, 2013
11,517
Each position on the wheel connects to a different position on the next wheel. That is fixed, and can be a lookup table ox 64x64. Each key rotates the first wheel and maybe others by another fixed amount. That is doing me by adding a constant. You put a voltage on the home position of the first wheel and it comes out at some different position on the last wheel. And that is the enciphered or deciphered character. Quite simple actually.

You use it to encipher or decipher the same way. You set the initial positions of the wheels to the key. Then enter the text one character at a time. Pressing the key rotates one or more wheels, and the position that lights up from the signal from on the last wheel is the translation.
 

Thread Starter

Sniper567

Joined Jul 2, 2022
14
Each position on the wheel connects to a different position on the next wheel. That is fixed, and can be a lookup table ox 64x64. Each key rotates the first wheel and maybe others by another fixed amount. That is doing me by adding a constant. You put a voltage on the home position of the first wheel and it comes out at some different position on the last wheel. And that is the enciphered or deciphered character. Quite simple actually.

You use it to encipher or decipher the same way. You set the initial positions of the wheels to the key. Then enter the text one character at a time. Pressing the key rotates one or more wheels, and the position that lights up from the signal from on the last wheel is the translation.
That is mostly how it works, it’s important not to leave out the detail about the final reflector wheel at the end that sends the signal back through the wheels again basically encrypting/decrypting it twice, so far I’ve heard a few ideas but most of them seem to be in agreement that I would either need a rather large FPGA or chip capable of running code, which might work but I’m not sure is in the spirit of the analog nature of the beast, so it might be in my best interest to just design a mechanical relay unless anyone can think of any other ideas?
 

MisterBill2

Joined Jan 23, 2018
27,535
OK, now the mechanical/electrical device is quite clear to me. It is a rotary arrangemeIt could be as simple as 409nt with 64 segments, separate conductors on a PC board, arranged so that a matching set of 64 spring loaded contacts(often called POGO PINS) each touch just one segment. Then a shift command rotates it one position in one or the other direction. Easier to do mechanically than electronicly, it appears. BUT it is within the realm of FPGA capabilities.
It would not be a shift register, it would be a matrix switch. It could be as simple as 4096 two-input and gates, maybe.It will also need 64 OR gates, each with 64 inputs.
Tuesday morning:OOPS!!! The "AND" gates solution will not work by itself. It will need to be that matrix of 64 by 64 transmission gates, plus the logic to control the shifting of the control signals. That part will simply be a 64 step ring counter, which will indeed look a lot like a circular left/right shift register.
So that is what will need to be in the FPGA, the 4096 transmission gate array plus the 64 bit circular shift register. The bi-directional part makes the I/O more complicated.
 
Top