The “button plate” mod allows you to surround the gear lever with 1 to 6 buttons. Many functions can be assigned to each button (simple button, keyboard key, rotary encoder).
I strongly advise you to install this mod once the gearbox is fully functional.
- Shopping list
- Place the buttons on the plate
- Decorate the plate
- The wiring
- The functions
- The code
- The calibration function
The button plate mod is compatible with the following buttons (the first two models were originally part of the main list).
You will then need wires, and dupont connectors, they are already present in the main shopping list.
So you can choose exactly which buttons and their layouts. If you want to skip this step, use directly the “simple button mod plate”.
To customize the layout of the buttons, load the “custom button plate” and place the button beds in the square slots :
Open Cura, load the plate, center it (coordinates 0, 0, 0).
Then load as many elements as you want (you can load the same file as many times as you want), then place them by using the coordinates system where you want them to be. Here are the coordinates that you are most likely to use:
Once the buttons are placed, you can load Une fois vos boutons placés, you can add the decoration elements present in the “Decoration folder”. Then load as many items as you want (you can reload the same files several times), and using the coordinate system, place them as you wish. For example, you can place a hoop with coordinates (30;-10) :
You can place as many objects as you want, Cura will take care of merging them. For detailed objects (text, arch…) I advise you to print with the minimum resolution.
The wiring is already indicated on the main schematic (indicated by an asterisk). Feel free to wire as you go along, as it is not easy to determine which button each wire comes from. Also respect the color coding: if you have a problem, the color coding allows you to easily check on the pictures if it comes from the wiring.
Try as much as possible to group cable pairs on double dupont connectors, this improves reliability.
Each button can perform a particular function which is listed below:
0 – disabled, the button does nothing. Perfect if the button isn’t wired.
1 – Simple button : reacts as any button. Example: ath, lcd, center VR view…
2 – ON/OFF button : One position correponds to ON, the other to OFF. Example : speed limiter
3 – calibration : allows you to reassign the gears of the gearbox, see explanations below.
4 – invert the gearbox : switches 1-2, 3-4, 5-6. Example : old Ferrari
5 – reset pin : resets the pins. Clears the calibration function configuration
6 – Up arrow
7 – Down arrow
8 – Righ arrow
9 – Left arrow
10 – Return
11 – Escape
12 – Enable or disable the handbrake
13 – enable or disable the clutch system
In the code, there is not much to do. You just have to :
1 – Enable the Button plate mod: replace :
//#define BUTTONPLATEMOD by
2 – Assign functions to each button (the same function can be assigned several times). To do this, replace each digit with the number of the function. For example on the following code, button 1 is a single button, button 2 is assigned to calibration, button 3 is an on/off button, and the others are not assigned. The positions correspond to the numbers printed in body1.stl.
1, // Position 1
3, // Position 2
2, // Position 3
0, // Position 4
0, // Position 5
0, // Position 6
For optimal operation, change the following variable depending on how you installed your box:
true if your box is in the “normal” direction (the mechanism is towards the front of the gearbox),
false if your box is in the opposite direction (the mechanism is towards the back of the gearbox).
bool normalMount = true
That’s it, you can now flash the code. To check that everything works, use the DEBUG mod (you just need this line
#define DEBUG), open the console mod, and test that each button works (the monitor shows the state of each button, and its associated function in brackets)
The calibration function allows you to reassign gears on the fly.
Usage Scenario :
You have assigned your keys normally, the 1st in real life corresponds to the first gear in game (no matter where it is located in the grid).
However, you are in a car that does not follow a normal grid: the 1st in the car corresponds to the second in real life, the 2nd to the third, etc…
So you want the second one in real life to become the first one in the game. This is the role of the calibration function.
How to use it :
To reassign all the gears, without going back through the key assignments menu, press your calibration button, and change the gears in the order you want.
If we go back to the previous example, you will pass the second one in real time, then the third one in real time…. until you pass the 6th one in real time.
There, you’re going to tell me that we didn’t reassign the sixth gear (from a computer point of view). Two solutions:
- You pass the first one in real: the first one in real will be the 6th one in game.
- You press the calibration button again: the Arduino will automatically assign the missing gears to the remaining pins.
Please not that :
- Reverse gear never changes place (it is linked to the mechanical configuration of the gearbox)
- The calibration is erased if the arduino is unplugged, we will then return to the basic configuration with the first in real which corresponds to the first in game.
- Throughout the calibration phase, the gears in play will not change.
- The calibration is automatically completed when all 6 speeds have been assigned. At this point, shift to any gear and the gear will be changed in game.