Weekly Progress Report: BB-Config Improvements & GPIO Benchmark

Hi, this is a weekly blog for my GSoC 2022 project BB-Config Improvements & GPIO Benchmark. This thread will be updated weekly.

Youtube Video: [GSOC22] Bb-Config Improvements and GPIO Benchmark - YouTube

Weekly Progress Blog BB-Config

Please include content of the weekly report here, not just a link to the blog.

Week1 [13/6 - 19/6]

Accomplishments

  • Setup BeagleBoard Device (Install Debian)
  • Familiar with running Beagle Device (ssh)
  • Successfully Compile with FTXUI v3.0
  • Migrate github into gitlab

Resolutions to blockers

  • Failed to Complete Introductory Video

On-going blockers

Plans for the next week

  • ADC/DAC Graph

Week2 [20/6 - 26/6]

Accomplishments

  • Setup ADC Graph UI
  • (Not Much Complete Due to Busy with my Uni Assignments)
    • ADC Graph (Delayed)
    • DAC Graph (Delayed)
    • Implement Scan Overlay (Delayed)

Resolutions to blockers

  • Shreyas Guide:
    • Create a graph with all 0’s then updating the graph by push the info slowly into

On-going blockers

  • Stuck on create/generate graph

Plans for the next week

  • Implement Scan Overlay

Week3 [27/6 - 3/7]

Accomplishments

  • Complete Introductory Video
  • Done Implement Enable/Disable Virtual Capes (Scan Overlays)
  • NetworkManager (Done during Bonding Period)

Resolutions to blockers

On-going blockers

  • Graph (Busy with Final Exam)
  • NetworkManager scanning for WiFi

Plans for the next week

  • DAC Graph
  • Codes for GPIO BenchMark

Week4

Accomplishments

  • Setup Blog for Weekly Progress
  • ADC - UI Graph need to refine
  • DAC(PWM) - Completed
  • Scan Overlay - Functionality Works (UI need some update)
  • NetworkManager - WiFi functionality works (UI need Implement scanning)

Resolutions to blockers

Exam Week

On-going blockers

Plans for the next week

GPIO benchmarking

Week5

Accomplishments

GPIO Benchmark Code Completed and tested on BB_black

ADC (Figuring animation part)

uEnv Completed

Resolutions to blockers

GPIO Benchmark:

Pocket: I burn the board (I will buy a new one)
AI : stuck on GPIO for old images

On-going blockers

GPIO Benchmark:

Pocket: I burn the board (I will buy a new one)
AI : stuck on GPIO for old images

ADC (Figuring animation part)

Plans for the next week

PinMUX Feartures

WEEK6 [18/7 - 24/7]

Accomplishments

ADC Graph

  • UI [worked]
  • Animation [worked]
  • X-Scale [worked]
  • Y-Scale [on-going]
  • Reset Button [Worked]

Demo ANALOG PIN1 with EHRPWM01
https://asciinema.org/a/gx9mOLsewOavFtEuJUM09cGv3

NetworkManager

  • UI [worked]
  • Get WiFi [worked]
  • Get Active Connection [worked]
  • Get Saved Network [worked]
  • Enter Password [worked]
  • Forget WiFi [worked]

Resolutions to blockers
Implement custom events

On-going blockers
Graph animation update [solved]

Plans for the next week
PINMUX

Are the latest versions being build in the rcn-ee testing images?

Is this the latest Debian 11.x (Bullseye) - Monthly Snapshots (ARM64)

Yes, that’s close enough. There are more frequent builds as well, but I’m wondering if there is synchronization going on with RobertCNelson (rcn-ee).

WEEK7

Accomplishments

PINMUX

Hardware overview (on-going)

  • Black (90% Done)
  • Pocket (0%)
  • Blue (0%)
  • AI (Share with balck)

PIN overview (on-going)

  • Black (90% - add more detail eg GPIO34 instead just gpio)
  • Pocket (0%)
  • Blue (0%)
  • AI (Share with balck)

PINMUX Config (on-going)

  • UI (just start)
  • Features (just start)

Resolutions to blockers

On-going blockers

  • AI Board cant work with config-pin tool

Plans for the next week

Tues & Fri

  • PINMUX for BB Black

Sat & Sun

  • Add auto-check board type
  • PINMUX for others board

Next Week

  • Boot Features
1 Like

Week8

Accomplishment

PINMUX for BB-Black (done)

BB Pocket (50%)

  • Hardware UI (Done)
  • Pinmux (on-going)

Enable/Disable Boot option (starting this week)

On going blocker

Next week

  • NFS
1 Like

Week 9

Accomplishment

PINMUX

  • bb-black (done)
  • bb-pocket (done)
  • bb-blue (on-going)

Enable/Disable Services at Boot (Done)

Next Week

  • NFS
1 Like

Week 10

BB-Config Features Latest Updates:

Features | Video | Status | PRs

  1. ADC Graph
  • (Demo) [Done] {Passes}
  1. DAC(PWM)
  • (None) [Done] {waiting}
  1. uEnv config
  • (Demo) [Done] {waiting}
  1. PinMux
  • (Demo) [Done] {waiting}
  1. NetworkManager
  • (None) [Testing] {No}
  1. File Sharing
  • (None) [Developing] {No}

Obstacles

  • BB-Blue NetworkManager not support
  • I still not sure how to implement file sharing in NFS. I still research on it, highly possible I will implement file sharing on ssh.

Next Week

  • Gather data for /sys/ method
  • Writing code with libgpiod

Week 11

Achivement

BB-Config

:white_check_mark:ADC Graph
:white_check_mark:DAC(PWM)
:white_check_mark:uEnv config
:white_check_mark:Enable/Disable startup service
:white_check_mark:PinMux
:orange_square:NetworkManager (going through dbus documentation)
:x:File Sharing (Implement requires recompile the kernel, so dropped it out)

GPIO - Benchmark

Code:
:white_check_mark:Shell (sys)
:white_check_mark:C++ (sys)
:white_check_mark:C (Memory Mapping)
:white_check_mark:C (libgpiod)
:white_check_mark:Python
:white_check_mark:BoneScrtipt
:white_check_mark:PRUs
:red_square:LKM

Data:
Beaglebone Black (gpio write)
image

Next Week

  • work on overlay-cap (bb-config)
  • GPIO Code for LKM
  • Test gpio for pocket, AI, AI-64.
1 Like

btw, in the ‘5.10.x-ti’ series, i’ve been playing around with and have enabled ksmbd:

might be a useful option for file sharing. :wink:

Regards,

1 Like

The PRU values are spot on.

The C memory map versions are slow. They should be just under 3MHz. The limitation is likely the wait on the internal bus for the write to post. If you could somehow disable the “strongly ordered” constraint on the MMAP, you could probably match the 12.5MHz of the PRU.

See:

https://groups.google.com/g/beagleboard/c/tWYwpdXBDAY

The Linux Kernel Module should also be 12.5MHz. See:
https://groups.google.com/g/beagleboard/c/dyuax5415dc
https://groups.google.com/g/beagleboard/c/xuHRlDL19NI

Thanks.

1 Like

Week 12

Achievement

BB-Config

:orange_square:NetworkManager (can use dbus get network and wifi status)
(going on how to add new network with dbus)

gpio benchmark

image

Next Week

LKM gpio code
GPIO benchmark for AI and AI-64
BB-Config Documentation

On-going blockers

can’t config gpio pin on AI