Hacker News new | past | comments | ask | show | jobs | submit login
Why Learn Basic Electronics? [video] (eevblog.com)
156 points by gbugniot on June 16, 2015 | hide | past | web | favorite | 55 comments

Once upon a time, there was a huge hobby interest in Electronics. Kids were building Radios and Stereos, and then studying for their Ham license and building Transmitters, etc. Many of those kids went on to a professional career in Electronics.

For a while there was huge interest in building small microprocessor systems, but then along came the desktop PC revolution and this attracted a completely different crowd. A distinct separation developed between homebrew electronics and computer hacking.

The saying, "Beware computer programmers carrying a screwdriver" was only half in jest.

So today the Hacker movement is starting all over again, but they seem completely unaware that a generation or two of Hardware Hackers already exists.

Me, I'm retired now. I started out as a Ham radio enthusiast, later became an RF Engineer, then went on to Circuit design and PC layout, then DSP and Assembler language in Embedded systems. But towards the end of my career I found it harder and harder to find employment as manufacturing dried up. Eventually I just gave up and retired.

Bottom line is that Electronics is an interesting hobby, but I wouldn't recommend it for a career.

Just one further note: Lately I've been spending time in Asia: If you go into the smallest bookshop (eg in rural Thailand) you'll see local electronic magazines, complete with free kits and PCBs etc stapled on the cover. In Asia, Electronics is now a very trendy subject with schoolkids.

Here, kids are labelled as "nerds" if they show an interest in any science based hobby. Perhaps that is beginning to change. I do hope so.

I think "nerd" no longer has a negative connotation, at least not as impactful. The coolest kid in school is the kid who can get past the browser filters.

Haha, true. Computers are so mainstream now versus the 60s-90s that being a nerd (or rather, geek) is a positive benefit in the right circumstances. They provide a service that is basically the hottest commodity around these days.

The movement of the industry to Asia has certainly been bad for it in the west. I think your generation was inextricably linked with radio and audio, and the "maker" movement is much more digital. Adding computers to everything to produce little IoT devices.

Discrete electronic components (resistors, capacitors, transistors, simple ICs and sensors, etc) are sort of the "assembly language" of electronics, but the vast majority of programmers never touch assembly.

There have been attempts to create higher level abstractions (like Arduino "shields", etc) but the cost (time and money) to produce reusable modules is huge relative to the cost of the components, whereas CPUs are so fast the overhead of higher level languages and function calls is usually insignificant.

I'm not sure what the solution is. Maybe better software, and methods of manufacturing small runs of boards?

Software is infinitely duplicable at zero cost. This drives a lot of its economics and society of programmers. It also means you can solve your software problems easily by adding more software.

This is never going to be true of hardware.

Having said that, the "shield" approach is clearly winning among the introductory and hobby market. You can buy loads of them for low cost: http://www.dx.com/p/arduno-37-in-1-sensor-module-kit-black-1...

Productisation is limited by regulatory effects, FCC/CE and so on.

Perhaps a solution is reducing the friction of learning the first steps beyond assembly language? These trading cards seem to be a step in the right direction (e.g. Towards the goal of learning in a few years the kind of knowledge which the old analog wizards amassed over the course of an entire career).


My bet is on 3d-printing, probably used alongside with some kind of CV-assisted robotic assembly, with an HDL-based design toolchain. I'm trying to use a simple robotic manipulator to pick up and put electronic components and pour conductive paste to a 3d-printed board (while it is being printed). Trying to compensate a lack of mechanical precision with CV, sort of like what we do with our own imperfect fingers.

> Discrete electronic components are sort of the "assembly language" of electronics

Yes, but to make the analogy more realistic, it is an assembly language for a relatively simple and very slow and inefficient, power-consuming processor.

Nowadays, with discrete electronics components, one unfortunately cannot make fast and lean electronics like any of the big companies are making.

If you're using discrete components for digital processor, sure.

However they still have a very real application in the analog domain(along with a strong understanding of discrete ICs like Opamps and Transistors).

There are plenty of interesting electronic technologies offering programmability at a reasonable price :

Xmos is offering low cost microcontroller family where you can program your digital peripherals in c. So are others.

Cypress is offering programmable analog chips. Very versatile.

There are extremely low cost fpgas.

To is offering an mcu with programmable wireless protocols, currently only by them but maybe there's hope.

For users interfaces, the phone offers a great users interface, if made accessible like simblee promises.

So basically there are lots of option available but what is missing is ease of use and maybe options to combine them together.

Microcontrollers alone don't let you do anything a PC can't do, you need to couple them with sensors, UI, and IO.

We need compilers, high-level languages and 'linkers'. A way to represent module interfaces, allowing multiple module implementations: from a ready-made board (like an Arduino shield), to an 'optimized' piece of an integrated board for whole system. A package manager to easily download and integrate such modules into ones project...

Dave Jones is great.

I've found that learning about FPGAs and DDR access timings/commands was really a crystallizing in understanding why there are pipelines, cache misses and how to wring out real performance from a system.

I feel another reason why discrete electronics isn't as 'trendy' now as it was before, is because of how products seem to be 'seamlessly integrated' nowadays. There is nothing to take apart or repair.

A side benefit of hobbyist electronics was the ability to repair broken electronics lying around the house (simple radios, alarms and what-not). With stuff increasingly becoming a single 'product' instead of an assembly of discrete pieced together parts - both in terms of their circuits and their mechanical construction, there is little incentive for that kind of exploratory learning.

He forgot about one thing though: "How to learn this stuff?" I did some very basic electronics in my CS class, but since then I didn't touch anything hardware-like. I would love to see a widely accepted and relatively short introduction to this.

To me the difference between electronics and programming is that with code I can do something that works very quickly. Whereas in electronics I would have to go through the whole 900 pages book before making something that works.

I might be wrong - maybe there is some path that I would take - I didn't look up very closely. And please don't say hardware is hard - General relativity theory is hard, but I manage to understand it because It is simply explained in many places over the internet.

It's not hard to get started. Pick up Make: Electronics to learn the basics by example. Each chapter walks you through a project that teaches some important concepts. http://www.amazon.com/Make-Electronics-Discovery-Charles-Pla...

And to get started with Arduino, you can simply buy a starter kit: http://www.amazon.com/Arduino-Starter-Official-170-page-Proj...

I actually think it's easier for most people to get started with electronics than with code. This is coming from someone with 13 years coding experience and who has only been working on hobby electronics for the past 2 years.

Electronics projects don't have the same amount of boilerplate you see with writing code today. Development tools, frameworks, dependency management, the commandline, polyglot projects etc hinder a lot of beginners at the start. I would say you need to read 900 pages before you can fully understand everything that goes into developing a trivial CRUD website. With electronics, you just plug in and start learning. Learn the functions of a lot of different components and then come up with something that uses them together. Ohm's law is most of what you /need/ to know to design a basic circuit. You can derive what you need with the help of V=IR e.g. voltage dividers, components in series, parallel. And you need to learn how to read schematics and datasheets.

The theory behind everything you do is deep if you want to venture into electromagnetism, which is IMO deeper than what you would expect from college level CS. But it's not necessary to have a deep understanding of it in practice. Though you could say the same about a lot of software engineering and its relation to CS. :)

BTW if you are interested in learning some of the theory, check out Practical Electronics for Inventors:


I think it's easy to start in (some) software, if you pick the right tools. For example, micrososft lightswitch is great for beginners who want to build a CRUD website.The only problem - it's expensive.

Simlarly, nutonian/big-ml is great for machine learning, and gamemaker or ms-spark are great for games, and for websites there are many tools ,be it CMS's or others that help.

But i agree , general website design is far too complex.

You probably went through 900 pages of code or textbooks before you got to your level of programming skill anyway, but you can do a lot of electronics with just, say, the first five chapters of Horowitz and Hill.

If Horowitz & Hill doesn't do it for you, try the ARRL Handbook. They are both good learning resources, but are very different in style and content.

The way to learn electronics is much like the way to learn programming. Come up with something you want to make, then work incrementally through whatever educational barriers stand in your way. You can put the "education" part first, but you may have trouble connecting the dots in real life. Better to just dive in.

I've been working with http://www.snapcircuits.net/ Snap Circuits with my kids since they were 4years old. The lessons they learned there are used to this date and i think invaluable, especially now that they are trying to get things to move and light up using an arduino. I recommend checking out their kits, they can be used all the way up to HS level, heck I still like using them and showing them off to other parents.

As a programmer, I find electronic circuits insanely hard to reason about. It's like looking at a computer program where every single line runs concurrently. Maybe I need to approach it from a different angle.

But I love it, and I learned a ton when I was hacking away on my microwave [1].

[1] http://madebynathan.com/2013/07/10/raspberry-pi-powered-micr...

In my experience, electronics is usually much simpler than software, because every component only talks to a few other components, you can put probes into it pretty easily, the "data" you are working with is incredibly simple (you only have voltages, currents and power). Sure, it gets more complicated with things like processor design where you have pipelines that can be flushed, and branch prediction and that kind of stuff. But that is more software than hardware anyway.

In software, you're guaranteed that 2 + 2 is perfectly 4 in an int32. It's a very clean abstraction. In hardware, operational amplifiers are affected by thermal noise, magnetic fields, parasitic capacitance, etc. It is not "incredibly simple", and although there are only a handful of inputs you /want/ to care about in that operational amplifier, the actual number of inputs you have to worry about increases dramatically as you chase performance, higher frequencies, and compactness.

Processors must implement logic that can be represented by software, yes. However, when you're trying to push multiple GHz on nanometer technology, that implementation becomes especially difficult. I recommend picking up an RF engineering book, as it will only begin to describe the noise and side-effects that must be accounted for in those circumstances. There's a reason that Intel has physicists on staff. If hardware was truly easier than software, then we'd probably be building our web and mobile apps in that.

You are right that there are different problems. But designing high-frequency amplifiers, mixers, and such can now even be done by computers using optimization techniques such as genetic algorithms. The design space is quite limited, compared to software.

> If hardware was truly easier than software, then we'd probably be building our web and mobile apps in that.

I think this is more a matter of cost and flexibility.

So how to you feel about analog electronics, like anything with an operational amplifier in it? Or, essentially, any circuit featuring analog feedback. Makes my brain hurt.

An opamp is just a device with fixed input/output relations. All possible configurations have already been explored to the greatest possible depth. You can find these configurations in standard textbooks.

Now, turning back to software: a consensus algorithm, or a concurrent garbage collector, those are things that make my brain hurt :)

Agree with Johnythree. I used to be an electronics technician over 12 years ago. What happened is that it became cheaper to replace a board than to pay a skilled technician to debug components on a board.

You also had to pretty much learn whatever setup a company's products had on the job, as typically this was proprietary information.

There are great boards/kits out today but yes, it's mostly a hobbyist thing unless you decide to go embedded, then boards such as the MSP-430 from Texas Instruments can be a good choice (especially in the Medical Devices field).

This is a great blog about electronics! I remember I needed to solder something and wasn't sure I can do it, so I searched for some tutorials on Youtube and came across this guy's series about soldering. He shows very well how easy it is to solder once you get to know a few techniques of dealing with solder and tools. And Australian accent adds an entertaining bit to it, so it's never boring.

I took electronics classes during high school and loved it. I remember tinkering around and making blinkers and noise generators. But after I got into making websites for fun, I completely abandoned electronics as an academic route. There's part of me that wish I didn't, maybe I should get back to it as a hobby.

You should get back into it! Since you've left the hobby, a revolution has taken place in PCB manufacturing which allows for minimum quantities as low as 3 for the cost of a pizza or two. PCB design has truly become a hobbyist activity in the past 5 years or so.

Would you mind pointing me to something that explains what has happened in the last 5 years that made PCB design so much cheaper? It's quite surprising to read.

Years ago, if you wanted a small PCB manufactured, your only option was to deal directly with the board manufacturer and the minimum order was 100's or 1000's of boards. Prototyping a one-off hobbyist design was totally out of the question.

About 5 years ago a few startups figured out that if you played a large game of Tetris by combining the board designs of many hobbyists, you could submit the order as a single, giant PCB in a quantity of 10, or 5, or even 3. When the manufactured boards arrived, you break up the individual designs and mail them out individually to all of the hobbyists.

Whoa, interesting, thanks!

I'm still waiting for that 3D printer that can do PCB layouts. Actually, I'm waiting for a cheap 3D printer that can print on silicon :)

In context, this comment is actually quite hilarious.

Dave Jones (the guy who shoots EEVBlog) also does a podcast with Chris Gammell (who teaches Contextual Electronics). For years, Dave has been giving Chris shit over his fantasy of one day having a chip printer. Dave is certain this will never happen and absolutely delights in making fun of Chris.

But all joking aside, those two guys have done great things in making electronics as a hobby accessible.

I originally wanted to go into Electronics Engineering but I didn't take A-level maths which was a hard requirement (no surprise really, I just hadn't thought that far ahead) so fell back to Computer Science.

With things like the Raspberry Pi, Arduino etc. it's actually surprisingly easy to get back in to electronics after being away from it for so long. Sure I have to look up resistor colour code tables and stuff but it's fun.

It's very fun, and thanks to the hobbyist/open-source community it is more accessible than ever.

I had electronic and mechanical classes, followed by a technical course in programming.

Web sites meant BBS login screens.

So I went into a CS degree, which had shared lectures with the EE degree.

Electronics are something I've been interested in for a while, but I'm not really sure where to start. I have an arduino uno and some LEDs, but does anyone know of any good resources for beginners?

Make: Electronics is a great introduction and a lot of fun. http://www.makershed.com/products/make-electronics-book

I liked reading it but I think I made a mistake getting it for Kindle instead the paper version; I'm not good using the ebook reader for reference material.

The projects are OK-ish, though. Still a good book.

After I bought my first Arduino, I did the pulsating LED tutorial, put it in a box and that was it.

Then, by accident, I found a "37 sensor kit" for Arduino on dx.com, and that was a game changer.

And I think that's the problem with getting hooked: pulsating LEDs are fun for a few seconds, robots are interesting but waaay too complex for starting out, but just having some sensors and simple tasks (measure the temperature, send it to another arduino hooked up to a PC, store the data, make a pretty web page and voila you have ambient info) is better.

Getting Started in Electronics by Forrest Mims III is a good one for a gentle introduction.

But the standard bible, which is also a great source for beginners, is the Art of Electronics by Horowitz & Hill (just came out with 3rd edition). There's an associated Lab Manual which I also recommend.

AoE stems from a set of lecture notes the authors used in their Physics 123 class at Harvard, which is electronics for experimentalists. I took this class in 1999, AoE was the textbook, and it was amazing. You had people across the spectrum, like psychology and music students, who in about 13 weeks learned from scratch most concepts and components of both analog and digital electronics. The pinnacle of the analog half was one lab where we designed and built a system to take an input audio signal, PWM modulate it as pulses of IR light and flash it across the room to a circuit that received, demodulated, and amplified back to audio. The second half of the class was digital electronics where we started with glue logic and ended by building a breadboard 68000 computer. We programmed it in machine code (they had available external assemblers end EEPROM burners for those of us that wanted to go further). Some students went to amazing depths beyond. Eg, in the Lab Manual they showed some student projects where they took two computer-controlled DAC's and fed them into an oscilloscope in XY mode and made games like PacMan and Asteroids.

Not bad for a one-semester class of students who came in with minimal understanding of electronics.

If my opinion on the matter is welcome here, I would recommend against AoE. It is, indeed, the 'bible' of electronics, but it's also huge, expensive, and not terribly helpful for someone who isn't in school for electronics. Great once you know a little more, though.

Of course your opinion is welcome :-D

As a counterpoint, I knew many hobbyists who were not in school for electronics use it to great effect.

Eg, in the Boston artist scene. One girl designed and built a whole bunch of home-brew analog synthesisers. Another guy made a performance art kinetic sculpture that would move and bang on drums and other percussives.

Like I mentioned in my comment, the book by Forrest Mims is a more gentle introduction that can get you started. But if you are hungry for more, AoE is the place to go.

Alright, you've piqued my interest! I've had a couple of electronics projects in mind, mostly audio-related, like building MIDI controllers, experimenting with modular synthesizers, setting up a MIDI-controlled Gameboy synthesizer.

AoE looks pretty good. Some of then intro material I've looked at before doesn't go into much technical detail, and I feel like I'm missing the fundamentals.

But if I want to actually start experimenting with my own circuits, what should I buy? Should I order components one-by-one off of Digi-key when I think I need them? Or is there a nice starter kit of components that would get me started?

Kyzyl gave some great advice below.

I'd only make a few extra comments :

- besides components you'll want at least a breadboard, DC power supply, and multimeter. For tools you'll want needle-nose pliers, wire cutters and a wire stripper. Down the road you will want to consider an oscilloscope and soldering iron but can hold off on those for now. Though if you have access to a university lab or hacker space maybe you can work there instead.

- what's your goal, to learn electronics while making synths, or just to make synths yourself? If you really want to go through the "rabbit hole" as Kyzyl said, besides the AoE text you may really want the students lab manual as well. Even if you don't do the labs, it will show you the material in a logical order, without overwhelming you. Maybe this is the frustration Kyzyl was referring to (ie not using that manual)?

- breadboarding is great for hacking around quickly. But it's also like giving your circuit lots of tiny antennas. And you can pick up radio and other signals through accidental rectification + low-pass filtering almost anywhere. So don't despair if your initial attempts have some interference problems, as eventually you may need to consider good noise-reduction methods, and/or use shielded boxes, shielded coaxial cables, etc.

- for components, you could start with a standard assortments of resistors and capacitors. Get one of those sets of pre-stripped wires for breadboards. You'll probably want a few transistors and op-amps. You but can start off with cheaper components as you're learning and hacking, but will likely want to eventually get some quality audio-grade op-amps.

One more blurb from me :

Check out PAIA Electronics http://www.paia.com

They make DIY audio kits. I built their Fatman synthesiser years ago after graduating university. It sounds great and may give you ideas both on audio generation and midi decoding. It uses an embedded CPU to decode the Midi, and output a voltage linear to the key's pitch. Then has the oscillators (two), filters, low-frequency oscillators, and envelope control. It's a kit you put together, so they give you all the parts. But also they give you schematics. And it could give you some ideas and also a starting place to mod it up yourself. (I had ideas to expound on but never got around to implementing).

If what you're interested in doing is analog/digital synth stuff, the AoE has the information you need. It leaves some gaps and presents it in a way that I am not fond of, but that's just me and I'm far from your typical learner. That said, be prepared for a long, dark rabbit hole ;-)

Depending on the level of "off the shelf" you're looking to deal with, a MIDI controller can be as simple as a USB controlled MIDI chip hooked up to some switches, or as complicated as a manually implemented digital synthesizer that talks to a USB bridge (don't try to implement a USB controller as your first, or tenth project).

Regarding kit/components, the key is trying to strike a balance between knowing what you want before you buy anything, and not waiting too long to start experimenting with real components. You can save yourself a lot of time by simulating the basic circuits in your project using a software like LTSpice[0] or TINATI[1]. They're both free and easy to use. However, simulations are never good enough, and often you don't have a model to simulate some important piece of your circuit, so the picture isn't complete. A good approach is to sketch out the circuits you want, do a quick sim or two to see if the basics like your power supply or oscillator or digital logic are going to basically do what you think, then order all the components you need from digikey. Shipping under $200 costs $8 from digikey, so it pays not to make too many orders. The bonus is that they are extremely timely with their orders (in US and Canada anyhow). Sometimes unbelievably so.

A note when ordering things from Digikey: First, make sure all the parts a in stock (check "in stock" in the search params). Back ordered parts take a long time, and for almost any part you can imagine there is a comparable replacement in stock. Second, when you want low volume stuff you'll be wanting the "cut tape", "bulk", "tube", or "tray" packaging options. "Tape and reel" or "Digi-reel" are for big rolls of one component and this the minimum order is 1000+ units. Almost everything is available in one of the low-volume options.

Regarding kits, take a look at sparkfun[2] for a wide range of boards, kits, etc. They have some good stuff and are targetted at hobbyists. A lot of their products come with not only a datasheet, but also a simplified "hookup diagram" that tells you how to wire everything up for a typical application. You can get some kits of basic components like resistors and caps, but they tend to get pricey and I always found that I would use one or two of the components up and never touch the rest, i.e. use all of the 10k resistors and the 1uF caps and nothing else. If there's a kit specifically for the project you want go for it though.

[0] http://www.linear.com/designtools/software/#LTspice

[1] http://www.ti.com/tool/tina-ti

[2] https://www.sparkfun.com/categories/157

Thank you! That's the best advice I've heard on ordering. If I can get my feet unstuck from their current rabbit-holes, I'll dive into this one.

It really depends on where you want to go with it. I found early on that I learned most by figuring out how to achieve self contained blocks of functionality to accomplish a more elaborate task. For example, to build a tape following robot you need to run the motors, read some IR sensors, implement some kind of PID control, build some kind of regulated power supply, etc. (I learned least from solving circuit problems out of a textbook).

Each of those tasks can pretty well be accomplished by building standalone circuits, none of which are particularly complicated. In the process of building and debugging each one, you'll find you need to figure out how some of the more basic building blocks of electronics work, for example, capacitors, LEDs, opamps, transistors. There are a huge amount of resources out there to learn from. For anything related to arduinos or microcontrollers, just google it. I don't mean to sound condescending, it really is something that can be googled very easily with relatively high quality results (unlike some other areas of electronics, such as analog amplifier design). For some more theoretical stuff, I suggest you check out MIT OpenCourseware as well as video lectures from Standford on youtube. I blundered my way through a physics degree and an electrical engineering degree using those sites. For a more gentle introduction to some electronics concepts and applications, maybe check out this: http://electronics.wisc-online.com/Category.aspx?ID=3

Now the bad news. You can do a lot of futzing around with arduinos and leds, and that's great, but you'll soon find out that it's interaction with sensors and actuators that makes electronics interesting. To do that you will find that you need to build/use external 'hard' circuits, and to do that you will eventually need an oscilloscope. You really can't get too far in the field without one, even if it's just a hacked sound card and audio cable. I say 'bad news' because a new benchtop scope is pretty expensive. A breadboard, some wires and a soldering iron don't hurt either ;-) For components and data sheets, digikey.com and octopart.com are your friends. For breakout boards and other hobbyist accessories, sparkfun.org and adafruit.com are your friends. There's also a arduino plugin for sublimetext, in case you're like me and can't stand using that atrocious java UI.

Growing up in the 80s I had those silly "electronics kits" from Radio Shack where you ran wires between various components to do things. At the same time I was learning BASIC and LOGO and stuff -- I think they were fairly complementary. I wonder if they still make those things?

There are, but now they usually bundle a microcontroller like Arduino. There are tons of them on Sparkfun, Adafruit, and Jameco.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact