Difference between revisions of "BeagleBoard/GSoC/2022 Proposal/GreybusforZephyrUpdates"

From eLinux.org
Jump to: navigation, search
Line 38: Line 38:
 
*SPI
 
*SPI
  
The aim of this project is to support all relevant peripherals (UART, PWM, ADC, SPIO IRQ) on BeagleConnect Freedom on Greybus for Zephyr. This involves adding platform specific changes to enable these protocols and interface to existing NuttX sources.  
+
The aim of this project is to support all relevant peripherals (UART, PWM, ADC, SPIO IRQ) on BeagleConnect Freedom on Greybus for Zephyr. This involves adding platform specific changes to enable these protocols and interface to existing NuttX sources. The device drivers will be merged into the kernel. These device drivers will be compatible with mikrobus add-on boards, and each peripheral will be tested over a mikrobus add-on board over Greybus using its corresponding driver in the kernel.
  
 
==Timeline==
 
==Timeline==

Revision as of 06:38, 8 April 2022


Proposal

About Student: Harshil Bhatt
Mentors: Vaishnav Achath, Jason Kridner

Status

This project is currently just a proposal.

Proposal

  • Please complete the requirements listed on the ideas page and fill out this template.
  • The PR for "Hello World" task #163

About you

Github: harshilbhatt2001
School: Manipal Institute of Technology
Country: India
Primary language : English
Typical work hours: 2PM-1AM Indian Standard Time
Previous GSoC participation: This is my first time applying to participate for GSoC.

About your project

Project name: Greybus for Zephyr Updates

Description

In 10-20 sentences, what are you making, for whom, why and with what technologies (programming languages, etc.)? (We are looking for open source SOFTWARE submissions.)

Greybus is an application layer for UniPro. UniPro follows the classical OSI model, and UniPro communications happen over bidirectional connections between entities. The physical bus is attached to the connected device, which will be running Zephyr. A virtual bus, corresponding to the physical bus on the connected device, is created on the Linux side. The functionality of the physical bus and virtual bus appears the same to a user. Greybus is used to exchange bus-specific messages and data between the connected device and Linux.

Currently, the following modules are supported by greybus-for-zephyr

  • GPIO
  • I2C
  • SPI

The aim of this project is to support all relevant peripherals (UART, PWM, ADC, SPIO IRQ) on BeagleConnect Freedom on Greybus for Zephyr. This involves adding platform specific changes to enable these protocols and interface to existing NuttX sources. The device drivers will be merged into the kernel. These device drivers will be compatible with mikrobus add-on boards, and each peripheral will be tested over a mikrobus add-on board over Greybus using its corresponding driver in the kernel.

Timeline

Provide a development timeline with a milestone each of the 11 weeks and any pre-work. (A realistic timeline is critical to our selection process.)

Date Status Details
Presubmission
  • Setup zephyr environment and build a board for native POSIX execution (completed)
  • Blink an LED using Linux, Zephyr and Greybus via BLE
May 20th - June 12th Community Bonding
  • Introduction Video
June 13th Milestone #1
June 20th Milestone #2
June 27th Milestone #3
July 4th Milestone #4
July 11th Milestone #5
July 18th Milestone #6
July 25th Milestone #7
August 1st Milestone #8
August 8th Milestone #9
August 15th Milestone #10
August 22nd Milestone #11
August 29th Milestone #12
  • Submit final work product and final mentor evaluation
  • Complete YouTube video
Sep. 5th Milestone #13
  • Completion of GSoC

Experience and approach

  • I was a firmware engineer intern at Sensegrass, and an Embedded System Engineer at Retisense, where I worked on BLE, power optimization and memory management. I picked up the Zephyr RTOS for developing a wireless body area network and deployed it on nrf52.
  • I have developed drivers for common peripherals (SPI, UART, I2C, ADC, GPIO IRQ, etc) using either bare-metal C or an underlying RTOS.

Contingency

What will you do if you get stuck on your project and your mentor isn’t around?

There is a lot of documentation on Greybus, and some drivers (GPIO) have been merged into the Linux kernel which should provide a good reference. Along with this, the Beagle and Zephyr have an active community which can be looked to for help.

Benefit

If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.

The major advantage of Greybus is that drivers can be maintained in Linux rather than microcontroller firmware. This gives us the ability to reuse existing Linux device drivers to access remote devices and reduces development time significantly. Since most application logic is kept out of the microcontroller firmware and in a better centralized location, updates can be better tested and deployed frequently.

Misc

Please complete the requirements listed on the ideas page. Provide link to pull request.

Suggestions

Is there anything else we should have asked you?