SuperSensor is a modular plug-and-play hardware design that supports four distinct modules—harvesters boards, sensors and radio peripheral boards, processors boards, and the carrier/main board. The boards, functions, and an example of how they work together are shown in the figure. Note that Altium offers a free student license.
This board is the brawn of SuperSensor. The intention of the carrier board is to fit all the absolute necessities for successful intermittent computing into one place, encompassing the lessons and designs of the last decade. Each of these functions must exist outside of the main processing unit. Those essential functions are: checkpoint memory, energy management, timekeeping, debugging, and expansion interconnects. Checkpoint memory (usually FRAM) is an external byte-addressable non-volatile memory for checkpoint storage between power failures. This is essential since very few MCUs beyond the MSP430FR series have this onboard. Energy management is essential to both extract the most energy from a harvester, as well as carefully distribute energy to needed peripherals, and at the right times. To allow for greater flexibility for developing adaptive runtimes, we include power measurement circuitry on the carrier board as part of the energy management unit. MCU-external timekeeping circuitry is needed since internal clocks lose state on power failure
This is the brain of SuperSensor consisting of a microcontroller (MCU) and minimum supporting circuitry. By separating the processor and carrier boards, SuperSensor remains agile to new developments in MCUs, allowing for upgrades and alternate builds without significant disruption to the ecosystem. The processor board is programmed by the developer and hosts the runtime that maintains the forward progress and memory consistency of intermittently running applications. It manages peripheral control, energy, adaptation, etc. The processor board connects to the carrier board via a standard M.2 connector and is compatible with the Sparkfun’s MicroMod processor board pinouts
Peripheral Boards: Peripheral boards connect to the carrier board to add functionality via sensors, actuators, radios, and other breakout modules. All peripherals boards use a common peripheral bus of our design that provides analog IOs, digital IOs, and digital bus lines, including QSPI, SPI, I2C, UART, I2S, and a parallel camera interface (PCIF). This shared bus supports the vast majority of available sensors and peripherals and enables SuperSensor to be used in various applications as almost all off-the-shelf sensing, and communication components use one of the interfaces our peripheral bus supports. These are comparable to “function” boards within the MicroMod system, providing a dedicated “function” for the entire build. Unlike MicroMod, we enable a through board stacking capability to not limit the number of peripherals that can be used.
These boards harvest energy from different environmental sources. Many energy sources exist—solar, kinetic, vibration, radio frequency (RF), thermal, and microbial—all of them provide energy differently. Some provide direct current (DC) while others generate alternating current (AC) and at a variety of different voltages and currents. Also, every harvester has different internal characteristics that require different circuitry to pull out maximum power in a particular context. The harvester boards are meant to support all these operations without requiring any change on the rest of the circuitry (carrier, processor, and peripheral boards.) These have no analog in the MicroMod platform, which was designed for tethered, or battery-powered operation.