I would like to maybe contribute to the oneifinity github. I have some programming expericence but tootal noob when it comes to github. My question is there a sim/emulator to test my changes or I have to run them on my actual controller. Seems like there should be a emulator for software testing.
Thanks in advance
Github is just a file repository that maintains a version history… that’s it.
it is important to understand that git is not github.
Git is a version control software. It has many advantages in comparison to other versioning systems. I run git since it exists and can only recommend it. It is a free and open source software.
In fact the actual way to use and contribute to a git repository is to first mirror the codebase of the repository on your local computer. This is done by a simple command in your local installation of git. This is because git is designed to be a Distributed Version Control System (as opposed to a server-client service).
GitHub, Inc. is a internet hoster that uses git. It has nothing to do with git except that it uses git to provide its service. You do not need to use github.com for working on a git repository or your fork of one. You can use your local installation of the git software alone to contribute to any git repository.
I do not particularly like github.com, and since it was acquired by microsoft, well…
If you are new to using a version control software, it would be the best to first install git and learn to use it and to understand how it works.
Git’s Git Repository:
About Git, the free and open distributed control version software:
About GitHub, Inc., the provider of a web portal, owned by Microsoft:
Of course there are software simulators. But the Onefinity Controller, which has its hardware and its software based on the Buildbotics Controller, is a rather complex circuit / rather complex circuit. You have a mainboard with an ATxmega microcontroller and the stepper drivers and so on, and attached to it over its GPIO pins you have a Raspberry Pi 3 which is a Computer and makes the Controller be a stand-alone CNC Controller.
So yes, it would be the best to test your code on your local controller. Or, if it’s just related to the web interface of the application, on a running copy of the OS image.
Thanks @Aiph5u for the information. I will look into it.
just to prevent any shyness:
Git Quick Start:
Download Git from the Git Download page.
Installation depends on which Operating System you run on your PC. See:
Under Debian GNU/Linux and many of its derivates it would go this way:
apt-get install git git-doc
After installation, you would create a folder for working with Git, e.g. called ‘git’:
mkdir git or whatever you do to create a folder on your Operating system.
Then you would do:
cd git # move into the folder you created
git config --global user.name "Firstname Name" # Note: If you skip this step, git will guess your name using your system information
git config --global user.email email@example.com # Note: If you skip this step, git will guess your e-mail address using your system information
git clone git://github.com/OneFinityCNC/onefinity-firmware.git
That’s it, now you have a clone of the Onefinity-firmware codebase on your computer and you can start to edit it (offline).
For the next steps follow the Git Tutorial: Using Git for collaboration.
By the way, you can also have a look at Buildbotics firmware by using
git clone git://github.com/buildbotics/bbctrl-firmware.git
Advanced Git Usage
The Pro Git Book is very good and intelligible. Advanced topics in the Pro Git Book are then
In order to contribute to a repository that is hosted on GitHub, you create an account and you “fork” the project under your username. This is not a fork in the classical meaning of the word “fork”, it’s just a work copy on the github.com site. After you’ve cloned this own work copy to your local computer (with the “clone” command shown above), you create a topic branch, you work on what you want to contribute, and when you’re done then you push your contributions to your “fork” on github.com.
Then you create a pull request on the github.com site to make the owner of the original repository aware of your contribution. This has the advantage that any user can contribute without having push access to the original repository.
If you don’t want to register at GitHub.com, you can still work on your copy of the repository and after you’re done with the work you want to contribute, you create a patch and submit it to the owner of the repository. This is the classical way (outside of github.com) if you have no push access to a repository and are not running your own git server. See git diff and git format-patch.