Specifications (from the EE Team)
Overall Hardware Architecture (taken from https://uwarg-docs.atlassian.net/wiki/x/AoCsmQ )
Background
The drone uses a battery pack containing 12 cells, where 2 groups of 6 cells are each connected in series (hence 6S
).
Each group of 6 cells is connected to a battery monitoring circuit.
This circuit measures:
The voltage of each cell
The current delivered by the group
And it sends:
We are not exactly sure of everything yet.
Battery-related information relating to the voltages and currents
The voltage and current information are sent as 2 analog signals, which our microcontroller converts to digital ones via an Analog-to-Digital Converter (ADC).
Some other information is sent via the I2C protocol
Description
MCU (STM32xX)
in the top right is the microcontroller that we are writing the code toIts job is to translate the messages it receives from the
BQ76925 6s LiPo Battery Monitor
boards and send the corresponding messages to the flight controller (FC) using the CAN protocol
Specific Hardware Information (from https://uwarg-docs.atlassian.net/wiki/x/HYBXq)
The ports we are interested in:
PA9: SCL_1
PA10: SDA_1
PA7: SCL_2
PB4: SDA_4
PA12: CAN_TX
PA11: CAN_RX
Speculated ports:
PA3: Receives a digital signal representing whether an overcurrent occurred
PA5: Receives an analogue signal representing the cell voltages for cells 1-6
PB0: Receives an analogue signal representing the cell currents for cells 1-6
PB1: Receives an analogue signal representing the cell voltages for cells 7-12
PA2: Receives an analogue signal representing the cell currents for cells 7-12
\uD83E\uDD14 Current Roadblocks
Libcanard has a high learning curve. Neither the DroneCAN website nor the Libcanard repo has beginner-friendly tutorials. YouTube videos also won’t help directly
Tasks Break Down:
✅ Action Items
- etc.
\uD83D\uDEA9 Milestones
- Understand project specifications
- Understand the I2C protocol
- Understand the CAN protocol
- Understand DroneCAN
- etc.
Open Questions
Are our speculated ports correct?
What is transmitted over I2C?
What is the voltage range for the signals our MCU receives for the voltage and current info from the battery monitoring circuits?
How should the MCU beacon itself to the FC (i.e. so that the FC is aware that the MCU on the power module is there)?
What should be sent over CAN?
\uD83D\uDD17 Reference materials
Relevant protocols
CAN:
A general description of CAN: https://uwarg-docs.atlassian.net/wiki/x/BgDPlw
DroneCAN: a protocol built on top of CAN to communicate information between drone parts and the FC: https://dronecan.github.io/
Libcanard: an implementation of DroneCAN for low-end microcontrollers. An example code on how to use it: https://github.com/dronecan/libcanard/blob/master/examples/SimpleNode/simple_node.c
A helpful presentation on CAN: https://docs.google.com/presentation/d/12i6TiUuXQw5mO2u3pq8DMXTD1bCRe8rJtzVZRk6pDz0/edit?usp=sharing
A helpful document on CAN applications: https://uwarg-docs.atlassian.net/wiki/x/AwA8q
0 Comments