README.md
examples/default
This application is a showcase for RIOT's hardware support. Using it for your board, you should be able to interactively use any hardware that is supported.
To do this, the application uses the shell
and shell_commands
modules and all the driver modules each board supports.
shell
is a very simple interactive command interpreter that can be
used to call functions. Many of RIOT's modules define some generic
shell commands. These are included via the shell_commands
module.
Additionally, the ps
module which provides the ps
shell command is
included.
Usage
Build, flash and start the application:
export BOARD=your_board
make
make flash
make term
The term
make target starts a terminal emulator for your board. It
connects to a default port so you can interact with the shell, usually
that is /dev/ttyUSB0
. If your port is named differently, the
PORT=/dev/yourport
variable can be used to override this.
Example output
The shell commands come with online help. Call help
to see which commands
exist and what they do.
Running the help
command on an iotlab-m3:
2015-09-16 16:57:17,723 - INFO # help
2015-09-16 16:57:17,725 - INFO # Command Description
2015-09-16 16:57:17,726 - INFO # ---------------------------------------
2015-09-16 16:57:17,727 - INFO # reboot Reboot the node
2015-09-16 16:57:17,729 - INFO # ps Prints information about running threads.
2015-09-16 16:57:17,731 - INFO # isl29020_init Initializes the isl29020 sensor driver.
2015-09-16 16:57:17,733 - INFO # isl29020_read Prints data from the isl29020 sensor.
2015-09-16 16:57:17,735 - INFO # lps331ap_init Initializes the lps331ap sensor driver.
2015-09-16 16:57:17,737 - INFO # lps331ap_read Prints data from the lps331ap sensor.
2015-09-16 16:57:17,739 - INFO # l3g4200d_init Initializes the l3g4200d sensor driver.
2015-09-16 16:57:17,740 - INFO # l3g4200d_read Prints data from the l3g4200d sensor.
2015-09-16 16:57:17,742 - INFO # lsm303dlhc_init Initializes the lsm303dlhc sensor driver.
2015-09-16 16:57:17,744 - INFO # lsm303dlhc_read Prints data from the lsm303dlhc sensor.
2015-09-16 16:57:17,746 - INFO # ifconfig Configure network interfaces
2015-09-16 16:57:17,747 - INFO # txtsnd Sends a custom string as is over the link layer
Running the ps
command on an iotlab-m3:
2015-09-16 16:57:57,634 - INFO # ps
2015-09-16 16:57:57,637 - INFO # pid | name | state Q | pri | stack ( used) | location
2015-09-16 16:57:57,640 - INFO # 1 | idle | pending Q | 15 | 256 ( 140) | 0x20000200
2015-09-16 16:57:57,642 - INFO # 2 | main | pending Q | 7 | 1536 ( 640) | 0x20000300
2015-09-16 16:57:57,645 - INFO # 3 | pktdump | bl rx _ | 6 | 1536 ( 544) | 0x200025e0
2015-09-16 16:57:57,647 - INFO # 4 | at86rfxx | bl rx _ | 3 | 1024 ( 360) | 0x2000099c
2015-09-16 16:57:57,649 - INFO # | SUM | | | 4352 ( 1684)
RIOT specific
The ps
command is used to analyze the thread's state and memory
status.
Networking
The ifconfig
command will help you to configure all available network
interfaces. On an iolab-m3 it will print something like:
2015-09-16 16:58:37,762 - INFO # ifconfig
2015-09-16 16:58:37,766 - INFO # Iface 4 HWaddr: 9e:72 Channel: 26 NID: 0x23 TX-Power: 0dBm State: IDLE CSMA Retries: 4
2015-09-16 16:58:37,768 - INFO # Long HWaddr: 36:32:48:33:46:da:9e:72
2015-09-16 16:58:37,769 - INFO # AUTOACK CSMA
2015-09-16 16:58:37,770 - INFO # Source address length: 2
Type ifconfig help
to get an online help for all available options (e.g.
setting the radio channel via ifconfig 4 set chan 12
).
The txtsnd
command allows you to send a simple string directly over the link
layer using unicast or broadcast. The application will also automatically print
information about any received packet over the serial. This will look like:
2015-09-16 16:59:29,187 - INFO # PKTDUMP: data received:
2015-09-16 16:59:29,189 - INFO # ~~ SNIP 0 - size: 28 byte, type:
NETTYPE_UNDEF (0)
2015-09-16 16:59:29,190 - INFO # 000000 7b 3b 3a 02 85 00 e7 fb 00 00 00 00 01
02 5a 55
2015-09-16 16:59:29,192 - INFO # 000010 40 42 3e 62 f2 1a 00 00 00 00 00 00
2015-09-16 16:59:29,194 - INFO # ~~ SNIP 1 - size: 18 byte, type:
NETTYPE_NETIF (-1)
2015-09-16 16:59:29,195 - INFO # if_pid: 4 rssi: 49 lqi: 78
2015-09-16 16:59:29,196 - INFO # src_l2addr: 5a:55:40:42:3e:62:f2:1a
2015-09-16 16:59:29,197 - INFO # dst_l2addr: ff:ff
2015-09-16 16:59:29,198 - INFO # ~~ PKT - 2 snips, total size: 46 byte