Category: Electronics

  • Qualcomm Acquires Arduino

    At todays “blink to think” event a new Arduino board was released, the Arduino Q, however perhaps most important was the announcement that chipmaker Qualcomm had acquired Arduino for an undisclosed amount.

    After watching the entire two hours of announcements I’m not crazy about this but I remain cautiously optimistic.

    My first Arduino was the 2009 Duemilanove followed by multiple other boards, Uno R3, R4, Mega, leonardo, lilypad, Mini, Sense, etc.

    I still have my first breadboarded “Arduino” while getting really into electronics in about 2010.


    Full upfront disclosure: At the time of writing, this author has a very minor holding in Qualcomm shares, purchased in April 2025, shortly after their acquisition of Edge Impulse.

    You see, for years I have been a huge fan of both Arduino and Edge Impulse. I truly believe in AI “at the edge” or on device. TinyML as it was once known ran on select Arduino boards, and has expanded to larger more capable models run on beefed-up dedicated accelerator hardware as well. Large or small, Edge Impulse makes collecting data, training small AI models, and running inference easy. It runs on a bunch of different boards/chips, and that has not changed so far after 6 months under Qualcomm. The founders remain to this date, and this is what I hope for Arduino.
    The Edge Impulse service had been built into the Arduino IDE a while ago in a slick software white labelling which is why todays news seems to make sense to me.

    And while this reads as huge chip conglomerate absorbing a beloved open-source hardware company and community, they didn’t need to buy. They could have just taken, like many clone or knock-off arduino boards, it’s all open and free to do so.

    Some of the community reaction has been negative. Phillip Torrone aka PT of Adafruit has written about, advocated, and contributed to open source hardware for years. There may be literally no one more qualified to talk about open source.
    Recently critical of Arduino’s closed source “Pro” boards and VC funding, he writes about “Turning Maker Dreams into Shareholder Value“. With hints of 2014 documentary Print the Legend as a recent blueprint, I really respect Phil’s views.

    Here is where I feel there might be some hope…

    First, Edge Impulse has so far been allowed to continue independently and continue to support competing silicone.

    Arduino vows to continue to support and add other future vendors.

    Today’s hardware announcement from Arduino runs Debian Linux, runs Zephyr RTOS. The Qualcomm accelerator chip supports OpenGL ES. Qualcomm has a Director of Software – Open Source. The CEO Fabio Violante says there is Gerber files and schematics coming soon for the Arduino Q.
    It supports Qwiic I2C connection made popular by both Sparkfun and Adafruit.

    They seem to really align with many open source initiatives at this point.

    Sure this could change at any time. Time will tell.

    I’ve got two on pre-order.


    Like I said, at this point I’m cautiously optimistic.

  • CircuitPython in 2025

    This post is a wishlist for CircuitPython in 2025. Each year Adafruit asks the community to contribute their thoughts or requests for the open source microcontroller language as outlined on the Adafruit blog.

    In 2025 I would like a library for working with vectors, similar to that of p5.js Vector.

    Early this year I spent some time re-visiting the MatrixPortal M4, specifically trying to reproduce some of the examples found in the excellent book Nature of Code by Daniel Shiffman on two 64×32 RGB LED panels.

    This latest book uses JavaScript, and the p5.js library to simulate natural systems. A rewrite of the original book using Processing.
    I had some success getting the first few examples to work with DisplayIO and CircuitPython.

    Particles created with a random vector and magnitude, affected by “gravity”.

    I was able to do some of the basic matrix addition / subtraction / multiplication etc. with custom functions but where I started to run in to some difficulty was with some of p5.Vector handy methods:
    limit() – Limits a vector’s magnitude to a maximum value.
    heading() – Calculates the angle a 2D vector makes with the positive x-axis.
    rotate() – Rotates a 2D vector by an angle without changing its magnitude.

    Looking back this year at some of my CircuitPython projects, I definitely levelled up on displayio and enjoyed the Live streams of FoamyGuy, JP’s workshop, and of course Adafruit’s Show & Tell.
    I appreciate the contributions from all the Adafruit developers as well as the community.

    My commitment this year will be to “Use what you have” and hopefully contribute if I can.

    #circuitpython2025

  • RGB Input Range Sliders

    0 20 0

    A fun little challenge to myself this week was putting together these HTML input range type sliders to control the color of an LED.
    Each color channel change triggers an update to read the value, convert it to a hex code (eg. #FF0000), update the output element value, and finally update the color picker swatch. The color input can also be used as a standard color picker. When a color is selected and the user clicks off the picker, the three sliders get updated appropriately.

    Now, input range type sliders have been notoriously difficult to style in the past and I’ll admit I’m running this on Chrome only for myself.
    As these sliders in Chrome are normally blue I only needed to style two simply with accent-color: red;accent-color: green;

    On my local network I’m running a webserver on a tiny mircocontroller. When a client posts the form data, the LED on the ESP32-S3 changes color. That color persists and any new connections open the page with the latest assiged color.

    Adafruit QTPY ESP32-S3

    [EDIT: The slider broke after a browser update. Turns out setting height is now required. The final CSS is:
    input[type="range"] { writing-mode: vertical-lr; direction: rtl; appearance: slider-vertical; height: 6rem; vertical-align: bottom; margin: 1rem 0rem;}]

  • Matter as a Smart home standard

    Matter is the name of the smart home standard that promises to bridge IOT devices and different home eco-systems. Amazon Alexa, Google Home, Apple Homekit, Samsung SmartThings, etc.

    To prevent 6+ flavours of smart lightbulbs working with 6+ different apps, a standard needed to be found.

    When I first heard about the Matter standard I thought it made sense and decided to test it out. In January 2024 Arduino announced a partnership with SiLabs to produce a Matter enabled board. It uses the same chip as Sparkfun’s Thing Plus Matter – MGM240P – Consider me “on-board”. I bought the Sparkfun board.

    Sparkfun's Thing Plus Matter - MGM240P

    I <3 Sparkfun and their documentation and videos are excellent. However what followed was all new experiences for me, including using SiLabs IDE to Flash and program the device. What, no Arduino or MicroPython? (Turns out there is now an Arduino example.) I eventually kind-of figured out the SiLabs “Simplicy Studio 5” development environment. https://learn.sparkfun.com/tutorials/connecting-thing-plus-matter-to-google-nest-hub

    My idea was that Matter was an open standard and works across home ecosystems. However what followed was Vendor IDs and Product IDs authentication, command line conjuring, and QR code scanning.

    In the end my oringinal Google Home is not a Thread Border Router and not capable of the example. oof.
    However the board is listed as being able to run CircuitPython.
    https://circuitpython.org/board/sparkfun_thing_plus_matter_mgm240p/
    Most of the time this involves clicking a button twice quickly and dragging over a .UF2 file. Not so on the MGM240P
    This article helped me out https://community.silabs.com/s/share/a5U8Y000001a2QoUAI/introducing-circuitpython-support-for-silabs-xg24-boards?language=en_US
    Back to SiLabs Simplicity Studio to install Simplicy Commander Tool, flash the .BIN.
    And after all that, it still does not simply show as a mounted drive like almost all CircuitPython boards. It requires the PIP installed ampy to run .py programs.

    As someone who usually feels quite comfortable with embedded systems, this felt confusing.

    Looks like it will take some time for Matter development to be easier.

    As for now…

    Adafruit CircuitPython 9.0.3 on 2024-04-04; Sparkfun Thing Plus MGM240P with MGM240PB32VNA
  • Generative Art on a Round TFT Display

    I spent a lovely snowy afternoon using Adobe Firefly to generate images to for a 2.1″ 480x480px round TFT display. The results look amazing.


    Using the IOT capable Adafruit Qualia Board and 2.1″ Round TFT with capacitive touch it’s programmed using CircuitPython.

    I look forward to getting it animated and taking advantage of the touch and internet capabilities.