Rules Of The Maze (Robot Avoidance Rules and Strategy)- Part 2

Written by Nornubari Kanabolo MST DM

Special Case 2.3(T-intersection) continued

As Matt explained in the previous post, for 2 robots at a T-intersection:

“In this case the robot that is within the intersection (in the middle of the T – intersection) has the lowest priority and must move out of the way of the other robots (if the other robots are in the path of the low priority robot). The lowest priority robot will step down the hallway that is not blocked and then wait for the other robot to pass.”

As for the case with 3 robots at the intersection, the following method could be used:

Say R2 steps into the intersection and R1 needs to go where R2 is and R2 needs to go where R3 is. One thing that could happen is R3 goes back to the last intersection to wait and R2 waits 5 seconds to move one square to the right.

At this point, 2 possible cases could happen. Case 1 as follows:

R1 waits 5 seconds and sees that there is no one in the intersection now then moves into the intersection, so that it can go to the hallway where R2 was. R2 waits another 7 seconds and goes down to where R1 was. R3 waits 3 seconds and returns back to where it originally was.

Or if R2 needs to go where R3 is then Case 2 is enacted as follows:

Since there are no longer 3 robots at the intersection and it is now just 2 at an intersection, the rules for encounters 2.3 as stated by Matt are used.

Arxterra 3DoT Training Telerobotic Mode

Written by Nornubari Kanabolo MST DM and Muhannad Al Mohamed E&C DM

Arxterra Client-Server “Community” Mode

Training for telerobotic mode included understanding how “Community Mode”works. This can seen by the diagram below

Community mode is communication between several parts of the Arxterra environment. This includes between the ArxRobot mobile app and Arxterra Control panel through a server and between the ArxRobot mobile app and ATmega32U4 microcontroller.

Choosing Community Mode

1. Click on Community Mode in the ArxRobot App. This is

2. Do not change any of these default settings

Creating Name for Project

In order to create a name for the project, type in your robot name as seen below. For example, for the Goliath project, you would put “Goliath” in the “Robot name” area. For “Pilot name or names” you would put your individual birth name such as “Nornu”.

Access the Arxterra Desktop Control Panel

To access the Arxterra Control Panel, go to and click on “Launch Now!” in the control icon.

Now you log in to the control panel using your Arxterra username(assuming you already registered for an account) and password for Arxterra.

Communication with your Project

Once in community mode and logged into the control panel you should be able to see your robot on the map. It is signified as a colored location marker. Click this and it will show the name of the robot and a “beam me up, Scottie!” icon. Click this icon to switch to Pilot mode.


Now you should be able to see what your phone camera sees. The interface created through the ArxRobot mobile app should be visible now as can be see below. To change the view of the camera through the app go to the settings>>phone configuration>>camera for streaming video.

Custom Commands and Telemetry

The process of creating Custom Commands & Telemetry in Community Mode is exactly similar to the process in creating them in RC Mode. It has the same 7 options the users can choose from (Boolean, Select, Byte, Unsigned Byte, Short, Unsigned Short, Header/Separator). However, Instead of only enabling the commands to show up in RC Mode the user would enable it to show on the Client Server Mode.

User Interface on the Control Panel

The user interface has 7 windows to show data:

  1. Lounge: shows the position of the project on a map
  2. Live Cast: If camera is enabled, it will show live broadcast from the phone that has the ArxRobot App.
  3. Telemetry: This window shows whatever commands were set for telemetry. Gauges and values of data packets would be shown in this window.
  4. Custom Controls: similar to the RC mode, this window shows the custom commands made by the user to interact with 3DoT Board.
  5. Controls: Also similar to the RC Mode, this window shows the D-pad that can be used to move motors of projects.
  6. Orientation: this window would show the position of the robot if the motion were enabled in the ArxRobot App.
  7. Messages: This window would show any emergency messages and notifications enabled by the user through custom commands. For example the user can have an alert message be sent and shown on this window if a Servomotor went to a specific position.


Telemetry is an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring data.

The data packets sent from the 3DoT to the ArxRobot App can be displayed in the telemetry window by enabeling either Telemetry State or Telemetry Stream for custom Commands.

Predefined telemetry can also be shown in the window if enable in the Robot Capabilities Configuration.

Training on Arxterra 3DoT App RC Mode

Written By: Muhannad Al Mohamed (E&C DM)


The Arxterra 3DoT App training had a goal of teaching E&C and MST members how to use their phones to communicate with their projects through Remote Control Mode. The ArxRobot Application has two different modes of communication with the Robot’s Microcontroller. The Remote Control Mode (covered in this training) and the Community mode (Covered in the next training session). The user, through the ArxRobot App, should be able to send commands to the microcontroller either through predefined commands or custom made ones.


The communication in the RC mode is done wirelessly through Bluetooth with an easy pairing process at the initialization of the RC mode. Commands are sent to the microcontroller as packets that consist of bytes that have specific identifiers to indicates whether the command is a command or telemetry. The packets contain data bytes that can be processed by the pre-coded microcontroller.

User’s Interface

The user interface in the RC mode is user-friendly. The default setting shows the controls of two motors in a strip type command. The strip can be changed to a D-pad looking control. Custom commands can be set to show on the user’s interface when enabled.

During the training session, members were taught how to use the user interface to control motors by giving specific input, moving motors at the same time, and steering trim to maintain desired speeds.

ArxRobot App’s Settings

The commands used in the app can be changed in the settings of the app. To access the predefined and custom commands users needed to be in Developer Mode.

The Phone Configuration window in the setting enables the user to choose the way to connect to 3DoT board, show phone’s battery percentage on Control Panel, and flip Camera’s position.

The predefined commands are commands and telemetry functions defined by the Robot3DoTBoard and saved in the app as default commands to operate a Mar’s Rover. These commands, if needed, can be used by the user by enabling each command in the Robot Capabilities configuration.

The Custom Command & Telemetry Configuration window allows the user to create new commands to be sent the 3DoT Board and receive Telemetry from it.


Custom Commands & Telemetry

Options for commands and telemetry is created by adding an option and giving it a specific address from (0x40) to (0x5F). Each option should be chosen to be either for commands to be sent to the 3DoT or Telemetry to be sent by the 3DoT. Commands can be controlled by the ArxRobot App; however, not all telemetry options are shown on the app. Each option should be enabled to show in either RC mode or Community Mode.


There are 7 options the user can choose while creating a custom command:

1- Boolean:

This option enables the user to send a byte in the data packet to the 3DoT board with a value of either (0x00) or (0x01). In the user’s interface, it can be seen as a switch that can be changed. The user can choose a default value of either of the previous options. This option can be used to turn an LED on and off for example.

2- Select:

This option enables the user to have multiple outputs to switch to. It is similar to the Boolean switch; however, it can have as many options the user wants to switch into. It sends a 1 byte of data parameter with the packet that is sent to 3DoT board; however, the values sent can be modified by the user. The select option shows in the user’s interface as radio buttons.

3- Byte:

This option can be used to send a byte in the data packet but with a wide range that can be changed by the user. It has a default range from -127 to 128 where the user can control which value sent by moving a strip in the user’s interface. These values can be changed by the user in the Byte settings to the desired range but it would still be a byte range. The steps between each value can be modified as well. This option can be used to move a servo motor for example.

4- Unsigned Byte:

This option is similar to the Byte command. The only difference would be the default range that starts from 0 up to 255.

5- Short:

This option is also similar to the Byte/Unsigned Byte; however, this option sends two bytes in data packet. Because it sends two bytes, the short command has a wider range than Byte/Unsigned Byte. The default value of this options ranges from -32768 to 32767.

6- Unsigned Byte:

This option is similar to the short option; however, the default range for it goes from 0 to 65535.

7- Header/Separator:

This option does not send any data in packets sent to the 3DoT; however, it is used to make the interface more user-friendly. titles to commands can be given using this option and it can be used to as separator if it was used without writing anything to it.

Training document

Arxterra RC Mode training document can found at this link.

Optimizing RC Mode in Projects

Update: 12/5/2017

Room Showing Telemetry Command

By creating custom commands and telemetry, engineers can create commands that can enable them to control their projects through the maze. For example, the path taken by a robot can be sent back to the phone connected to the MCU using telemetry options to show which room the robot is in on the phone’s display using RC mode. By optimizing the translated code from EE346/EE444 written by Mark Huffman (Goliath Project Manager) and Matt Shellhammer (ModWheels E&C Engineer), the variable “room” value can be sent as telemetry to the ArxRobot app. In the ArxRobot app, a telemetry Select command should be created and called room where it shows the byte value on the phone.

Creating Telemetry command called Room

Selec command Room

Assigned options to show the room type as implemented from the maze

Room type is shown in RC mode interface

Phase Selecting Command

The same process can be implemented to apply choosing the phase each robot is taking. In her blog Mission Definition, Elizabeth Nguyen (Pete-Bot Project Manager) explained how there are four planned phases each project can take:

  • Phase 1: Record
  • Phase 2a: individual playback
  • phase 2b: 4 Robots, 1 maze
  • Phase 2c: Individual playback, predefined

This custom command can be applied by also creating a select command with the four options where the user can switch easily between phases.

Phase selection in RC Mode

Recording Phase

Whenever Phase 1: Record is selected, the robot should start saving its path in the EEPROM. The EEPROM library can be very useful to record data when the system shuts down, which is essential in keeping data. The process of saving the path the robot is taking is explained in Write to EEPROM blog written by Matt Shellhammer (ModWheels E&C Engineer).

Eagle Cad Lecture series

Written by Charles Banuelos MFG DM

Written 11/2/2017

The division has finished learning Eagle Cad. The first of the two tutorials covered moving of components in eagle cad along with switching to the PCB layout so that they may start to build. The second tutorial covered how to create traces and nets on the PCB. The lecture then covered what vias are and how to place them. The lecture followed with showing how that the use of both sides of the board which will make the designs of the PCB easier to come up with.  The lecture then went into how to use polygons. The part of the lecture that teaches polygons might be the most important of the whole lecture. The polygon function allows for the creation of power planes and ground planes. These planes can be a small square in the corner of the board or it can take up the whole board. The lecture continues with how to do DRC checks. The lecture then goes over how to get the .dru files from OSH park in order to use their checks so that the boards can be built. The lecture concludes with making the Gerber files. The lecture shows how to download OSH parks gerber file presets. This allows for all of the Division members to turn in the correct files to make their PCB’s.




Update 11/30/2017

The lectures below along with the quiz and supplemental material provided will be able to teach students how to create PCBs given they are already given the schematics.

EagleCad Training Part 1

-To start a New Project you must first either create a new schematic or open a schematic. To start a new schematic you first open eagle and then click on file in the upper left hand corner. Then click on new and then schematic. You will then be able to start populating the schematic work space.  To place parts you press on the add icon located on the left side of the work space.

This space is very extremely sensitive to both spelling as well as capitalization for parts.

To move the parts around the board you must press on the move button and then on the cross on each part to move the part. To rotate the components it is the same procedure but you must press the rotation button first.

To connect the part you use the line or net button. If you would like two lines to branch from a single point or come to a single point you must use the junction button in the lower left corner.

Once the schematic is deemed correct it is time to create the PCB.  To open an already existing schematic go to file and then open. This allows you to open the correct file.

To create the PCB one must click on file and then on the button switch to board. To populate the board it is the same operation as the schematic. To move the parts click on the move tool and on the cross on the part. You will then be able to drag the part to the desired location.

EagleCad Training Part 2

Once the board has been populated you be able to start creating traces. To create traces on the PCB the route tool on the left side of the work space must be used. To use this tool click on the route tool and then on the place you would like the trace to start.

It is common practice to always use 45 degrees when designing PCBs. To view the angle of being drawn click on the route tool and then at top of the page you will see the different possible angles available. To finish a trace click on the point you wish to end the trace.


To place parts on the bottom layer of the board the person placing the parts will need a mouse or will need to click on the mirror button. To place parts on the bottom layer with a mouse the user will have to click on the move button and then on the part. Once the part has been clicked on the person will click on the mouse wheel which will make the part turn blue which means that the part is on the bottom of the board. The mirror button will also be able to do the same thing in the PCB work space.

To run a trace to this part a via will need to be placed. The first way to place a via is too manually place the via using the via tool located towards the middle of the tool bar.

The second way to place a via to first run a trace to a certain point. The person will then click to stop the route but will still be able to draw a route. The user will go to the upper corner of the of the work space and click on the select layer drop down which is located next to the grid button. The user will select bottom layer which will create a via to which the top layer route will already be connected to. The user will then be able to continue the route in blue on the bottom of the board.


To remove an unwanted route the user must click on the rip up tool located next to the route tool.

To view all of the layers of the board you can click on the layers setting in the upper left corner of the work space.

To create polygons it is key to remember that  a polygon must start and end at the same point on the board. Polygons are useful in order to create power and ground planes for the whole board or specific portions of the board. Once created these can be moved or changed using the move tool. These polygons can be created on both the top and bottom layers using same layer selecting button. To name the polygon, the user must right click on the edge of the polygon and go to properties. The name of the polygon is case secretive and will be close to the bottom of the window. The naming of a polygon will allow for any part that is connected to that name to be automatically connected once the rat nest button on the bottom of the tool bar is collected. It is common practice to have either the whole top or bottom layer be power and the other layer be ground.

DRC checks are vital to completing a PCB layout. The DRC check used is the custom one made by Professor Hill. This DRC check is given below and should be the only one used because every fab house should be able to use this one. To use this DRC it will need to be downloaded and saved into the DRU files within the Eagle program. To perform a check click on the DRC check at the bottom of the tool bar. The user will then click on load and the correct DRC check. The user will then press the check button. This will generate an error report will have all of the errors of the PCB. The errors will need to be cleared for ordering of the board. It is also important to remember to turn on all layers before running the check.


The last thing that is needed to create gerber files. To create gerber files you first go to the fab house that you plan on ordering from and seeing if they have the job files pre-made for you. OSH park already has these made for you and are easily downloadable. These job files once downloaded will need to be saved into eagle and specifically into the cam folder. Once the job has been saved it is time to generate the files. To generate the files go to file and then cam processor.  Then go to file in the cam processor window and then open and then job. Click on the correct job and then make sure the files are being saved into the right area. To conclude the making of the Gerber files click on process job.  If the cam files are unavailable from the fab house you wish to use then the cam files must be created in accordance with fabrication houses rules. To create these jobs one must click on the layer needed along with the names and file type. This concludes with pressing add and must be done for each layer.


EagleCad Training Part 1

EagleCad Training Part 2

Extra Training Material Provided by Eagle on YouTube

DRC Checks