Home Documentation Source

BinPy

Google Summer of Code 2014 Ideas


How to use BinPy

Introduction

It is a library which will serve as a base to develop circuit based applications and educational software on top of it. BinPy is a clear representation of fundamentals. Everything has been written from scratch such as gates, logical operations, etc. This package does not depend on any external library other than pure Python.
We want to extend the hardware programming concepts to Python. We are looking for extremely motivated developers who are willing to break amazing things.

We look forward to add more and more features to this project which simplifies user experience in the world of hardware designing and simulation.


GSoC 2014 Proposal Application has started


NOTE

We will begin holding GSoC IRC hours starting from March 2, 2014. We will be available from 2 to 4 pm IST on Monday to Friday. We ask that students use this as their primary means of communication with mentors. We kindly ask that you do not do any of the following:

Students We Are Looking For

We are looking for talented undergraduate and graduate students who want to help us change build an open source software for circuit simulation. Students are not required to have a background in electronics but they must be interested in using open source software to make the world a better place. A good candidate student should have interest in any or all of the following computer science sub-disciplines: Electornics, Simulations, Graphics, Programming.

Mentors

You will be working with Abhinav Gupta, Anant Kamath, Jay Rambhia and Salil Kapur.

Project Ideas

1. Extending Core Libraries and Classes

Description : The scope of algorithms and gates used in hardware design are numerous. Some basic work has been done and important gates, ICs and algorithms have been implemented but we would like to further expand our libraries to various other aspects of digital electronics. Visit our homepage BinPy to view some of the work already done.

For instance, you can develop more integrated circuit libraries as the no of ICs are numerous, also you can develop on vaious algorithms used in hardware design to reduce the circuit size so that user can directly develop on that without having to reduce the size of circuit himself. You can see our IC classes and algorithms for example.

Addition of following features will increase the use cases of the project.


Difficulty : Medium
Requirements : Experience in Python and hardware design
Contacts: Abhinav Gupta and Jay Rambhia


2. Circuit Design Software

Description : Creating a GUI using Python and Qt where you can directly drag and drop elemets like wires , gates, ICs, etc and connect them to our Python code. This will reduce the amount of programming to be done by the user by a huge margin so that even amature programmers and even the hardware designers can start off easily.
There's a free and open source software called KiCad which is very useful in designing PCBs. But it doesn't have feature to simulate the design. We want to start with a simple circuit designing software which should also be capable of realtime simulation.
Ultimate goal of this software is to generate Verilog HDL code from the design itself.

Here are few type of simulations you can work on:


Difficulty : Hard
Requirements : Experience in Qt and Python
Contacts: Abhinav Gupta and Anant Kamath


3. Development of Interactive Educational Software

Description : While creating BinPy, it was always kept in mind to make it as descriptive as possible. Since all the components have been made from scratch, developing an educational software to teach people electronics is a very good idea.

Following features can be implemented in the software:


Difficulty : Medium
Requirements : Experience in Qt and Python
Contacts: Jay Rambhia

4. Documentation, Examples and Tutorials

Description : BinPy is a great tool for hardware designers and novice programmers who want to design various complicated circuits. It reduces the work effort required in other simulation tools present right now by many folds. It is a great way to bring hardware to masses through python. But this BinPy API lacks a good tutorial section. So most of the time, people find it difficult to start their projects with BinPy. We would like someone to study BinPy API properly and make a proper tutorial and documentation for BinPy.

Difficulty : Easy
Requirements : Experience in Python
Contacts: Anant Kamath



These ideas are just for reference but we would like developers to come up with their own ideas on various algorithms and circuits that are being used in harware design so that user can start developing on top of these.

How To Apply

You should apply through the main GSoC webpage. Your project description should be your own plan of action to address one of the project ideas we listed above. From this application we should be able to discern who you are, what you are doing (i.e. where you study, what you study), and any cool things you have done with BinPy. We place a lot more emphasis on demonstrating your abilities than where you study or what grades you have. We don’t care where you are from or your current experience level, we will take students who can show that they are up to the task of working on the project. In real terms this means that you should do one or more of the following before submitting an application:

Project Proposal Template

Writing a good project proposal is the most essential part. You have to elaborate your project and yet be brief about it. A lot of students apply so it's really difficult to go through every proposal thoroughly. The proposal must be in the following template.