Skip to content

[JOSS] Reviewer Feedback (sea-bass) #174

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

Closed
sea-bass opened this issue Apr 23, 2022 · 1 comment
Closed

[JOSS] Reviewer Feedback (sea-bass) #174

sea-bass opened this issue Apr 23, 2022 · 1 comment
Labels
documentation Update documentation needed enhancement New feature or request

Comments

@sea-bass
Copy link

sea-bass commented Apr 23, 2022

Hello,

This contains my review for your entry to the Journal of Open Source Software (JOSS).

SimpleFOC: A Field Oriented Control (FOC) Library for Controlling Brushless Direct Current (BLDC) and Stepper Motors
#4232 (openjournals/joss-reviews#4232)

Overall

The Arduino SimpleFOClibrary is a promising project that aims to make motor control education and development accessible at low cost. The solution is well-documented and highly practical from an engineering standpoint. The fact that this provides both software and hardware kits with detailed instructions highlights how complete this solution is.

Based on the above, and the relatively high activity in the GitHub repository itself (stars/forks/issues/contributions), I would recommend this for publication in JOSS with minor revisions.

My only major comment is that the authors are missing unit tests for the C++ software components, and they should be added as appropriate and rolled into the CI pipeline.

Detailed comments

  • I would like to highlight that this is not just a software solution (Arduino SimpleFOClibrary), but also a hardware solution (Arduino SimpleFOCShield). Both of them are designed to work together and are documented in the same place, and the shields are available for purchase directly from the authors.
  • The software package is well-documented. I especially appreciate that it's not just an API dump, but contains several guided tutorials such as "Getting Started", has example projects, and even a work roadmap to share the vision with the open-source community to gain alignment with potential contributors.
  • Activity is great. At the time of review there are 251 forks, 953 stars, 72 PRs (3 open, 69 closed), 97 issues (38 open, 59 closed), and 18 separate contributors (seems like 2 main ones and 16 from the community).
  • Installation instructions are complete and span a good spread of expertise -- from "clone this repo, you know how to do that" to "here's how you do in the Terminal" to "forget Git, download a ZIP file".
  • Beyond the GitHub repo, there is a SimpleFOC Community forum for user interaction / discussions / support.
  • The software Getting Started materials are very complete, and I particularly like the "Simple tests" checkpoints telling users what they should expect to see on the hardware.

Suggested Revisions (Repository)

  • My main suggestion is that the repo has automated tests for library compile, but no unit tests for the functionality itself. It would be great to see some unit tests rolled into the CI pipeline.
  • I am a little confused in that the repository and documentation points out Arduino, but then the supported hardware lists other platforms and the entire paper/submission also seems platform-agnostic. In fact, the paper makes a point that SimpleFOC supports various microcontroller architectures. So I would suggest making the repo title and documentation reflect this multi-architecture support as much as possible (without renaming the repo, which is always unnecessarily risky).
  • A lot of the hardware instructions are relatively fast-moving GIFs that can't be paused/slowed down. Consider also having static pictures with numbered steps, or possibly creating a video (e.g., on YouTube) that users can pause if needed. I see a video tutorial is already on the roadmap.
  • The critical sections such as "📢 Make sure to read this before running any motor!" section probably should be called out more clearly as this could cause damage to hardware. Maybe worth elevating to its own section in addition to where they are now?
  • It might be good in the documentation to have a graphical description of the software libraries and how they interact with each other. I really like Figures 1 and 2 in the paper and think they should make it into the official doc!
  • I would suggest adding a page with contributor guidelines, e.g., "How do I contribute to this project?"
  • In src/common/foc_utils.cpp there are several commented-out lines in e.g. the sine and square root approximations that are optimized for other data types. Instead of leaving them commented, is it worthwhile to actually define multiple functions and have users call the right one?

Suggested Revisions (Paper)

  • Under "Research Interest", it might be good to also highlight that you are showcasing example projects in your documentation.
  • I think the paper should highlight that the authors provide a joint software/hardware solution, and the Arduino shields are available for purchase from the same authors.
  • Following the suggested addition of unit tests, it would be nice to briefly discuss how this functionality is validated -- namely, that the authors have a CI pipeline set up that frequently checks that the library compiles and basic functionality performs as intended.
@askuric
Copy link
Member

askuric commented Apr 5, 2023

Thanks @sea-bass for your comments,
We've integrated most of your proposals to the library and the docs. There are still some that are not completely addressed but are in the pipeline. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Update documentation needed enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants