
Introducing The VolksEEG Project
IntroductionThe VolksEEG project is an open-source project with the goal of creating an electroenchephalogram (EEG) machine, fully cleared by the FDA for standard clinical use. All designs will be freely available for others to manufacture.
The project was founded by Alan Cohen, a medical device systems engineer with an electrical engineering/software (EE/SW) background in Boston, USA, and Dr. Bryan Glezerson
Video-Based STEM Embedded Systems Curriculum, Part 2
Contents:- Introduction
- Lesson Plan 1: Introducing Arduino
- Lesson Plan 2: Circuit Drawings With Fritzing
- Lesson Plan 3: Basic Electronics
- Coming Soon
This post continues from part 1. It contains the first three lesson plans.
Lesson Plan 1: Introducing ArduinoThis lesson is first because Arduino is the simplest programming environment, yet allows lots of interaction with hardware. In...
Video-Based STEM Embedded Systems Curriculum, Part 1
Contents:- Introduction
- Adapting To Your Circumstances
- Suggested Policies
- The Video Educators
- Equipment, Books, and Supplies
- Lesson Summary
- Suggested Teaching Method
Review: Prototype to Product
Prototype to Product: A Practical Guide for Getting to Market, by Alan Cohen, is a must-read for anyone involved in product development, whether in a technical, management, or executive role.
I was reminded of it by Cohen's recent episode on Embedded.fm, 388: Brains Generate EMF, which is worth listening to a couple times through, especially if you're interested in medical device development. And in fact his first episode there,
The 2021 DSP/ML Online Conference
The 2021 DSP/ML Online Conference is just around the corner and this year again, the program is packed with opportunities to learn.
By registering for the conference, not only will you have full access to all talks, workshops, and Q&A sessions at this year's event, but you'll also gain instant access to all talks from last year's edition.
We've asked the speakers to tell me a few words about their sessions, here are some of the answers we've...
Definite Article: Notes on Traceability
Electronic component distibutor Digi-Key recently announced part tracing for surface-mount components purchased in cut-tape form. This is a big deal, and it’s a feature that is a good example of traceability. Some thing or process that has traceability basically just means that it’s possible to determine an object’s history or provenance: where it came from and what has happened to it since its creation. There are a...
Learning From Engineering Failures
Contents: IntroductionI'm an informal student of engineering failures. They guide a lot of my attitude and approach towards engineering.
This is rooted in two of my favorite quotes:
- George Santayana: Those who do not remember the past are condemned to repeat it.
- Louis...
Acceptance Tests vs. TDD
Contents:Embedded Online Conference 2021 - Watch the Speakers Share their Thoughts on the Value for Attendees
Over the last few weeks, we've had a chance to chat with some of the speakers at the upcoming Embedded Online Conference. We asked them to share their thoughts on conferences and the Embedded Online Conference in particular. Here are their answers edited together in one video:
If you are not registered yet for the conference but are considering it, please make sure to use the promo code ER149 to save more than 40% on your registration...
8 Weeks - 8 Giveaways!
If for some reason, you've been putting off registering for the upcoming 2021 Embedded Online Conference, here are 8 good reasons to register today.
The idea is simple; if you are registered for the conference by the 'raffle date' for any of the following giveaways, you'll automatically be entered into the draw.
So for instance, if you are already registered for the conference or register before March the 22nd, you'll be automatically entered into the 8 draws...
Unit Tests for Embedded Code
I originate from an electrical engineering background and my first industry experience was in a large, staid defense contractor. Both of these experiences contributed to a significant lack of knowledge with regards to software development best practices. Electrical engineers often have a backwards view of software in general; large defense contractors have similar views of software and couple it with a general disdain for any sort of automation or ‘immature’ practices. While there...
NULL pointer protection with ARM Cortex-M MPU
This post explains how you can set up the ARM Cortex-M MPU (Memory Protection Unit) to protect thy code from dragons, demons, core dumps, and numberless other foul creatures awaiting thee after thou dereference the NULL pointer.
Went 280km/h (174mph) in a Porsche Panamera in Germany!
Those of you who've been following my blog lately already know that I am going through some sort of mid-life crisis that involves going out there to meet people and make videos. It all started with Embedded World early this year, then continued at ESC Boston a couple of months ago and the latest chapter just concluded as I returned from Germany after spending a week at SEGGER's headquarters to produce a video to highlight their 25th anniversary.
Three more things you need to know when transitioning from MCUs to FPGAs
Take a look at three more important difference between FPGAs and MCUs: "code reuse" vs templating, metastability and blocking vs. non-blocking operations.
Interfacing LINUX with microcontrollers
IntroductionI am increasingly asked to work on small spare time projects where a user needs to control some device over the INTERNET. Recently, a friend needed to control heater relays and measure the temperature of its geographically distant secondary house. Another case relates to the control of a pan tilt home monitoring camera. A last one is the control of an old XY plotter DACs.
In both applications, the user wants to access the system over a web browser using HTTP. From the user...
Linear Feedback Shift Registers for the Uninitiated, Part VIII: Matrix Methods and State Recovery
Last time we looked at a dsPIC implementation of LFSR updates. Now we’re going to go back to basics and look at some matrix methods, which is the third approach to represent LFSRs that I mentioned in Part I. And we’re going to explore the problem of converting from LFSR output to LFSR state.
Matrices: Beloved Historical DregsElwyn Berlekamp’s 1966 paper Non-Binary BCH Encoding covers some work on
Short Takes (EE Shanty): What shall we do with a zero-ohm resistor?
In circuit board design you often need flexibility. It can cost hundreds or thousands of dollars to respin a circuit board, so I need flexibility for two main reasons:
- sometimes it's important to be able to use one circuit board design to serve more than one purpose
- risk reduction: I want to give myself the option to add in or leave out certain things when I'm not 100% sure I'll need them.
And so we have jumpers and DIP switches and zero-ohm resistors:
Jumpers and...
Linear Feedback Shift Registers for the Uninitiated, Part XV: Error Detection and Correction
Last time, we talked about Gold codes, a specially-constructed set of pseudorandom bit sequences (PRBS) with low mutual cross-correlation, which are used in many spread-spectrum communications systems, including the Global Positioning System.
This time we are wading into the field of error detection and correction, in particular CRCs and Hamming codes.
Ernie, You Have a Banana in Your EarI have had a really really tough time writing this article. I like the...
Data Types for Control & DSP
There's a lot of information out there on what data types to use for digital signal processing, but there's also a lot of confusion, so the topic bears repeating.
I recently posted an entry on PID control. In that article I glossed over the data types used by showing "double" in all of my example code. Numerically, this should work for most control problems, but it can be an extravagant use of processor resources. There ought to be a better way to determine what precision you need...
Supply Chain Games: What Have We Learned From the Great Semiconductor Shortage of 2021? (Part 4)
Today we’re going to look at what’s been going on this past year in the chip shortage, particularly in the automotive markets. I’m going to share some recent events and statements that may shed some light on what’s been happening.
In Part Three we went through a deep dive on some aspects of Moore’s Law, the semiconductor foundries, and semiconductor economics, and we looked at the game Supply Chain Idle. We touched on a couple of important points about the...
Important Programming Concepts (Even on Embedded Systems) Part VI : Abstraction
Earlier articles:
- Part I: Idempotence
- Part II: Immutability
- Part III: Volatility
- Part IV: Singletons
- Part V: State Machines
We have come to the last part of the Important Programming Concepts series, on abstraction. I thought I might also talk about why there isn’t a Part VII, but decided it would distract from this article — so if you want to know the reason, along with what’s next,
Complexity in Consumer Electronics Considered Harmful
I recently returned from a visit to my grandmother, who lives in an assisted living community, and got to observe both her and my frustration first-hand with a new TV. This was a Vizio flatscreen TV that was fairly easy to set up, and the picture quality was good. But here's what the remote control looks like:
You will note:
- the small lettering (the number buttons are just under 1/4 inch in diameter)
- a typeface chosen for marketing purposes (matching Vizio's "futuristic" corporate...
C++ on microcontrollers 4 – input pins, and decoding a rotary switch
This blog series is about the use of C++ for modern microcontrollers. My plan is to show the gradual development of a basic I/O library. I will introduce the object-oriented C++ features that are used step by step, to provide a gentle yet practical introduction into C++ for C programmers. Reader input is very much appreciated, you might even steer me in the direction you find most interesting.
So far I...
Scorchers, Part 3: Bare-Metal Concurrency With Double-Buffering and the Revolving Fireplace
This is a short article about one technique for communicating between asynchronous processes on bare-metal embedded systems.
Q: Why did the multithreaded chicken cross the road?
A: to To other side. get the
There are many reasons why concurrency is
Arduino robotics #2 - chassis, locomotion and power
Arduino RoboticsBeginner robotics is a series of article chronicling my first autonomous robot build, Clusterbot. This build is meant to be affordable, relatively easy and instructive. The total cost of the build is around $50.
1. Arduino robotics - motor control2. Arduino robotics - chassis, locomotion and power3. Arduino robotics - wiring, coding and a test run4.Linear Feedback Shift Registers for the Uninitiated, Part II: libgf2 and Primitive Polynomials
Last time, we looked at the basics of LFSRs and finite fields formed by the quotient ring \( GF(2)[x]/p(x) \).
LFSRs can be described by a list of binary coefficients, sometimes referred as the polynomial, since they correspond directly to the characteristic polynomial of the quotient ring.
Today we’re going to look at how to perform certain practical calculations in these finite fields. I maintain a Python library called libgf2,...
Coding Step 3 - High-Level Requirements
Articles in this series:
- Coding Step 0 - Development Environments
- Coding Step 1 - Hello World and Makefiles
- Coding Step 2- Source Control
- Coding Step 3 - High-Level Requirements
- Coding Step 4 - Design
If this series of articles has been light on one thing it's 'coding'. If it's been light on two things the second is 'embedded'. In three articles I haven't gotten past Hello World on a desktop PC. That changes (slowly) with this article. In this article I'll...
Sensors Expo - Trip Report & My Best Video Yet!
This was my first time at Sensors Expo and my second time in Silicon Valley and I must say I had a great time.
Before I share with you what I find to be, by far, my best 'highlights' video yet for a conference/trade show, let me try to entertain you with a few anecdotes from this trip. If you are not interested by my stories or maybe don't have the extra minutes needed to read them, please feel free to skip to the end of this blog post to watch the...
How to Analyze a Differential Amplifier
There are a handful of things that you just have to know if you do any decent amount of electronic circuit design work. One of them is a voltage divider. Another is the behavior of an RC filter. I'm not going to explain these two things or even link to a good reference on them — either you already know how they work, or you're smart enough to look it up yourself.
The handful of things also includes some others that are a little more interesting to discuss. One of them is this...
Wye Delta Tee Pi: Observations on Three-Terminal Networks
Today I’m going to talk a little bit about three-terminal linear passive networks. These generally come in two flavors, wye and delta.
Why Wye?The town of Why, Arizona has a strange name that comes from the shape of the original road junction of Arizona State Highways 85 and 86, which was shaped like the letter Y. This is no longer the case, because the state highway department reconfigured the intersection
