Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FWT-10 SRS Documentation #9

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

FWT-10 SRS Documentation #9

wants to merge 19 commits into from

Conversation

brainuser5705
Copy link
Collaborator

@brainuser5705 brainuser5705 commented Mar 4, 2024

Most of the earlier sections, along with more general sections, were copied from BMS. For those who I was unsure about I made a list underneath with things I'm thinking about

Link to RTD for this branch: https://imu.readthedocs.io/en/srs-doc/srs.html#

@brainuser5705 brainuser5705 marked this pull request as ready for review April 9, 2024 12:11
@mjmagee991 mjmagee991 requested a review from a team April 15, 2024 22:15
@mjmagee991 mjmagee991 changed the title SRS Documentation FWT-10 SRS Documentation Jul 5, 2024
Copy link

@mjh9585 mjh9585 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

Copy link

@aclowmclaughlin aclowmclaughlin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noticed a couple of leftover comments that were never cleaned up (mostly notated them with "fix!") and had like one grammatical nitpick but otherwise looks great! I think perhaps including more information about what the types of data represent and how they could theoretically be used would benefit the reader.

processing of data and manages CAN network communication for the IMU. The
BNO055 is used to obtain the orientation measurements.

* list some boards that will use the data

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix pls.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For DEV1, this data is not currently being used by other boards, but it can be used for traction control in the future

Software Interfaces
~~~~~~~~~~~~~~~~~~~

The DEV1 IMU software interface is the report of measurements over the CAN

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a weird way to phrase this. Maybe say something like "The DEV1 IMU software reports measurements over the CAN (is it CAN or CANopen?) network.


There is no communication between IMU and the other boards on the DEV1 bike ...

* using a strict definition of communication as in both parties are connected

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no bi-directional communication, but there is certainly data being broadcast by the IMU. This section should be reworded in general

handled via I2C, however it does not adhere to standard I2C. For more about
the non-standard I2C communication scheme, read ...

* should leave implementation of i2c in the state of software doc?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix!

the driver class will:

* check that the BNO055's self-test initiated at startup was successful
* switch the BNO055 from configuration mode to NDOF operation mode

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are using the same syntax of a * at the front of a message to indicate a comment to yourself, so maybe do something like a -> for a list item, to differentiate the two?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* is automatically detected as a list item by the rST compiler, so this should remain the same, but something else should be used for the comments

--------------------------------

The IMU chip is an auxiliary board that does not require any user interaction
post-development?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why a question mark?

* Must be developed for the STM32F334r8
* Resulting binary must fit within the ST microcontroller 64KB flash memory
* Orientation measurements must be performed by the BNO055
* non standard I2C communication with the BNO055

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(see previous note about list items)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment on previous note about list items

External Interface Requirements
-------------------------------

* no external interface?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix!

do is described in the Product Functions section under `Initialization
and Configuration of BNO055`_.

* should be more specific?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix!

Copy link
Contributor

@mjmagee991 mjmagee991 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some cleaning up to do

Comment on lines +13 to +21
The Inertial Measurement Unit measures acceleration and position data for the
bike using the BNO055 chip. This chip uses its sensors (
accelerometers, magnetometer, and gyroscope) to calculate a number of
metrics, including gravity vector, linear acceleration, angular velocity,
Euler angles, and the surrounding magnetic field. The IMU reports these
measurements over CAN, providing general information to the bike on its
orientation and allowing other boards to act accordingly for optimal
performance. The system is based around the built-in BNO055 chip. The firmware
is written for the STM32F334K8U6 microcontroller designed into the DEV1 IMU.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Inertial Measurement Unit measures acceleration and position data for the
bike using the BNO055 chip. This chip uses its sensors (
accelerometers, magnetometer, and gyroscope) to calculate a number of
metrics, including gravity vector, linear acceleration, angular velocity,
Euler angles, and the surrounding magnetic field. The IMU reports these
measurements over CAN, providing general information to the bike on its
orientation and allowing other boards to act accordingly for optimal
performance. The system is based around the built-in BNO055 chip. The firmware
is written for the STM32F334K8U6 microcontroller designed into the DEV1 IMU.
The Inertial Measurement Unit measures inertial values for the bike using the
BNO055 chip. This chip uses its sensors (accelerometers, magnetometers, and
gyroscopes) to calculate a number of metrics, including gravity vector, linear
acceleration, angular velocity, Euler angles, and the surrounding magnetic field.
The IMU reports these measurements over CAN, providing general information to
the bike on its orientation and allowing other boards to act accordingly for optimal
performance. The system is based around the built-in BNO055 chip. The firmware
is written for the STM32F334K8U6 microcontroller designed into the DEV1 IMU.

Comment on lines +32 to +33
For more information on the IMU and software level API, refer to
the `Read the Docs DEV1 IMU page <https://imu.readthedocs.io>`_.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone is reading this, they're already on the readthedocs page

Comment on lines -60 to -61
*
* Datasheet for BNO055 - https://cdn-shop.adafruit.com/datasheets/BST_BNO055_DS000_12.pdf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I see why this isn't fully necessary to have here. It's fairly convenient for a developer to be able to access this from this file instead of having to dig through documentation files, so I think it should be left here for now.

and building the DEV1 IMU. Members of this group may refer to this document
to ensure requirements and constraints align with their expectations.
Additionally, this document can be used as a point of reference during
the hardware/firmware bring up and debugging.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the hardware/firmware bring up and debugging.
the hardware/firmware bringup process.

developing, and testing the DEV1 IMU firmware. Members of this team will
need to refer to this document throughout the development process to ensure
all target needs are met within the agreed upon constraints.
* Integration Team Members: RIT EVT team members who handle systems level
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Integration Team Members: RIT EVT team members who handle systems level
* Integration Team Members: RIT EVT team members who handle systems-level

* check that the BNO055's self-test initiated at startup was successful
* switch the BNO055 from configuration mode to NDOF operation mode

The NDOF operation mode calculates fused absolute orientation data from the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The NDOF operation mode calculates fused absolute orientation data from the
The 9DOF operation mode calculates fused absolute orientation data from the

* Must be developed for the STM32F334r8
* Resulting binary must fit within the ST microcontroller 64KB flash memory
* Orientation measurements must be performed by the BNO055
* non standard I2C communication with the BNO055
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment on previous note about list items

* Must be developed for the STM32F334r8
* Resulting binary must fit within the ST microcontroller 64KB flash memory
* Orientation measurements must be performed by the BNO055
* non standard I2C communication with the BNO055
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* non standard I2C communication with the BNO055
* Non-standard I2C communication with the BNO055

Comment on lines +259 to +266
IMU Inertial Measurement Unit
CAN Controller Area Network
CANopen Communication protocol built on CAN
DEV1 Dirt Electric Vehicle Team
EVT Electrical Vehicle Team
I2C Inter-Integrated Circuit
KB Kilobyte
STM32F334K8 ST Microcontroller selected for this project
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
IMU Inertial Measurement Unit
CAN Controller Area Network
CANopen Communication protocol built on CAN
DEV1 Dirt Electric Vehicle Team
EVT Electrical Vehicle Team
I2C Inter-Integrated Circuit
KB Kilobyte
STM32F334K8 ST Microcontroller selected for this project
IMU Inertial Measurement Unit
CAN Controller Area Network
CANopen Higher-level communication protocol using CAN
DEV1 Dirt Electric Vehicle 1
EVT Electric Vehicle Team
I2C Inter-Integrated Circuit
KB Kilobyte
STM32F334K8 ST Microcontroller selected for this project

======== ============================ ==========
Revision Description Date
-------- ---------------------------- ----------
1 Initial documentation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a date

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants