<?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=Elcanoadmin</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=Elcanoadmin"/>
	<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/Special:Contributions/Elcanoadmin"/>
	<updated>2026-07-10T20:45:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.2</generator>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ElcanoIntro&amp;diff=694</id>
		<title>ElcanoIntro</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ElcanoIntro&amp;diff=694"/>
		<updated>2026-06-25T22:34:05Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Vehicles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Elcano Project Introduction =&lt;br /&gt;
&lt;br /&gt;
== Vehicles ==&lt;br /&gt;
&lt;br /&gt;
A self-driving vehicle does not have to be a car. It can be a bicycle or motorcycle. We work with tricycles so that we do not need to worry about balance. Other vehicles could be karts or toy cars.  At University of Washington Bothell we have two Catrike recumbents and an Organic Transit ELF. In 2026, version 5 of the Rive by Wire System was built. It has the capability of outputting in [[ Communication |CAN Bus format]], which is the standard for automotive control. With a CAN Bus interface on Low Level a trike can present the same automation interface as a car.&lt;br /&gt;
&lt;br /&gt;
[[File:ELF.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automation of the ELF vehicle has started with the steering system, which is described in the attached document.&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
Self-driving vehicles like Elcano can increase passenger safety, reduce the energy used for urban transportation, and reduce vehicle congestion. Over 90% of traffic accidents are caused by driver error, so the safety potential of self-drive is well-understood.  When self-drive almost eliminates traffic accidents, a motorcycle is almost as safe as a full-frame automobile. Vehicle weights could fall to the point that pod-cars weighing less than the riders are the preferred choice in urban environments. Since 65% of U.S. vehicle miles traveled (VMT) are urban, the ramifications are enormous. Self-driving vehicles can drive a pre-determined speed on a pre-determined route, eliminating unpredictable driver behavior that causes sudden traffic stoppage and congestion. An aerodynamic ultra-light vehicle that avoids stop-and-go traffic needs less than one-tenth the energy of an automobile; a 25 pound rechargeable battery and a small electric motor on a light vehicle achieves the speed and range required for urban transportation. Light batteries can be easily swapped when exhausted, eliminating range anxiety. A bank of batteries can be recharged when the wind blows and the sun shines. Fossil fuel demand, pollution and green house gas production could fall dramatically.&lt;br /&gt;
&lt;br /&gt;
For most people, transportation automation is rocket science.  The Elcano Project aims to make self-drive real for students and hobbyists, and build a popular demand to adopt traffic automation. The technology is here; laws and policies to take advantage of it are not.&lt;br /&gt;
&lt;br /&gt;
An isolated autonomous car can improve safety, but the other benefits require choreographing road users; when done right, highway capacity goes up three times and congestion mostly disappears. If manual and automated traffic were allowed to mix, the manually driven cars would snarl up the automated lane; thus there needs to be separated lanes. A lane set apart for automated vehicles looks a lot like Personal Rapid Transit (PRT), a technology that has been around for more than 40 years. Today PRT systems are in operation; other automated road systems are only at the testing phase.&lt;br /&gt;
&lt;br /&gt;
When an automated vehicle is in a reserved lane, the sensors get simpler and less expensive; there is no need for lidar, radar or extensive machine vision because lane traffic is synchronized and predictable. The Elcano Project provides a blueprint for building your own inexpensive experimental automated vehicle using electronics and sensors.  A tricycle with an electric motor under 750 Watt and top speed under 20 mph is legally a bicycle, and thus street-legal without license, registration or insurance.&lt;br /&gt;
&lt;br /&gt;
== Use of Arduino microcontrollers for Elcano ==&lt;br /&gt;
As you might be just taking your first dive into this project, it is important to know that most of our microcontrollers are manufactured by Arduino. Arduino is one of the largest producers of such development tools and have found great success in creating cheap ways to make them available to the public. Although generally affordable, these boards are mainly intended for prototyping and have rates of failure that may be too high for a production system. It still provides a great base for developers to create new systems.&lt;br /&gt;
For more information refer to https://www.arduino.cc/&lt;br /&gt;
--&amp;gt; the website also has a lot of information about their products from programming to forums so don't be afraid to look things up! Note that Arduino hardware is an open source design originally based on Atmel AVR. We have migrated the drive-by-wire board to the ARM-based Arduino Due. The High-level functions have migrated from Arduino to Jetson Nano with Pixhawk. Since our boards are also open source, you have the possibility of designing a single board that merges the Arduino and Elcano functionality.&lt;br /&gt;
&lt;br /&gt;
== System Architecture Overview ==&lt;br /&gt;
Elcano converts an ordinary vehicle to self-drive by adding several classes of hardware, including:&lt;br /&gt;
* [[ProcessorGeneral | Processors]] that use data from the sensors and data from on-board storage to control where the vehicle goes.&lt;br /&gt;
* '''Actuators''' to control steering, braking, and vehicle speed. Actuators are often servomotors but can be other devices.&lt;br /&gt;
* '''Sensors''' to measure vehicle speed, vehicle location, vehicle direction, obstacle distance, and other information about the vehicle and its surroundings.&lt;br /&gt;
* '''Electrical Power''' comes from a bank of batteries, with power converters changing the voltage.&lt;br /&gt;
The processors, actuators, sensors, and power subsystem are all located on the vehicle. &lt;br /&gt;
Physical Architecture describes where each part is on the vehicle and the location of wires connecting each subsystem.&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[System Architecture]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=693</id>
		<title>ActuatorPage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=693"/>
		<updated>2026-06-21T19:08:12Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Linear actuator with Motor Control Shield */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Actuators and Motor =&lt;br /&gt;
&lt;br /&gt;
==Description and Function ==&lt;br /&gt;
Elcano uses a linear actuator to control steering hardware.  Brake control had used a linear servo, but in Spring 2018, brake control was replaced by a Solenoid system. An electric bicycle controller drives the rear wheel.The recumbent Catrikes use a hub motor. The ELF used an electric motor that drives a chain on the left side of the vehicle. The ELF used a rotary servo for steering.&lt;br /&gt;
&lt;br /&gt;
== Drive System ==&lt;br /&gt;
&lt;br /&gt;
The Catrikes have no pedaling or chain. The vehicle is powered by a hub motor.&lt;br /&gt;
&lt;br /&gt;
The ELF has two chains. One is driven by pedaling and the other by an electric motor. Both chains have freewheels, so they do not interfere with each other.&lt;br /&gt;
&lt;br /&gt;
The electric motor is powered by an e-bike controller. The trikes use a Kelly controller. https://www.kellycontroller.com/shop/kbs-e/&lt;br /&gt;
&lt;br /&gt;
The e-bike controller converts the main voltage (36 or 48V) from DC to three phase to power the motor. The power can draw 25 or 30 Amp and is potentially lethal. Interface to the e-bike controller is an analog signal from the drive-by-wire board that gives the throttle.&lt;br /&gt;
&lt;br /&gt;
The Kelly e-bike controller has some additional functionality that has not yet been used:&lt;br /&gt;
&lt;br /&gt;
-- There are phase signals from the hub motor that offer finer speed and position control since the signal occurs about 20 times per wheel revolution instead of the current once per revolution.&lt;br /&gt;
&lt;br /&gt;
-- It is possible to do regenerative braking.&lt;br /&gt;
&lt;br /&gt;
-- The controller supports driving the wheel in reverse.&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
&lt;br /&gt;
The main drive connector on DBW v5 is an RJ45 connector. On the Power box, the signals are attached to wires to the Kelly controller, which have unique colors and numbers. The only signal currently used is Throttle. The pins are&lt;br /&gt;
&lt;br /&gt;
* 1: Forward / Reverse: White (12)&lt;br /&gt;
* 2: Current meter: Dark blue (8)&lt;br /&gt;
* 3: Amount of regenerative braking: White (2)&lt;br /&gt;
* 4: Regenerative brake switch: Brown (13)&lt;br /&gt;
* 5: Reserved&lt;br /&gt;
* 6: Throttle: Dark green (3)&lt;br /&gt;
* 7: Speedometer: Green from Hall B (17)&lt;br /&gt;
* 8: E-Bike alive: Purple (4) or Dark Grey (11)&lt;br /&gt;
*    Kelly Pink wire (7) must be attached to 36V or system is off&lt;br /&gt;
&lt;br /&gt;
== Steering System ==&lt;br /&gt;
&lt;br /&gt;
Three methods have been used for steering: Linear servo, linear actuator with H-bridge, and linear actuator with motor control shield.&lt;br /&gt;
&lt;br /&gt;
=== Linear servos ===&lt;br /&gt;
&lt;br /&gt;
There are two main steering signals: &lt;br /&gt;
&lt;br /&gt;
1. Signal Out is a 1 to 2 ms pulse sent from the Arduino to control the steering actuator.&lt;br /&gt;
&lt;br /&gt;
2. Signal In is a 5 V analog feedback signal that gives the pointing angle of the wheel. There is one such signal for each of the two front wheels. More details on [[SteeringSensor]].&lt;br /&gt;
&lt;br /&gt;
The linear steering servo on the Catrikes https://www.servocity.com/hdls-6-2-12v  has 25 lb. thrust with  6&amp;quot; throw. The servo is powered by a pulse signal (D48). A more suitable part may be https://www.servocity.com/motors-actuators/linear-actuators/heavy-duty-linear-actuators, which is described below.&lt;br /&gt;
&lt;br /&gt;
The steering servo or actuator is powered by 12V DC. It produces 5V DC which can be used by other equipment. Steering is controlled by sending a pulse to the actuator. A pulse width of approximately 1 ms will cause the actuator to fully extend (right turn on Catrike). A pulse of about 2 ms will fully retract the actuator. A pulse of 1.5 ms will keep the vehicle pointed straight ahead. There is some variation in these voltages; thus the Catrikes have a mechanical adjustment for fine-tuning the position for going straight. Typically there are about 30 pulses per second; the exact rate does not matter. At 12V, servo operating speed is 56mm/s with no load or 35 mm/s at maximum load. &lt;br /&gt;
&lt;br /&gt;
The actuator interfaces to the Arduino over a three wire servo connector that is standard for RC planes and cars. The three wires are Signal Out, Ground, and Power. The power wire is not used since both the actuator and Arduino have their own sources of power. The actuator is fused for 5 Amps but has blown fuses. Be careful not to drive it beyond physical limits.&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with H-bridge ===&lt;br /&gt;
&lt;br /&gt;
The pulsed linear servo fails too often. When it fails it can still be used as a linear actuator, and it costs less to buy it as an actuator in the first place. The actuator is powered by a relay to give it either +12V or -12V and uses angle feedback to stop motion. &lt;br /&gt;
&lt;br /&gt;
Students built an H-bridge circuit board to swap positive and negative voltages, but it never quite worked. We then discovered that the Arduino Motor Control shield can control the actuator when powered from its own 12V supply. This is the preferred design as of 2026.&lt;br /&gt;
&lt;br /&gt;
The actuator depends on Signal In feedback. The H-bridge circuit used two digital signals to turn either left or right (D41, D48).&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with Motor Control Shield ===&lt;br /&gt;
&lt;br /&gt;
The Motor Shield has signals for motor on/off (D9), direction (D12) and speed (D3). It can also read the current that the motor is drawing (A0) and software can adjust speed to keep it within limits. CAUTION: the analog signal is 0-5V but the Arduino Due must not have any input &amp;gt; 3.3V. It is probably necessary to cut A0 and A1 and route them to a voltage converter. Interface to the shield is on https://docs.arduino.cc/tutorials/motor-shield-rev3/msr3-controlling-dc-motor/#hardware--software-needed Steering is Motor A. The motor to lift the gate to decouple would be Motor B.&lt;br /&gt;
&lt;br /&gt;
The Vin line on Arduino cannot supply enough current for the steering motor. An external 12V supply needs to be connected to the motor shield through the screw terminal. The other screw terminals drive the motors: (+,-) for motor A and (+,-) for motor B. The motor is controlled by swapping 12V and Ground between the (+,-) terminals to make it go one direction or the other.&lt;br /&gt;
&lt;br /&gt;
== Braking System ==&lt;br /&gt;
Two solenoids (Johnson Electric 150 174432-024; available from Newark/Element14) connected directly to the brake cables control braking. This system has some advantages and disadvantages over connecting the brake cables to a servo. Advantages are that a solenoid provides full braking force in milliseconds. Disadvantages include a lack of control over braking force and brake failure on loss of power: a solenoid alone will not hold position without adequate current from the batteries. Using a solenoid instead of a servo also requires additional hardware and software to control the solenoid.&lt;br /&gt;
&lt;br /&gt;
=== Building a solenoid mount for braking ===&lt;br /&gt;
==== Creating and assembling a solenoid mount ====&lt;br /&gt;
&lt;br /&gt;
# Select a solenoid according to required braking force and throw. Information like force as a function of throw is provided in product data sheets&lt;br /&gt;
## measure how much force is required to initially pull the brake cable from rest (against spring tension and friction) and to completely close the brake, stopping the loaded vehicle&lt;br /&gt;
## measure the distance the brake cable travels from rest to closed position; this is the required throw&lt;br /&gt;
## select a solenoid that provides adequate force over the entire throw &lt;br /&gt;
## be aware that a solenoid provides less force when heated by environment and electrical load&lt;br /&gt;
# Because solenoids generate heat, select metal stock with enough area to radiate heat from the solenoid; this information may be contained in the solenoid's data sheet &lt;br /&gt;
# If needed: use measurements from the solenoid or solenoid data sheet to modify the drilling template provided below to fit the mounting plate on the selected solenoid. Make sure holes are not too close to the edge of the material so there is enough room to drill&lt;br /&gt;
# Adhere the printed drilling template to the metal stock using rubber cement. Work quickly (&amp;lt; 30 seconds after application of rubber cement) to apply the paper template smoothly on the surface before the adhesive dries&lt;br /&gt;
# Drill holes where shown on the template. Drill pilot holes using a small bit before using large drill bits &lt;br /&gt;
# Check that all parts (including the solenoid) fit the drilled screw holes and use screws and nuts to attach the two angle bracket stops and the solenoid base plate to the solenoid mount&lt;br /&gt;
# install the brake shield ends (threaded metal parts) to the brake shield end mount and thread the brake cable through&lt;br /&gt;
# Screw the three bridle pieces together around the barrel end of the brake cable and attach to the solenoid arm with a screw and nut (or other hardware, depending on the solenoid arm end) &lt;br /&gt;
# Check that the solenoid arm moves freely along its entire throw with the bridle and brake cable attached&lt;br /&gt;
# Attach electrical connectors to the solenoid and attach the solenoid to the solenoid controller to test that brakes open and close when the solenoid is switched off and on&lt;br /&gt;
&lt;br /&gt;
==== Supplies ====&lt;br /&gt;
# existing bicycle braking system using barrel-ended brake cable (to use our brake cable bridle)&lt;br /&gt;
# one solenoid for each brake (it may be possible to alter the design included on this page to use one solenoid for two brakes, but make sure it has enough force for two brakes)&lt;br /&gt;
# metal stock large enough to create an entire mount for each solenoid; this mount doubles as a heat sink and should have enough total area to radiate heat&lt;br /&gt;
# metal stock to create a bridle attaching the solenoid arm to the brake cable&lt;br /&gt;
# metal stock to create a stop for the bridle on the solenoid arm and a mount for the brake cable end&lt;br /&gt;
(have extra metal stock to recreate each drilled piece in case of mistakes)&lt;br /&gt;
# material such as screws, plates, or u-bolts to attach the solenoid mount to the vehicle&lt;br /&gt;
# screws and nuts to hold all solenoid mount parts together&lt;br /&gt;
# a printed drilling template, modified to fit your hardware if needed, one for each solenoid mount (neatly cut out individual pieces)&lt;br /&gt;
# rubber cement or other adhesive for adhering the drilling template&lt;br /&gt;
# hand drill or drill press&lt;br /&gt;
# clamps and disposable wood block(s) for drilling&lt;br /&gt;
# files or other abrasive for removing metal burs and sharp edges&lt;br /&gt;
# personal safety equipment such as gloves and eye protection for when cutting, drilling, and filing&lt;br /&gt;
&lt;br /&gt;
=== Wiring the solenoid ===&lt;br /&gt;
The solenoids are connected in parallel to the [[LowLevel]] board's relay outputs. This is a height current connection, and is mean to switch between 24v (for striking) and 12v (for maintaining). The solenoids only have a 25% duty cycle at 24v, so be careful not to leave them connected to power for too long. It is also critically important to include a snubbing diode in parallel with any inductive load. &lt;br /&gt;
As of version 3.0 the [[LowLevel]] board includes one on its brake output. We are using a pair of 1N400x series diodes rated for &amp;gt;50v and 1A (specifically 1N4001). This prevents extreme high voltage transients generated by switching the inductor from finding an inconvenient path to ground via our sensitive electronics. Quite a few relay shields have lost their driving transistors prior to the addition of these diodes.&lt;br /&gt;
&lt;br /&gt;
== Parts and Materials ==&lt;br /&gt;
&lt;br /&gt;
# Two solenoids and assembly for braking.  See '''&amp;quot;Creating and assembling a solenoid mount&amp;quot;''')&lt;br /&gt;
# 6&amp;quot; linear steering servo (Catrikes) or rotary servo (ELF)&lt;br /&gt;
# servo mounts&lt;br /&gt;
# linkage hardware to connect servos to brakes and steering&lt;br /&gt;
# electric bike conversion kit&lt;br /&gt;
# power subsystems (batteries, connectors, wiring) for servos and motor&lt;br /&gt;
&lt;br /&gt;
Detailed bill of materials: https://github.com/elcano/elcano/blob/master/Documentation/Elcano_BOM.xls&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
See the attached solenoid data sheet for its specific characteristics.&lt;br /&gt;
Other linear servos: https://www.servocity.com/servos/heavy-duty-linear-servos&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Board Diagrams]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ElcanoIntro&amp;diff=692</id>
		<title>ElcanoIntro</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ElcanoIntro&amp;diff=692"/>
		<updated>2026-06-20T00:11:46Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* System Architecture Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Elcano Project Introduction =&lt;br /&gt;
&lt;br /&gt;
== Vehicles ==&lt;br /&gt;
&lt;br /&gt;
A self-driving vehicle does not have to be a car. It can be a bicycle or motorcycle. We work with tricycles so that we do not need to worry about balance. Other vehicles could be karts or toy cars.  At University of Washington Bothell we have two Catrike recumbents and an Organic Transit ELF. In 2018, version 3 of the High Level System was built. It has the capability of outputting in [[ Communication |CAN Bus format]], which is the standard for automotive control. With a CAN Bus interface on Low Level a trike can present the same automation interface as a car.&lt;br /&gt;
&lt;br /&gt;
[[File:ELF.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Automation of the ELF vehicle has started with the steering system, which is described in the attached document.&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
Self-driving vehicles like Elcano can increase passenger safety, reduce the energy used for urban transportation, and reduce vehicle congestion. Over 90% of traffic accidents are caused by driver error, so the safety potential of self-drive is well-understood.  When self-drive almost eliminates traffic accidents, a motorcycle is almost as safe as a full-frame automobile. Vehicle weights could fall to the point that pod-cars weighing less than the riders are the preferred choice in urban environments. Since 65% of U.S. vehicle miles traveled (VMT) are urban, the ramifications are enormous. Self-driving vehicles can drive a pre-determined speed on a pre-determined route, eliminating unpredictable driver behavior that causes sudden traffic stoppage and congestion. An aerodynamic ultra-light vehicle that avoids stop-and-go traffic needs less than one-tenth the energy of an automobile; a 25 pound rechargeable battery and a small electric motor on a light vehicle achieves the speed and range required for urban transportation. Light batteries can be easily swapped when exhausted, eliminating range anxiety. A bank of batteries can be recharged when the wind blows and the sun shines. Fossil fuel demand, pollution and green house gas production could fall dramatically.&lt;br /&gt;
&lt;br /&gt;
For most people, transportation automation is rocket science.  The Elcano Project aims to make self-drive real for students and hobbyists, and build a popular demand to adopt traffic automation. The technology is here; laws and policies to take advantage of it are not.&lt;br /&gt;
&lt;br /&gt;
An isolated autonomous car can improve safety, but the other benefits require choreographing road users; when done right, highway capacity goes up three times and congestion mostly disappears. If manual and automated traffic were allowed to mix, the manually driven cars would snarl up the automated lane; thus there needs to be separated lanes. A lane set apart for automated vehicles looks a lot like Personal Rapid Transit (PRT), a technology that has been around for more than 40 years. Today PRT systems are in operation; other automated road systems are only at the testing phase.&lt;br /&gt;
&lt;br /&gt;
When an automated vehicle is in a reserved lane, the sensors get simpler and less expensive; there is no need for lidar, radar or extensive machine vision because lane traffic is synchronized and predictable. The Elcano Project provides a blueprint for building your own inexpensive experimental automated vehicle using electronics and sensors.  A tricycle with an electric motor under 750 Watt and top speed under 20 mph is legally a bicycle, and thus street-legal without license, registration or insurance.&lt;br /&gt;
&lt;br /&gt;
== Use of Arduino microcontrollers for Elcano ==&lt;br /&gt;
As you might be just taking your first dive into this project, it is important to know that most of our microcontrollers are manufactured by Arduino. Arduino is one of the largest producers of such development tools and have found great success in creating cheap ways to make them available to the public. Although generally affordable, these boards are mainly intended for prototyping and have rates of failure that may be too high for a production system. It still provides a great base for developers to create new systems.&lt;br /&gt;
For more information refer to https://www.arduino.cc/&lt;br /&gt;
--&amp;gt; the website also has a lot of information about their products from programming to forums so don't be afraid to look things up! Note that Arduino hardware is an open source design originally based on Atmel AVR. We have migrated the drive-by-wire board to the ARM-based Arduino Due. The High-level functions have migrated from Arduino to Jetson Nano with Pixhawk. Since our boards are also open source, you have the possibility of designing a single board that merges the Arduino and Elcano functionality.&lt;br /&gt;
&lt;br /&gt;
== System Architecture Overview ==&lt;br /&gt;
Elcano converts an ordinary vehicle to self-drive by adding several classes of hardware, including:&lt;br /&gt;
* [[ProcessorGeneral | Processors]] that use data from the sensors and data from on-board storage to control where the vehicle goes.&lt;br /&gt;
* '''Actuators''' to control steering, braking, and vehicle speed. Actuators are often servomotors but can be other devices.&lt;br /&gt;
* '''Sensors''' to measure vehicle speed, vehicle location, vehicle direction, obstacle distance, and other information about the vehicle and its surroundings.&lt;br /&gt;
* '''Electrical Power''' comes from a bank of batteries, with power converters changing the voltage.&lt;br /&gt;
The processors, actuators, sensors, and power subsystem are all located on the vehicle. &lt;br /&gt;
Physical Architecture describes where each part is on the vehicle and the location of wires connecting each subsystem.&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[System Architecture]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=691</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=691"/>
		<updated>2026-06-20T00:08:59Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Elcano Project Main Website */&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 two prototype recumbent tricycles and also worked on an ELF tricycle. With the use of affordable microcontrollers, such as the Arduino Due, Jetson Nano and Pixhawk, we are working towards creating Autonomy for anyone to build anywhere, with electronics and software 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Elcano Project Main Website: [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories: [https://github.com/elcano]. &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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=690</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=690"/>
		<updated>2026-06-20T00:01:37Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Welcome to the Elcano Project Wiki */&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 two prototype recumbent tricycles and also worked on an ELF tricycle. With the use of affordable microcontrollers, such as the Arduino Due, Jetson Nano and Pixhawk, we are working towards creating Autonomy for anyone to build anywhere, with electronics and software 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Elcano Project Main Website: [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories: [https://github.com/elcano]. &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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=689</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=689"/>
		<updated>2026-06-19T23:57:56Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Welcome to the Elcano Project Wiki */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Elcano Project Main Website: [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories: [https://github.com/elcano]. &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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=688</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=688"/>
		<updated>2026-06-19T23:56:55Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Welcome to the Elcano Project Wiki */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Elcano Project Main Website: [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano]. &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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=687</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=687"/>
		<updated>2026-06-19T23:54:52Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Welcome to the Elcano Project Wiki */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Elcano Project Main Website: [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=686</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=686"/>
		<updated>2026-06-19T23:53:13Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;
== Elcano Project Main Website ==&lt;br /&gt;
* [//www.elcanoproject.org]&lt;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=685</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=685"/>
		<updated>2026-06-19T23:52:08Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&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;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=684</id>
		<title>Current Board Diagrams</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=684"/>
		<updated>2026-06-19T23:49:14Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Drive by Wire Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Drive by Wire Board ==&lt;br /&gt;
&lt;br /&gt;
[[FIle: DBWv5_Schematic1.png]]&lt;br /&gt;
&lt;br /&gt;
[[FIle: DBWv5_Schematic2.png]]&lt;br /&gt;
&lt;br /&gt;
[[FIle: DBWv5_Schematic3.png]]&lt;br /&gt;
&lt;br /&gt;
== Simulator Board ==&lt;br /&gt;
&lt;br /&gt;
* Documentation &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Photo &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Eagle CAD files: https://github.com/elcano/Simulator&lt;br /&gt;
&lt;br /&gt;
[[File:CARLA_sch.jpg]]&lt;br /&gt;
[[File:CARLAbrd_1_1.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=683</id>
		<title>Current Board Diagrams</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=683"/>
		<updated>2026-06-19T23:48:12Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Drive by Wire Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Drive by Wire Board ==&lt;br /&gt;
&lt;br /&gt;
[[FIle: DBWv5_Schematic1.png]]&lt;br /&gt;
&lt;br /&gt;
== Simulator Board ==&lt;br /&gt;
&lt;br /&gt;
* Documentation &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Photo &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Eagle CAD files: https://github.com/elcano/Simulator&lt;br /&gt;
&lt;br /&gt;
[[File:CARLA_sch.jpg]]&lt;br /&gt;
[[File:CARLAbrd_1_1.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic3.png&amp;diff=682</id>
		<title>File:DBWv5 Schematic3.png</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic3.png&amp;diff=682"/>
		<updated>2026-06-19T23:46:00Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: DBW version 5 Schematic Sheet 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
DBW version 5 Schematic Sheet 3&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic2.png&amp;diff=681</id>
		<title>File:DBWv5 Schematic2.png</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic2.png&amp;diff=681"/>
		<updated>2026-06-19T23:45:10Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: DBW version 5 Schematic Sheet 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
DBW version 5 Schematic Sheet 2&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic1.png&amp;diff=680</id>
		<title>File:DBWv5 Schematic1.png</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=File:DBWv5_Schematic1.png&amp;diff=680"/>
		<updated>2026-06-19T23:44:39Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: DBW version 5 Schematic Sheet 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
DBW version 5 Schematic Sheet 1&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=679</id>
		<title>Current Board Diagrams</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Current_Board_Diagrams&amp;diff=679"/>
		<updated>2026-06-19T23:27:19Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Simulator Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Drive by Wire Board ==&lt;br /&gt;
&lt;br /&gt;
== Simulator Board ==&lt;br /&gt;
&lt;br /&gt;
* Documentation &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Photo &amp;gt; [[Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Eagle CAD files: https://github.com/elcano/Simulator&lt;br /&gt;
&lt;br /&gt;
[[File:CARLA_sch.jpg]]&lt;br /&gt;
[[File:CARLAbrd_1_1.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=678</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=678"/>
		<updated>2026-06-19T19:59:18Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* GPS */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles GPS. It includes inertial sensors and a Kalman filter and thus improves on raw GPS. Various sensors can be purchased. Some use Global Network Satellite Systems (GNSS) from other countries to improve on the US Global Positioning System.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=677</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=677"/>
		<updated>2026-06-19T19:56:06Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* SensorsPage */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
The Pixhawk handles PPS.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=676</id>
		<title>SteeringSensor</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=676"/>
		<updated>2026-06-19T19:52:56Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Sensor Connections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Steering Angle Sensor =&lt;br /&gt;
&lt;br /&gt;
To change or maintain travel direction, the system must know which way the front wheels are pointing. Elcano tricycles accomplish this task with a rotational position sensor placed on the front steer wheels. Each trike has two steering columns, and both are instrumented for redundancy. The sensor is mechanically mounted to the shaft.  Since the system uses Ackerman steering, the turn angle of the two wheels will be slightly different. More information is below.&lt;br /&gt;
Rotational position sensors may be incremental or absolute. An incremental position sensor only reports discrete changes in rotational position and possibly direction of rotation. Absolute position sensors report the current angle of the sensor shaft. Absolute position sensors have advantages for sensing wheel angle, such as always knowing the current wheel angle at the power-on state. Elcano test vehicles use absolute rotation sensors.&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Analog ==&lt;br /&gt;
&lt;br /&gt;
Analog position sensors typically communicate angle using current or voltage levels. In these devices, current or voltage is a function of the angle. Example:&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-turn-angle_360-degree-sensor.png | border | 640px]]&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Digital ==&lt;br /&gt;
&lt;br /&gt;
Digital position sensors communicate angle digitally. Two ways a sensor can accomplish this task is by encoding the measured position into a binary stream (serial communication) or by encoding the position in binary by driving several output pins high or low (parallel communication). &lt;br /&gt;
&lt;br /&gt;
== Reducing Sensor Noise ==&lt;br /&gt;
&lt;br /&gt;
The problem with sending an analog signal over a long wire to the Arduino is that the wire acts as an antenna and picks up noise. Thus we connect a twisted wire pair from sensor to Arduino that has Signal In as well as the return. The return wire is connected to the ground wire at the sensor. The return wire may have picked up noise when it gets to the Arduino. The Arduino subtracts the analog value of return from the Signal In. Since both wires have picked up approximately the same noise, subtracting them gives a more robust reading. The Signal In return signal goes to an analog input on the Arduino, and is not connected to Arduino ground. The test vehicle analog sensor uses four wires: power, ground, signal, and signal return.  &lt;br /&gt;
&lt;br /&gt;
Another alternative is to use an analog-to-digital converter to digitize the voltage reading from the sensor before it reaches [[C2]]. All analog signals are sensitive to noise from the environment, especially nearby electronics. This noise appears as voltage changes on the power and signal wires of the turn sensors and is visible with an oscilloscope. Because noise creates changes in voltage on the signal and power wires, it creates erroneous angle readings.&lt;br /&gt;
&lt;br /&gt;
--Main.JosephBreithaupt - 2017-02-11&lt;br /&gt;
&lt;br /&gt;
== Sensors used ==&lt;br /&gt;
&lt;br /&gt;
We have gotten the best results from RTY060LVNAX  60 degree analog rotary encoder with a 5V range. &lt;br /&gt;
Other possibilities:&lt;br /&gt;
&lt;br /&gt;
- TT Electronics 6127 sensor giving 5V analog output over 360 degrees https://www.digikey.com/products/en?keywords=987-1393-ND . Has six times less resolution than a 60 degree sensor, and the minimum resolution can get lost in the noise.&lt;br /&gt;
&lt;br /&gt;
- EMS22A50-M25-LD6 Digital rotary encoder. This produces 1024 steps over 360 degrees, in SPI.  It will give a resolution of 0.35 degrees. Requires a change to Arduino.&lt;br /&gt;
&lt;br /&gt;
- TLC1549CP 10-bit analog-to-digital converter with serial control. This could be used to digitize the voltage from the RTY060LVNAX, reducing noise from analog transmission. DBW v5 can handle this with jumpers set for it.&lt;br /&gt;
&lt;br /&gt;
- A CAN encoder such as https://www.amazon.com/Absolute-Encoder-Rotating-Magnetic-Diameter/dp/B0CN6GL4DD/ref=sr_1_3?sr=8-3&lt;br /&gt;
&lt;br /&gt;
- AMS5043 Magnetic Angle Encoder. This requires that a cylindrical magnet be mounted precisely on the shaft. The sensor has an indent for the magnet, but the indent in not in the right place. Difficult to get robust readings from the part.&lt;br /&gt;
&lt;br /&gt;
== Sensor Connections ==&lt;br /&gt;
&lt;br /&gt;
The RJ45 Steering connection on DBW v5 carries both sensor input and actuator output. Depending on the jumpers, it can be configured as&lt;br /&gt;
&lt;br /&gt;
Jumper A&lt;br /&gt;
* 1: Angle sensor on left steering column&lt;br /&gt;
* 2: Return on left column&lt;br /&gt;
* 3: Angle sensor on right steering column&lt;br /&gt;
* 4: Return on right column&lt;br /&gt;
Both signal and return are expected to pick up similar noise. Their difference is used to reduce noise. &lt;br /&gt;
&lt;br /&gt;
Jumper B&lt;br /&gt;
* 1: MISO&lt;br /&gt;
* 2: CS&lt;br /&gt;
* 3: SCK&lt;br /&gt;
* 4: MOSI&lt;br /&gt;
&lt;br /&gt;
There are three methods for steering: Pulse (linear servo), H-bridge, or Motor Shield. Other RJ45 pins are&lt;br /&gt;
&lt;br /&gt;
* 5: Ground&lt;br /&gt;
* 6: Pulse for servo; R_turn for H-bridge&lt;br /&gt;
* 7: No connect or L_turn for H-bridge&lt;br /&gt;
* 8: 5V&lt;br /&gt;
&lt;br /&gt;
The Motor Shield does not use this connector. A CAN sensor would not use the connector either, so the RJ45 cable could be eliminated.&lt;br /&gt;
&lt;br /&gt;
== Mounting the Steering Angle Sensor ==&lt;br /&gt;
&lt;br /&gt;
The steering sensor is mounted directly the top of the steering knuckle. In the top if the steering knuckle is threaded rod that is kept in place using a jam nut. On the end of that threaded rod is a coupling nut that has been locked in place using a jam nut. From the coupling nut an adapter has been 3d printed that connects the coupling nut to the Steering angle sensor. The steering angle sensor is help in place using a piece of flat metal bar with a 90 degree bend. &lt;br /&gt;
&lt;br /&gt;
Mounting in this position is beneficial by reducing the amount of mechanical play that the system is exposed to and therefore reducing false readings. &lt;br /&gt;
&lt;br /&gt;
== Ackermann Steering Geometry: wheel angle and turning radius ==&lt;br /&gt;
&lt;br /&gt;
Many road vehicles use a variation of Ackermann Steering to allow a vehicle with more than two wheels to turn smoothly. The challenge of steering a multi-wheel vehicle in a circle is that all wheels are at different distances to the center of that circle, so they must turn to different angles and spin at different speeds. The trike used in the current Elcano system solves the speed differential problem by having only one drive wheel and un-driven steering wheels. The steering differential problem is solved using Ackermann steering geometry. With a basic understanding of Ackermann steering and right triangle geometry, we can predict variables like the turning radius of each wheel and the steering angle of the two front wheels. The inner turning wheel and outer turning wheel turn at different angles and have different turning radii. These calculations find both dimensions when given the inner turning radius (R1 in the image), wheelbase, and front wheel distance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ackermann steering geometry is based on two right triangles. Every calculation comes from right triangle trigonometry and the Pythagorean Theorem.&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-angles-small.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''Variables:'''&lt;br /&gt;
&lt;br /&gt;
Bicycle Image:&lt;br /&gt;
&lt;br /&gt;
R = bicycle turning radius&lt;br /&gt;
&lt;br /&gt;
A = bicycle front wheel angle&lt;br /&gt;
&lt;br /&gt;
A' = A&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
[[File:bicycle-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
Ackermann Image:&lt;br /&gt;
&lt;br /&gt;
R1 = inner turning radius&lt;br /&gt;
&lt;br /&gt;
R2 = outer turning radius&lt;br /&gt;
&lt;br /&gt;
A1 = inner front wheel angle&lt;br /&gt;
&lt;br /&gt;
A2 - outer front wheel angle&lt;br /&gt;
&lt;br /&gt;
W = distance between front wheels&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ackermann-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
TODO: determine if these equations accurately predict the inputs from the turn angle sensors while the trike is stationary or moving.&lt;br /&gt;
&lt;br /&gt;
== Steering state Summer 2024 ==&lt;br /&gt;
&lt;br /&gt;
Both prototype trikes are using the 60-degree angle sensors on the left wheel hub with the 360-degree angle sensor on the right wheel hub acting as a backup sensor. The current noise experienced from the left angle sensor is 10-15 analog read values or 48-73 mV recorded on the DBW v3 board and the resolution currently provided meets the current needs when steering with the RC controller. The steering angles are currently being returned through the steering board via an RJ-45 cable to the DBW board with each sensor having its own return line and power being provided locally from the steering board.&lt;br /&gt;
&lt;br /&gt;
[[File:SteeringPerformance.png|600px|Solenoid Brakes]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=675</id>
		<title>SteeringSensor</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=675"/>
		<updated>2026-06-19T19:51:42Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Sensor Connections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Steering Angle Sensor =&lt;br /&gt;
&lt;br /&gt;
To change or maintain travel direction, the system must know which way the front wheels are pointing. Elcano tricycles accomplish this task with a rotational position sensor placed on the front steer wheels. Each trike has two steering columns, and both are instrumented for redundancy. The sensor is mechanically mounted to the shaft.  Since the system uses Ackerman steering, the turn angle of the two wheels will be slightly different. More information is below.&lt;br /&gt;
Rotational position sensors may be incremental or absolute. An incremental position sensor only reports discrete changes in rotational position and possibly direction of rotation. Absolute position sensors report the current angle of the sensor shaft. Absolute position sensors have advantages for sensing wheel angle, such as always knowing the current wheel angle at the power-on state. Elcano test vehicles use absolute rotation sensors.&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Analog ==&lt;br /&gt;
&lt;br /&gt;
Analog position sensors typically communicate angle using current or voltage levels. In these devices, current or voltage is a function of the angle. Example:&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-turn-angle_360-degree-sensor.png | border | 640px]]&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Digital ==&lt;br /&gt;
&lt;br /&gt;
Digital position sensors communicate angle digitally. Two ways a sensor can accomplish this task is by encoding the measured position into a binary stream (serial communication) or by encoding the position in binary by driving several output pins high or low (parallel communication). &lt;br /&gt;
&lt;br /&gt;
== Reducing Sensor Noise ==&lt;br /&gt;
&lt;br /&gt;
The problem with sending an analog signal over a long wire to the Arduino is that the wire acts as an antenna and picks up noise. Thus we connect a twisted wire pair from sensor to Arduino that has Signal In as well as the return. The return wire is connected to the ground wire at the sensor. The return wire may have picked up noise when it gets to the Arduino. The Arduino subtracts the analog value of return from the Signal In. Since both wires have picked up approximately the same noise, subtracting them gives a more robust reading. The Signal In return signal goes to an analog input on the Arduino, and is not connected to Arduino ground. The test vehicle analog sensor uses four wires: power, ground, signal, and signal return.  &lt;br /&gt;
&lt;br /&gt;
Another alternative is to use an analog-to-digital converter to digitize the voltage reading from the sensor before it reaches [[C2]]. All analog signals are sensitive to noise from the environment, especially nearby electronics. This noise appears as voltage changes on the power and signal wires of the turn sensors and is visible with an oscilloscope. Because noise creates changes in voltage on the signal and power wires, it creates erroneous angle readings.&lt;br /&gt;
&lt;br /&gt;
--Main.JosephBreithaupt - 2017-02-11&lt;br /&gt;
&lt;br /&gt;
== Sensors used ==&lt;br /&gt;
&lt;br /&gt;
We have gotten the best results from RTY060LVNAX  60 degree analog rotary encoder with a 5V range. &lt;br /&gt;
Other possibilities:&lt;br /&gt;
&lt;br /&gt;
- TT Electronics 6127 sensor giving 5V analog output over 360 degrees https://www.digikey.com/products/en?keywords=987-1393-ND . Has six times less resolution than a 60 degree sensor, and the minimum resolution can get lost in the noise.&lt;br /&gt;
&lt;br /&gt;
- EMS22A50-M25-LD6 Digital rotary encoder. This produces 1024 steps over 360 degrees, in SPI.  It will give a resolution of 0.35 degrees. Requires a change to Arduino.&lt;br /&gt;
&lt;br /&gt;
- TLC1549CP 10-bit analog-to-digital converter with serial control. This could be used to digitize the voltage from the RTY060LVNAX, reducing noise from analog transmission. DBW v5 can handle this with jumpers set for it.&lt;br /&gt;
&lt;br /&gt;
- A CAN encoder such as https://www.amazon.com/Absolute-Encoder-Rotating-Magnetic-Diameter/dp/B0CN6GL4DD/ref=sr_1_3?sr=8-3&lt;br /&gt;
&lt;br /&gt;
- AMS5043 Magnetic Angle Encoder. This requires that a cylindrical magnet be mounted precisely on the shaft. The sensor has an indent for the magnet, but the indent in not in the right place. Difficult to get robust readings from the part.&lt;br /&gt;
&lt;br /&gt;
== Sensor Connections ==&lt;br /&gt;
&lt;br /&gt;
The RJ45 Steering connection on DBW v5 carries both sensor input and actuator output. Depending on the jumpers, it can be configured as&lt;br /&gt;
&lt;br /&gt;
Jumper A&lt;br /&gt;
* 1: Angle sensor on left steering column&lt;br /&gt;
* 2: Return on left column&lt;br /&gt;
* 3: Angle sensor on right steering column&lt;br /&gt;
* 4: Return on right column&lt;br /&gt;
Both signal and return are expected to pick up similar noise. Their difference is used to reduce noise &lt;br /&gt;
&lt;br /&gt;
Jumper B&lt;br /&gt;
* 1: MISO&lt;br /&gt;
* 2: CS&lt;br /&gt;
* 3: SCK&lt;br /&gt;
* 4: MOSI&lt;br /&gt;
&lt;br /&gt;
There are three methods for steering: Pulse for linear servo, H-bridge, or Motor Shield. Other RJ45 pins are&lt;br /&gt;
&lt;br /&gt;
* 5: Ground&lt;br /&gt;
* 6: Pulse for servo; R_turn for H-bridge&lt;br /&gt;
* 7: No connect or L_turn for H-bridge&lt;br /&gt;
* 8: 5V&lt;br /&gt;
&lt;br /&gt;
The Motor Shield does not use this connector. A CAN sensor would not use the connector either, so the RJ45 cable could be eliminated.&lt;br /&gt;
&lt;br /&gt;
== Mounting the Steering Angle Sensor ==&lt;br /&gt;
&lt;br /&gt;
The steering sensor is mounted directly the top of the steering knuckle. In the top if the steering knuckle is threaded rod that is kept in place using a jam nut. On the end of that threaded rod is a coupling nut that has been locked in place using a jam nut. From the coupling nut an adapter has been 3d printed that connects the coupling nut to the Steering angle sensor. The steering angle sensor is help in place using a piece of flat metal bar with a 90 degree bend. &lt;br /&gt;
&lt;br /&gt;
Mounting in this position is beneficial by reducing the amount of mechanical play that the system is exposed to and therefore reducing false readings. &lt;br /&gt;
&lt;br /&gt;
== Ackermann Steering Geometry: wheel angle and turning radius ==&lt;br /&gt;
&lt;br /&gt;
Many road vehicles use a variation of Ackermann Steering to allow a vehicle with more than two wheels to turn smoothly. The challenge of steering a multi-wheel vehicle in a circle is that all wheels are at different distances to the center of that circle, so they must turn to different angles and spin at different speeds. The trike used in the current Elcano system solves the speed differential problem by having only one drive wheel and un-driven steering wheels. The steering differential problem is solved using Ackermann steering geometry. With a basic understanding of Ackermann steering and right triangle geometry, we can predict variables like the turning radius of each wheel and the steering angle of the two front wheels. The inner turning wheel and outer turning wheel turn at different angles and have different turning radii. These calculations find both dimensions when given the inner turning radius (R1 in the image), wheelbase, and front wheel distance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ackermann steering geometry is based on two right triangles. Every calculation comes from right triangle trigonometry and the Pythagorean Theorem.&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-angles-small.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''Variables:'''&lt;br /&gt;
&lt;br /&gt;
Bicycle Image:&lt;br /&gt;
&lt;br /&gt;
R = bicycle turning radius&lt;br /&gt;
&lt;br /&gt;
A = bicycle front wheel angle&lt;br /&gt;
&lt;br /&gt;
A' = A&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
[[File:bicycle-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
Ackermann Image:&lt;br /&gt;
&lt;br /&gt;
R1 = inner turning radius&lt;br /&gt;
&lt;br /&gt;
R2 = outer turning radius&lt;br /&gt;
&lt;br /&gt;
A1 = inner front wheel angle&lt;br /&gt;
&lt;br /&gt;
A2 - outer front wheel angle&lt;br /&gt;
&lt;br /&gt;
W = distance between front wheels&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ackermann-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
TODO: determine if these equations accurately predict the inputs from the turn angle sensors while the trike is stationary or moving.&lt;br /&gt;
&lt;br /&gt;
== Steering state Summer 2024 ==&lt;br /&gt;
&lt;br /&gt;
Both prototype trikes are using the 60-degree angle sensors on the left wheel hub with the 360-degree angle sensor on the right wheel hub acting as a backup sensor. The current noise experienced from the left angle sensor is 10-15 analog read values or 48-73 mV recorded on the DBW v3 board and the resolution currently provided meets the current needs when steering with the RC controller. The steering angles are currently being returned through the steering board via an RJ-45 cable to the DBW board with each sensor having its own return line and power being provided locally from the steering board.&lt;br /&gt;
&lt;br /&gt;
[[File:SteeringPerformance.png|600px|Solenoid Brakes]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=674</id>
		<title>SteeringSensor</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=674"/>
		<updated>2026-06-19T19:45:20Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Sensor Connections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Steering Angle Sensor =&lt;br /&gt;
&lt;br /&gt;
To change or maintain travel direction, the system must know which way the front wheels are pointing. Elcano tricycles accomplish this task with a rotational position sensor placed on the front steer wheels. Each trike has two steering columns, and both are instrumented for redundancy. The sensor is mechanically mounted to the shaft.  Since the system uses Ackerman steering, the turn angle of the two wheels will be slightly different. More information is below.&lt;br /&gt;
Rotational position sensors may be incremental or absolute. An incremental position sensor only reports discrete changes in rotational position and possibly direction of rotation. Absolute position sensors report the current angle of the sensor shaft. Absolute position sensors have advantages for sensing wheel angle, such as always knowing the current wheel angle at the power-on state. Elcano test vehicles use absolute rotation sensors.&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Analog ==&lt;br /&gt;
&lt;br /&gt;
Analog position sensors typically communicate angle using current or voltage levels. In these devices, current or voltage is a function of the angle. Example:&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-turn-angle_360-degree-sensor.png | border | 640px]]&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Digital ==&lt;br /&gt;
&lt;br /&gt;
Digital position sensors communicate angle digitally. Two ways a sensor can accomplish this task is by encoding the measured position into a binary stream (serial communication) or by encoding the position in binary by driving several output pins high or low (parallel communication). &lt;br /&gt;
&lt;br /&gt;
== Reducing Sensor Noise ==&lt;br /&gt;
&lt;br /&gt;
The problem with sending an analog signal over a long wire to the Arduino is that the wire acts as an antenna and picks up noise. Thus we connect a twisted wire pair from sensor to Arduino that has Signal In as well as the return. The return wire is connected to the ground wire at the sensor. The return wire may have picked up noise when it gets to the Arduino. The Arduino subtracts the analog value of return from the Signal In. Since both wires have picked up approximately the same noise, subtracting them gives a more robust reading. The Signal In return signal goes to an analog input on the Arduino, and is not connected to Arduino ground. The test vehicle analog sensor uses four wires: power, ground, signal, and signal return.  &lt;br /&gt;
&lt;br /&gt;
Another alternative is to use an analog-to-digital converter to digitize the voltage reading from the sensor before it reaches [[C2]]. All analog signals are sensitive to noise from the environment, especially nearby electronics. This noise appears as voltage changes on the power and signal wires of the turn sensors and is visible with an oscilloscope. Because noise creates changes in voltage on the signal and power wires, it creates erroneous angle readings.&lt;br /&gt;
&lt;br /&gt;
--Main.JosephBreithaupt - 2017-02-11&lt;br /&gt;
&lt;br /&gt;
== Sensors used ==&lt;br /&gt;
&lt;br /&gt;
We have gotten the best results from RTY060LVNAX  60 degree analog rotary encoder with a 5V range. &lt;br /&gt;
Other possibilities:&lt;br /&gt;
&lt;br /&gt;
- TT Electronics 6127 sensor giving 5V analog output over 360 degrees https://www.digikey.com/products/en?keywords=987-1393-ND . Has six times less resolution than a 60 degree sensor, and the minimum resolution can get lost in the noise.&lt;br /&gt;
&lt;br /&gt;
- EMS22A50-M25-LD6 Digital rotary encoder. This produces 1024 steps over 360 degrees, in SPI.  It will give a resolution of 0.35 degrees. Requires a change to Arduino.&lt;br /&gt;
&lt;br /&gt;
- TLC1549CP 10-bit analog-to-digital converter with serial control. This could be used to digitize the voltage from the RTY060LVNAX, reducing noise from analog transmission. DBW v5 can handle this with jumpers set for it.&lt;br /&gt;
&lt;br /&gt;
- A CAN encoder such as https://www.amazon.com/Absolute-Encoder-Rotating-Magnetic-Diameter/dp/B0CN6GL4DD/ref=sr_1_3?sr=8-3&lt;br /&gt;
&lt;br /&gt;
- AMS5043 Magnetic Angle Encoder. This requires that a cylindrical magnet be mounted precisely on the shaft. The sensor has an indent for the magnet, but the indent in not in the right place. Difficult to get robust readings from the part.&lt;br /&gt;
&lt;br /&gt;
== Sensor Connections ==&lt;br /&gt;
&lt;br /&gt;
The RJ45 Steering connection on DBW v5 carries both sensor input and actuator output. Depending on the jumpers, it can be configured as&lt;br /&gt;
&lt;br /&gt;
Jumper A&lt;br /&gt;
* 1: Angle sensor on left steering column&lt;br /&gt;
* 2: Return on left column&lt;br /&gt;
* 3: Angle sensor on right steering column&lt;br /&gt;
* 4: Return on right column&lt;br /&gt;
Both signal and return are expected to pick up similar noise. Their difference is used to reduce noise &lt;br /&gt;
&lt;br /&gt;
Jumper B&lt;br /&gt;
* 1: MISO&lt;br /&gt;
* 2: CS&lt;br /&gt;
* 3: SCK&lt;br /&gt;
* 4: MOSI&lt;br /&gt;
&lt;br /&gt;
== Mounting the Steering Angle Sensor ==&lt;br /&gt;
&lt;br /&gt;
The steering sensor is mounted directly the top of the steering knuckle. In the top if the steering knuckle is threaded rod that is kept in place using a jam nut. On the end of that threaded rod is a coupling nut that has been locked in place using a jam nut. From the coupling nut an adapter has been 3d printed that connects the coupling nut to the Steering angle sensor. The steering angle sensor is help in place using a piece of flat metal bar with a 90 degree bend. &lt;br /&gt;
&lt;br /&gt;
Mounting in this position is beneficial by reducing the amount of mechanical play that the system is exposed to and therefore reducing false readings. &lt;br /&gt;
&lt;br /&gt;
== Ackermann Steering Geometry: wheel angle and turning radius ==&lt;br /&gt;
&lt;br /&gt;
Many road vehicles use a variation of Ackermann Steering to allow a vehicle with more than two wheels to turn smoothly. The challenge of steering a multi-wheel vehicle in a circle is that all wheels are at different distances to the center of that circle, so they must turn to different angles and spin at different speeds. The trike used in the current Elcano system solves the speed differential problem by having only one drive wheel and un-driven steering wheels. The steering differential problem is solved using Ackermann steering geometry. With a basic understanding of Ackermann steering and right triangle geometry, we can predict variables like the turning radius of each wheel and the steering angle of the two front wheels. The inner turning wheel and outer turning wheel turn at different angles and have different turning radii. These calculations find both dimensions when given the inner turning radius (R1 in the image), wheelbase, and front wheel distance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ackermann steering geometry is based on two right triangles. Every calculation comes from right triangle trigonometry and the Pythagorean Theorem.&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-angles-small.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''Variables:'''&lt;br /&gt;
&lt;br /&gt;
Bicycle Image:&lt;br /&gt;
&lt;br /&gt;
R = bicycle turning radius&lt;br /&gt;
&lt;br /&gt;
A = bicycle front wheel angle&lt;br /&gt;
&lt;br /&gt;
A' = A&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
[[File:bicycle-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
Ackermann Image:&lt;br /&gt;
&lt;br /&gt;
R1 = inner turning radius&lt;br /&gt;
&lt;br /&gt;
R2 = outer turning radius&lt;br /&gt;
&lt;br /&gt;
A1 = inner front wheel angle&lt;br /&gt;
&lt;br /&gt;
A2 - outer front wheel angle&lt;br /&gt;
&lt;br /&gt;
W = distance between front wheels&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ackermann-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
TODO: determine if these equations accurately predict the inputs from the turn angle sensors while the trike is stationary or moving.&lt;br /&gt;
&lt;br /&gt;
== Steering state Summer 2024 ==&lt;br /&gt;
&lt;br /&gt;
Both prototype trikes are using the 60-degree angle sensors on the left wheel hub with the 360-degree angle sensor on the right wheel hub acting as a backup sensor. The current noise experienced from the left angle sensor is 10-15 analog read values or 48-73 mV recorded on the DBW v3 board and the resolution currently provided meets the current needs when steering with the RC controller. The steering angles are currently being returned through the steering board via an RJ-45 cable to the DBW board with each sensor having its own return line and power being provided locally from the steering board.&lt;br /&gt;
&lt;br /&gt;
[[File:SteeringPerformance.png|600px|Solenoid Brakes]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=673</id>
		<title>SteeringSensor</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=673"/>
		<updated>2026-06-19T19:37:36Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Steering Angle Sensor =&lt;br /&gt;
&lt;br /&gt;
To change or maintain travel direction, the system must know which way the front wheels are pointing. Elcano tricycles accomplish this task with a rotational position sensor placed on the front steer wheels. Each trike has two steering columns, and both are instrumented for redundancy. The sensor is mechanically mounted to the shaft.  Since the system uses Ackerman steering, the turn angle of the two wheels will be slightly different. More information is below.&lt;br /&gt;
Rotational position sensors may be incremental or absolute. An incremental position sensor only reports discrete changes in rotational position and possibly direction of rotation. Absolute position sensors report the current angle of the sensor shaft. Absolute position sensors have advantages for sensing wheel angle, such as always knowing the current wheel angle at the power-on state. Elcano test vehicles use absolute rotation sensors.&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Analog ==&lt;br /&gt;
&lt;br /&gt;
Analog position sensors typically communicate angle using current or voltage levels. In these devices, current or voltage is a function of the angle. Example:&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-turn-angle_360-degree-sensor.png | border | 640px]]&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Digital ==&lt;br /&gt;
&lt;br /&gt;
Digital position sensors communicate angle digitally. Two ways a sensor can accomplish this task is by encoding the measured position into a binary stream (serial communication) or by encoding the position in binary by driving several output pins high or low (parallel communication). &lt;br /&gt;
&lt;br /&gt;
== Reducing Sensor Noise ==&lt;br /&gt;
&lt;br /&gt;
The problem with sending an analog signal over a long wire to the Arduino is that the wire acts as an antenna and picks up noise. Thus we connect a twisted wire pair from sensor to Arduino that has Signal In as well as the return. The return wire is connected to the ground wire at the sensor. The return wire may have picked up noise when it gets to the Arduino. The Arduino subtracts the analog value of return from the Signal In. Since both wires have picked up approximately the same noise, subtracting them gives a more robust reading. The Signal In return signal goes to an analog input on the Arduino, and is not connected to Arduino ground. The test vehicle analog sensor uses four wires: power, ground, signal, and signal return.  &lt;br /&gt;
&lt;br /&gt;
Another alternative is to use an analog-to-digital converter to digitize the voltage reading from the sensor before it reaches [[C2]]. All analog signals are sensitive to noise from the environment, especially nearby electronics. This noise appears as voltage changes on the power and signal wires of the turn sensors and is visible with an oscilloscope. Because noise creates changes in voltage on the signal and power wires, it creates erroneous angle readings.&lt;br /&gt;
&lt;br /&gt;
--Main.JosephBreithaupt - 2017-02-11&lt;br /&gt;
&lt;br /&gt;
== Sensors used ==&lt;br /&gt;
&lt;br /&gt;
We have gotten the best results from RTY060LVNAX  60 degree analog rotary encoder with a 5V range. &lt;br /&gt;
Other possibilities:&lt;br /&gt;
&lt;br /&gt;
- TT Electronics 6127 sensor giving 5V analog output over 360 degrees https://www.digikey.com/products/en?keywords=987-1393-ND . Has six times less resolution than a 60 degree sensor, and the minimum resolution can get lost in the noise.&lt;br /&gt;
&lt;br /&gt;
- EMS22A50-M25-LD6 Digital rotary encoder. This produces 1024 steps over 360 degrees, in SPI.  It will give a resolution of 0.35 degrees. Requires a change to Arduino.&lt;br /&gt;
&lt;br /&gt;
- TLC1549CP 10-bit analog-to-digital converter with serial control. This could be used to digitize the voltage from the RTY060LVNAX, reducing noise from analog transmission. DBW v5 can handle this with jumpers set for it.&lt;br /&gt;
&lt;br /&gt;
- A CAN encoder such as https://www.amazon.com/Absolute-Encoder-Rotating-Magnetic-Diameter/dp/B0CN6GL4DD/ref=sr_1_3?sr=8-3&lt;br /&gt;
&lt;br /&gt;
- AMS5043 Magnetic Angle Encoder. This requires that a cylindrical magnet be mounted precisely on the shaft. The sensor has an indent for the magnet, but the indent in not in the right place. Difficult to get robust readings from the part.&lt;br /&gt;
&lt;br /&gt;
== Sensor Connections ==&lt;br /&gt;
&lt;br /&gt;
The RJ45 Steering connection on DBW v5 carries both sensor input and actuator output.&lt;br /&gt;
&lt;br /&gt;
== Mounting the Steering Angle Sensor ==&lt;br /&gt;
&lt;br /&gt;
The steering sensor is mounted directly the top of the steering knuckle. In the top if the steering knuckle is threaded rod that is kept in place using a jam nut. On the end of that threaded rod is a coupling nut that has been locked in place using a jam nut. From the coupling nut an adapter has been 3d printed that connects the coupling nut to the Steering angle sensor. The steering angle sensor is help in place using a piece of flat metal bar with a 90 degree bend. &lt;br /&gt;
&lt;br /&gt;
Mounting in this position is beneficial by reducing the amount of mechanical play that the system is exposed to and therefore reducing false readings. &lt;br /&gt;
&lt;br /&gt;
== Ackermann Steering Geometry: wheel angle and turning radius ==&lt;br /&gt;
&lt;br /&gt;
Many road vehicles use a variation of Ackermann Steering to allow a vehicle with more than two wheels to turn smoothly. The challenge of steering a multi-wheel vehicle in a circle is that all wheels are at different distances to the center of that circle, so they must turn to different angles and spin at different speeds. The trike used in the current Elcano system solves the speed differential problem by having only one drive wheel and un-driven steering wheels. The steering differential problem is solved using Ackermann steering geometry. With a basic understanding of Ackermann steering and right triangle geometry, we can predict variables like the turning radius of each wheel and the steering angle of the two front wheels. The inner turning wheel and outer turning wheel turn at different angles and have different turning radii. These calculations find both dimensions when given the inner turning radius (R1 in the image), wheelbase, and front wheel distance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ackermann steering geometry is based on two right triangles. Every calculation comes from right triangle trigonometry and the Pythagorean Theorem.&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-angles-small.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''Variables:'''&lt;br /&gt;
&lt;br /&gt;
Bicycle Image:&lt;br /&gt;
&lt;br /&gt;
R = bicycle turning radius&lt;br /&gt;
&lt;br /&gt;
A = bicycle front wheel angle&lt;br /&gt;
&lt;br /&gt;
A' = A&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
[[File:bicycle-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
Ackermann Image:&lt;br /&gt;
&lt;br /&gt;
R1 = inner turning radius&lt;br /&gt;
&lt;br /&gt;
R2 = outer turning radius&lt;br /&gt;
&lt;br /&gt;
A1 = inner front wheel angle&lt;br /&gt;
&lt;br /&gt;
A2 - outer front wheel angle&lt;br /&gt;
&lt;br /&gt;
W = distance between front wheels&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ackermann-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
TODO: determine if these equations accurately predict the inputs from the turn angle sensors while the trike is stationary or moving.&lt;br /&gt;
&lt;br /&gt;
== Steering state Summer 2024 ==&lt;br /&gt;
&lt;br /&gt;
Both prototype trikes are using the 60-degree angle sensors on the left wheel hub with the 360-degree angle sensor on the right wheel hub acting as a backup sensor. The current noise experienced from the left angle sensor is 10-15 analog read values or 48-73 mV recorded on the DBW v3 board and the resolution currently provided meets the current needs when steering with the RC controller. The steering angles are currently being returned through the steering board via an RJ-45 cable to the DBW board with each sensor having its own return line and power being provided locally from the steering board.&lt;br /&gt;
&lt;br /&gt;
[[File:SteeringPerformance.png|600px|Solenoid Brakes]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=672</id>
		<title>SteeringSensor</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=SteeringSensor&amp;diff=672"/>
		<updated>2026-06-19T19:34:40Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Sensors used */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Steering Angle Sensor =&lt;br /&gt;
&lt;br /&gt;
To change or maintain travel direction, the system must know which way the front wheels are pointing. Elcano tricycles accomplish this task with a rotational position sensor placed on the front steer wheels. Each trike has two steering columns, and both are instrumented for redundancy. The sensor is mechanically mounted to the shaft.  Since the system uses Ackerman steering, the turn angle of the two wheels will be slightly different. More information is below.&lt;br /&gt;
Rotational position sensors may be incremental or absolute. An incremental position sensor only reports discrete changes in rotational position and possibly direction of rotation. Absolute position sensors report the current angle of the sensor shaft. Absolute position sensors have advantages for sensing wheel angle, such as always knowing the current wheel angle at the power-on state. Elcano test vehicles use absolute rotation sensors.&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Analog ==&lt;br /&gt;
&lt;br /&gt;
Analog position sensors typically communicate angle using current or voltage levels. In these devices, current or voltage is a function of the angle. Example:&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-turn-angle_360-degree-sensor.png | border | 640px]]&lt;br /&gt;
&lt;br /&gt;
== Absolute wheel position: Digital ==&lt;br /&gt;
&lt;br /&gt;
Digital position sensors communicate angle digitally. Two ways a sensor can accomplish this task is by encoding the measured position into a binary stream (serial communication) or by encoding the position in binary by driving several output pins high or low (parallel communication). &lt;br /&gt;
&lt;br /&gt;
== Reducing Sensor Noise ==&lt;br /&gt;
&lt;br /&gt;
The problem with sending an analog signal over a long wire to the Arduino is that the wire acts as an antenna and picks up noise. Thus we connect a twisted wire pair from sensor to Arduino that has Signal In as well as the return. The return wire is connected to the ground wire at the sensor. The return wire may have picked up noise when it gets to the Arduino. The Arduino subtracts the analog value of return from the Signal In. Since both wires have picked up approximately the same noise, subtracting them gives a more robust reading. The Signal In return signal goes to an analog input on the Arduino, and is not connected to Arduino ground. The test vehicle analog sensor uses four wires: power, ground, signal, and signal return.  &lt;br /&gt;
&lt;br /&gt;
Another alternative is to use an analog-to-digital converter to digitize the voltage reading from the sensor before it reaches [[C2]]. All analog signals are sensitive to noise from the environment, especially nearby electronics. This noise appears as voltage changes on the power and signal wires of the turn sensors and is visible with an oscilloscope. Because noise creates changes in voltage on the signal and power wires, it creates erroneous angle readings.&lt;br /&gt;
&lt;br /&gt;
--Main.JosephBreithaupt - 2017-02-11&lt;br /&gt;
&lt;br /&gt;
== Sensors used ==&lt;br /&gt;
&lt;br /&gt;
We have gotten the best results from RTY060LVNAX  60 degree analog rotary encoder with a 5V range. &lt;br /&gt;
Other possibilities:&lt;br /&gt;
&lt;br /&gt;
- TT Electronics 6127 sensor giving 5V analog output over 360 degrees https://www.digikey.com/products/en?keywords=987-1393-ND . Has six times less resolution than a 60 degree sensor, and the minimum resolution can get lost in the noise.&lt;br /&gt;
&lt;br /&gt;
- EMS22A50-M25-LD6 Digital rotary encoder. This produces 1024 steps over 360 degrees, in SPI.  It will give a resolution of 0.35 degrees. Requires a change to Arduino.&lt;br /&gt;
&lt;br /&gt;
- TLC1549CP 10-bit analog-to-digital converter with serial control. This could be used to digitize the voltage from the RTY060LVNAX, reducing noise from analog transmission. DBW v5 can handle this with jumpers set for it.&lt;br /&gt;
&lt;br /&gt;
- A CAN encoder such as https://www.amazon.com/Absolute-Encoder-Rotating-Magnetic-Diameter/dp/B0CN6GL4DD/ref=sr_1_3?sr=8-3&lt;br /&gt;
&lt;br /&gt;
- AMS5043 Magnetic Angle Encoder. This requires that a cylindrical magnet be mounted precisely on the shaft. The sensor has an indent for the magnet, but the indent in not in the right place. Difficult to get robust readings from the part.&lt;br /&gt;
&lt;br /&gt;
== Mounting the Steering Angle Sensor ==&lt;br /&gt;
&lt;br /&gt;
The steering sensor is mounted directly the top of the steering knuckle. In the top if the steering knuckle is threaded rod that is kept in place using a jam nut. On the end of that threaded rod is a coupling nut that has been locked in place using a jam nut. From the coupling nut an adapter has been 3d printed that connects the coupling nut to the Steering angle sensor. The steering angle sensor is help in place using a piece of flat metal bar with a 90 degree bend. &lt;br /&gt;
&lt;br /&gt;
Mounting in this position is beneficial by reducing the amount of mechanical play that the system is exposed to and therefore reducing false readings. &lt;br /&gt;
&lt;br /&gt;
== Ackermann Steering Geometry: wheel angle and turning radius ==&lt;br /&gt;
&lt;br /&gt;
Many road vehicles use a variation of Ackermann Steering to allow a vehicle with more than two wheels to turn smoothly. The challenge of steering a multi-wheel vehicle in a circle is that all wheels are at different distances to the center of that circle, so they must turn to different angles and spin at different speeds. The trike used in the current Elcano system solves the speed differential problem by having only one drive wheel and un-driven steering wheels. The steering differential problem is solved using Ackermann steering geometry. With a basic understanding of Ackermann steering and right triangle geometry, we can predict variables like the turning radius of each wheel and the steering angle of the two front wheels. The inner turning wheel and outer turning wheel turn at different angles and have different turning radii. These calculations find both dimensions when given the inner turning radius (R1 in the image), wheelbase, and front wheel distance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ackermann steering geometry is based on two right triangles. Every calculation comes from right triangle trigonometry and the Pythagorean Theorem.&lt;br /&gt;
&lt;br /&gt;
[[File:wheel-angles-small.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''Variables:'''&lt;br /&gt;
&lt;br /&gt;
Bicycle Image:&lt;br /&gt;
&lt;br /&gt;
R = bicycle turning radius&lt;br /&gt;
&lt;br /&gt;
A = bicycle front wheel angle&lt;br /&gt;
&lt;br /&gt;
A' = A&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
[[File:bicycle-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
Ackermann Image:&lt;br /&gt;
&lt;br /&gt;
R1 = inner turning radius&lt;br /&gt;
&lt;br /&gt;
R2 = outer turning radius&lt;br /&gt;
&lt;br /&gt;
A1 = inner front wheel angle&lt;br /&gt;
&lt;br /&gt;
A2 - outer front wheel angle&lt;br /&gt;
&lt;br /&gt;
W = distance between front wheels&lt;br /&gt;
&lt;br /&gt;
L = wheelbase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ackermann-form.png|center]]&lt;br /&gt;
&lt;br /&gt;
TODO: determine if these equations accurately predict the inputs from the turn angle sensors while the trike is stationary or moving.&lt;br /&gt;
&lt;br /&gt;
== Steering state Summer 2024 ==&lt;br /&gt;
&lt;br /&gt;
Both prototype trikes are using the 60-degree angle sensors on the left wheel hub with the 360-degree angle sensor on the right wheel hub acting as a backup sensor. The current noise experienced from the left angle sensor is 10-15 analog read values or 48-73 mV recorded on the DBW v3 board and the resolution currently provided meets the current needs when steering with the RC controller. The steering angles are currently being returned through the steering board via an RJ-45 cable to the DBW board with each sensor having its own return line and power being provided locally from the steering board.&lt;br /&gt;
&lt;br /&gt;
[[File:SteeringPerformance.png|600px|Solenoid Brakes]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=671</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=671"/>
		<updated>2026-06-19T19:25:12Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* SensorsPage */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== Speedometer ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click. Speed resolution is limited by the wheel circumference and cannot detect very low speeds.&lt;br /&gt;
&lt;br /&gt;
More accurate speed information could be obtained from the Hall sensor on the e-bike controller, but this has never been done.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=670</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=670"/>
		<updated>2026-06-19T19:22:46Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* SensorsPage */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== [[Speedometer]] ===&lt;br /&gt;
&lt;br /&gt;
There are two magnetic pickups on the wheel. One goes to a standard bicycle cyclometer which shows speed and distance. The other goes to DBW where the software interprets the once per revolution click.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=669</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=669"/>
		<updated>2026-06-19T19:18:23Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /*  Camera */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Old_Sensors&amp;diff=668</id>
		<title>Old Sensors</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Old_Sensors&amp;diff=668"/>
		<updated>2026-06-19T19:17:22Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= [[Sonar]] = &lt;br /&gt;
How the sonar subsystem connected to High-Level works.&lt;br /&gt;
&lt;br /&gt;
[[File:SonarArray.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
This documentation is taken from Sonar2half.doc, in the Documentation folder in the GitHub repository.&lt;br /&gt;
&lt;br /&gt;
== Sonar Board ==&lt;br /&gt;
&lt;br /&gt;
The board contains up to 8 sonars, numbered as in the diagram. The board acts as a slave to the host over an SPI line. The board has two RJ45 connectors, one to the High-Level board and the other to a second sonar unit. The line to High-Level carries the  MOSI/MISO/CLK/SS lines for SPI. The connector to a second sonar unit has a UART serial connection to coordinate timing, but this has never been implemented. If there is a single unit, sonar 6 is rear-facing.&lt;br /&gt;
If there is a second rear-facing unit, the second unit acts as a slave to the forward-facing unit. In the two-unit configuration, sonar position 6 is unpopulated. Position 12R is never used. The two boards have identical hardware, but will use different software. A better configuration would be to connect both the forward and rear facing units to the High-Level board.&lt;br /&gt;
&lt;br /&gt;
Sonars are operated in three rounds, arranged so that there is no acoustic interference between them.&lt;br /&gt;
&lt;br /&gt;
# Sonars at &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;12&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;3&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;4R&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;7R&amp;lt;/font&amp;gt;, 9&lt;br /&gt;
# Sonars at &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;, 3R, 6, &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;6R&amp;lt;/font&amp;gt;, 9R, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;10&amp;lt;/font&amp;gt;&lt;br /&gt;
# Sonars at &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;2&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;5R&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;8R&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;11&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Board nomenclature is based on the forward position. When operated in the rear sonar positions are transformed as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;12 &amp;amp;#8594; 6R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;1 &amp;amp;#8594; 7R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;2 &amp;amp;#8594; 8R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;3 &amp;amp;#8594; 9R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6 &amp;amp;#8594; 12R&lt;br /&gt;
&lt;br /&gt;
9 &amp;amp;#8594; 3R&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;10 &amp;amp;#8594; 4R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;11 &amp;amp;#8594; 5R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two or three pulse width signals on the board are wired together (by OR gates or diodes) and used to generate an interrupt when the pulse changes. The interrupt groups are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;IRQ1: 1, 2, 3 / 7R, 8R, 9R&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;IRQ2: 10, 11, 12 / 4R, 5R, 6R, &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IRQ3: 6, 9 / 12R, 3R&lt;br /&gt;
&lt;br /&gt;
During each sonar round, only one sonar will produce an interrupt.&lt;br /&gt;
&lt;br /&gt;
== Notes on 12/12/14: ==&lt;br /&gt;
&lt;br /&gt;
The lines ADR_OK, ADR_0, ADR_1 and ADR_2 are not needed. They had been intended to select one of eight sonars.  Instead, use lines RND_0 and RND_1, both attached to interrupts. These lines are sequenced according to a gray code (only one bit changes at a time):&lt;br /&gt;
&lt;br /&gt;
(RND_0, RND_1) = &lt;br /&gt;
&lt;br /&gt;
(0,1): Start a pulse on sonars at &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;12&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;3&amp;lt;/font&amp;gt; and 9 o'clock.&lt;br /&gt;
&lt;br /&gt;
(1,1): Start a pulse on sonars at &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;, 6 and &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;10&amp;lt;/font&amp;gt; o'clock.&lt;br /&gt;
&lt;br /&gt;
(1,0): Start a pulse on sonars at &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;2&amp;lt;/font&amp;gt; and &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;11&amp;lt;/font&amp;gt; o'clock.&lt;br /&gt;
&lt;br /&gt;
(0,0): No action.&lt;br /&gt;
&lt;br /&gt;
The resulting pulse is read on lines &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;IRQ1&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;IRQ2&amp;lt;/font&amp;gt; and IRQ3. On the forward pointing master, RND_0 and RND_1 are outputs. They are tied to the rear-facing slave, where they are inputs. On the slave, a change on any of lines RND_0 or RND_1 triggers an interrupt, which start the pulse on the appropriate sonars.&lt;br /&gt;
&lt;br /&gt;
The hardware can read both pulse width range (IRQ_1 … 3) and analog range (SNR_1 … 12). It may be wise to use both, to make sure that they agree. No jumpers are needed. The analog values will change slowly, so interference with digital signals may not be significant.&lt;br /&gt;
&lt;br /&gt;
On sonar: &lt;br /&gt;
&lt;br /&gt;
Pin 1- Open or high&lt;br /&gt;
&lt;br /&gt;
Pin 2 – To IRQ1, IRQ2 or IRQ3.&lt;br /&gt;
&lt;br /&gt;
Pin 3 – To SNR_1, SNR_2, SNR_3, SNR_6, SNR_9, SNR_10, SNR_11 or SNR_12.&lt;br /&gt;
&lt;br /&gt;
Pin 4 – Selected by RND_0 and RND_1.&lt;br /&gt;
&lt;br /&gt;
Pin_5 – Serial data could go to D9, D10, D11 or D12, except that Arduino can only receive one software serial at a time. Probably not worth pursuing.&lt;br /&gt;
&lt;br /&gt;
Pin 6 – Vcc&lt;br /&gt;
&lt;br /&gt;
Pin 7 – Ground.&lt;br /&gt;
&lt;br /&gt;
Timing&lt;br /&gt;
&lt;br /&gt;
The default frequency for the SPI CLK is 4 MHz. The clock can be set to numbers between 8 MHz and 125 Khz.&lt;br /&gt;
&lt;br /&gt;
-- Main.JohnsonB - 2017-06-27&lt;br /&gt;
* SonarBoard.png: &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%PUBURLPATH%/%WEB%/%TOPIC%/SonarBoard.png&amp;quot; alt=&amp;quot;SonarBoard.png&amp;quot; width=&amp;quot;969&amp;quot; height=&amp;quot;1254&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Camera Sensor =&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Elcano system uses a Pi Cam version 2 camera designed to connect to the Raspberry Pi CSI camera port. The Raspberry Pi connected to the camera is the vision processor in the Elcano system and communicates with other processors and boards using CAN bus. We use https://copperhilltech.com/pican-2-can-bus-interface-for-raspberry-pi/ The Pi Cam mounts on the front of the Elcano trike and software on the Raspberry Pi performs visual functions like lane detection and cone detection.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&lt;br /&gt;
=== Visual Traffic Cone Ranging  ===&lt;br /&gt;
&lt;br /&gt;
The Camera sensor is an essential part of optical object detection and ranging. In order to know the distance to an object like a traffic cone, traffic cone detection software running on a Raspberry Pi can identify the outline of a traffic cone and determine distance of the cone using the cone outline's height in the image. It is possible to know the range to an object of known height using the camera's known characteristics.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|*Camera Model*||*Focal length (mm)*||*Pixel dimensions (um)*&lt;br /&gt;
|-&lt;br /&gt;
|Pi Cam v1.x||3.5||1.4 x 1.4&lt;br /&gt;
|-&lt;br /&gt;
|Pi Cam v2.x||3.0||1.12 x 1.12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''These are values provided in Pi Cam documentation. These are designed dimensions and may not be accurate from camera to camera.''&lt;br /&gt;
&lt;br /&gt;
The vision processor is a Raspberry PI, and the camera is the Pi camera.&lt;br /&gt;
Raspberry Pi v1.x camera has focal length of 3.6 mm and pixel size of 1.4 x 1.4 um. Cone height is 0.46 m. If cone height in image is N pixels, then by similar triangles,&lt;br /&gt;
3.6 mm / (N * 0.0014 mm)  = range / 0.46 m.&lt;br /&gt;
&lt;br /&gt;
range = 3.6 * 0.46 m / (N * 0.0014)&lt;br /&gt;
&lt;br /&gt;
=== Visual Traffic Cone Angle ===&lt;br /&gt;
&lt;br /&gt;
Calculating angle relies on similar principles as calculating range. Before converting horizontal or vertical position into angle, we have to know the camera's real focal length and pixel size. From this we can use trigonometry to calculate degrees per pixel.&lt;br /&gt;
&lt;br /&gt;
Optional: first estimate degrees per pixel by dividing the horizontal field of view (often available in the device's documentation) by the camera's horizontal pixel count:&lt;br /&gt;
&lt;br /&gt;
Degrees / pixel = (horizontal field of view) / (horizontal pixel count)&lt;br /&gt;
&lt;br /&gt;
Example: 62.2 degrees / 3280 pixels = 0.0190 degrees per pixel, equivalent to 52.7 pixels per degree.&lt;br /&gt;
&lt;br /&gt;
Now calculate the degrees per pixel using the focal length, pixel size, and data from the range calculations described in &amp;quot;Visual Traffic Cone Ranging&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Tan(degrees) = (Object height in meters) / (Object range in meters)&lt;br /&gt;
&lt;br /&gt;
Degrees = Tanh( height / range)&lt;br /&gt;
&lt;br /&gt;
Pixels = (focal length * height) / (pixel size * range)&lt;br /&gt;
&lt;br /&gt;
Degrees / pixel = Degrees / pixel&lt;br /&gt;
&lt;br /&gt;
Compare your calculated deg / px to the estimated deg / px. The numbers should be similar but will not be the same unless your image is corrected for lens distortion.&lt;br /&gt;
&lt;br /&gt;
To find the horizontal degree offset of an object using its center point, first find the object's offset from center:&lt;br /&gt;
&lt;br /&gt;
Horizontal offset in pixels= (object horizontal center in image) - (image width / 2)&lt;br /&gt;
&lt;br /&gt;
Horizontal offset in degrees = (Horizontal Offset) * (degrees / pixel)   &lt;br /&gt;
&lt;br /&gt;
The horizontal offset in degrees will be positive when the object is right of center and negative when the object is left of center. &lt;br /&gt;
&lt;br /&gt;
==== Experimentally finding focal length and pixel size ====&lt;br /&gt;
&lt;br /&gt;
Pi Cam and other similar products have designed focal length and pixel size dimensions in their respective specification sheets. These documented numbers are nominal (official) values that may be different from real (actual) values. If these nominal values are used in range calculations, the returned range values can be bigger or smaller than in reality. To correct for this, we can calculate a camera's ratio of focal length to pixel size using a formula derived from the similar triangles ratios.&lt;br /&gt;
&lt;br /&gt;
The ratio of a Camera's focal length to its pixel size is part of the similar triangles formula:&lt;br /&gt;
&lt;br /&gt;
focal_length / (N * pixel_size)  = range / 0.46 m&lt;br /&gt;
&lt;br /&gt;
We can characterize the ratio of focal length to pixel size by taking a picture of a traffic cone (or other object of known height) at a known distance. Using the known distance, height, and number of pixels in our calibration image, we can calculate focal length and pixel size as a ratio:&lt;br /&gt;
&lt;br /&gt;
focal_length / pixel_size = N * range / 0.46 m&lt;br /&gt;
&lt;br /&gt;
A camera with a focal length of 3.5mm and pixel size of 1.4um has a focal_length / pixel_size of 2500. This is unit-less because we divide meters by meters. We used the method described above to determine an actual Pi Cam version 1.x camera had a focal_length / pixel_size ratio of ~1900, equal to a 1.4um pixel size and 2.7mm focal length. This real value allows accurate range calculations with a specific camera and does not transfer to other hardware of the same version.&lt;br /&gt;
&lt;br /&gt;
=== Expected world coordinates ===&lt;br /&gt;
&lt;br /&gt;
The C6 Arduino communicates with the Raspberry Pi over serial lines. The Arduino sends the expected world coordinate position of the cone in the format &lt;br /&gt;
&lt;br /&gt;
G {n Num} {p EPosMeters,NPosMeters} {b Deg}&lt;br /&gt;
&lt;br /&gt;
and the current position of the trike as &lt;br /&gt;
&lt;br /&gt;
S {p EPosMeters,NPosMeters} {b Deg}&lt;br /&gt;
&lt;br /&gt;
The Pi returns the position of the cone as&lt;br /&gt;
&lt;br /&gt;
G {n Num} {p EPosMeters,NPosMeters} {b Deg} {r Probability}&lt;br /&gt;
&lt;br /&gt;
These formats are documented in GitHub  under Documentation / SerialCmd.html.&lt;br /&gt;
&lt;br /&gt;
The Pi needs to translate world coordinates to pixel coordinates (and back) using the 3D matrix transformations given in Computer Graphics: Principles and Practice  (2nd ed. Foley, Van Dam, Feiner, Hughes; or 3rd ed. Hughes et al.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.TylerCFolsom - 2017-06-16&lt;br /&gt;
&lt;br /&gt;
ALSO &amp;gt; [[VisionPage]]&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[ActuatorPage]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [[Lidar]] =&lt;br /&gt;
&lt;br /&gt;
How the lidar subsystem connected to High-Level works.&lt;br /&gt;
&lt;br /&gt;
The LiDAR sensor is able to detect the distance and angle of any object in its view. This data can be used by the high-level software to determine where an obstacle is located for the vehicle to avoid.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Scanse Sweep is a portable, rotating, horizontal-plane lidar unit. It has a maximum specified range of 40 meters and works best at ranges greater than 0.5 meter. '''Range data''' precision is 1 centimeter and range values are in centimeters. Angular resolution is user-configurable by adjusting sample rate and motor rotation frequency. Surface variables like reflectivity and environmental variables like strong illumination by sunlight limit measurement signal quality. '''Signal quality''' is a number between 0-255, with smaller numbers indicating poorer signal quality. '''Angle data''' precision is 0.0625 degrees and angle values are in degrees, expressed as a 16-bit fixed-point number with twelve integer bits and four fractional bits.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Angle bits&lt;br /&gt;
! Angle decimal (degrees)&lt;br /&gt;
|-&lt;br /&gt;
| ...0000'''0001'''&lt;br /&gt;
| 0.0625&lt;br /&gt;
|-&lt;br /&gt;
| ...0001'''0000'''&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| ...0001'''0001'''&lt;br /&gt;
| 1.0625&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Scanse Sweep lidar unit is connected to an Arduino Micro to capture and process range, angle, and signal quality data during a scan.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Software on the Arduino Micro controls the Scanse Sweep. On startup, the '''setup()''' procedure resets the lidar, configures scan frequency and motor rotation frequency, waits for the motor to come up to speed, and configures the lidar to begin scanning. The '''loop()''' procedure requests the most recent complete scan reading, filters out invalid readings, and processes the signal for transmission to high level.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Readings should be rejected if:&lt;br /&gt;
* '''Range''' is greater than 4000cm or equal to 1cm &lt;br /&gt;
* '''Angle''' is not within desired scan angles &lt;br /&gt;
* '''Signal quality''' is above an arbitrary value&lt;br /&gt;
&lt;br /&gt;
Warning: the lidar is always scanning during operation unless the software signals it to stop (not implemented). The Scanse Sweep is a class 1 laser device and designed to be eye-safe, but placing the eye directly in the path of the beam or the scan plane should be avoided or prevented.&lt;br /&gt;
&lt;br /&gt;
=== Signal processing ===&lt;br /&gt;
&lt;br /&gt;
Signal processing is required to limit bytes sent to [[HighLevel]] but still allow HighLevel to reconstruct obstacle data from the scan. At maximum sampling frequency, the lidar unit collects 1000 range readings per second. Some of these reading are filtered out. This results in tens or hundreds of readings during each pass. To reduce data bandwidth, the software uses a &amp;quot;max delta&amp;quot; value to break the scan into segments beginning and ending at points with a change in range greater than the max delta. This discards small changes in range, but detects larger changes in range that indicate obstacles. This balances the need to detect both obstacles and continuous surfaces like walls. A single straight surface is broken into several segments centered on the closest point. If obstacles are placed on front of the surface, the change in range for each obstacle produces one or more segments for each obstacle and one or more segments for each section of straight surface. How accurately this process reconstructs the field of obstacles depends on how many points are filtered out before signal processing: if obstacle data is missing, it will not begin or end a segment.&lt;br /&gt;
&lt;br /&gt;
== YDLIDAR ==&lt;br /&gt;
&lt;br /&gt;
The YDLIDAR was worked on for the autonomous ATV capstone project summer of 2025 by Henry Haight. The lidar separates the data it detects and creates objects that can be used by the software. More information can be found on the GitHub page: https://github.com/elcano/Obstacles &lt;br /&gt;
&lt;br /&gt;
==Scanse Sweep ==&lt;br /&gt;
&lt;br /&gt;
The Scanse Sweep is a lidar sensor. Its head spins around multiple times per second, and collects information about its lateral surroundings. The spin speed and sampling rate can be changed.&lt;br /&gt;
&lt;br /&gt;
It sends readings over a serial connection, each of which includes the angle, distance, signal strength, and other information.&lt;br /&gt;
&lt;br /&gt;
Blasé Johnson worked on the sweep in the summer of 2017. The following is from his 6/22/17 report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic Sweep Obstacle Detection Algorithm ==&lt;br /&gt;
Goal&lt;br /&gt;
&lt;br /&gt;
To use the readings from the sweep to determine if there is an obstacle present within a given distance in front of the trike, and to stop the trike if this is so.&lt;br /&gt;
Sweep Operation&lt;br /&gt;
Rotation and Speed&lt;br /&gt;
The Sweep rotates counterclockwise. Its rotational speed can be set to any integral value between 0 Hz and 10 Hz (number of full rotations per second).&lt;br /&gt;
&lt;br /&gt;
=== Sampling Rate ===&lt;br /&gt;
&lt;br /&gt;
The sweep obtains readings according to a given sample rate. Three distinct sample rates can be used for the Sweep:&lt;br /&gt;
500 – 600 Hz&lt;br /&gt;
750 – 800 Hz&lt;br /&gt;
1000 – 1075 Hz\&lt;br /&gt;
&lt;br /&gt;
=== 	Sample Data ===&lt;br /&gt;
&lt;br /&gt;
Each reading from the Sweep contains these data:&lt;br /&gt;
&lt;br /&gt;
* A byte with sync/error bits, where the sync bit indicates whether the current reading is the first reading since the sensor last made a full rotation, one of the error bits indicates a communication error with the Lidar module, and the rest of the bits are reserved for future uses.&lt;br /&gt;
&lt;br /&gt;
* The azimuth (degree of angle with starting position), transmitted as a 16-bit fixed point number, where the 12 MSBs are the integral part and the 4 LSBs are the fractional part.&lt;br /&gt;
&lt;br /&gt;
* The distance from the nearest obstacle in centimeters, transmitted as a 16-bit integer.&lt;br /&gt;
&lt;br /&gt;
* A value representing the signal strength, transmitted as an unsigned 8-bit integer, where 0 is the lowest strength, and 255 is the highest strength.&lt;br /&gt;
&lt;br /&gt;
* A checksum, which is the remainder of the sum of the six previous bytes divided by 255.&lt;br /&gt;
&lt;br /&gt;
=== Math ===&lt;br /&gt;
&lt;br /&gt;
The trike will be expected to stop if an obstacle is detected within a certain distance from the front side of the vehicle, within the horizontal span of the trike. These distances are illustrated in Figure 1 as DISTANCE and WIDTH, respectively.&amp;amp;#8195;&lt;br /&gt;
The grey lines in Figure 1 show the distances that will be measured by the Sweep if it detects an obstacle at the line. The formula for this distance is DISTANCE/cos(AZIMUTH) .&lt;br /&gt;
The range of azimuths for the front side of the trike can be computed from the formula  sarcsin(WIDTH/(2*DISTANCE))&lt;br /&gt;
and&lt;br /&gt;
360-arcsin(WIDTH/(2*DISTANCE))&lt;br /&gt;
for the right and left corners, respectively.&lt;br /&gt;
&lt;br /&gt;
=== 	Process ===&lt;br /&gt;
&lt;br /&gt;
Once the Sweep begins taking measurements, check the measurements whose azimuths lie within the boundaries of the front side of the trike. For each measurement within this range, determine if the distance from an obstacle in centimeters is equal to or less than DISTANCE/cos(AZIMUTH) . If so, stop the vehicle until a search of the measurements within the front boundary comes back negative, and a certain amount of time has passed since the last obstacle was detected.W&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Camera]]&lt;br /&gt;
&lt;br /&gt;
=== External Links ===&lt;br /&gt;
&lt;br /&gt;
[http://scanse.io/ Scanse]&lt;br /&gt;
&lt;br /&gt;
-- Main.JohnsonB - 2017-11-07&lt;br /&gt;
* Figure 1: Distance from trike to detect obstacle &amp;amp; trike width: &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%PUBURLPATH%/%WEB%/%TOPIC%/ScanseTrike.png&amp;quot; alt=&amp;quot;ScanseTrike.png&amp;quot; width=&amp;quot;397&amp;quot; height=&amp;quot;463&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=667</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=Main_Page&amp;diff=667"/>
		<updated>2026-06-19T19:13:30Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /*  Camera */&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 Due Jetson Nano and Pixhawk, 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 to further their knowledge or simply finding a safer way to work.&lt;br /&gt;
&lt;br /&gt;
Visit our github repositories [//https://github.com/elcano here].&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;
The 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;
== [[Drive-By-Wire]] ==&lt;br /&gt;
How the version 5 Drive-By-Wire system (aka Low-Level) uses inputs to control actuators to steer, move, and stop the vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[Navigation Computer]] ==&lt;br /&gt;
How the system uses GNSS to formulate movement instructions sent to Drive-by-Wire.&lt;br /&gt;
&lt;br /&gt;
== [[RemoteControl]] ==&lt;br /&gt;
A radio communication link allows human control. There are also onboard controls. The goal is to use neither and have control come from the Nav computer.&lt;br /&gt;
&lt;br /&gt;
== [[ Simulator]] ==&lt;br /&gt;
Instead of the Drive-by-Wire board and navigation computer controlling the real trike, another Arduino routes their I/O to a virtual vehicle.&lt;br /&gt;
&lt;br /&gt;
== [[SensorsPage]] ==&lt;br /&gt;
&lt;br /&gt;
=== [[SteeringSensor]] ===&lt;br /&gt;
The front wheel angle detector. Sensors are mounted on the left steering column and/or right steering column. Sensors in use as of 2026 are analog. There are two varieties. Each is sensitive to 1/3 of a degree. The original is good for 360 degrees. Thus there are 1080 possible values. When these are spread over 3.3V, each step is 3 mV. Since the long wire from the sensor to the Arduino acts as an antenna, noise can be significant. There are two methods to reduce noise.&lt;br /&gt;
&lt;br /&gt;
1) The present analog sensor is only good for 60 degrees, which is more than the +/- 25 degree maximum turn. This makes the minimum step 18 mV.&lt;br /&gt;
&lt;br /&gt;
2) The ground signal on the sensor is sent back on either L_RTN (left steering column) or R_RTN (right steering column). Both the wires carrying the signal and the return wire are expected to pick up the same noise. A chip on the DBW board subtracts the two to get a value closer to the original.&lt;br /&gt;
&lt;br /&gt;
Noise could be eliminated by using a digital signal. A future sensor might use SPI. Jumpers can be installed to replace the sensor signals with MOSI, SCK and CS. Another digital solution is to purchase a sensor that puts its information on the CAN bus.&lt;br /&gt;
&lt;br /&gt;
=== [[ Camera]] ===&lt;br /&gt;
The camera and vision subsystem are controlled by Jetson Nano.&lt;br /&gt;
&lt;br /&gt;
== [[ActuatorPage]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Current 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;
== 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;
Luke Kustra's repo: https://github.com/luke-kustra/JetHawk-LKustra.git &lt;br /&gt;
&lt;br /&gt;
Luke's contribution was experimenting with the LiDAR sensor. He was able to get the LiDAR to deactivate and display information about its surroundings, including the number of objects and their distance from the LiDAR sensor. Of course, the sensor should never deactivate when in real use; however, this deactivation is proof that the LiDAR is ready to be utilized in a larger system such as a vehicle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Henry Haight's repo: https://github.com/Autonomous-ATV-Capstone-Team-Sequence/-LIDAR&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;br /&gt;
&lt;br /&gt;
= Archived material =&lt;br /&gt;
&lt;br /&gt;
== [[Old Architecture]] ==&lt;br /&gt;
&lt;br /&gt;
== [[ATV Power System]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Low Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[High Level]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old RemoteControl]] ==&lt;br /&gt;
&lt;br /&gt;
== [[CARLA Simulator]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Sensors]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Old Actuators]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Board Diagrams]] ==&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=666</id>
		<title>ActuatorPage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=666"/>
		<updated>2026-06-19T19:05:22Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Actuators and Motor =&lt;br /&gt;
&lt;br /&gt;
==Description and Function ==&lt;br /&gt;
Elcano uses a linear actuator to control steering hardware.  Brake control had used a linear servo, but in Spring 2018, brake control was replaced by a Solenoid system. An electric bicycle controller drives the rear wheel.The recumbent Catrikes use a hub motor. The ELF used an electric motor that drives a chain on the left side of the vehicle. The ELF used a rotary servo for steering.&lt;br /&gt;
&lt;br /&gt;
== Drive System ==&lt;br /&gt;
&lt;br /&gt;
The Catrikes have no pedaling or chain. The vehicle is powered by a hub motor.&lt;br /&gt;
&lt;br /&gt;
The ELF has two chains. One is driven by pedaling and the other by an electric motor. Both chains have freewheels, so they do not interfere with each other.&lt;br /&gt;
&lt;br /&gt;
The electric motor is powered by an e-bike controller. The trikes use a Kelly controller. https://www.kellycontroller.com/shop/kbs-e/&lt;br /&gt;
&lt;br /&gt;
The e-bike controller converts the main voltage (36 or 48V) from DC to three phase to power the motor. The power can draw 25 or 30 Amp and is potentially lethal. Interface to the e-bike controller is an analog signal from the drive-by-wire board that gives the throttle.&lt;br /&gt;
&lt;br /&gt;
The Kelly e-bike controller has some additional functionality that has not yet been used:&lt;br /&gt;
&lt;br /&gt;
-- There are phase signals from the hub motor that offer finer speed and position control since the signal occurs about 20 times per wheel revolution instead of the current once per revolution.&lt;br /&gt;
&lt;br /&gt;
-- It is possible to do regenerative braking.&lt;br /&gt;
&lt;br /&gt;
-- The controller supports driving the wheel in reverse.&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
&lt;br /&gt;
The main drive connector on DBW v5 is an RJ45 connector. On the Power box, the signals are attached to wires to the Kelly controller, which have unique colors and numbers. The only signal currently used is Throttle. The pins are&lt;br /&gt;
&lt;br /&gt;
* 1: Forward / Reverse: White (12)&lt;br /&gt;
* 2: Current meter: Dark blue (8)&lt;br /&gt;
* 3: Amount of regenerative braking: White (2)&lt;br /&gt;
* 4: Regenerative brake switch: Brown (13)&lt;br /&gt;
* 5: Reserved&lt;br /&gt;
* 6: Throttle: Dark green (3)&lt;br /&gt;
* 7: Speedometer: Green from Hall B (17)&lt;br /&gt;
* 8: E-Bike alive: Purple (4) or Dark Grey (11)&lt;br /&gt;
*    Kelly Pink wire (7) must be attached to 36V or system is off&lt;br /&gt;
&lt;br /&gt;
== Steering System ==&lt;br /&gt;
&lt;br /&gt;
Three methods have been used for steering: Linear servo, linear actuator with H-bridge, and linear actuator with motor control shield.&lt;br /&gt;
&lt;br /&gt;
=== Linear servos ===&lt;br /&gt;
&lt;br /&gt;
There are two main steering signals: &lt;br /&gt;
&lt;br /&gt;
1. Signal Out is a 1 to 2 ms pulse sent from the Arduino to control the steering actuator.&lt;br /&gt;
&lt;br /&gt;
2. Signal In is a 5 V analog feedback signal that gives the pointing angle of the wheel. There is one such signal for each of the two front wheels. More details on [[SteeringSensor]].&lt;br /&gt;
&lt;br /&gt;
The linear steering servo on the Catrikes https://www.servocity.com/hdls-6-2-12v  has 25 lb. thrust with  6&amp;quot; throw. The servo is powered by a pulse signal (D48). A more suitable part may be https://www.servocity.com/motors-actuators/linear-actuators/heavy-duty-linear-actuators, which is described below.&lt;br /&gt;
&lt;br /&gt;
The steering servo or actuator is powered by 12V DC. It produces 5V DC which can be used by other equipment. Steering is controlled by sending a pulse to the actuator. A pulse width of approximately 1 ms will cause the actuator to fully extend (right turn on Catrike). A pulse of about 2 ms will fully retract the actuator. A pulse of 1.5 ms will keep the vehicle pointed straight ahead. There is some variation in these voltages; thus the Catrikes have a mechanical adjustment for fine-tuning the position for going straight. Typically there are about 30 pulses per second; the exact rate does not matter. At 12V, servo operating speed is 56mm/s with no load or 35 mm/s at maximum load. &lt;br /&gt;
&lt;br /&gt;
The actuator interfaces to the Arduino over a three wire servo connector that is standard for RC planes and cars. The three wires are Signal Out, Ground, and Power. The power wire is not used since both the actuator and Arduino have their own sources of power. The actuator is fused for 5 Amps but has blown fuses. Be careful not to drive it beyond physical limits.&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with H-bridge ===&lt;br /&gt;
&lt;br /&gt;
The pulsed linear servo fails too often. When it fails it can still be used as a linear actuator, and it costs less to buy it as an actuator in the first place. The actuator is powered by a relay to give it either +12V or -12V and uses angle feedback to stop motion. &lt;br /&gt;
&lt;br /&gt;
Students built an H-bridge circuit board to swap positive and negative voltages, but it never quite worked. We then discovered that the Arduino Motor Control shield can control the actuator when powered from its own 12V supply. This is the preferred design as of 2026.&lt;br /&gt;
&lt;br /&gt;
The actuator depends on Signal In feedback. The H-bridge circuit used two digital signals to turn either left or right (D41, D48).&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with Motor Control Shield ===&lt;br /&gt;
&lt;br /&gt;
The Motor Shield has signals for motor on/off (D9), direction (D12) and speed (D3). It can also read the current that the motor is drawing (A0) and software can adjust speed to keep it within limits. CAUTION: the analog signal is 0-5V but the Arduino Due must not have any input &amp;gt; 3.3V. It is probably necessary to cut A0 and A1 and route them to a voltage converter. Interface to the shield is on https://docs.arduino.cc/tutorials/motor-shield-rev3/msr3-controlling-dc-motor/#hardware--software-needed Steering is Motor A. The motor to lift the gate to decouple would be Motor B.&lt;br /&gt;
&lt;br /&gt;
The Vin line on Arduino cannot supply enough current for the steering motor. An external 12V supply needs to be connected to the motor shield.&lt;br /&gt;
&lt;br /&gt;
== Braking System ==&lt;br /&gt;
Two solenoids (Johnson Electric 150 174432-024; available from Newark/Element14) connected directly to the brake cables control braking. This system has some advantages and disadvantages over connecting the brake cables to a servo. Advantages are that a solenoid provides full braking force in milliseconds. Disadvantages include a lack of control over braking force and brake failure on loss of power: a solenoid alone will not hold position without adequate current from the batteries. Using a solenoid instead of a servo also requires additional hardware and software to control the solenoid.&lt;br /&gt;
&lt;br /&gt;
=== Building a solenoid mount for braking ===&lt;br /&gt;
==== Creating and assembling a solenoid mount ====&lt;br /&gt;
&lt;br /&gt;
# Select a solenoid according to required braking force and throw. Information like force as a function of throw is provided in product data sheets&lt;br /&gt;
## measure how much force is required to initially pull the brake cable from rest (against spring tension and friction) and to completely close the brake, stopping the loaded vehicle&lt;br /&gt;
## measure the distance the brake cable travels from rest to closed position; this is the required throw&lt;br /&gt;
## select a solenoid that provides adequate force over the entire throw &lt;br /&gt;
## be aware that a solenoid provides less force when heated by environment and electrical load&lt;br /&gt;
# Because solenoids generate heat, select metal stock with enough area to radiate heat from the solenoid; this information may be contained in the solenoid's data sheet &lt;br /&gt;
# If needed: use measurements from the solenoid or solenoid data sheet to modify the drilling template provided below to fit the mounting plate on the selected solenoid. Make sure holes are not too close to the edge of the material so there is enough room to drill&lt;br /&gt;
# Adhere the printed drilling template to the metal stock using rubber cement. Work quickly (&amp;lt; 30 seconds after application of rubber cement) to apply the paper template smoothly on the surface before the adhesive dries&lt;br /&gt;
# Drill holes where shown on the template. Drill pilot holes using a small bit before using large drill bits &lt;br /&gt;
# Check that all parts (including the solenoid) fit the drilled screw holes and use screws and nuts to attach the two angle bracket stops and the solenoid base plate to the solenoid mount&lt;br /&gt;
# install the brake shield ends (threaded metal parts) to the brake shield end mount and thread the brake cable through&lt;br /&gt;
# Screw the three bridle pieces together around the barrel end of the brake cable and attach to the solenoid arm with a screw and nut (or other hardware, depending on the solenoid arm end) &lt;br /&gt;
# Check that the solenoid arm moves freely along its entire throw with the bridle and brake cable attached&lt;br /&gt;
# Attach electrical connectors to the solenoid and attach the solenoid to the solenoid controller to test that brakes open and close when the solenoid is switched off and on&lt;br /&gt;
&lt;br /&gt;
==== Supplies ====&lt;br /&gt;
# existing bicycle braking system using barrel-ended brake cable (to use our brake cable bridle)&lt;br /&gt;
# one solenoid for each brake (it may be possible to alter the design included on this page to use one solenoid for two brakes, but make sure it has enough force for two brakes)&lt;br /&gt;
# metal stock large enough to create an entire mount for each solenoid; this mount doubles as a heat sink and should have enough total area to radiate heat&lt;br /&gt;
# metal stock to create a bridle attaching the solenoid arm to the brake cable&lt;br /&gt;
# metal stock to create a stop for the bridle on the solenoid arm and a mount for the brake cable end&lt;br /&gt;
(have extra metal stock to recreate each drilled piece in case of mistakes)&lt;br /&gt;
# material such as screws, plates, or u-bolts to attach the solenoid mount to the vehicle&lt;br /&gt;
# screws and nuts to hold all solenoid mount parts together&lt;br /&gt;
# a printed drilling template, modified to fit your hardware if needed, one for each solenoid mount (neatly cut out individual pieces)&lt;br /&gt;
# rubber cement or other adhesive for adhering the drilling template&lt;br /&gt;
# hand drill or drill press&lt;br /&gt;
# clamps and disposable wood block(s) for drilling&lt;br /&gt;
# files or other abrasive for removing metal burs and sharp edges&lt;br /&gt;
# personal safety equipment such as gloves and eye protection for when cutting, drilling, and filing&lt;br /&gt;
&lt;br /&gt;
=== Wiring the solenoid ===&lt;br /&gt;
The solenoids are connected in parallel to the [[LowLevel]] board's relay outputs. This is a height current connection, and is mean to switch between 24v (for striking) and 12v (for maintaining). The solenoids only have a 25% duty cycle at 24v, so be careful not to leave them connected to power for too long. It is also critically important to include a snubbing diode in parallel with any inductive load. &lt;br /&gt;
As of version 3.0 the [[LowLevel]] board includes one on its brake output. We are using a pair of 1N400x series diodes rated for &amp;gt;50v and 1A (specifically 1N4001). This prevents extreme high voltage transients generated by switching the inductor from finding an inconvenient path to ground via our sensitive electronics. Quite a few relay shields have lost their driving transistors prior to the addition of these diodes.&lt;br /&gt;
&lt;br /&gt;
== Parts and Materials ==&lt;br /&gt;
&lt;br /&gt;
# Two solenoids and assembly for braking.  See '''&amp;quot;Creating and assembling a solenoid mount&amp;quot;''')&lt;br /&gt;
# 6&amp;quot; linear steering servo (Catrikes) or rotary servo (ELF)&lt;br /&gt;
# servo mounts&lt;br /&gt;
# linkage hardware to connect servos to brakes and steering&lt;br /&gt;
# electric bike conversion kit&lt;br /&gt;
# power subsystems (batteries, connectors, wiring) for servos and motor&lt;br /&gt;
&lt;br /&gt;
Detailed bill of materials: https://github.com/elcano/elcano/blob/master/Documentation/Elcano_BOM.xls&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
See the attached solenoid data sheet for its specific characteristics.&lt;br /&gt;
Other linear servos: https://www.servocity.com/servos/heavy-duty-linear-servos&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Board Diagrams]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=665</id>
		<title>ActuatorPage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=665"/>
		<updated>2026-06-19T19:04:34Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Actuators and Motor =&lt;br /&gt;
&lt;br /&gt;
==Description and Function ==&lt;br /&gt;
Elcano uses a linear actuator to control steering hardware.  Brake control had used a linear servo, but in Spring 2018, brake control was replaced by a Solenoid system. An electric bicycle controller drives the rear wheel.The recumbent Catrikes use a hub motor. The ELF used an electric motor that drives a chain on the left side of the vehicle. The ELF used a rotary servo for steering.&lt;br /&gt;
&lt;br /&gt;
== Drive System ==&lt;br /&gt;
&lt;br /&gt;
The Catrikes have no pedaling or chain. The vehicle is powered by a hub motor.&lt;br /&gt;
&lt;br /&gt;
The ELF has two chains. One is driven by pedaling and the other by an electric motor. Both chains have freewheels, so they do not interfere with each other.&lt;br /&gt;
&lt;br /&gt;
The electric motor is powered by an e-bike controller. The trikes use a Kelly controller. https://www.kellycontroller.com/shop/kbs-e/&lt;br /&gt;
&lt;br /&gt;
The e-bike controller converts the main voltage (36 or 48V) from DC to three phase to power the motor. The power can draw 25 or 30 Amp and is potentially lethal. Interface to the e-bike controller is an analog signal from the drive-by-wire board that gives the throttle.&lt;br /&gt;
&lt;br /&gt;
The Kelly e-bike controller has some additional functionality that has not yet been used:&lt;br /&gt;
&lt;br /&gt;
-- There are phase signals from the hub motor that offer finer speed and position control since the signal occurs about 20 times per wheel revolution instead of the current once per revolution.&lt;br /&gt;
&lt;br /&gt;
-- It is possible to do regenerative braking.&lt;br /&gt;
&lt;br /&gt;
-- The controller supports driving the wheel in reverse.&lt;br /&gt;
&lt;br /&gt;
== Connections ==&lt;br /&gt;
&lt;br /&gt;
The main drive connector on DBW v5 is an RJ45 connector. On the Power box, the signals are attached to wires to the Kelly controller, which have unique colors and numbers. The only signal currently used is Throttle. The pins are&lt;br /&gt;
&lt;br /&gt;
* 1: Forward / Reverse: White (12)&lt;br /&gt;
* 2: Current meter: Dark blue (8)&lt;br /&gt;
* 3: Amount of regenerative braking: White (2)&lt;br /&gt;
* 4: Regenerative brake switch: Brown (13)&lt;br /&gt;
* 5: Reserved&lt;br /&gt;
* 6: Throttle: Dark green (3)&lt;br /&gt;
* 7: Speedometer: Green from Hall B (17)&lt;br /&gt;
* 8: E-Bike alive: Purple (4) or Dark Grey (11)&lt;br /&gt;
*    Kelly Pink wire (7) must be attached to 36V or system is off&lt;br /&gt;
&lt;br /&gt;
== Steering System ==&lt;br /&gt;
&lt;br /&gt;
Three methods have been used for steering: Linear servo, linear actuator with H-bridge, and linear actuator with motor control shield.&lt;br /&gt;
&lt;br /&gt;
=== Linear servos ===&lt;br /&gt;
&lt;br /&gt;
There are two main steering signals: &lt;br /&gt;
&lt;br /&gt;
1. Signal Out is a 1 to 2 ms pulse sent from the Arduino to control the steering actuator.&lt;br /&gt;
&lt;br /&gt;
2. Signal In is a 5 V analog feedback signal that gives the pointing angle of the wheel. There is one such signal for each of the two front wheels. More details on [[SteeringSensor]].&lt;br /&gt;
&lt;br /&gt;
The linear steering servo on the Catrikes https://www.servocity.com/hdls-6-2-12v  has 25 lb. thrust with  6&amp;quot; throw. The servo is powered by a pulse signal (D48). A more suitable part may be https://www.servocity.com/motors-actuators/linear-actuators/heavy-duty-linear-actuators, which is described below.&lt;br /&gt;
&lt;br /&gt;
The steering servo or actuator is powered by 12V DC. It produces 5V DC which can be used by other equipment. Steering is controlled by sending a pulse to the actuator. A pulse width of approximately 1 ms will cause the actuator to fully extend (right turn on Catrike). A pulse of about 2 ms will fully retract the actuator. A pulse of 1.5 ms will keep the vehicle pointed straight ahead. There is some variation in these voltages; thus the Catrikes have a mechanical adjustment for fine-tuning the position for going straight. Typically there are about 30 pulses per second; the exact rate does not matter. At 12V, servo operating speed is 56mm/s with no load or 35 mm/s at maximum load. &lt;br /&gt;
&lt;br /&gt;
The actuator interfaces to the Arduino over a three wire servo connector that is standard for RC planes and cars. The three wires are Signal Out, Ground, and Power. The power wire is not used since both the actuator and Arduino have their own sources of power. The actuator is fused for 5 Amps but has blown fuses. Be careful not to drive it beyond physical limits.&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with H-bridge ===&lt;br /&gt;
&lt;br /&gt;
The pulsed linear servo fails too often. When it fails it can still be used as a linear actuator, and it costs less to buy it as an actuator in the first place. The actuator is powered by a relay to give it either +12V or -12V and uses angle feedback to stop motion. &lt;br /&gt;
&lt;br /&gt;
Students built an H-bridge circuit board to swap positive and negative voltages, but it never quite worked. We then discovered that the Arduino Motor Control shield can control the actuator when powered from its own 12V supply. This is the preferred design as of 2026.&lt;br /&gt;
&lt;br /&gt;
The actuator depends on Signal In feedback. The H-bridge circuit used two digital signals to turn either left or right (D41, D48).&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with Motor Control Shield ===&lt;br /&gt;
&lt;br /&gt;
The Motor Shield has signals for motor on/off (D9), direction (D12) and speed (D3). It can also read the current that the motor is drawing (A0) and software can adjust speed to keep it within limits. CAUTION: the analog signal is 0-5V but the Arduino Due must not have any input &amp;gt; 3.3V. It is probably necessary to cut A0 and A1 and route them to a voltage converter. Interface to the shield is on https://docs.arduino.cc/tutorials/motor-shield-rev3/msr3-controlling-dc-motor/#hardware--software-needed Steering is Motor A. The motor to lift the gate to decouple would be Motor B.&lt;br /&gt;
&lt;br /&gt;
The Vin line on Arduino cannot supply enough current for the steering motor. An external 12V supply needs to be connected to the motor shield.&lt;br /&gt;
&lt;br /&gt;
== Braking System ==&lt;br /&gt;
Two solenoids (Johnson Electric 150 174432-024; available from Newark/Element14) connected directly to the brake cables control braking. This system has some advantages and disadvantages over connecting the brake cables to a servo. Advantages are that a solenoid provides full braking force in milliseconds. Disadvantages include a lack of control over braking force and brake failure on loss of power: a solenoid alone will not hold position without adequate current from the batteries. Using a solenoid instead of a servo also requires additional hardware and software to control the solenoid.&lt;br /&gt;
&lt;br /&gt;
=== Building a solenoid mount for braking ===&lt;br /&gt;
==== Creating and assembling a solenoid mount ====&lt;br /&gt;
&lt;br /&gt;
# Select a solenoid according to required braking force and throw. Information like force as a function of throw is provided in product data sheets&lt;br /&gt;
## measure how much force is required to initially pull the brake cable from rest (against spring tension and friction) and to completely close the brake, stopping the loaded vehicle&lt;br /&gt;
## measure the distance the brake cable travels from rest to closed position; this is the required throw&lt;br /&gt;
## select a solenoid that provides adequate force over the entire throw &lt;br /&gt;
## be aware that a solenoid provides less force when heated by environment and electrical load&lt;br /&gt;
# Because solenoids generate heat, select metal stock with enough area to radiate heat from the solenoid; this information may be contained in the solenoid's data sheet &lt;br /&gt;
# If needed: use measurements from the solenoid or solenoid data sheet to modify the drilling template provided below to fit the mounting plate on the selected solenoid. Make sure holes are not too close to the edge of the material so there is enough room to drill&lt;br /&gt;
# Adhere the printed drilling template to the metal stock using rubber cement. Work quickly (&amp;lt; 30 seconds after application of rubber cement) to apply the paper template smoothly on the surface before the adhesive dries&lt;br /&gt;
# Drill holes where shown on the template. Drill pilot holes using a small bit before using large drill bits &lt;br /&gt;
# Check that all parts (including the solenoid) fit the drilled screw holes and use screws and nuts to attach the two angle bracket stops and the solenoid base plate to the solenoid mount&lt;br /&gt;
# install the brake shield ends (threaded metal parts) to the brake shield end mount and thread the brake cable through&lt;br /&gt;
# Screw the three bridle pieces together around the barrel end of the brake cable and attach to the solenoid arm with a screw and nut (or other hardware, depending on the solenoid arm end) &lt;br /&gt;
# Check that the solenoid arm moves freely along its entire throw with the bridle and brake cable attached&lt;br /&gt;
# Attach electrical connectors to the solenoid and attach the solenoid to the solenoid controller to test that brakes open and close when the solenoid is switched off and on&lt;br /&gt;
&lt;br /&gt;
==== Supplies ====&lt;br /&gt;
# existing bicycle braking system using barrel-ended brake cable (to use our brake cable bridle)&lt;br /&gt;
# one solenoid for each brake (it may be possible to alter the design included on this page to use one solenoid for two brakes, but make sure it has enough force for two brakes)&lt;br /&gt;
# metal stock large enough to create an entire mount for each solenoid; this mount doubles as a heat sink and should have enough total area to radiate heat&lt;br /&gt;
# metal stock to create a bridle attaching the solenoid arm to the brake cable&lt;br /&gt;
# metal stock to create a stop for the bridle on the solenoid arm and a mount for the brake cable end&lt;br /&gt;
(have extra metal stock to recreate each drilled piece in case of mistakes)&lt;br /&gt;
# material such as screws, plates, or u-bolts to attach the solenoid mount to the vehicle&lt;br /&gt;
# screws and nuts to hold all solenoid mount parts together&lt;br /&gt;
# a printed drilling template, modified to fit your hardware if needed, one for each solenoid mount (neatly cut out individual pieces)&lt;br /&gt;
# rubber cement or other adhesive for adhering the drilling template&lt;br /&gt;
# hand drill or drill press&lt;br /&gt;
# clamps and disposable wood block(s) for drilling&lt;br /&gt;
# files or other abrasive for removing metal burs and sharp edges&lt;br /&gt;
# personal safety equipment such as gloves and eye protection for when cutting, drilling, and filing&lt;br /&gt;
&lt;br /&gt;
=== Wiring the solenoid ===&lt;br /&gt;
The solenoids are connected in parallel to the [[LowLevel]] board's relay outputs. This is a height current connection, and is mean to switch between 24v (for striking) and 12v (for maintaining). The solenoids only have a 25% duty cycle at 24v, so be careful not to leave them connected to power for too long. It is also critically important to include a snubbing diode in parallel with any inductive load. &lt;br /&gt;
As of version 3.0 the [[LowLevel]] board includes one on its brake output. We are using a pair of 1N400x series diodes rated for &amp;gt;50v and 1A (specifically 1N4001). This prevents extreme high voltage transients generated by switching the inductor from finding an inconvenient path to ground via our sensitive electronics. Quite a few relay shields have lost their driving transistors prior to the addition of these diodes.&lt;br /&gt;
&lt;br /&gt;
== Parts and Materials ==&lt;br /&gt;
&lt;br /&gt;
# Two solenoids and assembly for braking.  See '''&amp;quot;Creating and assembling a solenoid mount&amp;quot;''')&lt;br /&gt;
# 6&amp;quot; linear steering servo (Catrikes) or rotary servo (ELF)&lt;br /&gt;
# servo mounts&lt;br /&gt;
# linkage hardware to connect servos to brakes and steering&lt;br /&gt;
# electric bike conversion kit&lt;br /&gt;
# power subsystems (batteries, connectors, wiring) for servos and motor&lt;br /&gt;
&lt;br /&gt;
Detailed bill of materials: https://github.com/elcano/elcano/blob/master/Documentation/Elcano_BOM.xls&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
See the attached solenoid data sheet for its specific characteristics.&lt;br /&gt;
Other linear servos: https://www.servocity.com/servos/heavy-duty-linear-servos&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Board Diagrams]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=664</id>
		<title>ActuatorPage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=664"/>
		<updated>2026-06-19T19:02:49Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Connections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Actuators and Motor =&lt;br /&gt;
&lt;br /&gt;
==Description and Function ==&lt;br /&gt;
Elcano uses a linear actuator to control steering hardware.  Brake control had used a linear servo, but in Spring 2018, brake control was replaced by a Solenoid system. An electric bicycle controller drives the rear wheel.The recumbent Catrikes use a hub motor. The ELF used an electric motor that drives a chain on the left side of the vehicle. The ELF used a rotary servo for steering.&lt;br /&gt;
&lt;br /&gt;
== Parts and Materials ==&lt;br /&gt;
&lt;br /&gt;
# Two solenoids and assembly for braking.  See '''&amp;quot;Creating and assembling a solenoid mount&amp;quot;''')&lt;br /&gt;
# 6&amp;quot; linear steering servo (Catrikes) or rotary servo (ELF)&lt;br /&gt;
# servo mounts&lt;br /&gt;
# linkage hardware to connect servos to brakes and steering&lt;br /&gt;
# electric bike conversion kit&lt;br /&gt;
# power subsystems (batteries, connectors, wiring) for servos and motor&lt;br /&gt;
&lt;br /&gt;
Detailed bill of materials: https://github.com/elcano/elcano/blob/master/Documentation/Elcano_BOM.xls&lt;br /&gt;
&lt;br /&gt;
== Drive System ==&lt;br /&gt;
&lt;br /&gt;
The Catrikes have no pedaling or chain. The vehicle is powered by a hub motor.&lt;br /&gt;
&lt;br /&gt;
The ELF has two chains. One is driven by pedaling and the other by an electric motor. Both chains have freewheels, so they do not interfere with each other.&lt;br /&gt;
&lt;br /&gt;
The electric motor is powered by an e-bike controller. The trikes use a Kelly controller. https://www.kellycontroller.com/shop/kbs-e/&lt;br /&gt;
&lt;br /&gt;
The e-bike controller converts the main voltage (36 or 48V) from DC to three phase to power the motor. The power can draw 25 or 30 Amp and is potentially lethal. Interface to the e-bike controller is an analog signal from the drive-by-wire board that gives the throttle.&lt;br /&gt;
&lt;br /&gt;
The Kelly e-bike controller has some additional functionality that has not yet been used:&lt;br /&gt;
&lt;br /&gt;
-- There are phase signals from the hub motor that offer finer speed and position control since the signal occurs about 20 times per wheel revolution instead of the current once per revolution.&lt;br /&gt;
&lt;br /&gt;
-- It is possible to do regenerative braking.&lt;br /&gt;
&lt;br /&gt;
-- The controller supports driving the wheel in reverse.&lt;br /&gt;
&lt;br /&gt;
== Connections ==&lt;br /&gt;
&lt;br /&gt;
The main drive connector on DBW v5 is an RJ45 connector. On the Power box, the signals are attached to wires to the Kelly controller, which have unique colors and numbers. The only signal currently used is Throttle. The pins are&lt;br /&gt;
&lt;br /&gt;
* 1: Forward / Reverse: White (12)&lt;br /&gt;
* 2: Current meter: Dark blue (8)&lt;br /&gt;
* 3: Amount of regenerative braking: White (2)&lt;br /&gt;
* 4: Regenerative brake switch: Brown (13)&lt;br /&gt;
* 5: Reserved&lt;br /&gt;
* 6: Throttle: Dark green (3)&lt;br /&gt;
* 7: Speedometer: Green from Hall B (17)&lt;br /&gt;
* 8: E-Bike alive: Purple (4) or Dark Grey (11)&lt;br /&gt;
*    Kelly Pink wire (7) must be attached to 36V or system is off&lt;br /&gt;
&lt;br /&gt;
== Steering System ==&lt;br /&gt;
&lt;br /&gt;
Three methods have been used for steering: Linear servo, linear actuator with H-bridge, and linear actuator with motor control shield.&lt;br /&gt;
&lt;br /&gt;
=== Linear servos ===&lt;br /&gt;
&lt;br /&gt;
There are two main steering signals: &lt;br /&gt;
&lt;br /&gt;
1. Signal Out is a 1 to 2 ms pulse sent from the Arduino to control the steering actuator.&lt;br /&gt;
&lt;br /&gt;
2. Signal In is a 5 V analog feedback signal that gives the pointing angle of the wheel. There is one such signal for each of the two front wheels. More details on [[SteeringSensor]].&lt;br /&gt;
&lt;br /&gt;
The linear steering servo on the Catrikes https://www.servocity.com/hdls-6-2-12v  has 25 lb. thrust with  6&amp;quot; throw. The servo is powered by a pulse signal (D48). A more suitable part may be https://www.servocity.com/motors-actuators/linear-actuators/heavy-duty-linear-actuators, which is described below.&lt;br /&gt;
&lt;br /&gt;
The steering servo or actuator is powered by 12V DC. It produces 5V DC which can be used by other equipment. Steering is controlled by sending a pulse to the actuator. A pulse width of approximately 1 ms will cause the actuator to fully extend (right turn on Catrike). A pulse of about 2 ms will fully retract the actuator. A pulse of 1.5 ms will keep the vehicle pointed straight ahead. There is some variation in these voltages; thus the Catrikes have a mechanical adjustment for fine-tuning the position for going straight. Typically there are about 30 pulses per second; the exact rate does not matter. At 12V, servo operating speed is 56mm/s with no load or 35 mm/s at maximum load. &lt;br /&gt;
&lt;br /&gt;
The actuator interfaces to the Arduino over a three wire servo connector that is standard for RC planes and cars. The three wires are Signal Out, Ground, and Power. The power wire is not used since both the actuator and Arduino have their own sources of power. The actuator is fused for 5 Amps but has blown fuses. Be careful not to drive it beyond physical limits.&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with H-bridge ===&lt;br /&gt;
&lt;br /&gt;
The pulsed linear servo fails too often. When it fails it can still be used as a linear actuator, and it costs less to buy it as an actuator in the first place. The actuator is powered by a relay to give it either +12V or -12V and uses angle feedback to stop motion. &lt;br /&gt;
&lt;br /&gt;
Students built an H-bridge circuit board to swap positive and negative voltages, but it never quite worked. We then discovered that the Arduino Motor Control shield can control the actuator when powered from its own 12V supply. This is the preferred design as of 2026.&lt;br /&gt;
&lt;br /&gt;
The actuator depends on Signal In feedback. The H-bridge circuit used two digital signals to turn either left or right (D41, D48).&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with Motor Control Shield ===&lt;br /&gt;
&lt;br /&gt;
The Motor Shield has signals for motor on/off (D9), direction (D12) and speed (D3). It can also read the current that the motor is drawing (A0) and software can adjust speed to keep it within limits. CAUTION: the analog signal is 0-5V but the Arduino Due must not have any input &amp;gt; 3.3V. It is probably necessary to cut A0 and A1 and route them to a voltage converter. Interface to the shield is on https://docs.arduino.cc/tutorials/motor-shield-rev3/msr3-controlling-dc-motor/#hardware--software-needed Steering is Motor A. The motor to lift the gate to decouple would be Motor B.&lt;br /&gt;
&lt;br /&gt;
The Vin line on Arduino cannot supply enough current for the steering motor. An external 12V supply needs to be connected to the motor shield.&lt;br /&gt;
&lt;br /&gt;
== Braking System ==&lt;br /&gt;
Two solenoids (Johnson Electric 150 174432-024; available from Newark/Element14) connected directly to the brake cables control braking. This system has some advantages and disadvantages over connecting the brake cables to a servo. Advantages are that a solenoid provides full braking force in milliseconds. Disadvantages include a lack of control over braking force and brake failure on loss of power: a solenoid alone will not hold position without adequate current from the batteries. Using a solenoid instead of a servo also requires additional hardware and software to control the solenoid.&lt;br /&gt;
&lt;br /&gt;
=== Building a solenoid mount for braking ===&lt;br /&gt;
==== Creating and assembling a solenoid mount ====&lt;br /&gt;
&lt;br /&gt;
# Select a solenoid according to required braking force and throw. Information like force as a function of throw is provided in product data sheets&lt;br /&gt;
## measure how much force is required to initially pull the brake cable from rest (against spring tension and friction) and to completely close the brake, stopping the loaded vehicle&lt;br /&gt;
## measure the distance the brake cable travels from rest to closed position; this is the required throw&lt;br /&gt;
## select a solenoid that provides adequate force over the entire throw &lt;br /&gt;
## be aware that a solenoid provides less force when heated by environment and electrical load&lt;br /&gt;
# Because solenoids generate heat, select metal stock with enough area to radiate heat from the solenoid; this information may be contained in the solenoid's data sheet &lt;br /&gt;
# If needed: use measurements from the solenoid or solenoid data sheet to modify the drilling template provided below to fit the mounting plate on the selected solenoid. Make sure holes are not too close to the edge of the material so there is enough room to drill&lt;br /&gt;
# Adhere the printed drilling template to the metal stock using rubber cement. Work quickly (&amp;lt; 30 seconds after application of rubber cement) to apply the paper template smoothly on the surface before the adhesive dries&lt;br /&gt;
# Drill holes where shown on the template. Drill pilot holes using a small bit before using large drill bits &lt;br /&gt;
# Check that all parts (including the solenoid) fit the drilled screw holes and use screws and nuts to attach the two angle bracket stops and the solenoid base plate to the solenoid mount&lt;br /&gt;
# install the brake shield ends (threaded metal parts) to the brake shield end mount and thread the brake cable through&lt;br /&gt;
# Screw the three bridle pieces together around the barrel end of the brake cable and attach to the solenoid arm with a screw and nut (or other hardware, depending on the solenoid arm end) &lt;br /&gt;
# Check that the solenoid arm moves freely along its entire throw with the bridle and brake cable attached&lt;br /&gt;
# Attach electrical connectors to the solenoid and attach the solenoid to the solenoid controller to test that brakes open and close when the solenoid is switched off and on&lt;br /&gt;
&lt;br /&gt;
==== Supplies ====&lt;br /&gt;
# existing bicycle braking system using barrel-ended brake cable (to use our brake cable bridle)&lt;br /&gt;
# one solenoid for each brake (it may be possible to alter the design included on this page to use one solenoid for two brakes, but make sure it has enough force for two brakes)&lt;br /&gt;
# metal stock large enough to create an entire mount for each solenoid; this mount doubles as a heat sink and should have enough total area to radiate heat&lt;br /&gt;
# metal stock to create a bridle attaching the solenoid arm to the brake cable&lt;br /&gt;
# metal stock to create a stop for the bridle on the solenoid arm and a mount for the brake cable end&lt;br /&gt;
(have extra metal stock to recreate each drilled piece in case of mistakes)&lt;br /&gt;
# material such as screws, plates, or u-bolts to attach the solenoid mount to the vehicle&lt;br /&gt;
# screws and nuts to hold all solenoid mount parts together&lt;br /&gt;
# a printed drilling template, modified to fit your hardware if needed, one for each solenoid mount (neatly cut out individual pieces)&lt;br /&gt;
# rubber cement or other adhesive for adhering the drilling template&lt;br /&gt;
# hand drill or drill press&lt;br /&gt;
# clamps and disposable wood block(s) for drilling&lt;br /&gt;
# files or other abrasive for removing metal burs and sharp edges&lt;br /&gt;
# personal safety equipment such as gloves and eye protection for when cutting, drilling, and filing&lt;br /&gt;
&lt;br /&gt;
=== Wiring the solenoid ===&lt;br /&gt;
The solenoids are connected in parallel to the [[LowLevel]] board's relay outputs. This is a height current connection, and is mean to switch between 24v (for striking) and 12v (for maintaining). The solenoids only have a 25% duty cycle at 24v, so be careful not to leave them connected to power for too long. It is also critically important to include a snubbing diode in parallel with any inductive load. &lt;br /&gt;
As of version 3.0 the [[LowLevel]] board includes one on its brake output. We are using a pair of 1N400x series diodes rated for &amp;gt;50v and 1A (specifically 1N4001). This prevents extreme high voltage transients generated by switching the inductor from finding an inconvenient path to ground via our sensitive electronics. Quite a few relay shields have lost their driving transistors prior to the addition of these diodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
See the attached solenoid data sheet for its specific characteristics.&lt;br /&gt;
Other linear servos: https://www.servocity.com/servos/heavy-duty-linear-servos&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Board Diagrams]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=663</id>
		<title>ActuatorPage</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=ActuatorPage&amp;diff=663"/>
		<updated>2026-06-19T19:01:56Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Drive System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Actuators and Motor =&lt;br /&gt;
&lt;br /&gt;
==Description and Function ==&lt;br /&gt;
Elcano uses a linear actuator to control steering hardware.  Brake control had used a linear servo, but in Spring 2018, brake control was replaced by a Solenoid system. An electric bicycle controller drives the rear wheel.The recumbent Catrikes use a hub motor. The ELF used an electric motor that drives a chain on the left side of the vehicle. The ELF used a rotary servo for steering.&lt;br /&gt;
&lt;br /&gt;
== Parts and Materials ==&lt;br /&gt;
&lt;br /&gt;
# Two solenoids and assembly for braking.  See '''&amp;quot;Creating and assembling a solenoid mount&amp;quot;''')&lt;br /&gt;
# 6&amp;quot; linear steering servo (Catrikes) or rotary servo (ELF)&lt;br /&gt;
# servo mounts&lt;br /&gt;
# linkage hardware to connect servos to brakes and steering&lt;br /&gt;
# electric bike conversion kit&lt;br /&gt;
# power subsystems (batteries, connectors, wiring) for servos and motor&lt;br /&gt;
&lt;br /&gt;
Detailed bill of materials: https://github.com/elcano/elcano/blob/master/Documentation/Elcano_BOM.xls&lt;br /&gt;
&lt;br /&gt;
== Drive System ==&lt;br /&gt;
&lt;br /&gt;
The Catrikes have no pedaling or chain. The vehicle is powered by a hub motor.&lt;br /&gt;
&lt;br /&gt;
The ELF has two chains. One is driven by pedaling and the other by an electric motor. Both chains have freewheels, so they do not interfere with each other.&lt;br /&gt;
&lt;br /&gt;
The electric motor is powered by an e-bike controller. The trikes use a Kelly controller. https://www.kellycontroller.com/shop/kbs-e/&lt;br /&gt;
&lt;br /&gt;
The e-bike controller converts the main voltage (36 or 48V) from DC to three phase to power the motor. The power can draw 25 or 30 Amp and is potentially lethal. Interface to the e-bike controller is an analog signal from the drive-by-wire board that gives the throttle.&lt;br /&gt;
&lt;br /&gt;
The Kelly e-bike controller has some additional functionality that has not yet been used:&lt;br /&gt;
&lt;br /&gt;
-- There are phase signals from the hub motor that offer finer speed and position control since the signal occurs about 20 times per wheel revolution instead of the current once per revolution.&lt;br /&gt;
&lt;br /&gt;
-- It is possible to do regenerative braking.&lt;br /&gt;
&lt;br /&gt;
-- The controller supports driving the wheel in reverse.&lt;br /&gt;
&lt;br /&gt;
== Connections ==&lt;br /&gt;
&lt;br /&gt;
The main drive connector on DBW v5 is an RJ45 connector. On the Power box, the signals are attached to wires to the Kelly controller, which have unique colors and numbers. The only signal currently used is Throttle. The pins are&lt;br /&gt;
&lt;br /&gt;
* 1: Forward / Reverse: White (12)&lt;br /&gt;
* 2: Current meter: Dark blue (8)&lt;br /&gt;
* 3: Amount of regenerative braking: White (2)&lt;br /&gt;
* 4: Regenerative brake switch: Brown (13)&lt;br /&gt;
* 5: Reserved&lt;br /&gt;
* 6: Throttle: Dark green (3)&lt;br /&gt;
* 7: Speedometer: Green from Hall B (17)&lt;br /&gt;
* 8: E-Bike alive: Purple (4) or Dark Grey (11)&lt;br /&gt;
* Kelly Pink wire (7) must be attached to 36V or system is off&lt;br /&gt;
&lt;br /&gt;
== Steering System ==&lt;br /&gt;
&lt;br /&gt;
Three methods have been used for steering: Linear servo, linear actuator with H-bridge, and linear actuator with motor control shield.&lt;br /&gt;
&lt;br /&gt;
=== Linear servos ===&lt;br /&gt;
&lt;br /&gt;
There are two main steering signals: &lt;br /&gt;
&lt;br /&gt;
1. Signal Out is a 1 to 2 ms pulse sent from the Arduino to control the steering actuator.&lt;br /&gt;
&lt;br /&gt;
2. Signal In is a 5 V analog feedback signal that gives the pointing angle of the wheel. There is one such signal for each of the two front wheels. More details on [[SteeringSensor]].&lt;br /&gt;
&lt;br /&gt;
The linear steering servo on the Catrikes https://www.servocity.com/hdls-6-2-12v  has 25 lb. thrust with  6&amp;quot; throw. The servo is powered by a pulse signal (D48). A more suitable part may be https://www.servocity.com/motors-actuators/linear-actuators/heavy-duty-linear-actuators, which is described below.&lt;br /&gt;
&lt;br /&gt;
The steering servo or actuator is powered by 12V DC. It produces 5V DC which can be used by other equipment. Steering is controlled by sending a pulse to the actuator. A pulse width of approximately 1 ms will cause the actuator to fully extend (right turn on Catrike). A pulse of about 2 ms will fully retract the actuator. A pulse of 1.5 ms will keep the vehicle pointed straight ahead. There is some variation in these voltages; thus the Catrikes have a mechanical adjustment for fine-tuning the position for going straight. Typically there are about 30 pulses per second; the exact rate does not matter. At 12V, servo operating speed is 56mm/s with no load or 35 mm/s at maximum load. &lt;br /&gt;
&lt;br /&gt;
The actuator interfaces to the Arduino over a three wire servo connector that is standard for RC planes and cars. The three wires are Signal Out, Ground, and Power. The power wire is not used since both the actuator and Arduino have their own sources of power. The actuator is fused for 5 Amps but has blown fuses. Be careful not to drive it beyond physical limits.&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with H-bridge ===&lt;br /&gt;
&lt;br /&gt;
The pulsed linear servo fails too often. When it fails it can still be used as a linear actuator, and it costs less to buy it as an actuator in the first place. The actuator is powered by a relay to give it either +12V or -12V and uses angle feedback to stop motion. &lt;br /&gt;
&lt;br /&gt;
Students built an H-bridge circuit board to swap positive and negative voltages, but it never quite worked. We then discovered that the Arduino Motor Control shield can control the actuator when powered from its own 12V supply. This is the preferred design as of 2026.&lt;br /&gt;
&lt;br /&gt;
The actuator depends on Signal In feedback. The H-bridge circuit used two digital signals to turn either left or right (D41, D48).&lt;br /&gt;
&lt;br /&gt;
=== Linear actuator with Motor Control Shield ===&lt;br /&gt;
&lt;br /&gt;
The Motor Shield has signals for motor on/off (D9), direction (D12) and speed (D3). It can also read the current that the motor is drawing (A0) and software can adjust speed to keep it within limits. CAUTION: the analog signal is 0-5V but the Arduino Due must not have any input &amp;gt; 3.3V. It is probably necessary to cut A0 and A1 and route them to a voltage converter. Interface to the shield is on https://docs.arduino.cc/tutorials/motor-shield-rev3/msr3-controlling-dc-motor/#hardware--software-needed Steering is Motor A. The motor to lift the gate to decouple would be Motor B.&lt;br /&gt;
&lt;br /&gt;
The Vin line on Arduino cannot supply enough current for the steering motor. An external 12V supply needs to be connected to the motor shield.&lt;br /&gt;
&lt;br /&gt;
== Braking System ==&lt;br /&gt;
Two solenoids (Johnson Electric 150 174432-024; available from Newark/Element14) connected directly to the brake cables control braking. This system has some advantages and disadvantages over connecting the brake cables to a servo. Advantages are that a solenoid provides full braking force in milliseconds. Disadvantages include a lack of control over braking force and brake failure on loss of power: a solenoid alone will not hold position without adequate current from the batteries. Using a solenoid instead of a servo also requires additional hardware and software to control the solenoid.&lt;br /&gt;
&lt;br /&gt;
=== Building a solenoid mount for braking ===&lt;br /&gt;
==== Creating and assembling a solenoid mount ====&lt;br /&gt;
&lt;br /&gt;
# Select a solenoid according to required braking force and throw. Information like force as a function of throw is provided in product data sheets&lt;br /&gt;
## measure how much force is required to initially pull the brake cable from rest (against spring tension and friction) and to completely close the brake, stopping the loaded vehicle&lt;br /&gt;
## measure the distance the brake cable travels from rest to closed position; this is the required throw&lt;br /&gt;
## select a solenoid that provides adequate force over the entire throw &lt;br /&gt;
## be aware that a solenoid provides less force when heated by environment and electrical load&lt;br /&gt;
# Because solenoids generate heat, select metal stock with enough area to radiate heat from the solenoid; this information may be contained in the solenoid's data sheet &lt;br /&gt;
# If needed: use measurements from the solenoid or solenoid data sheet to modify the drilling template provided below to fit the mounting plate on the selected solenoid. Make sure holes are not too close to the edge of the material so there is enough room to drill&lt;br /&gt;
# Adhere the printed drilling template to the metal stock using rubber cement. Work quickly (&amp;lt; 30 seconds after application of rubber cement) to apply the paper template smoothly on the surface before the adhesive dries&lt;br /&gt;
# Drill holes where shown on the template. Drill pilot holes using a small bit before using large drill bits &lt;br /&gt;
# Check that all parts (including the solenoid) fit the drilled screw holes and use screws and nuts to attach the two angle bracket stops and the solenoid base plate to the solenoid mount&lt;br /&gt;
# install the brake shield ends (threaded metal parts) to the brake shield end mount and thread the brake cable through&lt;br /&gt;
# Screw the three bridle pieces together around the barrel end of the brake cable and attach to the solenoid arm with a screw and nut (or other hardware, depending on the solenoid arm end) &lt;br /&gt;
# Check that the solenoid arm moves freely along its entire throw with the bridle and brake cable attached&lt;br /&gt;
# Attach electrical connectors to the solenoid and attach the solenoid to the solenoid controller to test that brakes open and close when the solenoid is switched off and on&lt;br /&gt;
&lt;br /&gt;
==== Supplies ====&lt;br /&gt;
# existing bicycle braking system using barrel-ended brake cable (to use our brake cable bridle)&lt;br /&gt;
# one solenoid for each brake (it may be possible to alter the design included on this page to use one solenoid for two brakes, but make sure it has enough force for two brakes)&lt;br /&gt;
# metal stock large enough to create an entire mount for each solenoid; this mount doubles as a heat sink and should have enough total area to radiate heat&lt;br /&gt;
# metal stock to create a bridle attaching the solenoid arm to the brake cable&lt;br /&gt;
# metal stock to create a stop for the bridle on the solenoid arm and a mount for the brake cable end&lt;br /&gt;
(have extra metal stock to recreate each drilled piece in case of mistakes)&lt;br /&gt;
# material such as screws, plates, or u-bolts to attach the solenoid mount to the vehicle&lt;br /&gt;
# screws and nuts to hold all solenoid mount parts together&lt;br /&gt;
# a printed drilling template, modified to fit your hardware if needed, one for each solenoid mount (neatly cut out individual pieces)&lt;br /&gt;
# rubber cement or other adhesive for adhering the drilling template&lt;br /&gt;
# hand drill or drill press&lt;br /&gt;
# clamps and disposable wood block(s) for drilling&lt;br /&gt;
# files or other abrasive for removing metal burs and sharp edges&lt;br /&gt;
# personal safety equipment such as gloves and eye protection for when cutting, drilling, and filing&lt;br /&gt;
&lt;br /&gt;
=== Wiring the solenoid ===&lt;br /&gt;
The solenoids are connected in parallel to the [[LowLevel]] board's relay outputs. This is a height current connection, and is mean to switch between 24v (for striking) and 12v (for maintaining). The solenoids only have a 25% duty cycle at 24v, so be careful not to leave them connected to power for too long. It is also critically important to include a snubbing diode in parallel with any inductive load. &lt;br /&gt;
As of version 3.0 the [[LowLevel]] board includes one on its brake output. We are using a pair of 1N400x series diodes rated for &amp;gt;50v and 1A (specifically 1N4001). This prevents extreme high voltage transients generated by switching the inductor from finding an inconvenient path to ground via our sensitive electronics. Quite a few relay shields have lost their driving transistors prior to the addition of these diodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links and Resources ==&lt;br /&gt;
See the attached solenoid data sheet for its specific characteristics.&lt;br /&gt;
Other linear servos: https://www.servocity.com/servos/heavy-duty-linear-servos&lt;br /&gt;
&lt;br /&gt;
NEXT &amp;gt; [[Board Diagrams]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=662</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=662"/>
		<updated>2026-06-19T18:41:20Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends driving commands over CAN. Automatic mode is selected by the RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
The system can go into Emergency Stop from various situations.&lt;br /&gt;
* If Auto Mode was initiated from RC, the RC switch will be in Auto mode. Estop is cleared by returning the RC switch to Manual Mode.&lt;br /&gt;
* If Auto Mode was initiated by the operator, the Operator switch will be in Auto mode. Estop is cleared by setting the Operator switch to Manual Mode.&lt;br /&gt;
* If the operator pushes the E-Stop button, E-stop is cleared by the button being reset.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* AUTO_ESTP: Auto mode requests E-stop&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=661</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=661"/>
		<updated>2026-06-19T18:38:12Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends driving commands over CAN. Automatic mode is selected by the RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
The system can go into Emergency Stop from various situations.&lt;br /&gt;
* If Auto Mode was initiated from RC, the RC switch will be in Auto mode. Estop is cleared by returning the RC switch to Manual Mode.&lt;br /&gt;
* If Auto Mode was initiated by the operator, the Operator switch will be in Auto mode. Estop is cleared by setting the Operator switch to Manual Mode.&lt;br /&gt;
* If the operator pushes the E-Stop button, E-stop is cleared by the button being reset.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* AUTO_ESTP: Auto mode requests E-stop&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=660</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=660"/>
		<updated>2026-06-19T18:32:52Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Automatic Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends driving commands over CAN. Automatic mode is selected by the RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
The system can go into Emergency Stop from various situations.&lt;br /&gt;
* If Auto Mode was initiated from RC, the RC switch will be in Auto mode. Estop is cleared by returning the RC switch to Manual Mode.&lt;br /&gt;
* If Auto Mode was initiated by the operator, the Operator switch will be in Auto mode. Estop is cleared by setting the Operator switch to Manual Mode.&lt;br /&gt;
* If the operator pushes the E-Stop button, E-stop is cleared by the button being reset.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* AUTO_ESTP: Auto mode request E-stop&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=659</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=659"/>
		<updated>2026-06-19T18:32:21Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Automatic Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends driving commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
The system can go into Emergency Stop from various situations.&lt;br /&gt;
* If Auto Mode was initiated from RC, the RC switch will be in Auto mode. Estop is cleared by returning the RC switch to Manual Mode.&lt;br /&gt;
* If Auto Mode was initiated by the operator, the Operator switch will be in Auto mode. Estop is cleared by setting the Operator switch to Manual Mode.&lt;br /&gt;
* If the operator pushes the E-Stop button, E-stop is cleared by the button being reset.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* AUTO_ESTP: Auto mode request E-stop&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=658</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=658"/>
		<updated>2026-06-19T18:31:43Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Automatic Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
The system can go into Emergency Stop from various situations.&lt;br /&gt;
* If Auto Mode was initiated from RC, the RC switch will be in Auto mode. Estop is cleared by returning the RC switch to Manual Mode.&lt;br /&gt;
* If Auto Mode was initiated by the operator, the Operator switch will be in Auto mode. Estop is cleared by setting the Operator switch to Manual Mode.&lt;br /&gt;
* If the operator pushes the E-Stop button, E-stop is cleared by the button being reset.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* AUTO_ESTP: Auto mode request E-stop&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=657</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=657"/>
		<updated>2026-06-19T18:23:06Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* AUTO_ESTP: Auto mode request E-stop&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=656</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=656"/>
		<updated>2026-06-19T18:18:28Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* NO_RC: No data from RC&lt;br /&gt;
* RC_OP: RC mode switch set to operator&lt;br /&gt;
* RC_BRAKE: RC applies brake&lt;br /&gt;
* NO_CAN: No recent data from CAN&lt;br /&gt;
* NO_OP: No operator action for too long&lt;br /&gt;
* OP_AUTO: Operator switch set for auto&lt;br /&gt;
* OP_BRAKE: Operator applies brake&lt;br /&gt;
* OP_RTN: Operator resets E-stop button&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;br /&gt;
* RC_AUTO: RC mode switch set to auto&lt;br /&gt;
* CAN_MAN: Auto mode requests manual takeover&lt;br /&gt;
* OP_DATA: Switch change on operator panel&lt;br /&gt;
* OP_MAN: Operator switch set for manual&lt;br /&gt;
* AUTO_ESTP: Auto mode request E-stop&lt;br /&gt;
* OP_ESTP: Operator pushes E-stop button&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=655</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=655"/>
		<updated>2026-06-19T18:16:04Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
* RC_DATA: Valid data from RC&lt;br /&gt;
* RC_MAN: RC mode switch set to manual&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=654</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=654"/>
		<updated>2026-06-19T18:13:33Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram. An LED on the vehicle is set to a color in the diagram to indicate the mode.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=653</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=653"/>
		<updated>2026-06-19T18:12:16Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* Automatic Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN. Automatic mode is selected by RC or Operator switch. There are separate Auto modes, depending on whether Auto was selected from the RC or Operator, since the response to E-stop differs.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=652</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=652"/>
		<updated>2026-06-19T18:09:42Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* RC controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual (Controlled from RC) mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=651</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=651"/>
		<updated>2026-06-19T18:08:43Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* RC controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic or Operator mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
The system comes up in Manual mode. The RC can switch the mode to Automatic or Operator. If no data comes from the RC, mode will transition to Operator.&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=650</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=650"/>
		<updated>2026-06-19T17:58:51Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.png]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=649</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=649"/>
		<updated>2026-06-19T17:55:37Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=648</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=648"/>
		<updated>2026-06-19T17:54:54Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions2A.jpg|State transitions@A.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=File:State_transitions2A.png&amp;diff=647</id>
		<title>File:State transitions2A.png</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=File:State_transitions2A.png&amp;diff=647"/>
		<updated>2026-06-19T17:54:06Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: State Transitions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
State Transitions&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=646</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=646"/>
		<updated>2026-06-19T17:52:54Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;br /&gt;
&lt;br /&gt;
[[File:State transitions@A.jpg|State transitions@A.jpg]]&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
	<entry>
		<id>https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=645</id>
		<title>RemoteControl</title>
		<link rel="alternate" type="text/html" href="https://www.elcanoproject.org/wiki/index.php?title=RemoteControl&amp;diff=645"/>
		<updated>2026-06-19T17:44:08Z</updated>

		<summary type="html">&lt;p&gt;Elcanoadmin: /* RC controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  RC controller =&lt;br /&gt;
DumboRC X6FG 6 channel Radio Control Unit 2.4 GHz 4.8-10V. Installed summer 2024&lt;br /&gt;
&lt;br /&gt;
Pulse width 1000-2000 milliseconds &lt;br /&gt;
&lt;br /&gt;
* CH1 Steering&lt;br /&gt;
* CH2 Throttle / Brake&lt;br /&gt;
* CH3 2 way switch: Forward or reverse&lt;br /&gt;
* CH4 3 way slider switch: Manual or Automatic mode&lt;br /&gt;
* CH5 Rotary switch: Request to raise gate to undock.&lt;br /&gt;
* CH6 Rotary switch: Reserved&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/B09MS4HBC8/ref=sspa_dk_detail_2?psc=1&amp;amp;pd_rd_i=B09MS4HBC8&amp;amp;pd_rd_w=LeIXy&amp;amp;content-id=amzn1.sym.36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_p=36d4fe03-2814-4a0b-86e2-d1e3d3071509&amp;amp;pf_rd_r=SF0RW81Y2X0PB3BGXJZP&amp;amp;pd_rd_wg=fWdsi&amp;amp;pd_rd_r=6c04f252-61f9-40a5-ac07-847c559b0e41&amp;amp;s=toys-and-games&amp;amp;sp_csd=d2lkZ2V0TmFtZT1zcF9kZXRhaWxfdGhlbWF0aWM Amazon]&lt;br /&gt;
&lt;br /&gt;
[[File:DUMBORC.jpg|300px|]]&lt;br /&gt;
&lt;br /&gt;
=  Operator Control  =&lt;br /&gt;
&lt;br /&gt;
If a person is riding the vehicle, they can use a joystick and switches for the same functionality as the RC controller&lt;br /&gt;
&lt;br /&gt;
* Joystick Left-Right: Steering&lt;br /&gt;
* Joystick up/down: Throttle / Brake&lt;br /&gt;
* Switch: Forward or reverse&lt;br /&gt;
* Switch: Manual or Automatic mode&lt;br /&gt;
* Switch: Request to raise gate to undock.&lt;br /&gt;
^ There is an Emergency Stop button on the vehicle.&lt;br /&gt;
&lt;br /&gt;
=  Automatic Control  =&lt;br /&gt;
&lt;br /&gt;
In Automatic mode, the Nav computer sends equivalent commands over CAN.&lt;br /&gt;
&lt;br /&gt;
=  Modes  =&lt;br /&gt;
&lt;br /&gt;
Trike behavior depends on the mode. In RC control, pulling the trigger in puts on the brakes. In Operator or Automatic mode, the RC unit is disabled, except that pulling the trigger in is an E-Stop. State transitions are shown in the diagram.&lt;/div&gt;</summary>
		<author><name>Elcanoadmin</name></author>
		
	</entry>
</feed>