Experimental system

The experimental systems of NASCENCE includes a physical interface to the nanomaterials, a hardware interface for configuration of the materials, a software API to connect the hardware and evolutionary algorithms.

NASCENCE explores and exploits new nanoscale information processing devices which can be produced without reproducing individual components. Inspired by the success of natural evolution, NASCENCE explores the possibility of using computer-controlled evolution to manipulate physical nanosystems to compute. An interface to a conventional digital computer running the evolutionary search algorithm will manipulate the physical systems as to evolve towards useful computation. In such a future emerging technology approach there are no off-the-shelf experimental system available. To be able to accomplish our tasks and meet our goals within the NASCENCE project duration, the team intends to develop and produce its own experimental systems. Special hardware is required to interface digital computers to the physical systems that are to be manipulated. A co-existent software able to search and manipulate materials toward useful computation is also needed. Furthermore, software and hardware need to be integrated in order to accomplish a working experimental system.

Experimental system stack

The experimental system set-up of NASCENCE is built as a stack of layers. The computational problem to be targeted is defined at the top of the stack. The evolutionary search algorithm with an appropriate goal criteria is used to search for solutions. The representation of the evolutionary algorithm is mapped to electrical signals that can manipulate the material. The mapping is done by a software interface (an API) that communicates with a hardware interface able to apply feasible stimuli to manipulate the nanosystem. Evolutionary algorithms with appropriate goal criteria and representation are developed. Interface software that can map the representation of the evolutionary algorithm is used to talk to the experimental hardware platform that applies signals for manipulation of the physical system.

Experimental system block diagram
Experimental system block diagram

The experimental systems of NASCENCE include four intertwined stages. A search algorithm (EA), an interface software stage, the hardware interface and the nanomaterial executing computation. All of the stages must be adapted to each other and able to communicate with proper interfacing signals.


NASCENCE uses a microelectrode arrays to interface and manipulate the physical nanosystem, e.g. carbon nanotubes. A thick film including the nanoscale particles is placed on a microelectrode array. The microelectrode array  is produced on a glass slide with a electrical connector laid out to fit in a card edge connector. Sample holders are plugged into the interface hardware that apply and sample signals.

Material sample holder
Material sample holder

The materials of NASCENCE is presented in more detail in the Materials section.

Interface Hardware

The heart of the NASCENCE interface hardware is the Mecobo motherboard. To be able to adapt the electrical/physical properties of different materials, the interface hardware is designed as a modular system. The Mecobo motherboard is designed to work as a hardware interface by itself. Mecobo can provide static or time-depending digital signals to stimulate materials and sample responses for evaluation. Stimuli are defined by EAs and sent down the stack to the hardware interface that applies electrical signals to material samples.

4Mecobo with  Mixed Signal daugther board (dm_0111) and Mecobo motherboard (dm_0489)
Mecobo with Mixed Signal daugther board and the Mecobo motherboard

Mecobo can be expanded by plugging in daughter boards to adapt the range of available electrical signals. For example, a mixed signal daughter board is designed to allow an evolutionary algorithm to let the type configuration stimuli to be put under genetic control. The Mecobo platform is designed with an FPGA as the main electrical and logical interface. As such, adaptations to new features or new daughter board only require a redesign of the FPGA design and a software update.

The Mecobo offer a total of 109 fully configurable digital input/output channels. If expanded with for instance four mixed signal daughter boards, a total of 64/32 analogue output/input channels are available together with 16 digital I/O channels. Any channel can be coupled to any electrode of the microelectrode array.  

The hardware interface uses a USB port for communication with a host computer. The API used to accesses and control the interface hardware is described in the next section.

Design files and system software source code to produce the hardware of NASCENCE are available for download from the NASCENCE GitHub.

Interface Software

There are two levels of software abstraction for the evolvable motherboard (EM). NTNU has developed a reconfigurable circuit board to use as controller for evolving with a configurable material system. At the heat of this board is an FPGA which is managed by a microcontroller. This in turn connects to a PC. As this system is complex, one outcome of NASCENCE is to provide an abstraction layer – an Application Programming Interface – that will allow users to easily connect to and utilize the EM.   Working closely with NTNU, IDSIA and University of York have developed an interface that can be used remotely, and with a high level of platform and programming language independence.

The API programming model is based on scheduling actions to each of the inputs to the material. These actions include applying constant voltages, signals (such as sine waves) and recording the output.A ’track based’ programming model is used to program and visualize stimuli and response between the hardware interface and materials.

Programming model API-Block-diagram
Track based representation of material stimuli response and an overview of the complete software architecture.

Thrift technology is used in the NASCENCE software architecture to allow applications running on different operating systems, written in different languages and running on different computers to communicate.

Source code and documentation for the API are available for download from the NASCENCE GitHub.

Evolutionary Algorithms

NASCENCE incorporates and further extends a number of algorithms for “programming” the material system by finding configurations that perform a given computational task. These include, from random search, brute force, a simple hill climber to high-performance evolutionary algorithms like Cartesian Genetic Programming, Cooperative Synapse NeuroEvolution and Natural Evolution Strategies.

Open-ended evolution

Standard machine learning is normally concerned with optimizing a pre-defined cost function (e.g. least-squares error, classification error, maximal margin, etc). There are other problems, however, where the cost-function is either too challenging to optimize directly, changes over time, or is not explicitly known in advance. This is the setting investigated in NASCENCE Evaluation and Data Mining Workpackage (WP6), in which the objective is to learn what functions or classes of functions the material is capable of being configured into. This requires a more open-ended approach where the task is not discover a specific point (function) in the vast space of logic functions, but instead to efficiently explore as much of this space as possible in order to model computational potential of the material. Open-ended search methods are relatively new, and most have their conceptual origin in the in the study of artificial curiosity. The algorithms include Novelty Search, Scouting and PowerPlay.