Controls Leaderboard Rework Notes
Notes on the Controls Leaderboard for 2025 Daybreak.
Motivation
The objective of this rework is to simplify Controls hardware by removing deprecated components and combining it with the lighting board which was placed in the same enclosure anyways. It is also an intermediate board between the 2022-2024 and 2024-2026 cycles, however, so large changes were generally avoided to expedite the process.
daybreak rework PCB- Rev. 2
Pinout changes
Pin | Old | New | New Type | Explanation |
|---|---|---|---|---|
PC6 | TimerCLK | Brake_Light | Output | Make lights direct-drive instead of simulating a timer (no more TimerCLK), allows for easier PWM |
PC9 | PC9 | Right_Blink | Output | “ “ |
PC10 | PC10 | Left_Ind | Input | Direct-drive lights- uC gets input instead of gating TimerCLK |
PA0 | Motor_PRCHG_Bypass | Status_LED_1 | Output | No longer controlling motor precharge contactor |
PA1 | Array_PRCHG_Bypass | Status_LED_2 | Output | No longer controlling array precharge contactor |
PA4 | Brake_Light | PA4 | Output | Easier PWM for lights on a different pin |
PA8 | PA8 | Left_Blink | Output | “ “ |
PA11 | UART3_Rx | UART4_Rx | UART | Incorrectly labeled |
PA12 | UART3_Tx | UART4_Tx | UART | Incorrectly labeled |
PA15 | PA15 | Right_Ind | Input | Direct-drive lights- input goes to uC instead of gating TimerCLK |
PB8 | Array_PBC_Sense | PB8 | Output | No longer controlling array precharge bypass contactor |
PB9 | Motor_PBC_Sense | PB9 | Output | No longer controlling motor precharge bypass contactor |
PB12 | UART4_Rx | UART5_Rx | UART | Incorrectly labeled |
PB13 | UART4_Tx | UART5_Tx | UART | Incorrectly labeled |
Revision 1
daybreak rework PCB
Major Changes
Sheet | Old | New |
|---|---|---|
Root |
|
|
|
| |
Power State Indicators ~ Contactors |
|
|
|
| |
Power Distribution |
|
|
|
| |
USB |
|
|
|
| |
Motor CAN |
|
|
|
| |
Car CAN |
|
|
|
| |
Potentiometers |
|
|
|
| |
Lights |
|
|
|
| |
Lights Drivers |
|
|
|
| |
Minion Board Interface ~ Dash and Display |
|
|
|
| |
New Pinout
Additional Considerations
Contactor Board and Sense pins
We shouldn’t be handling any contactor stuff in Daybreak 2025, but if we do use our sense pins, we will have to enable the internal pullup on the sense pins for the new controls leader since those are pulled low when the contactors are active or alternatively solder a resistor from that pin to 3v3 on the board instead.
The typical values for pull ups can be 10k, 40k, or even 100k. We just have to make sure that pins being used have a reasonable value for the pin.
“Real time is fake. If ur RC is too high, you need to add a delay since the pin may stay in some unknown voltage for too long and flip logic levels.
Ie a 0 is like .5-1.5V and a 1 is 2.5-3.3V and that in between range is either randomly.” - Lakshay
Throttle Position Sensor
We are using this rotational potentiometer for both accel and brake pedal:(?)
This sensor takes 5V, but our leaderboard is only able to take 3.3V (ADC does not appear 5V tolerant), so we will need to solder a resistor divider to the board.
The full circuit created for this sensor for the 2026 pedal board is below:
The op amp is a buffer and not fully necessary, so we will probably just split the 5V display cable or solder a wire to the 5V test point to power the sensor, then solder the resistor divider on to the board with connector leads.
Testing Plan
We could just solder everything, try to run code, and see if it works…
What could be wrong? | What could happen? | How can we check it? |
|---|---|---|
The traces may not connect where we think they do | If unintentionally open: circuit will not work If unintentionally connected: could short odd signals, could be bad if related to power | Check connectivity between traces using a multimeter Check that sensitive pins (ex: microcontroller) are not connected to high voltage |
Our circuits/component values could be wrong. New/modified circuits
|
|
|
We have ground loops between other boards | Could see induced current when integrating into larger circuit | Connect to other boards and measure voltage between ground points – hard to test now? – |
We have too much noise | Signals don’t transfer properly | Attempt to communicate once integrated – hard to test now? – |
We missed important connections with other boards | Unable to interface | Make connectors/use old connectors and check with other boards |
We solder on the wrong values | Things could short or not work | Check the component value using a multimeter |
The beginnings of a plan
Visually inspect board for damage
Check connectivity between traces (maybe)
Check that sensitive pins aren’t connected to high voltage for whatever reason
Solder power distribution stuff on
Check that levels look correct
Solder everything else on
Visually inspect to make sure it’s clean
Check component values before soldering
Run Controls code on old board
Run (as similar as possible) Controls code on new board
Need to adjust for new pinouts
Need to check for pull-up resistors
It should work… hopefully…
Connect display, contactors, simboard if not too unsafe
Run tests for any circuits not yet used and verify outputs
Toggle each pin and check that signal is seen on connector/output
Run CAN on CAN ports with CANdapter and scripts
Test inputs with proxy components and measure circuit output
Test lights with big voltage
Retrospective
In general: more software, less hardware where possible