You are browsing as a guest. Sign up (or log in) to start making projects!

Acid CANBus IMU

  • 4 Devlogs
  • 5 Total hours

A high performance, small and efficient imu for robotics using CANBus communication

Open comments for this post

1h 8m 20s logged

Devlog #4

Switched to using “Game” Data instead of Regular (Idk how to call that?). While the previous code technically works, it gives out rotation and accelerations based on the earth’s magnetic field, which is not the right data for this project, which would need to provide data based on a defined Zero orientation (Designed to work in a FRC Robot setting on the field and not to navigate the world), the Game data returns the quaternions and data based on the defined Zero orientation.

  m_quaternion = {.x = m_imu.getGameQuatI(),
                  .y = m_imu.getGameQuatJ(),
                  .z = m_imu.getGameQuatK(),
                  .w = m_imu.getGameQuatReal()};

Also cleaned out the main.cpp file to just include calls for Init and Loop with no logic attached.

Next on I will need to finish writing CANBus communication and integrate it into the code

0
0
1
Open comments for this post

2h 41m 24s logged

Devlog #3

  • Switched to using a RPI-Pico instead of the STM32G474 to simplify wiring, firmware uploading, and overall usage and maintanability (stm32CubeIDE is very pretty but I couldn’t find any actually useful documentation nor examples for how to use, and the setup is extremly buggy)

  • Fully Routed the PCB (Using Freerouting because im lazy and this takes seconds for what would take me hours)

  • Initial code for the IMU firmware, still needs to finish CAN communication with the MCP2515 board but reading from the gyro works

  • Needs to write and implement docs and code for how sensor fusion will work and how will the processor choose the drift biases

  • Cleaned out schematic using hirerachy and global lables, looks much more professional

0
0
3
Open comments for this post

36m 35s logged

Added USB C Connector to upload firmware onto the IMU, also cleaned up schematic and added lables

Cant find a way to organize the PCB cleanly just yet with all the components, aswell as find a way to route it on a single layer.
Found that there is a plugin that can auto-route the PCB but I cant seem to manage to make the KiCad Plugin manager work…

0
0
1
Open comments for this post

27m 23s logged

Done with basic schematic, still needs to add a way to upload code to the microcontroller as well as route the PCB, seems that making it single-layer will be a challange

0
0
1

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…