|Welcome to The Neuromorphic Engineer|
Hardware » Interfaces
Helping neuromorphic sensors leave the designer's desk
PDF version | Permalink
A variety of impressive neuromorphic sensors have been developed over the years, but hardly any have so far made it into applications outside carefully-controlled laboratory setups. Even when on the designer's desk, most neuromorphic sensors only operate well under tightly-controlled bias settings that require much experience and patience in twiddling potentiometers. To change this, we recently developed the sensor-control-interface board1 (SCI). This provides a small and inexpensive microprocessor-controlled 'mobile laboratory environment’ optimized for the low-noise operation of analog VLSI circuits. Tuning and operation of chips in this environment is simpler and faster than previous procedures, because the sensor setup and data recording is managed by PC. Additionally, the SCI can operate as a mobile stand-alone board, providing a variety of control signals for real-world systems such as small robots.
The compact SCI board is easy to set up and operate: it only requires external power and—depending on the application—a connection to a PC at 921,600 baud over RS232, USB, or wireless Bluetooth. The board has a variety of connectors for external components, such as (neuromorphic) sensors, motors, servos, and additional microcontroller boards. Many components plug directly into the SCI: others require a small customized adapter board.
Before describing the input/output (I/O) functionality in more detail, we should point out an important difference between the SCI board and most other interfaces. The SCI consists of two separate, electrically isolated areas: the digital section (DS) and the analog section (AS). The few required signals between DS and AS are routed through optocouplers, so that DS and AS stay completely separate and do not even share a common ground level (see Figure 1). Devices on the DS—e.g. microprocessors or external motors—typically generate substantial electric noise on the power supply rails. Filtering this high-frequency noise to suit aVLSI requirements is almost impossible: see Figure 1(b), left. However, the SCI board provides a virtually noise-free environment for analog devices: see Figure 1(b), right. For lowest-noise operation, two separate power sources for DS and AS are required: typically two unconnected batteries or two separate desk power supplies.
Back to functionality, the AS has four connectors (P0-P3), each with sufficient flexibility to control a typical neuromorphic aVLSI sensor at either 3.3V or 5V. Each port has 16 analog output pins with 16-bit resolution, eight analog input pins with 12-bit resolution, eight binary output pins, eight binary input pins, and an analog power supply for external hardware. In a typical setup, the analog output pins generate bias voltages with a resolution of 0.1mV, the analog inputs read sensor data, and the binary I/O pins control clocks and scanners. The AS thus provides a low-noise environment with a total of 64 analog output voltages, 32 analog input channels, 32 binary outputs, and 32 binary inputs.
The DS offers a variety of different ports: four amplified outputs for bi-directional pulse-width-modulation-controlled motors, five control signals for standard hobby servos, an PC (inter-IC-bus)-compatible two-wire interface, and a digital expansion port (PD). The latter provides direct I/O connections to the main microprocessor, which operate at much higher speed than those on the AS. However, due to electric noise, the direct connections are not suitable for aVLSI sensors. The DS is typically used to connect to small motors on mobile robots, servos, or rotating drums to provide stimuli of varying velocities during vision-chip tuning. The major advantage of connecting devices to the DS is that the electric noise they introduce will not influence the aVLSI sensors attached to the AS.
Two different options exist for working with the SCI board: sending individual actions using a command-line interface, or adding software to the on-board microprocessor. The simplest option uses the former to send atomic commands—such as read voltage on port3,pin5—from a terminal program. Alternatively, an open-source C library generates the atomic commands for custom software. Additional Matlab functions or XML-based GUIs (see bottom of p. 9) allow applications for tuning chips and running simple closed-loop control algorithms. All of these interactions, however, require an external PC and a communication link to the SCI board. They are useful for tuning sensors and visualizing data, but are rather inconvenient for robot control.
The advanced software option allows adding customized C functions to the existing open source program on the microcontroller. On-board software can directly call functions to set and read values, bypassing the command line interface to provide significantly-increased operational speed and fully-autonomous devices.
A number of ongoing projects involve neuromorphic sensors mounted on SCI boards. We have developed a small autonomous holonomic-drive robot that carries the SCI board with neuromorphic sensors, e.g. for sound-source localization or object tracking (see Figure 2). This is a simple system used mainly in short-term student projects or to demonstrate the benefits of neuromorphic sensors over digital solutions. In another Institute-of-Neuromorphic-Engineering-funded project, a simplified SCI board stabilizes a flying blimp using global motion information from neuromorphic optic flow sensors. This project ultimately aims to combine input from a variety of sensors connected to the board. Other research groups are exploring the possibility of automatic chip tuning: simple algorithms may suffice to control external stimuli, sweep bias values, record responses from chips, and visualize data. In simple cases, a gradient-ascent procedure might also tune chip biases to their optimal settings.
The SCI board provides a flexible interface for exploring neuromorphic sensors in controlled environments on real-world devices. Our experience shows that students, without prior knowledge of chip design or bias tuning, can set up and operate small systems quickly and apply neuromorphic sensors easily. Until now, most laboratories have re-invented interfaces for their particular designs; we aim to make this unnecessary by creating a simple but flexible interface that works for a large variety of setups. Furthermore, the modular hardware design of the SCI can be reduced to optimize for cost or weight constraints: it thus provides an environment for aVLSI sensors to move from the desk into real life.
We are hoping to see the board used as a standard tool in the neuromorphic engineering community, and are therefore offering assembled and tested boards, schematics, open-source software, and documentation. For further information, please consult our web page.1
Tell us what to cover!
If you'd like to write an article or know of someone else who is doing relevant and interesting stuff, let us know. E-mail the editor and suggest the subject for the article and, if you're suggesting someone else's work, tell us their name, affiliation, and e-mail.