Information Cleanup

We have talked for a while about what the best way to store and display community information is and it seems like we really need a central space, at the moment we’re too spread out over too many places and it makes it hard for folks to contribute.

I think that the best way is to have a single github repo which has all of our software (both the firmware and the UI) along with spaces for a wiki and things like the assembly instructions.

I think that the best place for that is here: GitHub - MaslowCNC/Maslow_4: The next generation of motion control firmware

I chose to keep the fork from FluidNC as the base repo because we might want to update from the main branch at some point, and I want to maintain the connection to all the work that those guys did in building FluidNC.

I will start working on migrating everything like the assembly instructions over to that repo so we can keep everything in a single centralized place.

What are everyone’s thoughts?

2 Likes

It would be good to have a central repo. Will you include the legacy git hub stuff too?

1 Like

getting things tied together under a single git repo is a good idea, and will
make it much easier to keep things consistant.

If we do this correctly, all of the git history will still be there in the new
setup.

The only question I have (that I’ve raised with Bar before) is if this should be
implemented as a single repo or as a master repo with submodules

using the submodules will mean that the instructions to set it up are a little
more complex (but people just cut-n-paste those anyway) and there will be some
new management scripts that will need to be tweaked/improved. But if/when we
start working with new versions of the upstream repos and get to the point that
we can sync with them it will be easier.

It may be possible to setup scripts to combine/split repos after the fact. so
it isn’t necessaraly a final decision.

I know enough git stuff to know the technology, but don’t have enough active
development work to know reasons why it’s a bad idea :slight_smile:

David Lang

1 Like

I’m leaning towards single repo just because of the way the AI stuff works. It would be awesome to be able to request a new feature and have it update the firmware, UI, and documentation all in one go

3 Likes

@wouldchuck and I are trying to figure out how to better organize our documentation and information.

Our current system is that most of the information (assembly guides, user guide…etc) are static pages on our website hosted by Squarespace.

That is bad because:

:cross_mark: The information is not community editable so we are missing out on valuable chances for it to be improved
:cross_mark: The information is often out of sync with the current state of the firmware

We have two better places that we can store our information.

Markdown Files In the Repository

Markdown files look like this: @MaslowCNC/Maslow_4/files/docs/user-guide

Pros:
:white_check_mark: These files look and work somewhat similar to the existing web pages
:white_check_mark: Edits to these files are suggestions so we can be sure that our files there won’t have changes which are wrong
:white_check_mark: The @MaslowBot AI can make changes here automatically so a change to the software could automatically be reflected in the user guide keeping things in sync

Cons:
:cross_mark: Editing can be a bit of a pain in the butt for users who aren’t familiar with github

Github Wiki

The wiki is editable by anyone: GitHub - MaslowCNC/Maslow_4: The next generation of motion control firmware

Pros:
:white_check_mark: We used the wiki for all of our documentation in the first version of Maslow and it worked well
:white_check_mark: Anyone can make changes and improvements

Cons:
:cross_mark: The AI cannot make changes to the wiki

What are everyone’s thoughts on where our information should live?

I’m leaning towards putting the more fixed documentation (Assembly Guide and User Guide) in markdown files and putting things like a list of different frame designs in the wiki, but maybe that is too spread out and everything should be in the wiki.

What do folks think?

I know very little about Github but have been trying to copy over the instruction manuals to a markdown file and start an outline of a comprehensive manual where we can collect the wisdom from the forums. It would be a long file but maybe a single place is good and then it can be pulled from to make manuals and getting started guides. So far I have outlined a general table of contents list and copied over the software user guide and most of the instructions for building 4.0. I am happy to keep manually pulling over the instructions to make sure they are correct or we can play with the ai to see if it can pull things over in an accurate way.
Here is my repo, if we make something useful it should probably be moved to the main repo.

Here is my proposed general table of contents. TABLE OF CONTENTS

  1. Things you will need to get started

  2. Optional but good things to have

  3. Safety and hazards

  4. Forums and github

  5. Build instructions

  6. Tips for building 4, 4.1

  7. Details of optional upgrades

  8. Routers lists and library

  9. Router bits lists and library

  10. CNC, CAD and CAM software lists and library

  11. Material to cut lists and library

  12. Frames and frame library

  13. Connecting to the machine

  14. Updating the Firmware

  15. The Control panel and software

  16. Other things you can control in the software.

  17. Ancohors and calibration

  18. Moving the robot around by jogging

  19. G-code

  20. Feed rates library

  21. Test Cut designs and grids

  22. Making a 2D design as a vector drawing .svg

  23. Changing a 2D design into G-code .nc for cutting

  24. Uploading G-code .nc to the machine

  25. Fixing the work to the wasteboard

  26. Inserting a cutting bit

  27. Inserting a drawing pencil or pen (no idea how to do this)

  28. Drawing with the machine

  29. Preflight check

  30. Cutting a 2D design

  31. Designing a layered 2D design with mulitple depths

  32. Preparing a layered 2D design as G-code

  33. Cutting a layered 2D design with multiple depths

  34. Switching cutting heads between operations

  35. Designing a 3D sculpted surface design

  36. Preparing a 3D sculpted surface design as g-code

  37. Cutting a 3D sculpted surface design

  38. Designing a 3D piece of furniture from multiple 2D panels

  39. Abundance software

  40. Paramaterized design for 3D

  41. G-code for furniture

  42. Cutting furniture.

  43. 3D design as stacked layers

  44. Cutting 3D as stacked layers

  45. G-code for stacked layers of 3D designs

  46. Other design methods

  47. Including bushings and hardware in designs

  48. Design library (perhaps one for parts of designs and one for full projects? )

  49. Accuracy and precision

  50. TROUBLESHOOTINg

  51. Fun stuff

If there is a better way to organize things in Github that could be good. I would suggest that whatever we do it would be good to keep links and files only one or two layers deep to keep a manual readable and accessible.

I don’t really understand what I am looking at here

Is this meant to be a master repository for all things maslow? Can anyone make changes? I don’t want to vandalize something that is important to someone. For instance, could I change the tagline to something like “Open source project for an affordable and accessible Belt driven CNC 3 axis Router” ? Would a user manual be a file under docs? Is it ok if I put one there? Can we change the Readme?

I would like to help with instruction manuals and collecting information. I would like to stay away from the programming and technical work so that I don’t clutter up the really useful work there, What is the best way to get started? Do I make a fork, change or add a document and then make a pull request?

I would like to help but am confused about how to get started. Even if I figure out Github mechanics I don’t know what would be reasonable for the repo above. As a mostly non progamming community member I don’t know where to start.

Bar wrote:

I’m leaning towards single repo just because of the way the AI stuff works. It
would be awesome to be able to request a new feature and have it update the
firmware, UI, and documentation all in one go

with submodules, everything will look like it’s in one repo, but the process of
comitting changes is a bit mroe complex (but that should be automated.

we would need to experiment a little with how AI sees this.

David Lang

Bar wrote:

We have two better places that we can store our information.

Markdown Files In the Repository

Markdown files look like this: @MaslowCNC/Maslow_4/files/docs/user-guide

Pros:
:white_check_mark: These files look and work somewhat similar to the existing web pages
:white_check_mark: Edits to these files are suggestions so we can be sure that our files there won’t have changes which are wrong
:white_check_mark: The @MaslowBot AI can make changes here automatically so a change to the software could automatically be reflected in the user guide keeping things in sync

Cons:
:cross_mark: Editing can be a bit of a pain in the butt for users who aren’t familiar with github

Github Wiki

The wiki is editable by anyone: GitHub - MaslowCNC/Maslow_4: The next generation of motion control firmware

Pros:
:white_check_mark: We used the wiki for all of our documentation in the first version of Maslow and it worked well
:white_check_mark: Anyone can make changes and improvements

Cons:
:cross_mark: The AI cannot make changes to the wiki

What are everyone’s thoughts on where our information should live?

I’m leaning towards putting the more fixed documentation (Assembly Guide and
User Guide) in markdown files and putting things like a list of different
frame designs in the wiki, but maybe that is too spread out and everything
should be in the wiki.

having the documentations and instructions versioned along with the code is a
good thing, it means that if someone needs to dig up instructions for an old
version, they can look at that version of the docs (something you really can’t
do with a separate wiki)

yes, right now we are thinking that everyone should upgrade to the current
firmware, but that may not always be the case (and sometimes you need
instructions to find out how to upgrade, so far those have not changed, but if
they do, how does someone find the instructions for their version)

I’m not that worried about the complexity of people making updates, we can’t
just let anyone update the wiki due to spam problems (not to mention just
consistancy), and it’s not hard to train people on how to update via github
(especially if they can just tell the AI what they want to change)

David Lang

It is meant to be a master repository for all things Maslow but because it started out as a FluidNC repository it still has a lot of FluidNC stuff that we need to replace.

Anyone can propose a change but those changes have to get approved which makes it really easy to not worry about breaking anything.

You can see a quick guide for how to do that on our old repository here: How To Contribute · MaslowCNC/Firmware Wiki · GitHub

We probably need to copy that over to this repository.

That would be a great place, and yes please! I had the AI copy over the web page from our website so there should be one in there already, but it probably needs work.

YES! I think that this would be a good place to start. The Readme is the main thing that shows up on the front page so it should have the most important information and links that people are most likely to need.

I think that the first place to start is to update that readme. I think that everything which is currently in the README could be deleted or maybe moved to a dedicated FluidNC.md file

Feel free to start out by making a pull request to change just about anything to test the process out and see how it works. Don’t worry about breaking anything, the system is set up so that you truly can’t do anything wrong.

1 Like

Ok, I’ll try poking at it.

1 Like

Bar wrote:

It is meant to be a master repository for all things Maslow but because it
started out as a FluidNC repository it still has a lot of FluidNC stuff that
we need to replace.

we don’t want to mix everything at the top level directory, start by moving
everything down one level

mkdir firmware
git mv * firmware
git add *
git commit -m ‘move firmware down one level’

otherwise we will have build stuff for the UI and the firmware and the docs
tangled together in the same directory.

David Lang

2 Likes

How do folks feel about this as a clean up?

1 Like

the current README.nd is pretty specific to FluidNC (including asking for
donations to the FluidNC project), so I would have it in the firmware directory,
with a new one at the top level that’s talking about the maslow specific stuff.

other than that, looks good.

David Lang

1 Like

I did confirm the firmware can be build inside the new firmware directory.

2 Likes

I would consider splitting the docs between developer docs and user docs (what’s
needed for people working on the code vs the instructions for the people just
wanting to use the machine)

David Lang

2 Likes

I agree, but I know that @wouldchuck is working on a readme re-write and I didn’t want to mess him up by moving the file mid way through :grin:

1 Like

using git mv, git handles that better than you would fear. But if he’s working
on a re-write, no rush to move the existing one.

next step put the UI under /ui ??

then make a build script at the top level that makes both (and puts them in a
top level /builds directory in addition to their existing locations) ??

Also, I noted that the resulting build was just named v1.15 rather than
v1.15-11-g757b0dd4 I think I made a PR to fix the field overflow bug and allow
long version numbers. (and see my long post on versions in the Branch Branch
Revolution thread)

David Lang

1 Like

That’s what I was thinking

I hadn’t thought about that, but it’s a great idea