Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
Commit ed3ee63f authored by Himanshu kohale's avatar Himanshu kohale
Browse files

commit changes for code and desciption

parent 7fe1f337
Branches
No related merge requests found
......@@ -52,80 +52,72 @@ Project
Description
============
Librobotcontrol is package of C library which contains examples and testing programs for Robotic control projects used by `robotic-cape <https://www.beagleboard.org/boards/beaglebone-robotics-cape>`_ which is sold by beagleboard.org.
BeaglBboneBlack(BBB) supports the librobotcontrol package thanks to Deepak khatri, Who Previouly worked upon cape compatibility layer on BBB.
BeaglBboneBlack support robotic-cape cape with librobotcontrol package due to creation of device tree ovelayes which identify the robotics cape and symlink help to address the location of specific peripherals in data structure.
as below is simple dts example for accesing GPIO's for blink LED's.
since P9_12 supports the GPIO's functinoality as output signal.
**Overview**
.. code-block::
- Librobotcontrol is package of C library which contains examples and testing programs for Robotic control projects used using beaglebone capes like `robotic-cape <https://www.beagleboard.org/boards/beaglebone-robotics-cape>`_ which is sold by beagleboard.org.
BeaglBboneBlack(BBB)(am33xx) supports the librobotcontrol package thanks to Deepak khatri, Who Previouly worked upon cape compatibility layer on BBB.
BeaglBboneBlack support robotic-cape cape with librobotcontrol package due to device tree overlays which identify the robotics-cape as a specific hardware which can be useful while accesing various pheripherals and devices with roboitic-cape.
/{
compatible = "ti,BeaglBbone-Black";
part-number = "DM-GPIO-TEST";
version = "00A0";
fragment@0{
pinctrl-singl.pins = <
0X078 0x07 /* connected LED, resister address and offset */
>
}
}
Main goal of project is to update librobotcontrol package for beaglebone-AI(am5x), beaglebone-AI64(j721e) and beaeglV-fire(olarV-soc) boards.
Primarily librobotcontrol support all the boards but not able to make roboitic-cape as flexible as BBB board for librobotcontrol package.
BeagleBone-AI support librobotcontrol package but its been draft. and there is not a stable device tree overlays for robotic cape in AI image.
So for using package, have to check the passed results for various drivers and use cape with AI, and make changes accordingly.
- BeagleBone-AI support librobotcontrol package but its been draft and there is not a stable device tree overlays for robotic cape in AI image.
So for using package, have to check the passed results for various drivers and use cape with AI and make changes accordingly.
BeagleBone AI is based on the Texas Instruments AM5729 dual-core Cortex-A15 SoC with flexible BeagleBone Black header and mechanical compatibility.
which supports the AM572x device tree binary files. this .dtb file will include in binary file (.dts) files in AI which will help to call root nodes to create device tree for cape.
but as AI-support the cape, there is only need to cross verify the package and update accordingly.
which supports the AM572x device tree binary files. However, the current implementation has the following problems This proposal will address these issues.
**BeagleBone-AI64**
BeagleBone AI-64 uses TI J721E-family TDA4VM system-on-chip (SoC) which is part of the K3 Multicore SoC architecture.
Each TI evm has an unique device tree binary file required by the kernel. As BeaglBboneBlack need (ti,am335x) similarly beaglebone-AI64 support (ti,j721e) device tree binary (.dtb).
- BeagleBone AI-64 uses TI J721E-family TDA4VM system-on-chip (SoC) which is part of the K3 Multicore SoC architecture.
Each TI evm has an unique device tree binary file required by the kernel. As BeaglBboneBlack need (ti,am33xx) similarly beaglebone-AI64 support (ti,j721e) device tree binary (.dtb).
BeagleBone AI-64 also support librobotcontrol packages but there are less tutorial and not refine code for support librobotcontrol package with new boards. Need to refine the device trees overlays to use this librobotcontrol package with AI-64.
As in librobotcontrol there is no robotic-cape dtb support for beaglebone-AI64 we need to write the device tree ovelays with (ti,j721e) binary file (.dtb).
How it will be possible, see an example for blink LEDs via device tree ovelay which is for GPIO's:
.. code-block::
As in librobotcontrol there is no robotic-cape dtb support for beaglebone-AI64 we need to write the device tree overlays.
&{/chosen} {
overlays {
BONE-LED_P8_03 = __TIMESTAMP__;
};
};
- BeagleV®-Fire is a revolutionary SBC powered by the Microchip’s PolarFire® MPFS025T RISC-V System on Chip (SoC) with FPGA fabric.
It has the same P8 & P9 cape header pins as BeagleBone Black allowing to stack BeagleBone cape on top to expand it’s capability. Built around the powerful and energy-efficient RISC-V instruction set architecture (ISA) along with its versatile FPGA fabric.
BeagleV-Fire also support the robotic cape with librobotcontrol package and cape gateware for robotic cape is pre-installed in V-fire image `here <https://openbeagle.org/himanshuk/gateware/-/tree/main/sources/FPGA-design/script_support/components/CAPE/ROBOTICS?ref_type=heads>`_ .
but as BBB support the librobotcontrol with more functionality and flexible application, beagleV-fire is not capable for librobotcontrol package due to less number of child node (PWM, GPIO) present in robotic-cape (.dts) file which is pre-installed in V-fire image.
With help of customization for cape gateware in V-fire which Provide more flexibility to board with cape, and librobotcontrol package to support V-fire with robotic cape.
&bone_led_P8_03 {
status = "okay";
// access: sys/class/leds/led_P8_03
label = "led_P8_03";
linux,default-trigger = "heartbeat";
default-state = "on";
};
- Main goal of project is to update librobotcontrol package for beaglebone-AI(am5x), beaglebone-AI64(j721e) and beaeglV-fire(polarV-soc) boards.
Primarily librobotcontrol support all the boards but not able to make roboitic-cape as flexible as BBB.
**Implementation**
- Device tree overlay are the data structure for Describing hardware. Rather than hard coding every details of a device into an operaing system, many aspect of hardware can be
described in data structure that is passed to the OS at boot time.
Implementation of device tree :
.. image :: https://devicetree-specification.readthedocs.io/en/stable/_images/graphviz-58c8267ade85edeca7b1b0299af2b1e473987ddc.png
.. image :: https://devicetree-specification.readthedocs.io/en/stable/_images/graphviz-96d4d843650908846790f318227ab351de33e252.png
:alt: Device tree Implementation
:align: center
**BeagleV-Fire**
- As above example, Root node is starting or begin the overall process of accesing hardware information after that there are CPU's, memory and various pheripherals which used as Nodes and sub-node are device-nodes where the
information about specific hardware which will use that specific pheripherals is written.
- Similar to above example robotics capes need UART, I2C, SPI and GPIO's node. for librobotcontrol package.
- Have to write device tree overlays with corresponding pheripherals according to cape interface with beagleboards.
Below is simple device tree example for accesing GPIO's for blink LED's with P8_7 and P8_8 headers pin which are inbuil-led's for roboitc-cape.
BeagleV®-Fire is a revolutionary SBC powered by the Microchip’s PolarFire® MPFS025T RISC-V System on Chip (SoC) with FPGA fabric.
It has the same P8 & P9 cape header pins as BeagleBone Black allowing to stack BeagleBone cape on top to expand it’s capability. Built around the powerful and energy-efficient RISC-V instruction set architecture (ISA) along with its versatile FPGA fabric.
BeagleV-Fire also support the robotic cape with librobotcontrol package and cape gateware for robotic cape is preinstalled in V-fire image `here <https://openbeagle.org/himanshuk/gateware/-/tree/main/sources/FPGA-design/script_support/components/CAPE/ROBOTICS?ref_type=heads>`_ .
but as BBB support the librobotcontrol with more functionality and flexible application, beagleV-fire is not capable for librobotcontrol package due to less number of device_tree fragment present in robotic-cape (.dts) file which is pre-installed in V-fire image.
With help of customization for cape gateware in V-fire which Provide more flexibility to board with cape, librobotcontrol package will support V-fire with robotic cape.
.. code-block::
/{
compatible = "ti,beaglebone-AI64";
part-number = "LED_GPIO_TEST";
version = "00A0";
buildinLed@1{
target = <ti,j721ex>;
pinctrl-singl.pins = {
0x090 0x0F /*P8.7, MODE7*/
0x094 0x0F /*P8.8*/
}
}
}
- After writing the source file for robotics-cape, This Robotic-cape source file for each board can be compiled using device tree compiler:
.. code-block:: linux
$ dtc -0 .dtb -o robotic_cape.dtbo robotic-cape.dts
- In case of BeagleV-Fire boards, beaglV-fire support customization cape gateware which can be very useful to implement. `Robotic_cape.dts <https://openbeagle.org/himanshuk/gateware/-/blob/main/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso?ref_type=heads>`_ source file is already present in V-fire image but with less specification and accesing PWM and GPIO's pheripherals which are bare minimum to use roboitc-cape with librobotcontrol.
so for librobotcontrol use,have to update the device tree cape gateware.
V-fire Gateware architecture:
......@@ -133,8 +125,8 @@ V-fire Gateware architecture:
:alt: V-fire Gateware architecture
:align: center
In `robotics_cape.dts <https://openbeagle.org/himanshuk/gateware/-/blob/main/sources/FPGA-design/script_support/components/CAPE/ROBOTICS/device-tree-overlay/robotics-cape.dtso?ref_type=heads>`_ file in cape gateware of beagleV-fire are used PWM and GPIO's, we need to write device tree sript for I2C, SPI and UART and also add simlink which will need to support librobotcontrol package.
- Cape gateware in Gateware architecture of V-fire is responsible for handling the P8 and P9 connectors signals.
The gateware is extended or customized by creating additional directories within the component directory of interest.
Previous work:-
......@@ -198,11 +190,11 @@ Timeline summary
+------------------------+---------------------------------------------------------------------------------------------------------------+
| March 21 | Submit application |
+------------------------+---------------------------------------------------------------------------------------------------------------+
| May 1 | Start bonding <bonding> |
| May 1 | Start bonding |
+------------------------+---------------------------------------------------------------------------------------------------------------+
| May 27 | Start coding and introductory video |
+------------------------+---------------------------------------------------------------------------------------------------------------+
| June 3 | Release introductory video and complete milestone #1<milestone1>` |
| June 3 | Release introductory video and complete milestone #1 |
+------------------------+---------------------------------------------------------------------------------------------------------------+
| June 10 | Complete milestone #2 |
+------------------------+---------------------------------------------------------------------------------------------------------------+
......@@ -240,24 +232,27 @@ Community Bonding Period (May 1st - May 26th)
- Check all hardware with beagleboard like DC motors, Servo motors and available sensors.
- Use robotic-cape with beagleboard BeaglBboneBlack (BBB) and librobotcontrol.
- Use robotic-cape with BeagleBone-AI.
- Because my end-semester exams are starting, my availability for contributing will be limited.
Coding begins (May 27th)
=========================
- Given the onset of my end-semester exams, my ability to contribute will be reduced. Thank you for your understanding.
- Understand device tree overlays for BeaglBboneBlack (BBB) and AI written for robotic cape.
- Start to write Device tree for GPIO's and PWM support for AI-64.
Milestone #1, Introductory YouTube video (June 3rd)
===================================================
- Include introductory video.
- Prepare documentation for the process.
- Due to my End-semester Exam i won't able to contribute more, thank you for understanding.
- Include introductory video.
Milestone #2 (June 10th)
==========================
- For RoboticsCape, Test a device tree overlay to allow AI-64 to light the power LEDs with GPIO support.
- End of exam and I can start to contribute more in project.
- Start to write Device tree for GPIO's and PWM support for AI-64.
- Test a device tree overlay to allow AI-64 to light the power LEDs with GPIO support.
- Test PWM Device tree overlay with robotics-cape with help of Hardware specification and check with oscilloscope.
- Get feeback from mentors.
......@@ -265,14 +260,14 @@ Milestone #2 (June 10th)
Milestone #3 (June 17th)
=========================
- Write I2C device tree for AI-64.
- Test I2C with IMU and robotic-cape.
- Write I2C node device tree for AI-64.
- Test I2C with IMU.
- Get feedback from mentor.
Milestone #4 (June 24th)
==========================
- Create merge request for I2C Device tree overlays.
- Create merge request for I2C Device tree node.
- Write SPI device tree overlay for AI-64.
- Test with robotic-cape.
- Get feedback from mentor.
......@@ -416,8 +411,3 @@ Please complete the requirements listed in the `General Requirements <https://gs
* Source dive for Librobotcontrol packages and read all the documentation for packages
* Check hardware specification, setup and device trees for BBB.
* Here the 'Hello world' cross-compilation task Pull request : `merge request <https://github.com/jadonk/gsoc-application/pull/191>`_
Suggestions
===========
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment