Programming Microcontrollers – low power, small footprints, & fast prototypes, using Arduino, Atmel, & GForth

Spread the love

This article explains how to use the Arduino toolchain to program microcontrollers from the Arduino IDE using their bootloaders, and also burning bootloaders directly onto bare microcontroller chips. It covers developing interactively with Forth (rapid prototyping), and moving your creations from a development board (Nano, Uno) to a standalone, low-cost, low-power, small footprint chip such as the ATMega328P or ATTiny85 or ATTiny84. Each of these microcontrollers is powerful, inexpensive, and allows using 3V batteries directly without the need to boost voltage to 5V. Additionally, we describe how to build an inexpensive (under £5), standalone 3-chip Atmel AVR universal bootloading programmer that you can use to program all of the chips above.
Continue reading this article…

Voice-controlled Hardware: Making Sensors Talk for Under £5

Spread the love

Voice controlled hardware requires four capabilities: (1) vocal response to trigger events (sensors/calculations-to-brain), (2) speech generation (brain-to-mouth), (3) speech recognition (ear-to-brain), and (4) speech understanding (brain-to-database, aka learning). These capabilities can increasingly be implemented using off-the-shelf modules, due to progress in advanced low-cost silicon capable of digital signal processing (DSP) and statistical learning/machine learning/AI.

In this article we look at the value chain involved in building voice control into hardware. We cover highlights in the history of artificial speech. And we show how to convert an ordinary sensor into a talking sensor for less than £5. We demonstrate this by building a Talking Passive Infra-Red (PIR) motion sensor deployed as part of an April Fool’s Day prank (jump to the design video and demonstration video).

The same design pattern can be used to create any talking sensor, with applications abounding around home, school, work, shop, factory, industrial site, mass-transit, public space, or interactive art/engineering/museum display.

Bringing Junk Model Robots to life with Talking Motion Sensors (April Fools Prank, 2021)

Continue reading this article…

Protected: Electronic Product Design Concepts for “Dive Into Electronics & Microcontrollers ” Short Course

Spread the love

This content is password protected. To view it please enter your password below:

Fuzzy Classifiers and Quantile Statistics for continuous data monitoring with adaptive thresholds

Spread the love

Abstract This brief note explores the use of fuzzy classifiers, with membership functions chosen using a statistical heuristic (quantile statistics), to monitor time-series metrics. The time series can arise from environmental measurements, industrial process control data, or sensor system outputs. We demonstrate implementation using the R language on an example dataset (ozone levels in New York City). Click here to skip straight to the coded solution), or read on for the discussion.

Fuzzy classification into 5 classes using p10 and p90 levels to achieve an 80-20 rule in the outermost classes and graded class membership in the inner three classes. Comparison with crisp classifier using the same 80-20 rule is shown in the bottom panel of the figure.

Continue reading this article…

LOGIC in a Nutshell: Theory & Application (including a Forth simulator, and digital circuit design)

Spread the love


This article looks at Propositional Logic, also called Statement Calculus, from a combinatorial and algebraic point of view (Sections 3-6), its implementation in software (Section 7), and its application to digital electronics (Section 10). Historical sections cover the shift in viewpoint from classical logic based on Aristotle’s syllogism to modern symbolic logic (Section 2) and the axiomatization of logic (Section 9). (See logic sourcebook for the original source papers (1830-1881) that drove this shift.)

In Section 7, we implement the grammar of the statement calculus in the Symbolic Logic Simulator (SLS), a program written in 28 lines of Forth code, that allows computer-aided verification of any theorem in Propositional Logic (see Appendix 1 for source code). The program makes it straight-forward to explore non-obvious logical identities, and verify any propositional logic theorem or conjecture, in particular see Appendix 2 for key identities in the statement calculus (duality, algebraic, and canonical identities).

The concept of linguistic adequacy is developed in Section 8 and the NAND Adequacy Theorem is proved showing that NAND can generate all logical operations. A corollary is that any digital logic circuit can be built up entirely using NAND gates, illustrated using the free Digital Works software.

Continue reading this article…

How Algebra became abstract: George Peacock & the birth of modern algebra (England, 1830)

Spread the love

In this article we look at the ideas of George Peacock whose 700-page opus A Treatise on Algebra (1830) transformed classical algebra into its modern form as an abstract symbolic science, free from the physical interpretation of quantity that had previously restricted it.

Continue reading this article…

The rise of Mathematical Logic: from Demonstration to Laws of Thought to Foundations for Mathematics

Spread the love


Revised Nov 2022, Jan 2023

In this article we look at the evolution of logic from its earliest form in the demonstration of truths to the rapid development of mathematical logic in the 1800s at the start of the “golden century” of logic (1850-1950). We also look at the rise and surprising dashing of hopes for the formalist program.

Continue reading this article…

Exploring cuneiform culture (8500-2800 BCE)

Spread the love

This is Part 3 in the Ancient Mathematics series. (To read earlier parts: Part 1: Prehistoric Origins of Mathematics, Part 2: The Mathematics of Uruk and Susa).

This article explores what the people of Mesopotamia wrote about, counted and produced in the last part of the fourth millenium BCE. It does so by examining the frequency of signs in the proto-cuneiform tablets from the period c.3500-3000 BCE. For those wishing to build up experiential understanding of life in the Neolithic and early Bronze Age near east, this article provides suitable references as well as practical explorations of the economic and productive activities of the people: rope-making from grass, basket-weaving from reads, baking, weaving of cloth from linen, breaking ground, sowing, reaping, making flour, etc.

The first part of the article look closely at the collection of artifacts in each period that are associated with the evolution of writing and mathematics in ancient Mesopotamia, examining noteworthy individual artifacts that showcase a key development.

The study uses the CDLI database of cuneiform documents, and software I’ve written that parse the files in the CDLI database, extracting counts, parsing signs, generating frequency distributions of signs, creating a proto-cuneiform glossary, and assisting in the quantitative analysis of artifacts and semi-automated translation (see CDLI parser software library written in Ruby).

Continue reading this article…

Seven Fields of Computer Programming: A Brief Survey

Spread the love

Written July 7th, 2012, Revised Jan 12th, 2013, Updated & extended Jan 25th, 2020

There are at least seven distinct fields of computer programming that have less to do with languages and more to do with the target platform, desired functionality, and intended user. This article provides a short introduction to each, intended as a brief orienting survey. These are:
(1) Bare metal programming, not requiring an operating system,
(2) Application programming, in which an operating system is presumed,
(3) Mathematical computing and algorithms, from matrix computations and statistical learning to wavelet compression and cryptography,
(4) Web or Client-Server programming, in which the application lives in a client browser in communication with content generated on-the-fly from programs running on central servers,
(5) Mobile or App programming,
(6) Cloud programming, and
(7) Exotic programming (traditional super-computing, quantum computing, biological computing/soft robotics, deep machine learning).

Continue reading this article…

Stats: 1,089,379 article views since 2010 (Aug '24 update)

Dear Readers:

Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

Reading List…

Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

Mathematics History & Philosophy

  1. What is Mathematics?
  2. Prehistoric Origins of Mathematics
  3. The Mathematics of Uruk & Susa (3500-3000 BCE)
  4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
  5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
  6. Mathematical Finance and The Rise of the Modern Financial Marketplace
  7. A Course in the Philosophy and Foundations of Mathematics
  8. The Development of Mathematics
  9. Catalysts in the Development of Mathematics
  10. Characteristics of Modern Mathematics

Topics in Mathematics: Pure & Applied Mathematics

  1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
  2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
  3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
  4. The Mathematics of Duelling
  5. A Radar Tracking Approach to Data Mining
  6. Analysis of Visitor Statistics: Data Mining in-the-Small
  7. Why Zero Raised to the Zero Power IS One

Technology: Electronics & Embedded Computing

  1. Electronics in the Junior School - Gateway to Technology
  2. Coding for Pre-Schoolers - A Turtle Logo in Forth
  3. Experimenting with Microcontrollers - an Arduino development kit for under £12
  4. Making Sensors Talk for under £5, and Voice Controlled Hardware
  5. Computer Programming: A brief survey from the 1940s to the present
  6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
  7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
  8. Building a 13-key pure analog electronic piano.
  9. TinyPhoto: Embedded Graphics and Low-Fat Computing
  10. Computing / Software Toolkits
  11. Assembly Language programming (Part 1 | Part 2 | Part 3)
  12. Bare Bones Programming: The C Language

Technology: Sensors & Intelligent Systems

  1. Knowledge Engineering & the Emerging Technologies of the Next Decade
  2. Sensors and Systems
  3. Unmanned Autonomous Systems & Networks of Sensors
  4. The Advance of Marine Micro-ROVs

Maths Education

  1. Maxima: A Computer Algebra System for Advanced Mathematics & Physics
  2. Teaching Enriched Mathematics, Part 1
  3. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
  4. A Course in the Philosophy and Foundations of Mathematics
  5. Logic, Proof, and Professional Communication: five reflections
  6. Good mathematical technique and the case for mathematical insight

Explore…

Timeline