Wireless programming

The technical solution description and a user manual for wireless programming of Distance Lab.

Quick Guide

The Robot

  • Load Wireless_bootloader with a program called HapyJTAG2
  • Check FuseBits –if Boot vector is enabled
  • Fusebits: 90 F7
  • Check configuration of the XBee

Distancelab Server

Loading the code:

./robocop -r [robot’s number] -f [the hex file name]
./robocop -r 3 -f atmega2561_demo.hex 

Creating reset

./robocop -r [robot’s number] -R
./robocop -r 3 -R

Reading the ADC inputs:

./robocop -r [robot’s number] -a -i [interval (1/10 s)] -n [numbers of readings]
./robocop -r 2 -a -i 1 -n 10

In webserver

Detailed manual

RoboCop is Linux based client program for Distancelab robots, it uses if necessary RobotLoader and RobotCharger. The RobotLoader contains bootloader, as the RobotLoader contains a charging program.

Some of the opportunities offered by RoboCop

  • Loading the new .hex file to the robot
  • XBee pin configuration
  • Displaying ADC values on console and saving them on User harddrive in .txt format
  • Robot’s wireless module configuration check, check is done wireless
  • Configuration of the robot’s wireless module, check is done wireless
  • Monitoring the state of the robot and sending it to charge
  • Refreshing the info about robots in the Distancelab webpage

RoboLoader or wireless bootloader

  • Takes into account possible errors arising from the radio communication
  • Sends the data by blocks
  • Checks the data blocks accuracy with checksum
  • In case of error, sends the data again
  • Has a reasonabe delays

RoboCharger also wireless charging program

  • Contains algorithm for finding the charger
  • Identifies the beginning of the charging cycle
  • Identifies the end of the charging cycle
  • Releases the charging station

Robocopi oleku kontroll

  • Pärib baasist robotite loetelu, olekud, seadistused …
  • Kontrollib iga roboti aku pinget, temperatuuri
  • Vajadusel muudab roboti olekut (DIO4) active → charge
  • Saadab roboti laadima, laeb robotisse RoboCharger programmi
  • Muudab roboti olekut Kauglabori veebikeskkonnas
  • Salvestab (ADC) parameetrid, analüüsi (graafikute) tarbeks.


  • Contains algorithm for seeking the charging station
  • Detects the beginning of charging *
  • Takse charging time in consideration just in case if chargind doesn't end
  • Checks the tempriture of the batteries, it’s also done by RoboCop
  • Detects the end of charging cycle, free’s the charging station in a program
  • Changes the robot status charge → active

Use of RoboCop

Usage: robocop [options]

General options:

  • -r remote 16 bit address
  • -f <hexfile.hex> flash robot
  • -R reset robot
  • -m maintenance (check batteries)

GPIO options

  • -g gpio num
  • -v gpio value (0|1)

ADC options

  • -a read adc0 value
  • -n <number> read number of samples
  • -i <seconds> interval between samples
  • -A all ADC's

Diagnostics options

  • -c check remote XBee configuration
  • -F fix remote XBee configuration
  • -m test MySQL connectivity

Uploading the code

-r3 = robot’s 16 bit address

./robocop -r [robot’s number] -f [hex fail name]
./robocop -r 3 -f atmega2561_demo.hex 

Using the ADC
Reading the ADC inputs:

./robocop -r [robot’s number] -a
./robocop -r 3 -f -a 

Monitoring battery level

./robocop -r [robot’s number] -a -n [numbers of readings] -i [interval (1/10 s)]
./robocop -r 3 -a -n 100 -i 1

There will be 100 readings, taken in every 0.1 second, in a console
All input ADC readings

./robocop -r [robot’s number] -a -n [numbers of readings] -i [interval (1/10 s)] -A
./robocop -r 3 -a -n 100 -i 1 -A

Other operations

XBee configuration control

./robocop -r [robot’s number] -c
./robocop -r 3 -c

Improving the XBee configuration

./robocop -r [robot’s number] -F
./robocop -r 3 -F

Creating reset

./robocop -r [robot’s number] -R
./robocop -r 3 -R

GIPO pin configuration

./robocop -r [robot’s number] -g [pin number] -v [1|0]
./robocop -r 3 -g 4 -v 1

g4 is XBee pin DIO4 and v1 means this pin is set to high

Using multiple RoboCop program is not a problem. User will wait in gueue until robot is free or time run’s out.

en/distancelab/wirelessprogram.txt · Last modified: 2020/07/20 09:00 by
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0