Skip to content

Commit

Permalink
Merge branch 'main' into shiftingClass
Browse files Browse the repository at this point in the history
  • Loading branch information
crsz20 committed Aug 30, 2024
2 parents f7b6dcf + c1d8a2a commit 79f075b
Showing 1 changed file with 46 additions and 1 deletion.
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
# PneumaticPaddleShifting
# PneumaticPaddleShifting

## Table of Contents
1. [Objective](#objective)
2. [User Features](#user-features)
3. [Hardware and Equipment](#hardware-and-equipment)
4. [Firmware Tech Stack](#firmware-tech-stack)
5. [Automation](#automation)
6. [Future Plans](#future-plans)
7. [Deprecated Technologies](#deprecated-technologies)

## Objective:
- Optimize the user's response to a down-shift and up-shift command.
- Maintain strict practices and edge cases for critical safety.
- Build the first fully-fledged DAQ with re-usable code through:
- The Layered Architecture design pattern
- Modularity of components
- Hardware abstraction

## User Features
| Supported Logging Method | Library Completion |
| :----------------------- | :--------------------:|
| Micro-SD Card | |
| USB Flash Drive | <span>&#10004;</span> |
| Wireless Transmission | |

## Hardware and Equipment
### Target Device
The [STM32 Nucleo F466RE](https://www.st.com/en/evaluation-tools/nucleo-f446re.html) microcontroller development board is used as the current target device for code merged to the `main` and `develop` branches. Theoretically, other Arm Cortex M4 based STM32 devices with the necessary peripherals should be able to run the same program.

![image](https://www.st.com/bin/ecommerce/api/image.PF262063.en.feature-description-include-personalized-no-cpn-medium.jpg)


## Firmware Tech Stack
- STM32 Hardware Abstraction Layer ([HAL](https://www.st.com/resource/en/user_manual/um1725-description-of-stm32f4-hal-and-lowlayer-drivers-stmicroelectronics.pdf))
- Generated by STM32CubeMX within the CubeIDE environment, which also provides the `arm-none-eabi` toolchain.
- Serves as a set of drivers or a Board Support Package (BSP) to interface with the microcontroller.

## Automation
- Unit tests are developed using [Google Test](https://google.github.io/googletest/) and are maintained in `Shifter_System/Tests`.
- See our [Unit Testing page](https://github.com/DallasFormulaRacing/DataAcquisition2.0/wiki/Unit-Testing) for running them locally by leveraging [Docker](https://docs.docker.com/get-started/overview/).
- Continuous Integration (CI)
- The firmware is compiled as an stm32CubeIDE project using the following GitHub Action: [xanderhendriks/action-build-stm32cubeide](https://github.com/marketplace/actions/build-stm32cubeide-project).
- The unit tests are compiled and ran using [CMake](https://cmake.org/cmake/help/latest/index.html) with [Ninja](https://ninja-build.org/manual.html).


0 comments on commit 79f075b

Please sign in to comment.