Atmel Software Framework

Accessing the Control Panel through its shell interface on UART_0

In this scenario, you are a local user who wishes to access the Control Panel through its UART_0 shell interface. You are equipped with a laptop. Over this interface, you have administrator right-access to the Control Panel's internal file system (read, write, execute), and you have access to several functions that interact with sensors & actuators.

1) Connecting to the shell.

  • With a male-female serial cable, join your laptop COM port to the Control Panel's UART_0 COM port.
  • On your laptop, launch hyperterminal:


  • Name the new connection, choose any icon:


  • Select COM1 (or rather the identifier of the COM port you chose on your laptop):


  • Fill-in the following properties to match the Control Panel's UART_0 settings (Bits per second=57600, Data bits=8, Parity=None, Stop bits=1, Flow control=None):


    Click on Apply then on OK. Your hyperterminal is now configured.
  • Type enter in Hyperterminal; the invite prompt $> of the shell should appear:


2) Listing all available commands.

Type help followed by enter: this will execute the help command that lists all available commands and a short description for each:


Note that the prompt $> appears again after completion of the command, waiting for the next command. There are three main families of function:

  • one family deals with the actuators and the sensors (get/set an actuator current value, get/set the configuration of a sensor, get a sensor current value),
  • another family deals with the Control Panel file system (operations on files and directories),
  • another family deals with some system configuration variables (e.g. Control Panel's IP address, HTTP port).

3) An example of an actuator command : write a string to the LCD user message zone.

Type on the shell: set_actuator_value actuator=lcd usrmsg="Hello Goodbye!" time=10 This command writes the string "Hello Goodbye!" to the LCD user message zone (i.e. the 4th line) in 10 seconds from the moment you hit enter. The "time=10" argument is optional.

4) An example of a sensor command : get the current temperature.

Type on the shell: get_sensor_value sensor=temp Once enter is hit, this command will display on the next line of the shell the current temperature log. Example:


The above displayed log is made of three fields: the sensor name, the current date, the sensor value.

5) Examples of file system commands.

  • Suppose we want to see the content of the /WEB directory(i.e. the Web server files):
    • The Control Panel supports multiple drives. By default, there is only one available drive, that is the dataflash. Let's display the available drives:


      We see that we currently have only one drive, the drive a.
    • Mount the a drive:


    • Display the current content of the top / directory on the a drive:


    • Go to the WEB directory: type cd WEB then enter. Then display the content of the WEB directory.


      We can see that the WEB directory contains 10 files and one sub-directory.
  • Suppose we want to activate the logs activity of the Control Panel: As long as the /LOG directory doesn't exist, the Control Panel doesn't save the data logs into log files (all log files are saved into this directory).
    • Mount the a drive:
    • Display the current content of the top / directory on the a drive:
      We can see that the LOG directory doesn't exist. Let's create it.
    • Create the LOG directory(with the mkdir command):


      The next ls command shows that the LOG directory has been created.
    • Let's wait a little while and then list the content of the LOG directory. At least one log file should have been created : the Control Panel has started logging data logs.


      The file listed is a data log file. Let's list its current content (with the cat command).Here is an excerpt of the output of the "cat t021307_0901.log" command:


      We can see that a data log file is made of several sensors and actuators logs.

Contact Information

For further information, visit Atmel AVR32.