Developer Resources

If you are interested in helping develop the Commotion Wireless software, or want to create your own software images for specific routers or other devices, please see the sections below for the platform you are interest in.

Platforms

Commotion runs on multiple software and hardware platforms: Some wireless routers, smart phones, and desktops and laptops. Software development on each platform moves at a different pace, but we are working towards unifying the code across all of the platforms. Where possible, a common set of tools are used to develop Commotion, no matter the platform. However, there are certain platforms where unique tools are required.

Architectures

All Commotion platforms share a common core: a shared network medium (usually ad-hoc Wifi, known as IBSS) and an IP routing protocol (OLSRd). Read more about the Commotion architecture and how it varies across platforms on the Developer Wiki.

Code

Commotion is written in a combination of C, Lua, Javascript, Python, Java, shell, Objective-C, PHP. All of our source code is hosted on Github. To see the relationship between code repositories and the Commotion architecture, read the architecture documents above.

See the GitHub Workflow page on the Commotion Wiki for information on the Commotion team's GitHub workflow.

Debugging Tools

Commotion developers rely on a combination of tools, experience, and intuition to debug. We use gdb, ddms and unit testing. Read more about our testing procedures and methodologies and procedures for lab testing on the Developer Wiki.

Read more about common debugging procedures we use on the Developer Wiki. To report bugs and submit fixes, use our issue tracker.