Skip to content

dBarmpxkos/memristors-python

Repository files navigation

Physical Memristor Brain Network

A complete implementation for building and controlling a physical 8-memristor brain network.

Project Overview

This project implements a brain-like neural network using 8 physical memristors with the following specifications:

  • Ron: 400Ω (low resistance state)
  • Roff: 1000Ω (high resistance state)
  • Switching voltages: ±3V
  • Compliance current: 12.5mA

Architecture

Network Topology:

  • 3 inputs (I0, I1, I2)
  • 6 memristors (M0-M5) connecting inputs to junctions
  • 2 wire junctions (H0, H1)
  • 2 memristors (M6, M7) connecting junctions to outputs
  • 2 outputs (O0, O1)

Files

Core Implementation

  • improved_physical_brain_software.py - Main control software with adaptive learning
  • customizable_memristor.py - Memristor device models
  • corrected_physical_connections.py - Physical wiring diagrams and breadboard layout

Setup

  • requirements.txt - Python dependencies
  • .venv/ - Python virtual environment

Quick Start

  1. Simulation Testing:

    python improved_physical_brain_software.py
  2. Physical Implementation:

    • Follow wiring diagrams in corrected_physical_connections.py
    • Use control software in improved_physical_brain_software.py

Features

Validated Learning Algorithm - Demonstrates actual memristor resistance changes
Realistic Device Models - Based on your exact memristor specifications
Physical Wiring Diagrams - Ready for breadboard/PCB implementation
Adaptive Learning - Progressive pulse strengthening for effective switching
Pattern Classification - Network learns to differentiate input patterns

Status

  • Simulation: ✅ Complete and validated
  • Physical Implementation: 📋 Ready to begin

Last successful learning demonstration showed resistance changes:

  • M3: 984Ω → 407Ω
  • M4: 1017Ω → 385Ω
  • M5: 974Ω → 401Ω
  • M7: 1075Ω → 397Ω

Next Steps for Physical Implementation

  1. Hardware Preparation

    • Acquire 8 memristors with specified characteristics
    • Set up 3 programmable voltage sources
    • Prepare oscilloscope for monitoring
  2. Assembly

    • Follow corrected_physical_connections.py wiring diagrams
    • Build network on breadboard or PCB
    • Verify all connections
  3. Testing

    • Run improved_physical_brain_software.py
    • Apply learning pulses to physical network
    • Measure and compare results with simulation

Hardware Requirements

  • 8 memristors (400Ω Ron, 1000Ω Roff, ±3V switching)
  • 3 programmable voltage sources (for I0, I1, I2 inputs)
  • 2-channel oscilloscope (for O0, O1 output monitoring)
  • Breadboard or PCB for assembly
  • Connecting wires and components

Project Structure

memristors-python/
├── .venv/                                    # Python environment
├── improved_physical_brain_software.py      # Main control software  
├── customizable_memristor.py               # Device models
├── corrected_physical_connections.py       # Wiring diagrams
├── requirements.txt                         # Dependencies
└── README.md                               # This file

License

This project is for research and educational purposes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages