/** \mainpage Wixel SDK Documentation The Pololu Wixel Software Development Kit (SDK) contains code and Makefiles that will help you create your own applications for the Pololu Wixel. The Wixel is a general-purpose programmable module featuring a 2.4 GHz radio and USB. The Wixel is based on the CC2511F32 microcontroller from Texas Instruments, which has an integrated radio transceiver, 32 KB of flash memory, 4 KB of RAM, and a full-speed USB interface. \section starting Getting Started To load apps onto the Wixel, you will need to have the Wixel's drivers and software installed on your system. See the Getting Started section of the Pololu Wixel User's Guide. To develop your own apps or modify existing ones using the Wixel SDK, you will need to have a copy of the Wixel SDK, SDCC version 3.0.0 or later, and you will need to have certain GNU utililties available on your path: cat, cp, echo, grep, make, mv, rm, and sed. For Windows users, we recommend that you install all of these components by downloading the Wixel Development Bundle, available from the Pololu Wixel User's Guide. Please see the Writing Your Own Wixel App section of the Pololu Wixel User's Guide for step-by-step instructions for getting started with the Wixel SDK. \section sdk Downloading the Wixel SDK itself The Wixel SDK is available as a git repository hosted on github. You can get the latest version by installing git and running:
git clone -o pololu git://github.com/pololu/wixel-sdk.gitIf you need help, see github's instructions on how to Set Up Git. For Windows users, we also recommend installing TortoiseGit because it provides a good graphical user interface for git. You can also download the latest version of the Wixel SDK from github. \section building_app Building and Loading Apps Open a command-line terminal, navigate to the top level directory of the SDK, and type "make". This will build all of the apps in the apps folder and all of the libraries that they depend on. To load an app onto all the Wixels connected to the computer, type "make load_APPNAME" where APPNAME is the name of your app's folder in the apps directory. To open your app in the Wixel Configuration Utility, type "make open_APPNAME". Running any of the commands above will rebuild your app if it is out of date. \section creating_app Creating Your Own App To create your own app, simply copy one of the existing folders in the
apps
directory and change its name.
You do not need to modify the Makefile;
the Makefile will automatically detect the new app as long as it is in
the apps
folder.
If your app doesn't use the default set of libraries defined in
libraries/libs.mk
, you can specify which libraries
your app uses by creating a file called
options.mk
in your
app directory and defining a GNU Make variable in it called APP_LIBS
that contains a list of the file names of the libraries your app uses, separated
by spaces. See apps/test_board/options.mk
for an example.
\endcode
\section sdk_docs Documentation of Wixel SDK Libraries
The Libraries page contains an overview
of all the libraries available in this SDK.
The File List page links to the documentation
for all the library functions, grouped by header file.
This documentation is auto-generated from the .h
files in the SDK.
The Globals page contains an index of all
the global functions variables, typedefs, and defines in this SDK.
To generate this documentation yourself, type "make docs"
(requires Doxygen).
\section other_docs Other Documentation
Documentation for the Wixel itself is available in the
Pololu Wixel User's Guide provided by Pololu.
The user's guide contains schematic diagrams, pinout diagrams, documentation for the
apps, example wiring, and more.
Documentation for the CC2511F32 (the microcontroller on the Wixel) is available in the
CC2511F32 datasheet
provided by Texas Instruments.
The datasheet provides detailed technical information about the hardware peripherals and
how to control them, as well as electrical specifications, and more.
Texas Instruments also provides many app notes and design notes on the
CC2511F32 page.
Documentation for SDCC is available on the SDCC website.
\section make_exception Make Interrupt/Exception Error
You might get the following error message from make in Windows:
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x425073)If you get this error, please run "make -v" at a Command Prompt and make sure that you are running GNU Make 3.82-pololu1. This version of make is included in the latest Wixel Development Bundle, available from the Pololu Wixel User's Guide. If the output from "make -v" shows some other version of make even after installing the Wixel Development Bundle, then you should remove that other version of make from your PATH or reorder your PATH so that version 3.82-pololu1 is used. You can edit your PATH environment variable from the Control Panel. See the pololu/make wiki on github for more information on this problem. \section help Getting Help If you have a problem or question, feel free to ask us on the Pololu Forum. **/ /******************************************************************************/ /** \defgroup libraries Wixel SDK Libraries \section radio_libs Radio Libraries - radio_com.lib (radio_com.h): Provides reliable, ordered delivery and reception of a stream of bytes between two devices. Also supports control signals. Depends on radio_link.lib. - radio_link.lib (radio_link.h): Provides reliable, ordered delivery and reception of a series of data packets between two devices. This is the layer that takes care of Ping/ACK/NAK packets, and handles the details of timing. Depends on radio_mac.lib. - radio_queue.lib (radio_queue.h): Provides queues for sending and receiving radio packets. It does not ensure reliability, nor does it specify a format for the packet contents. Depends on radio_mac.lib. - radio_mac.lib (radio_mac.h): Takes care of setting up the radio's DMA channel and interrupt, and allows higher-level code to control the radio from an interrupt. This is a general purpose library that could be used to implement any kind of radio protocol. Depends on radio_registers.lib and dma.lib. - radio_registers.lib (radio_registers.h): Configures the radio with some good default settings, and provides some basic functions for reading information from the radio. \section usb_libs USB Libraries - usb_cdc_acm.lib (usb_com.h): Implements the USB CDC ACM interface, which allows the Wixel to appear as a virtual COM port when it is connected to a PC. Depends on usb.lib and wixel.lib. - usb_hid.lib (usb_hid.h): Implements a USB Human Interface Device (HID) which allows the Wixel to appear as both a Mouse and Keyboard when it is connected to a PC. Depends on usb.lib and wixel.lib. - usb.lib (usb.h): Sets up the USB module and responds to standard device requests. This is a general purpose library that could be used to implement many different kinds of USB device interfaces. Depends on wixel.lib. \section peripheral_libs Peripheral Driver Libraries - adc.lib (adc.h): Uses the Analog-to-Digital Converter (ADC) to read analog voltages. - gpio.lib (gpio.h): Uses the CC2511's pins as general purpose inputs or outputs (GPIO). - i2c.lib (i2c.h): Provides a basic software (bit-banging) implementation of a master node for I2C communication. Depends on gpio.lib and wixel.lib. - servo.lib (servo.h): Provides the ability to control up to 6 RC servos by generating digital pulses directly from your Wixel without the need for a separate servo controller. - uart.lib (uart0.h, uart1.h): Uses USART0 and/or USART1 in UART mode to send and receive serial bytes. \section basic_libs Basic Libraries - wixel.lib (board.h, time.h): Takes care of everything that is specific to the Wixel hardware, including managing LEDs and other I/O lines, detecting the current power source, keeping track of time, and providing delay functions. - dma.lib (dma.h): Coordinates the use of DMA channels 1-3. Does not touch DMA channel 0. - random.lib (random.h): Takes care of generating random numbers. \section libc Standard C Libraries The Small Device C Compiler (SDCC) provides library routines that may be useful for your application. In particular, if you need to format a string of ASCII text,
sprintf
is useful. SDCC also provides math routines
and a memory allocation routine (malloc).
See the
Library
Routines section of the SDCC manual for more information.
Also, several of the example and test apps in the apps
directory
use printf
or sprintf
.
**/