Ido Gendel (@igendel)

Self-taught hobbyist turned embedded systems designer, mainly programming 8-bit MCUs and designing PCBs.

3D printing for embedded development

Ido Gendel February 19, 2024

Used mostly for creating little plastic objects, the desktop 3D printer is not an obvious addition to the embedded developer's toolbox. However, if you're looking for more reasons to get one, or already have one that's mostly gathering dust, here are a couple of embedded-related ways to get more value out of it.

The Asimov Protocol

Ido Gendel January 4, 2024

While the Internet is choke-full of explanations of basic data communication protocols, very little is said about the higher levels of packing, formatting, and exchanging information in a useful and practical way. This less-charted land is still fraught with strange problems, whose solutions may be found in strange places – in this example, a very short, 60 years old Science Fiction story.

Flood Fill, or: The Joy of Resource Constraints

Ido Gendel November 13, 2023

When transferred from the PC world to a microcontroller, a famous, tried-and-true graphics algorithm is no longer viable. The challenge of creating an alternative under severe resource constraints is an intriguing puzzle, the kind that keeps embedded development fun and interesting.

The Backstreet Consultant

Ido Gendel September 18, 2023

In the uncharted land between Arduino-wielding kids and qualified electronics engineers emerged an entirely new market for embedded work. In this article, based on my personal experience and observations, I will attempt to outline this young market, the forces operating within it, and the kinds of people involved.

A short history

Up until fifteen years ago, give or take, embedded design was done exclusively by trained professionals: not just because of the required technical know-how, but also...

Re: Help stop the Arduino compiler outwitting me

Reply posted 7 months ago (08/02/2023)
I know about 'Volatile' because I've been bitten by it enough times in the past ;-)

Re: Help stop the Arduino compiler outwitting me

Reply posted 7 months ago (07/31/2023)
First things first, to force the compiler not to optimize loops away, define tstVal as volatile int. Does that produce reasonable results?
...later, I asked it to write Python code [unrelated to embedded] to solve a less trivial problem ("a function to sort a list of integers according to their absolute...
Well, as much as I'm in awe of the thing in general (a machine that takes natural-language descriptive sentences and turns them into code), I couldn't help but laugh...

Re: Another Noddy Question

Reply posted 3 years ago (06/08/2021)
The exact size-in-memory of a struct may depend on the data types, the architecture, the compiler (including keywords/directives like "packed" in C) and even...

Re: Another Noddy Question

Reply posted 3 years ago (06/08/2021)
Putting a unique, never-valid-data value at the end of a list - usually called a "sentinel" - is a classic trick (see C-style strings). But as always, there are...Pros:...

Re: Questions re Coding Efficiency

Reply posted 3 years ago (03/30/2021)
Within a single if statement, most compilers will default to a "lazy evaluation" of the conditions - e.g. if the operator is an OR and the first (leftmost) condition...

Re: What are the odds? (Random Numbers)

Reply posted 3 years ago (02/01/2021)
Indeed, the correct value is hopelessly not 50% - it's actually 2/3 of the produced numbers being below that midpoint. This is caused by careless use of the modulo...

Re: What are the odds? (Random Numbers)

Reply posted 3 years ago (02/01/2021)
There's an Arduino riddle I posted once in my blog: if you produce lots and lots of (pseudo-)random numbers in the range 0 to 1,431,655,765, what percentage of...

Re: Software expands to fill the memory available

Reply posted 4 years ago (11/14/2019)
A little while ago, I used a certain software product to develop a minimal Android App: A blank screen, except for a button in the middle that allowed the user to...

Use this form to contact igendel

Before you can contact a member of the *Related Sites:

  • You must be logged in (register here)
  • You must confirm you email address