Exploring what happens when you put computers on sign posts.
The Signpost project is a modular city-scale sensing platform that is designed to be installed on existing signposts. It is powered through solar energy harvesting, and provides six slots for generic sensing tasks. Modules have access to a set of shared platform resources including power, communication, gps-based location and time, storage, and higher-performance computation, and they use a Signpost-specific software API that enables not only use of these resources, but also supports the development of inter-module applications.
The project is driven by several core applications, but also strives to be an upgradeable and adaptable platform that supports new applications for scientists and cities. Modules can be added and removed from the platform after deployment without disassembling the installed Signpost, reprogramming the Signpost, or interrupting the other functions of the Signpost. Additionally, by providing APIs to modules that support common operations, developing and deploying a sensing application in a city is significantly streamlined. A focus of this project is ensuring that domain scientists and researchers interested in city-scale applications can effectively leverage this platform to accelerate their projects.
Each Signpost platform includes a power supply that also meters energy usage, a controller that provides storage and computation and manages the operation of the Signpost, and several module slots that support extensible sensor modules for city-scale sensing applications. All modules are connected via an I2C bus, and core system features (e.g. per-module energy metering) are on a SMBus network. For higher bandwidth communication on the Signpost, each module is also attached to a USB 2.0 host.
Each module can be individually disconnected from the USB host and/or the I2C bus, as well as entirely powered off.
Signpost sensor modules access platform resources through the Signpost API, which is a library that sits between the user's applications and the Signpost I2C bus. The API is easily ported, only requiring I2C master/slave, GPIO, and timers. It currently is ported Tock and ARM MBed-OS, with a port coming soon for Arduino. Please see the Signpost API documentation.
Signposts are currently being deployed on campus at UC Berkeley. We have 5 Signposts deployed and more than 20 built and awaiting deployment approval. On these signposts we have modules sensing audio amplitude on seven spectrum bands, ambient environmental markers including temperature, pressure, and humidity, RF Spectrum monitoring from 15-2700 MHz, and a microwave-radar based motion sensor. We are working to build applications such as distributed traffic monitoring on the deployed platforms.
Signpost development kits have been designed to facilitate sensor module and software development without requiring a full signpost platform. The development kits have the ability to fully emulate a signpost including energy metering and a Signpost radio module.
We are working to release version 1.0 of the Signpost Software API.
There are several ways to get involved with the Signpost Project! These include building and deploying full signpost platforms, deploying new sensor modules on our existing platforms, or deploying new applications on existing sensor modules. If you would like to deploy city-scale sensing applications using Signpost, please email [email protected].
Below are getting started guides for the Signpost platform.
Developing the Signpost platform is an ongoing effort with several primary goals:
City-scale sensing platforms are a growing area of research with several emerging approaches:
We see Signpost as one part of the city-scale sensing ecosystem, and we hope to eventually deploy dynamic applications that can be distributed across high granularity energy-harvesting nodes (Signposts) and powered nodes such as Array of Things. Hopefully applications such as SONYC can lower the cost of deployment by running on Signpost platforms.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.