Welcome to my life!

Morten Dramstad July 18, 20127 comments

Hi folks!

As an electronic engineer the most of my work is about making new designs where a microcontroller is present in 99.9 % of the applications. Since 2003 I am self-employed and do consultants work for different companies. I have been traveling to different parts of the world doing work for DeLaval International, a company that makes automation equipment for the dairy industry. A lot of the things I have done for them involves use of different Atmel AVR...


10 Software Tools You Should Know

Jason Sachs May 20, 201215 comments

Unless you're designing small analog electronic circuits, it's pretty hard these days to get things done in embedded systems design without the help of computers. I thought I'd share a list of software tools that help me get my job done. Most of these are free or inexpensive. Most of them are also for working with software. If you never have to design, read, or edit any software, then you're one of a few people that won't benefit from reading this. 

Disclaimer: the "best" software...


Lightweight hardware abstraction

Gene Breniman January 31, 2012

Some lessons are tougher than others to master.  You would think that hard fought battles would be easier to remember, but sometimes it just does not work that way.  Recently, I was asked to pick-up a project that had been managed by another employee.  The project was yet another cost reduction project.  The hardware group was tasked with updating a currently shipping product, to reduce the existing failure rate, while at the same time to remove cost from the...


Embedded Software Creation II - European Normative & Legislation

Dr. Maykel Alonso December 20, 20116 comments

In this post I will explain the European Normative. I will answer the main questions and I will be open to answer all the doubts any of you could have. Please leave a comment and I will answer if i could.

Why I need to look and accomplish some standards? 

The main reason is if you want to comercialize the product in the European Union, if exists any European Directive that cover the product, the product must be marked with the CE mark. For USA it work in the same way by the...


C++ on microcontrollers 4 – input pins, and decoding a rotary switch

Wouter van Ooijen November 12, 20112 comments

previous parts: 1, 2, 3

 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...


Modulation Alternatives for the Software Engineer

Jason Sachs November 8, 20111 comment

Before I get to talking about modulation, here's a brief diversion.

A long time ago -- 1993, to be precise -- I took my first course on digital electronics and processors. In that class, we had to buy a copy of the TTL Data Book* from Texas Instruments.

If you have any experience in digital logic design you probably know that TTL stands for Transistor-transistor logic (thereby making the phrase "TTL Logic" an example of RAS...


C++ on microcontrollers 3 – a first shot at an hc595 class with 8 output pins

Wouter van Ooijen November 2, 2011

 previous parts: 1, 2

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.

In the first part of...


A true pioneer passes away... A farewell to Ritchie.

Gene Breniman October 15, 20115 comments

We all have our heroes.  We all have people who were important to our professional developments.  For me, Dennis Ritchie was one of those people.  I was an early adopter of the C programming language.  Back in the very early 80's a friend and neighbor had excitedly shared with me his copy of "The C Programming Language" by Kernighan and Ritchie.  At first I was a non-believer.  I had for several years been a happy and productive assembly language...


Using XML to describe embedded devices (and speak to them)

Martin Strubel October 12, 20111 comment

This article discusses one of the typical development cycles in embedded device and communication design and presents a possible, light weight solution using the free DClib/netpp framework.

The challenge

Assume we're faced with the design of an embedded device, be it a simple SoC unit or a more complex, uC controlled engine with various attached peripherals. From first prototype to the market, the following development cycle is typically walked through:


C++ on microcontrollers 1 - introduction, and an output pin class

Wouter van Ooijen October 9, 20117 comments

 

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.

I am lazy. I am also a programmer. Luckily, being a lazy...


Lightweight hardware abstraction

Gene Breniman January 31, 2012

Some lessons are tougher than others to master.  You would think that hard fought battles would be easier to remember, but sometimes it just does not work that way.  Recently, I was asked to pick-up a project that had been managed by another employee.  The project was yet another cost reduction project.  The hardware group was tasked with updating a currently shipping product, to reduce the existing failure rate, while at the same time to remove cost from the...


Short Circuit Execution vs. Unit Testing

Stephen Friederichs July 7, 20141 comment

The key to effective communication is to say what you mean and avoid ambiguity.  Words and phrases with multiple meanings can confuse your audience and hinder communication. That’s why so many programmers prefer writing code to writing specifications: written human language introduces ambiguity and subsequently, confusion. Code only has one interpretation, period. This doesn’t, however, ensure that the right message is getting through. Code can, indeed, only do one thing,...


Is it a Bug or an Error?

Michael Barr January 31, 20184 comments

Probably you’ve heard the story of how Adm. Grace Hopper attached a moth that was dislodged from a relay in the Harvard Mark II mainframe to an engineering notebook and labeled it the “First actual case of bug being found.”

Designers of electronics, including Thomas Edison, had been using the term bug for decades. But it was mostly after this amusing 1947 event hat the use of words like “bugs” and “debugging” took off in the emerging software realm.

So why is it that if a...


Favorite Tools: C++11 User-defined literals

Matthew Eshleman November 14, 20161 comment

In many software domains units of measurement are frequently critical to the software's data processing requirements. Those same units, or rather the use of the wrong units, are often the source of bugs and disastrous mistakes. Although useful for other purposes, user-defined literals are an excellent addition to the C++11 standard and handy when working with units of measurement.

Suppose a device measures velocity. To help prevent errors, the software specification requires...


Embedded Toolbox: Source Code Whitespace Cleanup

Miro Samek August 5, 2017

In this installment of my "Embedded Toolbox" series, I would like to share with you the free source code cleanup utility called QClean for cleaning whitespace in your source files, header files, makefiles, linker scripts, etc.

You probably wonder why you might need such a utility? In fact, the common thinking is that compilers (C, C++, etc.) ignore whitespace anyway, so why bother? But, as a professional software developer you should not ignore whitespace, because it can cause all sorts...


Tenderfoot: Introduction to Magic (Numbers that is...)

Matthew Eshleman May 10, 20173 comments

Once upon a time, while participating in a source code review, I stumbled across the following C code in a header file:

struct Foo { //various structure fields char string_buffer[45+3]; //buffer requires about 45 bytes };

My right eyebrow raised, I took a note, and continued with the code review, only to later stumble into this line of code in the body of a C function:

char * temp_string_buffer = (char*) malloc(45+3);

Again, I took a note on this function, and continued...


The three laws of safe embedded systems

Michael J. Pont November 12, 20151 comment

This short article is part of an ongoing series in which I aim to explore some techniques that may be useful for developers and organisations that are beginning their first safety-related embedded project.

In the last two weeks, I’ve had the opportunity to discuss the contents of my previous article on this site with a group of very smart and enthusiastic engineers in Cairo (Egypt). As part of this discussion, it has become clear that I should add a few more details to explain the work...


Embedded Software Creation I - Methodologies

Dr. Maykel Alonso June 20, 20112 comments

The first knowledge we need it is to know the posibilities or methodologies that exists to create Software. Each methodology is used to develop diferent types of Software. The types usually are defined by the requeriments and the diferent normative that is related to the type of device. In the next post I will explain how to find the normative@ legislation (link), and how does it work. 

Let's start with methodologies. There are lot's of methodologies and so many people that develop...


Embedded Software Creation II - European Normative & Legislation

Dr. Maykel Alonso December 20, 20116 comments

In this post I will explain the European Normative. I will answer the main questions and I will be open to answer all the doubts any of you could have. Please leave a comment and I will answer if i could.

Why I need to look and accomplish some standards? 

The main reason is if you want to comercialize the product in the European Union, if exists any European Directive that cover the product, the product must be marked with the CE mark. For USA it work in the same way by the...


Software Prototyping

Gene Breniman August 19, 20081 comment

In my recent blog entry on the product development process (way down, near the end of the entry), I wrote the following:

"I continue these sorts of tests, building more and more complexity, until I am satisfied that my circuit is basically functional. Then, using the test code that I have created as a model, I begin to write the real software for my product. As my software grows, to complete the full functionality of my design, I sometime find it useful to drop back to my 'test software'...