I'm an electrical engineering student, but I'm also quite interested in stuff regarding to Computer Science, or better: the practical appliances of programming, and I've followed stuff on the internet and around here about FOSS. Since, RMS = king here I am sure some guys have an opinion on the matter I want to discuss.
(I'm talking from the perspective of electronic (Analog/RF) design, as I feel this field closely relates to software design)
I feel that in almost all possible ways Electrical Engineering is lagging behind and fails to address problems practical CE does.
FOSS or OSS or just releasing parts of the source is great! It means that I'm able to look at the source and understand what it does. But even better are the hundreds of libraries for every language with often great documentation that I can incorporate into my project directly.
All of this doesn't exist for EE. There are no libraries. If you want to design something analog you can get some component models(Inner workings of a transistor type or particular behavior of a resistor), that's pretty much all.
Projects often need stuff/building blocks like (Active)Filters/(Differential)Amplifiers/Mixers, the current practice is just reinventing the wheel and hope for the best you know your analog electronics well. Since there is no way of writing tests or specifications there is also no debugging.
Your simulation fails and that is it, back to the drawing table and get your calculator ready, solving something that has been done years before by practically everyone.
CS also likes reducing unnecessary work, and just publicize the tools for free. In EE every tool costs multiple month salaries, and often they just suck.
When developing on FPGA boards you'll practically write >100 LOC every time you'll want to connect some entities (components). If there is any language more verbose than VHDL please state so.
FOSS Hardware seems to be growing, but it is still very small and seems to solely focus on big finished products like Arduino, Raspberry Pi, Other LED-Crapboard. Just like Linux or Apache, most of you never really learn anything from the code, besides that you can easily use the software.
Do you guys have any opinions on this matter, or maybe experience from other fields?
I'd hope to hear more idea's about making stuff in general better, while it's software, hardware or something completely else.
The nice thing about code is that it's all text. It's easy to write and share text. You can open source all the schematics you want, but you still have to pay for the components.
You could also argue that you still have a similar entry-level fee in both CS and EE. You have to buy electronics (computer) to write code. You have to buy electronics to build your circuit.
But yeah, I agree with you on the tool prices. Fairly obscene, but you get a good return in precision.
But what about Electronic design and simulating? That has no price till you start prototyping. And if you don't want to spend a fortune on those components it is necessary.
There is no Github for Electronics where you can just import your basic active filters. Or a library for some RF stuff. There is also no option of having things like actual libraries. I think both of these examples can be found when talking about software. Both are informational concepts that primarily hold no value, till someone attaches a price tag.
FOSS hardware takes the route big FOSS software applications take, that is open sourcing all the schematics. But besides it that it sound politically nice, no one will reproduce those schematics because it is always more expensive. I think FOSS Hardware like in the way of big projects like Linux, has no real value, but I think FOSS in the way of libraries would be great for Hardware design. Shame it doesn't exist, yet.
I agree with you there. I have a small electronics lab at home, but all of my tools are bottom of the line entry stuff. The costs do get prohibitively high if you want something moderately nice. And don't even get started on cool things like network analyzers.
Simulating still *thrives* on FOSS. We have SPICE. I did use Qucs when I took a couple of circuits courses, but most people were using PSPICE or Multisim.
As I said, the entry level costs are pretty similar. But in the long run, it adds up pretty quickly if you want to dive deeper in electronics.
I remember there were a couple of sites where you could upload your circuits. Not sure if they are still up. I remember one (circuits.io?) got sold off to Autodesk recently.
Altium has a free CAD tool, which uses a Github-like platform. But it is based around full circuits, and most circuits are Arduino's or another LED project.
How does PSPICE or Multisim compare to LTSpice?
Nice job shitposting a good thread
Oh I thought PSpice was free. I can get a free LabVIEW/Multisim license at my university. I've used LabVIEW but never tried Multisim.
It just shows the difference between hardware and software. With software it's infinitely reproducible and costs nothing but your computer and an internet connection. I think that's why FOSS works so well and why it's a special case where community development thrives. With hardware you have a few issues:
- Hardware isn't as popular as a community thing as software is
- EE guys don't know software so it takes CS/CE to make their tools and CS people don't really care about hardware past the assembly level so you end up with shitty software. There's not a lot of CE's out there either. Also the software is usually proprietary but there are free packages like LTSpice out there which are good.
- You can open source schematics but the processes to make IC's will always be out of your control. You can't open source everything and even if you did the problem would be that no one could make the IC's anyway. As far as schematics go, someone will usually make/order them en masse to sell so that it's cheaper.
- Hardware can get expensive which raises the barrier to entry versus software FOSS projects.
Also you should try Verilog on FPGAs (less verbose). An interesting thing happened where the bitstream to Lattice's ICE FPGAs got reverse engineered so you can have a FOSS toolchain when programming them.
As for building blocks, these days it's all either all in an IC for you or the circuit has been pretty standardized. Also nothing is stopping you from writing helper programs that will do tedious calculations for you that you find yourself doing all the time (that's what computers are for).
FOSS hardware basically won't take off for everyone until chip level designs are easy to make at home (good luck), making boards is cheap and easy at home (with soldermask), and the tools for working with electronics come way down. Though I will say there's a lot of good value tools out there.
Look up creative commons, it is the engineers equivalent to foss
Be the change you want to see in the world
As an electromechanical engineer instead of patenting most of my work I license it under creative commons so I get recognition but anyone can use it