This site is currently under construction so there are updates to come soon (still no data...)
Electronics
Electronics held a key role in the InCOGnito project.
They served as an intermediary between the Raspberry Pi micro-computer, the mechanical cifer and the recieving computer.

Mission
We needed to find a way to recieve the keyboard imputs, which came through the micro-computer, split each letter on a different electronic circuit to send them across the encrypting cogs, and finally convert the electronic signal specific to each letter in a langage the recieving computer could understand.
The electronic circuit
Let us explain in more detail the principal of our electronic circuit. The schema (downloadable here) the circuit when two letters are linked together at any given time by the rotors. The signal is given by a GPIO pin on the Raspberry Pi, depending on the letter. The signal will flow trough the diode, since the transistor will not be supplied at the emitor, and be sent by the rotors to any other letter's channel. It will then arrive by the right side, be blocked by the diode, but go through the transitor by the emitor. It will finally leave from the collector towards the base of mechanical keyboard (BMK) which we cill detail later.


Printed Circuit Board Concieving
In order to draw the PCB, we used a software called "KiCad", with which one can draw up, test, and export electronic circuits, PCBs and the files needed to have them made.
-
First, download the "Kicad" software here
-
Download our KiCad project here
-
Extract the "Geber files InCOGnito project" file (Warning: IT IS NOT PERFECT! Many of the footprints used are wrong: we incite you to learn how to use KiCad and modify the "Fina schema.kicad_pcb" file; for more details please refer to the next part)
-
You will then need to find a company who will make the PCB for you from your Geber files: we used JLCPCB (you can find their website here)
Main problems with our PCB
As stated above, our PCB is far from perfect. We had to learn how to use KiCad specifically for this project, and necessarily made errors which costed us many extra hours of soldering to fix. Therefore, we strongly recommend you learn how to use KiCad and modify a few points, especially the following:
​
-
The footprints used for the I2C pin extender and the 2x20 socket buses are the wrong size, so we had to manually solder wire from the Raspberry Pi to these parts. If you find the right footprints in the library or draw them yourself on the software, you will save yourself multiple hours of soldering
-
Make sure to check that every electronic channel is separate and doesn't cause a short circuit
-
The footprints used for the resistors forced us to solder them "standing up" (like on the first image of the site) which is rather unstable. Replacing them by wider footprints will allow you to solder them flat, hence making the resistors more stable!


Converting the electrical signal to USB
For this part, our method was rather unorthodoxe. We used the base of a mechanical keyboard (refered to as BMK), but replaced the key inputs by transistors which served as switches.
​
-
We used the following BMK (find it here)
-
You will need the "QMK toolbox" software to program the BMK (here)
-
If your recieving computer is in AZERTY keyboard, you can use the same file as us to flash the keyboard (here)
-
Otherwise, you can create your one layout on this internet site (choose "bm43a" as keyboard)
-
For any extra information on how to create your layout, we stronly recommend these videos ( To create your layout and To program the BMK)
Soldering (The Best!)
You should now have every part necessary to link up Raspberry Pi, mechanical cypher and recieving computer! "All" you have left to do is solder the elements together!
The tools you need include:​
-
A precise sordering iron and solder
-
Transistors and resistors
-
Patience... A LOT
You will find more details of the precise requirements and tipps in the Word document downloadable here.
