Getting Started with Electronics

So you’re thinking of getting into electronics design? I think that’s a great idea. I have to warn you though, It’s going to take some work. While I’m no hardcore grizzled veteran, I’ve been at this long enough now to be able to reflect a little bit about the journey and offer a little advice for anyone starting out in the field. Electronics can be a very intimidating subject to the outsider with layers and layers of difficult subject material loaded with jargon. It doesn’t help that people commonly in possession of the knowledge often aren’t all that keen on sharing what they view as their job security. So what’s the best path for a newbie? I get asked this question often enough that I thought I’d write up a stock response.

Where to Start

You’ve got to start somewhere. I spent years on the periphery, reading magazine articles and obsessing about recording equipment before I had the realization that I wanted to learn how to design it myself. I’d been to school a couple times before, so I went with what I knew.

School?

Call it old school, but I went to school (it was old; Thomas Jefferson started it) to study electrical engineering. To me, there is no complete substitute for serious education when it comes to a difficult technical subject, like electronics. While there are many exceptions, people I’ve worked with in the field, without a rigorous academic degree, often have gaps in their knowledge stemming from the fact that they haven’t been exposed to the underlying theoretical bases. For example, it’s one thing to understand that adjusting a capacitor’s value will adjust a filter’s frequency and another to anticipate the effect of coupling between parallel traces on a PCB caused by unwanted capacitance. Applied Electromagnetics is not an easy subject. There’s just no way I would’ve learned it on my own. Most people who don’t go the school route will probably never learn it either and they’ll lack a fundamental building block of electronics knowledge. What they’ll be lacking is a piece of the problem solving repertoire required to work quickly and effectively. There are many other similar subjects. That said, I have met truly exceptional engineers who have never attended a day of formal engineering education. What these people seem to have possessed was both an undying commitment to learning the art and the benefit of a strong mentor.

Many people just don’t have the opportunity to attend a traditional engineering school, and for them, we are at the dawn of a new day. Massive Open Online Courses (MOOCs) are just getting started. You can take an MIT introductory electronics class for free. You can also take a large number of programming classes from a number of MOOC providers. However, to get the most out of it, you’ve really got to apply yourself. You don’t get the benefit of being motivated by an interested professor or by the need to get the most out of your education dollar. If you’re going to go this route, you’ll need to be your own taskmaster to make sure that you truly learn the subject.

Books?

Even if you were able to get a formal engineering education, you’ll always need books to learn new things. I’m working, albeit slowly, to make some of the things that I learn available for free. But, the serious engineering masters seem to broadly require a fee for their knowledge, the price of their book. You can’t blame them for monetizing their knowledge, but it confines the best engineering writing to textbooks. You can scour the web and find tidbits, like mine with examples that show you how to build something, but some of it isn’t written very well (sorry) and a lot of it is just copying an implementation. With the latter, you’ll never understand how it really works, only how to build this example. You can copy it, but what happens when you incorporate it into a larger system and the behavior changes? The best method is to start from the basics and build on them. Old-fashioned books are still the best source of complete information on electronics design from the ground up. By far, my favorite book of all time on the subject of fundamentals of electronics is The Art of Electronics. It’s got all the basics covered and it’s written in a more prosaic, less jargon and math focused way that is rewarding for the rookie reader. It’s pretty old though and won’t help you with embedded systems development. For embedded programming, I got some miles out of Michael Barr’s book Programming Embedded Systems. There are many books about embedded hardware development, but most of what I know on this subject, I learned by doing.

Hands-On

I was able to build solid knowledge foundations in school, but I feel like most of what I really deeply learned came from working, building, and doing. The good news is that the maker movement has produced a wide array of hands-on starter kits and tools. If you don’t know Arduino, you should. It is by far the easiest way to get started with embedded electronics and with the wide availability of shields, hardware extensions, it’s a great way to learn. It’s also a convenient medium for quick development, even used by “serious” professionals to make prototypes. Last year, the Raspberry Pi came out featuring some serious embedded hardware.  If you’re more interested in higher-level embedded software development, particularly with Linux, it could be the way to go. There are quite a few of these pre-built embedded foundation systems available and more and more all the time. There seems to be an emerging hardware battle for systems built around ARM microcontrollers. It’s a good time to be a nerd.

On the hardware side, there are many vendors of quality introductory electronics kits. Most people know about Adafruit and Sparkfun, both of whom sell quality novice electronics kits. Find a kit that does something that interests you. Build it. Then, understand how it works. Modify it. Make it do something else. Make it work better. 

Smart People

Beginning in electronics can be scary, but there’s no better antidote to that than knowledge. I catch myself, when speaking to someone who wants me to work on something I haven’t yet and don’t understand, with a moment of internal panic. I have to reassure myself that, with enough effort, this too I can learn. There’s no shame in the answer, “I don’t know.” In fact, it’s often the best response because it presents a learning opportunity. Finding smart people with the answers is a great thing, particularly if they’re willing to share them. I often find that nerds are so happy to find someone interested in what they do, they’ll gladly spend some time to teach it to you.

Go Forth

Building and making is a profoundly human endeavor. It satisfies our desire to create. No matter which way you decide to go about it, it’s important just to start. Without taking that first step, you’ll never understand it. If you need encouragement, just let me know…

 

 

RTOS Quick Tour

freertos image Here’s the scenario: you’ve got a microcontroller-based synthesizer. The synthesizer has a lot to do. It needs to check inputs like potentiometers, sliders, and keys. It needs to indicate its state to the user with LEDs and displays. And most importantly, it needs to generate noise. The standard method of handling all these tasks is to order them in a loop and handle them one at a time ad infinitum. But, not all of these tasks are as important as the other tasks. How can they be sorted and how can the system ensure that the most important tasks are handled before tasks of lesser importance? Let’s dig in. Continue reading

K-DSC-1: Microcontroller Selection

STM32 ARM Processor

A wise grizzled old engineer once told me that the most important rule of embedded engineering is, “Always use quality tools.” Without quality tools that you can 100% trust, you’ll never be certain of the source of a problem. You’ll constantly be asking yourself, “Is it me or is it the tools?” I’ve validated this engineer’s axiom multiple times, staring for glacial epochs staring at code which should work but doesn’t. I once spent a solid month tweaking and tweaking simple code only to find in the end that a manufacturer’s compiler was incapable of executing logical shifts correctly. I’ve vowed in the past never to suffer again and I reinforced my opinion during this microcontroller selection process. That’s a later part of this story. First, let’s look at how I started this selection process.

Continue reading

Synth Cube Update

Work continues on the K-DSC-1 synth cube. I’ve settled on a microcontroller. This cube’s going to run an ARM processor, which is going to provide lots of processor overhead for a sweet well-featured sequencer. We’re planning some cool features. There will be a USB port, a standard MIDI jack, and the K-Connect jack for hooking cubes together. What’s really going to make this awesome though will be the interface. We’ve put some good thought into the button operation, but the killer will be the accelerometer tilt action. I’m really excited about how it’s going to turn out.

I’ve been learning quite a bit about working with ARM processors and open source tools for developing with them. Stay tuned for some technical posts about what I’ve found.

Kinektron K-DSC-1

I’ve finally settled into my new project and I’m ready to announce it. I was toiling away on a sequencer of my own for a while, a product to which I plan to return, but I’m changing gears to work with other people for a change, building the K-DSC-1 Synth Cube. It’s going to be super awesome and totally unique. I’m working on the electronics hardware and software while the other fellas work on the case design. This will have a proper enclosure made by real mechanical designers, something which I have found difficult to accomplish on my own. The fundamentals of the synth cube are:

  • 8×8/16 step sequencer
  • Accelerometer interface (tilt and shake)
  • General MIDI synth engine
  • Really solid polyphony with drum parts and synth lines together
  • Delay effect
  • USB-MIDI and DIN MIDI
  • USB Bootloader
  • Computer programming interface

That’s a bit of it. It’s ideally going to be the first in a series of interconnectable cubes. We’ve got plans for a whole bunch and they’ll all work together. It’s going to be great for noodling, writing, and really fun for performing. I’m working with some clever guys and I’m really hopeful that it’s gonna be fun to use and a really innovative design.

 

Rockit Firmware 1.12

Rockit firmware 1.12 is available. The changes are mostly limited to MIDI. I’ve implemented a soft MIDI Thru. Messages not intended for Rockit, meaning on a different channel, are passed through to the MIDI Output. The MIDI channel can now be changed. To change the MIDI channel, hold down the Select button until the display starts flashing. Then, use the Save and Recall buttons to change the MIDI channel. Finally, hold down the select button until the display stops flashing and that’s it. Otherwise, I fixed a bug that caused the audio to stop when the arpeggiator was running and drone mode was entered. That’s about it. Some other transparent changes were made for an improvement in the number of clock cycles required to perform various tasks. Have some fun and let me know if you find any funny business going on. Download the hex file here.

HackMe at Chicago Mini-Maker Faire

I’ll be setting up a booth at the Chicago Mini-Maker Faire this Saturday, April 21st at the Carl Shurz High School. Stop by, chat, and play with my creations. Rockit and Sprockit will be available built and in kit form at special Maker Faire discounted prices. Check out the poster for the event. I’m looking forward to meeting fellow nerds and makers.

makerfaireposter