<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.elcanoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptressel</id>
	<title>Elcano Project Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.elcanoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptressel"/>
	<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/Special:Contributions/Ptressel"/>
	<updated>2026-05-19T18:30:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.2</generator>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=262</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=262"/>
		<updated>2019-10-10T02:41:12Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: /* Arduino software structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program that runs on an Arduino is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can include libraries, which are written in C++.  If there is code that would be useful to share between sketches, it can be put in a library.  Many open-source libraries are available for Arduino -- this lists some popular ones: https://www.arduino.cc/en/reference/libraries&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;br /&gt;
&lt;br /&gt;
== Arduino software structure ==&lt;br /&gt;
&lt;br /&gt;
Arduino software has some quirks. Each sketch must be in a directory with the same name as the sketch filename. (That is, if the sketch is called XYZ.ino, then it must be in a directory called XYZ.) Libraries likewise need to be in directories, but names of files in the library don't need to match the directory name. One should avoid nesting directories -- if there are variants of some project (also something to avoid), it is better to put each in a directory at the same level. Also avoid putting extraneous .ino files in sketch directories. The Arduino IDE seems to compile whatever .ino files it finds, even if it's not the actual sketch, so other .ino files may be confusing if they have compile errors.&lt;br /&gt;
&lt;br /&gt;
We have some local software conventions, mainly due to the fact that some settings and code need to be shared between different projects that run on different Arduinos, or are used on different vehicles with different structures.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
&lt;br /&gt;
This file contains information that is different per vehicle. This includes mechanical information (e.g. wheel diameter, turning radius, etc.) and electrical information (e.g. pin assignments). It is required by most projects.  All the rest of the code should be written to be portable across a wide variety of vehicles.&lt;br /&gt;
&lt;br /&gt;
A template version of this file, called SettingsTemplate.h, is packaged as a library, and is available in the General repository. SettingsTemplate.h should be copied to Settings.h, and local changes made in Settings.h as needed. Anything of general use can be put back into SettingsTemplate.h. Note this division between a template version of settings and a personalized version is the same division as is found with most application preferences or configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
In the past, locally-written Arduino libraries were put in a libraries directory alongside one's sketch directories. But a change to the Arduino IDE caused this not to work any longer. They now want libraries put in the installation directory of the Arduino IDE, or just put in the same directory as the sketch.&lt;br /&gt;
&lt;br /&gt;
Neither option is appropriate for software that has to be installed by non-administrators, or that is shared among projects. We are currently reconfiguring our libraries to deal with this. What we hope to do is go back to a local libraries directory, and have a separate repository for each locally-written library. We can use Git &amp;quot;submodules&amp;quot; to bring in the necessary libraries. Git supports soft links, so we can add links from each sketch to the libraries directory. This will allow using the original library structure.&lt;br /&gt;
&lt;br /&gt;
This change is in progress. In the meantime, locally-written library directories, or libraries that are not available in the Arduino installation, can be moved by hand into the user's own libraries directory, and a link called &amp;quot;libraries&amp;quot; created in each sketch directory, that points to the libraries directory. The include statements should then have the form:&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;libraries/SomeLibrary/SomeLibrary.h&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=261</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=261"/>
		<updated>2019-10-10T02:33:15Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: /* Arduino software structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program that runs on an Arduino is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can include libraries, which are written in C++.  If there is code that would be useful to share between sketches, it can be put in a library.  Many open-source libraries are available for Arduino -- this lists some popular ones: https://www.arduino.cc/en/reference/libraries&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;br /&gt;
&lt;br /&gt;
== Arduino software structure ==&lt;br /&gt;
&lt;br /&gt;
We have some local software conventions, mainly due to the fact that some settings and code need to be shared between different projects that run on different Arduinos, or are used on different vehicles with different structures.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
&lt;br /&gt;
This file contains information that is different per vehicle. This includes mechanical information (e.g. wheel diameter, turning radius, etc.) and electrical information (e.g. pin assignments). It is required by most projects.  All the rest of the code should be written to be portable across a wide variety of vehicles.&lt;br /&gt;
&lt;br /&gt;
A template version of this file, called SettingsTemplate.h, is packaged as a library, and is available in the General repository. SettingsTemplate.h should be copied to Settings.h, and local changes made in Settings.h as needed. Anything of general use can be put back into SettingsTemplate.h. Note this division between a template version of settings and a personalized version is the same division as is found with most application preferences or configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
In the past, locally-written Arduino libraries were put in a libraries directory alongside one's sketch directories. But a change to the Arduino IDE caused this not to work any longer. They now want libraries put in the installation directory of the Arduino IDE, or just put in the same directory as the sketch.&lt;br /&gt;
&lt;br /&gt;
Neither option is appropriate for software that has to be installed by non-administrators, or that is shared among projects. We are currently reconfiguring our libraries to deal with this. What we hope to do is go back to a local libraries directory, and have a separate repository for each locally-written library. We can use Git &amp;quot;submodules&amp;quot; to bring in the necessary libraries. Git supports soft links, so we can add links from each sketch to the libraries directory. This will allow using the original library structure.&lt;br /&gt;
&lt;br /&gt;
This change is in progress. In the meantime, locally-written library directories, or libraries that are not available in the Arduino installation, can be moved by hand into the user's own libraries directory, and a link called &amp;quot;libraries&amp;quot; created in each sketch directory, that points to the libraries directory. The include statements should then have the form:&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;libraries/SomeLibrary/SomeLibrary.h&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=260</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=260"/>
		<updated>2019-10-10T02:22:00Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program that runs on an Arduino is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can include libraries, which are written in C++.  If there is code that would be useful to share between sketches, it can be put in a library.  Many open-source libraries are available for Arduino -- this lists some popular ones: https://www.arduino.cc/en/reference/libraries&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;br /&gt;
&lt;br /&gt;
== Arduino software structure ==&lt;br /&gt;
&lt;br /&gt;
We have some local software conventions, mainly due to the fact that some settings and code need to be shared between different projects that run on different Arduinos.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
&lt;br /&gt;
This file contains information that is different per vehicle. This includes mechanical information (e.g. wheel diameter, turning radius, etc.) and electrical information (e.g. pin assignments). It is required by most projects.  All the rest of the code should be written to be portable across a wide variety of vehicles.&lt;br /&gt;
&lt;br /&gt;
A template version of this file, called SettingsTemplate.h, is packaged as a library, and is available in the General repository. SettingsTemplate.h should be copied to Settings.h, and local changes made in Settings.h as needed. Anything of general use can be put back into SettingsTemplate.h. Note this division between a template version of settings and a personalized version is the same division as is found with most application preferences or configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
&lt;br /&gt;
In the past, locally-written Arduino libraries were put in a libraries directory alongside one's sketch directories. But a change to the Arduino IDE caused this not to work any longer. They now want libraries put in the installation directory of the Arduino IDE, or just put in the same directory as the sketch.&lt;br /&gt;
&lt;br /&gt;
Neither option is appropriate for software that has to be installed by non-administrators, or that is shared among projects. We are currently reconfiguring our libraries to deal with this. What we hope to do is go back to a local libraries directory, and have a separate repository for each locally-written library. We can use Git &amp;quot;submodules&amp;quot; to bring in the necessary libraries. Git supports soft links, so we can add links from each sketch to the libraries directory. This will allow using the original library structure.&lt;br /&gt;
&lt;br /&gt;
This change is in progress. In the meantime, locally-written library directories, or libraries that are not available in the Arduino installation, can be moved by hand into the user's own libraries directory, and a link called &amp;quot;libraries&amp;quot; created in each sketch directory, that points to the libraries directory. The include statements should then have the form:&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;libraries/SomeLibrary/SomeLibrary.h&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=259</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=259"/>
		<updated>2019-10-10T01:52:02Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program that runs on an Arduino is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can include libraries, which are written in C++.  If there is code that would be useful to share between sketches, it can be put in a library.  Many open-source libraries are available for Arduino -- this lists some popular ones: https://www.arduino.cc/en/reference/libraries&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;br /&gt;
&lt;br /&gt;
== Arduino software structure ==&lt;br /&gt;
&lt;br /&gt;
We have some local software conventions, mainly due to the fact that some settings and code need to be shared between different projects that run on different Arduinos.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
&lt;br /&gt;
This file contains information that is different per vehicle. This includes mechanical information (e.g. wheel diameter, turning radius, etc.) and electrical information (e.g. pin assignments). It is required by most projects.  All the rest of the code should be written to be portable across a wide variety of vehicles.&lt;br /&gt;
&lt;br /&gt;
A template version of this file, called SettingsTemplate.h, is packaged as a library, and is available in the General repository. SettingsTemplate.h should be copied to Settings.h, and local changes made in Settings.h as needed. Anything of general use can be put back into SettingsTemplate.h. Note this division between a template version of settings and a personalized version is the same division as is found with most application preferences or configuration files.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=258</id>
		<title>Using Git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=258"/>
		<updated>2019-10-10T01:37:23Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why we use Git and GitHub ==&lt;br /&gt;
&lt;br /&gt;
Git is a distributed version control system. It allows safely making changes, with the ability to roll back to a previous version if a change doesn't work. It simplifies having multiple people working on the same files.&lt;br /&gt;
&lt;br /&gt;
GitHub is one of several online code sharing sites that support use of Git. GitHub adds some collaboration features on top of Git, such as elaborate code review tools, notification of changes. The main collaboration feature, though, is allowing one user to have their own copy of someone else's repository, and easily contribute changes back to the original.&lt;br /&gt;
&lt;br /&gt;
We use the &amp;quot;fork / pull&amp;quot; model of software development. In this model, each software project has a main repository. Contributors to the project make their own copies (forks) of the repository on GitHub, then &amp;quot;clone&amp;quot; their own GitHub repository onto whatever machine they will use for development. GitHub is mainly used for storage and sharing -- actual code changes will typically be done on one's own machine. After making changes, the developer makes a &amp;quot;commit&amp;quot; -- an update to their local repository, and &amp;quot;pushes&amp;quot; that commit to their own repository on GitHub. They then do a &amp;quot;pull request&amp;quot; -- this asks the maintainer of the main repository to review their code, and accept (pull) it into the main repository. This process allows people to propose changes independently of other developers -- there is no issue with two people trying to insert changes into the main repository at the same time, and one overwriting the other's work.&lt;br /&gt;
&lt;br /&gt;
If another developer has had their changes accepted into the main repository in the meantime, then the next developer to make a pull request may need to bring in the other developer's work, to make sure their own changes are compatible. We'll describe this process in some detail below, as it is the most tricky part of working with Git.&lt;br /&gt;
&lt;br /&gt;
== Overview of working with Git ==&lt;br /&gt;
&lt;br /&gt;
See the tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners&lt;br /&gt;
&lt;br /&gt;
Typically, you will start with an Elcano repository, and then fork it to your own repository on GitHub. For instance, GitHub user Jane would fork elcano/Transceiver to Jane/Transceiver. You would then download (&amp;quot;clone&amp;quot;) Jane/Transceiver to your PC. You can do a lot of work in that repository on your PC. When you have code on your PC that has been tested and is ready to share with others, the next step is to upload it.&lt;br /&gt;
&lt;br /&gt;
Suppose that on your PC you have updated the file xmit/RadioControl_rf69/RadioControl_rf69.ino.&lt;br /&gt;
You need to get into a bash shell window on your PC, and use cd to make Jane/Transceiver the current directory.&lt;br /&gt;
&lt;br /&gt;
git status   // should show nothing changed&lt;br /&gt;
&lt;br /&gt;
git add xmit/RadioControl_rf69/RadioControl_rf69.ino&lt;br /&gt;
&lt;br /&gt;
git commit -m &amp;quot;Removed a delay statement that blocked while waiting for an ack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Be sure to make your messages reflect what you did for this particular fix. Git supports small incremental changes, and make it possible to roll then back if needed. Please do not wait until the end of the quarter to dump all your changes into the main repository. &lt;br /&gt;
&lt;br /&gt;
git push origin master&lt;br /&gt;
&lt;br /&gt;
This command assumes that you have set origin to the URL for xmit and master to the URL for Jane/Transceiver. It puts your new code into your repository on the cloud.&lt;br /&gt;
&lt;br /&gt;
The next stage is to make a pull request. You are asking to have your code made part of the official Elcano/Transceiver. You are not allowed to directly push to Elcano repositories. If your pull request is accepted, your code becomes part of the Elcano project. A pull request is made from a web browser on Elcano/Transceiver, or whatever repository you are working with.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=257</id>
		<title>Using Git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=257"/>
		<updated>2019-10-10T01:21:54Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: /* Why we use Git and GitHub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why we use Git and GitHub ==&lt;br /&gt;
&lt;br /&gt;
Git is a distributed version control system. It allows safely making changes, with the ability to roll back to a previous version if a change doesn't work. It simplifies having multiple people working on the same files.&lt;br /&gt;
&lt;br /&gt;
GitHub is one of several online code sharing sites that support use of Git. GitHub adds some collaboration features on top of Git, such as elaborate code review tools, notification of changes. The main collaboration feature, though, is allowing one user to have their own copy of someone else's repository, and easily contribute changes back to the original.&lt;br /&gt;
&lt;br /&gt;
We use the &amp;quot;fork / pull&amp;quot; model of software development. In this model, each software project has a main repository. Contributors to the project make their own copies (forks) of the repository on GitHub, then &amp;quot;clone&amp;quot; their own GitHub repository onto whatever machine they will use for development. After making changes, the developer makes a &amp;quot;commit&amp;quot; -- an update to their local repository, and &amp;quot;pushes&amp;quot; that commit to their own repository on GitHub. They then do a &amp;quot;pull request&amp;quot; -- this asks the maintainer of the main repository to review their code, and accept (pull) it into the main repository. This process allows people to propose changes independently of other developers -- there is no issue with two people trying to insert changes into the main repository at the same time, and one overwriting the other's work.&lt;br /&gt;
&lt;br /&gt;
== Working with Git ==&lt;br /&gt;
&lt;br /&gt;
See the tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners&lt;br /&gt;
&lt;br /&gt;
Typically, you will start with an Elcano repository, and then fork it to your own repository on GitHub. For instance, fork elcano/Transceiver to Jane/Transceiver. Both of these repositories live in the cloud. You would then download (&amp;quot;clone&amp;quot;) Jane/Transceiver to your PC. You can do a lot of work in that repository on your PC. When you have code on your PC that has been tested and is ready to share with others, the next step is to upload it.&lt;br /&gt;
&lt;br /&gt;
Suppose that on your PC you have updated the file xmit/RadioControl_rf69/RadioControl_rf69.ino.&lt;br /&gt;
You need to get into a bash shell window on your PC, and use cd to make Jane/Transceiver the current directory.&lt;br /&gt;
&lt;br /&gt;
git status   // should show nothing changed&lt;br /&gt;
&lt;br /&gt;
git add xmit/RadioControl_rf69/RadioControl_rf69.ino&lt;br /&gt;
&lt;br /&gt;
git commit -m &amp;quot;Removed a delay statement that blocked while waiting for an ack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Be sure to make your messages reflect what you did for this particular fix. Git supports small incremental changes, and make it possible to roll then back if needed. Please do not wait until the end of the quarter to dump all your changes into the main repository. &lt;br /&gt;
&lt;br /&gt;
git push origin master&lt;br /&gt;
&lt;br /&gt;
This command assumes that you have set origin to the URL for xmit and master to the URL for Jane/Transceiver. It puts your new code into your repository on the cloud.&lt;br /&gt;
&lt;br /&gt;
The next stage is to make a pull request. You are asking to have your code made part of the official Elcano/Transceiver. You are not allowed to directly push to Elcano repositories. If your pull request is accepted, your code becomes part of the Elcano project. A pull request is made from a web browser on Elcano/Transceiver, or whatever repository you are working with.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
This file is required by most processors, but is not kept in any repository. It is meant to include individual vehicle features. All the rest of the code should be written to be portable across a wide variety of vehicles. Specific attributes of a trike (such as wheel diameter, turning radius, etc.) should be kept in a settings.h file for that vehicle. The file SettingsTemplate.h is kept in the General repository. This file should be used to set up an individual setting.h file.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=256</id>
		<title>Using Git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=256"/>
		<updated>2019-10-10T01:21:04Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why we use Git and GitHub ==&lt;br /&gt;
&lt;br /&gt;
Git is a distributed version control system. It allows safely making changes, with the ability to roll back to a previous version if a change doesn't work. It simplifies having multiple people working on the same files.&lt;br /&gt;
&lt;br /&gt;
GitHub is one of several online code sharing sites that support use of Git. GitHub adds some collaboration features on top of Git, such as elaborate code review tools, notification of changes. The main collaboration feature, though, is allowing one user to have their own copy of someone else's repository, and easily contribute changes back to the original.&lt;br /&gt;
&lt;br /&gt;
We use the &amp;quot;fork / pull&amp;quot; model of software development. In this model, each software project has a main repository. Contributors to the project make their own copies (forks) of the repository on GitHub, then &amp;quot;clone&amp;quot; their own GitHub repository onto whatever machine they will use for development. After making changes, the developer makes a &amp;quot;commit&amp;quot; -- an update to their local repository, and &amp;quot;pushes&amp;quot; that commit to their own repository on GitHub. They then do a &amp;quot;pull request&amp;quot; -- this asks the maintainer of the main repository to review their code, and accept (pull) it into the main repository. This process allows people to propose changes independently of other developers -- there is no issue with two people trying to insert changes into the main repository at the same time, and overwriting someone else's work.&lt;br /&gt;
&lt;br /&gt;
== Working with Git ==&lt;br /&gt;
&lt;br /&gt;
See the tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners&lt;br /&gt;
&lt;br /&gt;
Typically, you will start with an Elcano repository, and then fork it to your own repository on GitHub. For instance, fork elcano/Transceiver to Jane/Transceiver. Both of these repositories live in the cloud. You would then download (&amp;quot;clone&amp;quot;) Jane/Transceiver to your PC. You can do a lot of work in that repository on your PC. When you have code on your PC that has been tested and is ready to share with others, the next step is to upload it.&lt;br /&gt;
&lt;br /&gt;
Suppose that on your PC you have updated the file xmit/RadioControl_rf69/RadioControl_rf69.ino.&lt;br /&gt;
You need to get into a bash shell window on your PC, and use cd to make Jane/Transceiver the current directory.&lt;br /&gt;
&lt;br /&gt;
git status   // should show nothing changed&lt;br /&gt;
&lt;br /&gt;
git add xmit/RadioControl_rf69/RadioControl_rf69.ino&lt;br /&gt;
&lt;br /&gt;
git commit -m &amp;quot;Removed a delay statement that blocked while waiting for an ack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Be sure to make your messages reflect what you did for this particular fix. Git supports small incremental changes, and make it possible to roll then back if needed. Please do not wait until the end of the quarter to dump all your changes into the main repository. &lt;br /&gt;
&lt;br /&gt;
git push origin master&lt;br /&gt;
&lt;br /&gt;
This command assumes that you have set origin to the URL for xmit and master to the URL for Jane/Transceiver. It puts your new code into your repository on the cloud.&lt;br /&gt;
&lt;br /&gt;
The next stage is to make a pull request. You are asking to have your code made part of the official Elcano/Transceiver. You are not allowed to directly push to Elcano repositories. If your pull request is accepted, your code becomes part of the Elcano project. A pull request is made from a web browser on Elcano/Transceiver, or whatever repository you are working with.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
This file is required by most processors, but is not kept in any repository. It is meant to include individual vehicle features. All the rest of the code should be written to be portable across a wide variety of vehicles. Specific attributes of a trike (such as wheel diameter, turning radius, etc.) should be kept in a settings.h file for that vehicle. The file SettingsTemplate.h is kept in the General repository. This file should be used to set up an individual setting.h file.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=255</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=255"/>
		<updated>2019-10-10T00:53:21Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Welcome to the Elcano Project Wiki =&lt;br /&gt;
As the title says, WELCOME TO THE ELCANO PROJECT! Over the past few years many different teams have been working hard to create Cheap and Modular autonomy at the University of Washington Bothell. We are currently working on our first two prototypes which are now in the form of tricycles. With the use of affordable microcontrollers, such as the Arduino Mega 2560 and Raspberry PI, we are working towards creating Autonomy for anyone to rebuild anywhere, and that under $2000 and fully open-source. But we don't plan to stop there, no. That is just the first step in reaching our ultimate goal, which is making our systems applicable to any desired ground vehicles, such as cars and other vehicles. Autonomy is nothing new, in fact it has been around for over 40 years, the difference is that now we have the ability to make it available for anyone who desires furthering their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
To '''edit articles''' or '''upload files''', please create an account and request editing rights from a [//www.elcanoproject.org/wiki/index.php?title=Special:ListUsers&amp;amp;group=bureaucrat member of the &amp;quot;bureaucrat&amp;quot; group].&lt;br /&gt;
&lt;br /&gt;
For editing help visit https://www.mediawiki.org/wiki/Help:Editing_pages or https://www.mediawiki.org/wiki/Help:Formatting.&lt;br /&gt;
--------&lt;br /&gt;
[[File:Catrikes.JPG|1000px]]&lt;br /&gt;
== [[ElcanoIntro | Overview]] ==&lt;br /&gt;
Basic concept of how the Elcano Project vehicle works.&lt;br /&gt;
&lt;br /&gt;
== [[System Architecture]] ==&lt;br /&gt;
How processors connect to sensors, each other, actuators, and other hardware. Includes processor-to-processor communication protocol.&lt;br /&gt;
&lt;br /&gt;
== [[Communication | Communication (CAN Bus)]] ==&lt;br /&gt;
How processors exchange data on the vehicle and a description of data packet contents.&lt;br /&gt;
&lt;br /&gt;
== [[Power System]] ==&lt;br /&gt;
How different modules connect to the batteries or power subsystem hardware.&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
How the Low Level system uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
How the High Level system uses stored maps and inputs from navigational sensors to formulate movement instructions sent to Low Level.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
Human control of trike movements through Low Level using hardware connected to Low Level by a radio communication link (drive by radio). Includes on-board controls (drive by wire).&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector.&lt;br /&gt;
&lt;br /&gt;
=== [[Sonar]] === &lt;br /&gt;
How the sonar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[Lidar]] ===&lt;br /&gt;
How the lidar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[ Camera]] ===&lt;br /&gt;
How the camera and vision subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ Board Diagrams]] ==&lt;br /&gt;
Images of Elcano Project's printed circuit boards for reference. PCB source files and schematics are maintained and stored at [//github.com/elcano].&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Using Open-source CARLA platform with a go-between board allows simulation.&lt;br /&gt;
&lt;br /&gt;
== Software development procedures ==&lt;br /&gt;
&lt;br /&gt;
=== [[Software repositories]] ===&lt;br /&gt;
What's in each of our GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
=== [[Arduino software]] ===&lt;br /&gt;
Getting started; references; development tools. Dealing with libraries and different parameters for each vehicle.&lt;br /&gt;
&lt;br /&gt;
=== [[Using Git and GitHub]] ===&lt;br /&gt;
Practices for maintaining code and source files on Elcano Project's GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
==[[FilesPage | Files]] ==&lt;br /&gt;
These are media files (pictures, videos, etc.) that are part of the project, but are not maintained under version control.&lt;br /&gt;
&lt;br /&gt;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=GitUsage&amp;diff=254</id>
		<title>GitUsage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=GitUsage&amp;diff=254"/>
		<updated>2019-10-10T00:51:59Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: Ptressel moved page GitUsage to Using Git and GitHub: The abbreviated name was showing up as the page title.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Using Git and GitHub]]&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=253</id>
		<title>Using Git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=253"/>
		<updated>2019-10-10T00:51:59Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: Ptressel moved page GitUsage to Using Git and GitHub: The abbreviated name was showing up as the page title.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working with Git&lt;br /&gt;
&lt;br /&gt;
See the tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners&lt;br /&gt;
&lt;br /&gt;
Typically, you will start with an Elcano repository, and then fork it to your own repository. For instance, fork Elcano/Transceiver to Jane/Transceiver. Both of these repositories live in the cloud. You would then download Jane/Transceiver to your PC. You can do a lot of work in that repository on your PC. When you have code on your PC that has been tested, the next st ep is to upload it.&lt;br /&gt;
Suppose that on your PC you have updated the file xmit/ RadioControl_rf69/ RadioControl_rf69.ino.&lt;br /&gt;
You need to get into a bash shell window on your PC, and use cd to make xmit the current directory.&lt;br /&gt;
&lt;br /&gt;
git status   // should show nothing changed&lt;br /&gt;
&lt;br /&gt;
git add RadioControl_rf69/ RadioControl_rf69.ino&lt;br /&gt;
&lt;br /&gt;
git commit -m “Removed a delay statement that blocked while waiting for an ack”&lt;br /&gt;
&lt;br /&gt;
Be sure to make your messages reflect what you did for this particular fix. Git supports small incremental changes, and make it possible to roll then back if needed. Please do not wait until the end of the quarter to dump all your changes into the main repository. &lt;br /&gt;
&lt;br /&gt;
git push origin master&lt;br /&gt;
&lt;br /&gt;
This command assumes that you have set origin to the URL for xmit and master to the URL for Jane/Transceiver. It puts your new code into your repository on the cloud.&lt;br /&gt;
&lt;br /&gt;
The next stage is to make a pull request. You are asking to have your code made part of the official Elcano/Transceiver. You are not allowed to directly push to Elcano repositories. If your pull request is accepted, your code becomes part of the Elcano project. A pull request is made from a web browser on Elcano/Transceiver, or whatever repository you are working with.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
This file is required by most processors, but is not kept in any repository. It is meant to include individual vehicle features. All the rest of the code should be written to be portable across a wide variety of vehicles. Specific attributes of a trike (such as wheel diameter, turning radius, etc.) should be kept in a settings.h file for that vehicle. The file SettingsTemplate.h is kept in the General repository. This file should be used to set up an individual setting.h file.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=252</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=252"/>
		<updated>2019-10-10T00:47:58Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program that runs on an Arduino is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can include libraries, which are written in C++.  If there is code that would be useful to share between sketches, it can be put in a library.  Many open-source libraries are available for Arduino -- this lists some popular ones: https://www.arduino.cc/en/reference/libraries&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=251</id>
		<title>Arduino software</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Arduino_software&amp;diff=251"/>
		<updated>2019-10-10T00:15:27Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: Created page with &amp;quot;== Development tools ==  In Arduino terminology, a program is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development tools ==&lt;br /&gt;
&lt;br /&gt;
In Arduino terminology, a program is called a sketch. These are written in a limited version of C++, described here: https://www.arduino.cc/reference/en/ . In addition, one can write libraries in C++.&lt;br /&gt;
&lt;br /&gt;
There are several IDEs that support Arduino development:&lt;br /&gt;
&lt;br /&gt;
* The most commonly used is the Arduino IDE provided by arduino.cc. This is free and open-source. It is somewhat limited, but adequate. https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
* Some students prefer using Visual Studio with the Arduino extension. This actually uses the Arduino IDE under the covers, so things like library structure are the same. Visual Studio has a free community edition: https://visualstudio.microsoft.com/vs/community/ . The extension is here: https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino . (Note this is not the same as Visual Micro, which is a commercial, i.e. non-free, product.)&lt;br /&gt;
&lt;br /&gt;
* Atmel Studio is a professional IDE. It does not have the library or language limitations of the Arduino IDE. https://www.microchip.com/mplab/avr-support/atmel-studio-7&lt;br /&gt;
&lt;br /&gt;
It's recommended to start with the Arduino IDE as it's simpler and most Arduino information online assumes you are using it.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=250</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=250"/>
		<updated>2019-10-09T23:03:24Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Welcome to the Elcano Project Wiki =&lt;br /&gt;
As the title says, WELCOME TO THE ELCANO PROJECT! Over the past few years many different teams have been working hard to create Cheap and Modular autonomy at the University of Washington Bothell. We are currently working on our first two prototypes which are now in the form of tricycles. With the use of affordable microcontrollers, such as the Arduino Mega 2560 and Raspberry PI, we are working towards creating Autonomy for anyone to rebuild anywhere, and that under $2000 and fully open-source. But we don't plan to stop there, no. That is just the first step in reaching our ultimate goal, which is making our systems applicable to any desired ground vehicles, such as cars and other vehicles. Autonomy is nothing new, in fact it has been around for over 40 years, the difference is that now we have the ability to make it available for anyone who desires furthering their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
To '''edit articles''' or '''upload files''', please create an account and request editing rights from a [//www.elcanoproject.org/wiki/index.php?title=Special:ListUsers&amp;amp;group=bureaucrat member of the &amp;quot;bureaucrat&amp;quot; group].&lt;br /&gt;
&lt;br /&gt;
For editing help visit https://www.mediawiki.org/wiki/Help:Editing_pages or https://www.mediawiki.org/wiki/Help:Formatting.&lt;br /&gt;
--------&lt;br /&gt;
[[File:Catrikes.JPG|1000px]]&lt;br /&gt;
== [[ElcanoIntro | Overview]] ==&lt;br /&gt;
Basic concept of how the Elcano Project vehicle works.&lt;br /&gt;
&lt;br /&gt;
== [[System Architecture]] ==&lt;br /&gt;
How processors connect to sensors, each other, actuators, and other hardware. Includes processor-to-processor communication protocol.&lt;br /&gt;
&lt;br /&gt;
== [[Communication | Communication (CAN Bus)]] ==&lt;br /&gt;
How processors exchange data on the vehicle and a description of data packet contents.&lt;br /&gt;
&lt;br /&gt;
== [[Power System]] ==&lt;br /&gt;
How different modules connect to the batteries or power subsystem hardware.&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
How the Low Level system uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
How the High Level system uses stored maps and inputs from navigational sensors to formulate movement instructions sent to Low Level.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
Human control of trike movements through Low Level using hardware connected to Low Level by a radio communication link (drive by radio). Includes on-board controls (drive by wire).&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector.&lt;br /&gt;
&lt;br /&gt;
=== [[Sonar]] === &lt;br /&gt;
How the sonar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[Lidar]] ===&lt;br /&gt;
How the lidar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[ Camera]] ===&lt;br /&gt;
How the camera and vision subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ Board Diagrams]] ==&lt;br /&gt;
Images of Elcano Project's printed circuit boards for reference. PCB source files and schematics are maintained and stored at [//github.com/elcano].&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Using Open-source CARLA platform with a go-between board allows simulation.&lt;br /&gt;
&lt;br /&gt;
== Software development procedures ==&lt;br /&gt;
&lt;br /&gt;
=== [[Software repositories]] ===&lt;br /&gt;
What's in each of our GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
=== [[Arduino software]] ===&lt;br /&gt;
Getting started; references; development tools. Dealing with libraries and different parameters for each vehicle.&lt;br /&gt;
&lt;br /&gt;
=== [[GitUsage|Using Git and GitHub]] ===&lt;br /&gt;
Practices for maintaining code and source files on Elcano Project's GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
==[[FilesPage | Files]] ==&lt;br /&gt;
These are media files (pictures, videos, etc.) that are part of the project, but are not maintained under version control.&lt;br /&gt;
&lt;br /&gt;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=249</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=249"/>
		<updated>2019-10-09T23:01:38Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Welcome to the Elcano Project Wiki =&lt;br /&gt;
As the title says, WELCOME TO THE ELCANO PROJECT! Over the past few years many different teams have been working hard to create Cheap and Modular autonomy at the University of Washington Bothell. We are currently working on our first two prototypes which are now in the form of tricycles. With the use of affordable microcontrollers, such as the Arduino Mega 2560 and Raspberry PI, we are working towards creating Autonomy for anyone to rebuild anywhere, and that under $2000 and fully open-source. But we don't plan to stop there, no. That is just the first step in reaching our ultimate goal, which is making our systems applicable to any desired ground vehicles, such as cars and other vehicles. Autonomy is nothing new, in fact it has been around for over 40 years, the difference is that now we have the ability to make it available for anyone who desires furthering their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
To '''edit articles''' or '''upload files''', please create an account and request editing rights from a [//www.elcanoproject.org/wiki/index.php?title=Special:ListUsers&amp;amp;group=bureaucrat member of the &amp;quot;bureaucrat&amp;quot; group].&lt;br /&gt;
&lt;br /&gt;
For editing help visit https://www.mediawiki.org/wiki/Help:Editing_pages or https://www.mediawiki.org/wiki/Help:Formatting.&lt;br /&gt;
--------&lt;br /&gt;
[[File:Catrikes.JPG|1000px]]&lt;br /&gt;
== [[ElcanoIntro | Overview]] ==&lt;br /&gt;
Basic concept of how the Elcano Project vehicle works.&lt;br /&gt;
&lt;br /&gt;
== [[System Architecture]] ==&lt;br /&gt;
How processors connect to sensors, each other, actuators, and other hardware. Includes processor-to-processor communication protocol.&lt;br /&gt;
&lt;br /&gt;
== [[Communication | Communication (CAN Bus)]] ==&lt;br /&gt;
How processors exchange data on the vehicle and a description of data packet contents.&lt;br /&gt;
&lt;br /&gt;
== [[Power System]] ==&lt;br /&gt;
How different modules connect to the batteries or power subsystem hardware.&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
How the Low Level system uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
How the High Level system uses stored maps and inputs from navigational sensors to formulate movement instructions sent to Low Level.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
Human control of trike movements through Low Level using hardware connected to Low Level by a radio communication link (drive by radio). Includes on-board controls (drive by wire).&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector.&lt;br /&gt;
&lt;br /&gt;
=== [[Sonar]] === &lt;br /&gt;
How the sonar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[Lidar]] ===&lt;br /&gt;
How the lidar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[ Camera]] ===&lt;br /&gt;
How the camera and vision subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ Board Diagrams]] ==&lt;br /&gt;
Images of Elcano Project's printed circuit boards for reference. PCB source files and schematics are maintained and stored at [//github.com/elcano].&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Using Open-source CARLA platform with a go-between board allows simulation.&lt;br /&gt;
&lt;br /&gt;
== Software development procedures ==&lt;br /&gt;
&lt;br /&gt;
=== [[Software repositories]] ===&lt;br /&gt;
What's in each of our GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
=== [[Arduino software]] ===&lt;br /&gt;
Getting started; references; development software. Dealing with libraries and different parameters for each vehicle.&lt;br /&gt;
&lt;br /&gt;
=== [[GitUsage|Using Git and GitHub]] ===&lt;br /&gt;
Practices for maintaining code and source files on Elcano Project's GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
==[[FilesPage | Files]] ==&lt;br /&gt;
These are media files (pictures, videos, etc.) that are part of the project, but are not maintained under version control.&lt;br /&gt;
&lt;br /&gt;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Software_repositories&amp;diff=248</id>
		<title>Software repositories</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Software_repositories&amp;diff=248"/>
		<updated>2019-10-09T22:58:27Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: Created page with &amp;quot;The Elcano repositories are on https://github.com/elcano  There is a separate repository for each microprocessor:  * LowLevel: Drive by wire * HighLevel: Localization, mapping...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Elcano repositories are on https://github.com/elcano&lt;br /&gt;
&lt;br /&gt;
There is a separate repository for each microprocessor:&lt;br /&gt;
&lt;br /&gt;
* LowLevel: Drive by wire&lt;br /&gt;
* HighLevel: Localization, mapping and path planning&lt;br /&gt;
* Transceiver: Remote control transmitter and receiver&lt;br /&gt;
* Sonar: Obstacle detection from ultra-sound&lt;br /&gt;
* Sweep: Obstacle detection by laser&lt;br /&gt;
* QDED: Raspberry Pi Vision based on quadrature disambiguation edge detection&lt;br /&gt;
* General: for items that are shared between processors.&lt;br /&gt;
&lt;br /&gt;
In the past, all code was in the single repository Elcano/Elcano. That repository has been archived. Any useful files from it should be copied to the appropriate repository.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=247</id>
		<title>Using Git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Using_Git_and_GitHub&amp;diff=247"/>
		<updated>2019-10-09T22:57:14Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working with Git&lt;br /&gt;
&lt;br /&gt;
See the tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners&lt;br /&gt;
&lt;br /&gt;
Typically, you will start with an Elcano repository, and then fork it to your own repository. For instance, fork Elcano/Transceiver to Jane/Transceiver. Both of these repositories live in the cloud. You would then download Jane/Transceiver to your PC. You can do a lot of work in that repository on your PC. When you have code on your PC that has been tested, the next st ep is to upload it.&lt;br /&gt;
Suppose that on your PC you have updated the file xmit/ RadioControl_rf69/ RadioControl_rf69.ino.&lt;br /&gt;
You need to get into a bash shell window on your PC, and use cd to make xmit the current directory.&lt;br /&gt;
&lt;br /&gt;
git status   // should show nothing changed&lt;br /&gt;
&lt;br /&gt;
git add RadioControl_rf69/ RadioControl_rf69.ino&lt;br /&gt;
&lt;br /&gt;
git commit -m “Removed a delay statement that blocked while waiting for an ack”&lt;br /&gt;
&lt;br /&gt;
Be sure to make your messages reflect what you did for this particular fix. Git supports small incremental changes, and make it possible to roll then back if needed. Please do not wait until the end of the quarter to dump all your changes into the main repository. &lt;br /&gt;
&lt;br /&gt;
git push origin master&lt;br /&gt;
&lt;br /&gt;
This command assumes that you have set origin to the URL for xmit and master to the URL for Jane/Transceiver. It puts your new code into your repository on the cloud.&lt;br /&gt;
&lt;br /&gt;
The next stage is to make a pull request. You are asking to have your code made part of the official Elcano/Transceiver. You are not allowed to directly push to Elcano repositories. If your pull request is accepted, your code becomes part of the Elcano project. A pull request is made from a web browser on Elcano/Transceiver, or whatever repository you are working with.&lt;br /&gt;
&lt;br /&gt;
=== Settings.h ===&lt;br /&gt;
This file is required by most processors, but is not kept in any repository. It is meant to include individual vehicle features. All the rest of the code should be written to be portable across a wide variety of vehicles. Specific attributes of a trike (such as wheel diameter, turning radius, etc.) should be kept in a settings.h file for that vehicle. The file SettingsTemplate.h is kept in the General repository. This file should be used to set up an individual setting.h file.&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=246</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=246"/>
		<updated>2019-10-09T22:55:55Z</updated>

		<summary type="html">&lt;p&gt;Ptressel: Splitting up the software development section, as a start to explaining our Arduino setup, and GitHub usage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Welcome to the Elcano Project Wiki =&lt;br /&gt;
As the title says, WELCOME TO THE ELCANO PROJECT! Over the past few years many different teams have been working hard to create Cheap and Modular autonomy at the University of Washington Bothell. We are currently working on our first two prototypes which are now in the form of tricycles. With the use of affordable microcontrollers, such as the Arduino Mega 2560 and Raspberry PI, we are working towards creating Autonomy for anyone to rebuild anywhere, and that under $2000 and fully open-source. But we don't plan to stop there, no. That is just the first step in reaching our ultimate goal, which is making our systems applicable to any desired ground vehicles, such as cars and other vehicles. Autonomy is nothing new, in fact it has been around for over 40 years, the difference is that now we have the ability to make it available for anyone who desires furthering their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
To '''edit articles''' or '''upload files''', please create an account and request editing rights from a [//www.elcanoproject.org/wiki/index.php?title=Special:ListUsers&amp;amp;group=bureaucrat member of the &amp;quot;bureaucrat&amp;quot; group].&lt;br /&gt;
&lt;br /&gt;
For editing help visit https://www.mediawiki.org/wiki/Help:Editing_pages or https://www.mediawiki.org/wiki/Help:Formatting.&lt;br /&gt;
--------&lt;br /&gt;
[[File:Catrikes.JPG|1000px]]&lt;br /&gt;
== [[ElcanoIntro | Overview]] ==&lt;br /&gt;
Basic concept of how the Elcano Project vehicle works.&lt;br /&gt;
&lt;br /&gt;
== [[System Architecture]] ==&lt;br /&gt;
How processors connect to sensors, each other, actuators, and other hardware. Includes processor-to-processor communication protocol.&lt;br /&gt;
&lt;br /&gt;
== [[Communication | Communication (CAN Bus)]] ==&lt;br /&gt;
How processors exchange data on the vehicle and a description of data packet contents.&lt;br /&gt;
&lt;br /&gt;
== [[Power System]] ==&lt;br /&gt;
How different modules connect to the batteries or power subsystem hardware.&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
How the Low Level system uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
How the High Level system uses stored maps and inputs from navigational sensors to formulate movement instructions sent to Low Level.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
Human control of trike movements through Low Level using hardware connected to Low Level by a radio communication link (drive by radio). Includes on-board controls (drive by wire).&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector.&lt;br /&gt;
&lt;br /&gt;
=== [[Sonar]] === &lt;br /&gt;
How the sonar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[Lidar]] ===&lt;br /&gt;
How the lidar subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
=== [[ Camera]] ===&lt;br /&gt;
How the camera and vision subsystem connected to High Level works.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ Board Diagrams]] ==&lt;br /&gt;
Images of Elcano Project's printed circuit boards for reference. PCB source files and schematics are maintained and stored at [//github.com/elcano].&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Using Open-source CARLA platform with a go-between board allows simulation.&lt;br /&gt;
&lt;br /&gt;
== [[Software development procedures]]&lt;br /&gt;
&lt;br /&gt;
=== [[Software repositories]] ===&lt;br /&gt;
What's in each of our GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
=== [[Arduino software]] ===&lt;br /&gt;
Getting started; references; development software. Dealing with libraries and different parameters for each vehicle.&lt;br /&gt;
&lt;br /&gt;
=== [[GitUsage|Using Git and GitHub]] ===&lt;br /&gt;
Practices for maintaining code and source files on Elcano Project's GitHub repositories.&lt;br /&gt;
&lt;br /&gt;
==[[FilesPage | Files]] ==&lt;br /&gt;
These are media files (pictures, videos, etc.) that are part of the project, but are not maintained under version control.&lt;br /&gt;
&lt;br /&gt;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;/div&gt;</summary>
		<author><name>Ptressel</name></author>
		
	</entry>
</feed>