Notifications
Clear all

Op-Amps, FPGAs, KiCAD, A.I., and Numpy

8 Posts
3 Users
0 Likes
2,927 Views
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  

I've had a desire to build an analogy Neural Network circuit using Op-Amps that have their feedback parameters controlled by FPGA chips.   One of the things that has been holding me back is the fact that there are no FPOPAs (Field Programmable Op-Amp Arrays).  They simply haven't invented them yet.  I'm sure they could already manufacture such a device, but insofar as I am aware no one is currently manufacturing Field Programmable Op-Amps.  Probably because analog computing hasn't really caught on just yet.  Although that is rapidly beginning to change.

In any case, I've realized now with something like KiCad, SMD chips, and the low cost of PCBWay boards I can actually design my own Field Programmable Op-Amps.   This will still be somewhat crude, but this will be far better than techniques I had previously had access to.   So I've decided to move forward with this project.

Unfortunately, rather than being able to dive right into the main engineering project I've currently been fighting with software.   In particular the FPGA software.  I do have it running on Windows, but I've been trying to set  it up on Linux so far with no luck.   The FPGA software I'm currently using is Intel's version of Quartus II version 11.1.   This used to be Altera's software I think and it appears that Intel took it over?

In any case I might try to find alternative FPGA software.  I'd like to just move forward with programming the FPGA boards instead of getting bogged down with software problems.

In any case, I have since moved forward with learning  how to program Neural Networks using Python.  I'll be doing that first so I can then used the same architecture for my analogy Neural Network Boards.  But once again, I find myself getting bogged down with having to learn the software.  Instead of studying Neural Network Programming I'm currently taking a course on Numpy. ?

Numpy (pronouced num-pie) is a fast numerical array program written to be used by Python.  So that's where I'm at right now.  Learning Numpy.  And I still haven't even gotten the FPGA programming software ironed out yet.  Sometimes I wonder if I'll ever get to the point where I'll actually be working on the original project.

Anyone else find this to be the case?   You want to do X, but instead you find yourself getting lost in Y, Z, Q and P, while the original project X seems to be on a back burner somewhere that  you may never be able to get to.

Will I ever get to the point where I can actually sit down and design the circuits I want to build?

Only the Shadow knows. ? 

DroneBot Workshop Robotics Engineer
James


   
Quote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2043
 
Posted by: @robo-pi

...

Although Sometimes I wonder if I'll ever get to the point where I'll actually be working on the original project.

Anyone else find this to be the case?   You want to do X, but instead you find yourself getting lost in Y, Z, Q and P, while the original project X seems to be on a back burner somewhere that  you may never be able to get to.

Yes. That is why I don't have too many irons in the fire at once. I try and select one project and use the hardware and knowledge I already have.  I don't have time to learn everything I would like to know or try to learn about every new thing that comes along.  Even with that attitude I will be struggling to finish something worth while before my time is up.

 


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  
Posted by: @casey

I try and select one project and use the hardware and knowledge I already have.

Sticking with what you already know is certainly a safe way to go.  I won't argue with that. ? 

From what I've heard learning new things is supposed to help prevent various types of dementia.  It's also encouraged by a lot of neural scientists.  So while learning new things may seem like a long road to a final goal, it may ultimately be the healthiest path.

Also I actually did the wrong thing by starting this thread.  Instead I should have started two threads entitled.

1. Does anyone know how to install Quartus II version 11.1 on Linux?

And

2. Does anyone know how to install WinPython, Spyder, and Jupiter, on Windows 10.

That's really what I need to know.   The talk about Op-Amps, FPGAs, A.I. and Neural Networks I already know.  I'm just trying to get the software up and running so I can work with the things I already know how to do.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  
Posted by: @robo-pi

2. Does anyone know how to install WinPython, Spyder, and Jupiter, on Windows 10.

According to the installation instructions it says that following:

WinPython works fine in Windows 7, 8 and 10 just by extracting it to your favorite place.

In fact, this is the answer I get everywhere I go.  Just extract it in a folder and it should work.

Well I did that and it doesn't work.  So something's missing.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  

When I try to launch Jupiter Notebook I get the following error:

Access is denied

The system cannot find the path specified

That's it.  It doesn't even tell me the path it's looking for.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  

I finally got Jupiter Notebook working.  I had to change some settings in the settings.ini file.  After hours of searching on Goggle I finally found this repair.

I'm still working on trying to get Spyder running.  Spyder is a Python IDE.  I'm not sure if I even need Spyder as I have several other Python IDEs.   In fact, this is supposed to work with Visual Studio too.   I haven't tried that yet.   I also use Geany, but I haven't tried that with WinPython yet either.

In any case it's nice to have Jupiter Notebook up and running.  That will make studying Numpy a lot easier.

If I can get Spyder up and running I'll be home free with WinPython.  Then I can go back to seeing why Quartus II won't install on Linux.

Software problems! ?    Something I could live without.

But they are really powerful software once you get them up and running.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
VE1DX
(@ve1dx)
Member
Joined: 5 years ago
Posts: 143
 
Posted by: @robo-pi

Software problems! ?    Something I could live without.

But they are really powerful software once you get them up and running.

On the other hand, an MIT PhD on a software development discussion group opined, "Hardware is a necessary evil to run the software."  I guess it depends on one's perspective.  If I had to do it for a living, I'd prefer 100%  software development and have the hardware experts on call to fix things when I smelled smoke.

However, that contradicts what we are doing here.  I guess the point of what I said was I could do the software already, and am learning the hardware side— if I had a point at all other than rambling on! ? 


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
Topic starter  
Posted by: @ve1dx

I guess the point of what I said was I could do the software already, and am learning the hardware side

I agree.  It's often not the software, it's simply incompatibility between software and hardware.  In fact, that was the solution in the case of the Jupiter Notebook.  I had to change a settings file to be compatible with my hardware.  

By the way, it's not always hardware/software incompatibility.   Sometimes it's software/software incompatibility.   That's what I'm suspecting in the case of my problems with Quartus II and Linux.  I think there's some incompatibility issues between Quartus II and my Linux OS. I'm pretty confident they can be resolved.  But it might take a Ph.D. in software  to resolve them.   And the problem is that even having a Ph.D. in software engineering may not help unless the person is an expert in Linux as well.

There are obviously solutions.  For example I could just "upgrade" to a different version of Linux.  That would probably solve the problem.  But while that may sound easy it's not something I really want to do.   Also, in my way of thinking it doesn't require a Ph.D. to just toss out a system that isn't working and reload one that works.  This is more of a solution that is used by people who can't fix the original problem. ? 

In the meantime, I've been making progress with Numpy and I've been designing some software Neural Networks in Python.  It's loads of fun and I'm learning a lot real quick.  Still don't have Spyder up and running yet.  I've been using Geany instead. I really like Geany anyway, it's always been my Python goto IDE.

I really need to try running Numpy in Visual Studio too though.  I haven't try that yet. They say it will work, so that's something to look forward to.

Right now I'm off on a complete TANGENT!  As always happens.  I'm trying to learn how to understand when my data set is linearly separable.  I realize that all that needs to be done is to graph it and then see if it can be separated using a linear line.   Understanding exactly how to graph it is what I'm having some difficulty with.

It's an extreme simply case too.  But the problem is that the Neural Net seems to  be working in some cases and not others.   And strangely some of the cases where it won't work appear to be linearly separable so I'm not understanding why it isn't working in those cases.

On the other hand, some case where the data seems to be non-linearly separable it appears to be working.  And I'd like to  understand why that's the case?

I'm also wondering if there is more than one way to graph the data.  For example my data consists of three inputs and each input can only be binary (zero or one).  So this can be thought of as a straight line of points zero thru 7.   But it can also be thought of as a 3-D space where each of the inputs represents a dimension.  And that would  be a totally different graph to be sure.   So I think there's more to it than meets the eye.

So I have lots to learn to be sure.  Today I'm in the process of joining a Machine Learning forum to start asking questions.  That's yet another "tangent", but one that is totally unavoidable.   I hope they can answer my questions in a straight-forward way that makes sense to me.  I often find that I end up spending a lot of time trying to figure out what people are even trying to say on forums, especially math-related forums.  Not that I'm not good at math, but mathematicians tend to give answers that are far more complex than necessary to address the actual questions being asked.  Sometimes I think they give obscure answers on purpose because they want it to appear that they know a lot more than the person is actually asking about.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote