Skip to content
This repository has been archived by the owner on Apr 24, 2024. It is now read-only.

FloatSat5/Embedded

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Embedded

codes/grabsat

  1. examples - Test software for different components
  2. rodos - RODOS source code
  3. libs - Custom drivers and algorithms used in GRABSAT-I
  4. satellite - Libraries to handle GRABSAT-I mission
  5. visualizer - Simple attitude visualizer

codes/grabsat/libs

  1. lsm9ds1 - LSM9DS1 IMU + magnetometer interface
  2. pid - Discrete PID controller
  3. motor - TB9051FTG interface for drive-brake (slow decay) operation
  4. madgwick - Implementation of Madgwick's filter
  5. rc_lpf - RC low-pass filter for smoothing angular velocity
  6. encoder - Encoder interface using STM32F4's encoder mode
  7. ft90mr - Driver for FT90MR $360^{\circ}$ servo motor
  8. utils - Some general utility functions

codes/grabsat/satellite

  1. telecommand - Handles the telecommands from groundstation to GRABSAT-I
  2. satellite - Handles the missions and modes of operation of GRABSAT-I
  3. multimeter - Measures battery current and voltage
  4. satellite_config - Configuration file for satellite peripherals and control gains
  5. magnet - Interface to the electromagnet

codes/grabsat/threads

  1. groundstation - Communication with groundstation
  2. telemetry - Handles telemetry to ground station
  3. control - Motor angular velocity control
  4. switch_board - Interface to enable/disable threads
  5. topics - Topics for inter-thread communications
  6. arm - Handles the timing for magnet and balance arms

Dependencies

  1. make - To compile and flash code to STM32
  2. arm-none-eabi-gcc - Compiler for STM32
  3. openocd - To flash the compiled .hex/.bin files to STM32

Usage

  1. Examples (e.g. hello_blinky.cpp)
  • make clean followed by make main=hello_blinky.cpp to compile software
  • make flash to flash software to STM32
  1. GRABSAT-1 software
  • make to compile software
  • make flash to flash software to STM32

Todos

  1. Attitude estimation
  2. Design and documentation of satellite $\psi$ and $\omega$ control
  3. Should thread classes be extern or static (wrt. strange behavior of dir_flag of ArmThread) ?

Notes

The software is developed and tesed using Linux computer.