Firmware Project Specs Winter 2018

New Projects

These projects are all unclaimed as of the date of writing and would be excellent on-boarding projects. If  you are new to the team or interested in any of these projects please let us know!

ProjectTasksEstimated DurationPriorityOwner
Thermistor Module
  • Write code to read voltage + get temperature given resistance values
  • Characterize thermistors + create a calibration curve by taking a heat gun and thermometer and measuring data points

  • Validate Steinhart–Hart equation against our data, or fit a different polynomial
2-3 WeeksHighAndrew & Garland
Fan Control Module
  • Use the thermistor temperature curve to output fan strength via PWM
  • Calibrate fan flow based on temperature ramping - pick set points On, off, and 50% ie 50% Duty Cycle at 30 C
  • Determine correct PWM duty cycle PID to control temp
2-3 WeeksHighAndrew & Garland 
SD Card
  • ELEC-63 - Getting issue details... STATUS Implement driver for SDHCv2 (See FatFS) 
  • Integrate FatFS by implementing the stubs provided for the SD Card driver interface
1.5 MonthsMediumStefan
IMU Board
  • Driver for IMU Chip (LSM6DS3USTR)
  • Write application layer code for board to communicate with telemetry 
  • Consider logging straight to SD card

2-3 Weeks (Driver)

2 Weeks (Application)

MediumAsh & Arshan
Light Synchronization
  • ????

LowArshan
Calibration of Driver Controls
  • Allow calibration (pedal ranges, "zero"ing the wheel) of driver controls on boot of car by holding down some button combo
  • If FLASH is implemented allow persistence of calibration

1-2 weeks for calibration

2 weeks for integrating Flash

MediumAshkan
Hard Fault Handler
  • Dump registers? idk Titus what else
  • Partial stack unwind
  • Reset the board
2 weeksLow
Flash Memory
  • Rejig linker scripts
  • Create Flash driver to allow using blocks to persist memory in reserved memory
1.5 monthsMediumTitus

Hardware CRC

(cyclic redundancy check)

  • Write driver for STM32 Hardware CRC peripheral
3-4 weeksMedium

Direct Memory Access (DMA)

  • Modify SPI driver to support Direct Memory Access
  • Modify CAN driver to support Direct Memory Access
2 monthsLow
PWM Input
  • ELEC-314 - Getting issue details... STATUS Implement PWM input on some subset of the available timer peripherals
2-3 weeksLowest
Hash String Literals
  • Hash format strings to reduce memory usage.
  • Use Pragma's to allow unpacking/unhashing using a lookup table and integrate with our codegen tooling
  • Modify/script minicom to auto unhash on receiving message
1-2 monthsLowest
Solar Slave/Master
  • Implement data aggregation on Master and package into CAN messages
  • Implement data acquisition on Slaves
  • Blocked by LIN driver
2-3 weeksMedium

Existing Projects

ProjectTasksEstimated DurationPriorityOwner
Power Distribution
  • Convert existing GitHub branch to smaller PRs
  • Write CAN Handlers
  • Calibrate ADC related inputs
2 weeksCritical PathCalder
Battery Management System
  • Write LTC2484 ADC driver for current
  • Application code for monitoring during charge/discharge

2 weeks for driver

2-3 weeks for application code


Critical PathKarl
Lights
  • Write FSM for lights
  • Write CAN Handlers
2-3 weeksHighArshan
Motor Controller Interface
  • Write CAN↔UART stack
  • Implement translation layer
  • Implement application layer 
1 monthCritical PathKarl
Driver Controls
  • Fix/finish debounce
  • Finish expander interrupts
  • Convert pedal board to LIN
  • Implement CAN handlers
1 monthCritical PathAshkan
Telemetry
  • Write GPS Driver
  • Implement SD Card Logging
  • Implement XBee logging
  • Write application layer code

3 weeks GPS driver

2-3 weeks to implements SD Card and XBee Logging

2 weeks application layer

Medium

GPS: Niel/Misha

SD: Stefan

Infrastructure
  • LIN Driver  CANCELLED: Using CAN
2-3 weeksHigh