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.
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
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
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
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.
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:
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.