bitgloo

  • Birding #2: Crescent Beach State Park

    While not necessarily a popular spot for birding, Crescent beach is a calm, quiet spot in the off-season that my wife and I like to frequent. The beach is even more unusual in the winter with half-plowed roads, a handful of parked cars, and a coating of snow that gives …

    Read more...

  • Birding #1: Capisic Pond

    For an early start on my 2026 resolution to make birding a more consistent hobby, I took a Sunday morning visit to Capisic Pond. It's a small, thin strip of pond and park around a quarter-mile long, just a short drive from home. The Maine Birding Trail guide (an Xmas …

    Read more...

  • Mapping the 180k IPs of git repo crawlers

    For the past few years I have been running a Gitea instance at code.bitgloo.com where I host git repositories for personal and professional projects. In the past couple of weeks, my server (a poor toaster NAS) began to get slammed at this domain: traffic was coming from seemingly …

    Read more...

  • I2S master emulation with SPI peripheral

    Background

    My journey to realize ultra-low-power audio sensing has been based around I2S MEMS microphones and ESP32 and STM32 microcontrollers. I first developed a more efficient A-weighting filter while I transistioned to the STM32 family, a choice made since ESP32 simply cannot do low-power data acquisition.

    The next step is …

    Read more...

  • Monitoring idle time and maximizing MCU peripherals

    I've been working on firmware for a board with numerous analog inputs, analog outputs, diagnostics collecting, and I/O with an Ethernet module. An STM32F3 microcontroller was chosen for the job, with ST's MX code generating providing the HAL and FreeRTOS (a big help in bringing up the board faster …

    Read more...

  • Setting up Ada for an STM32 microcontroller

    Ada is an old programming language that prioritizes correctness and safety through specifications made at compile-time; for example, types can be constrained to a specific range (e.g. 0 .. 10), so if your Delay function takes a Milliseconds argument between zero and 10,000, then the Ada compiler will ensure …

    Read more...

  • Designing an efficient A-weighting filter

    A-weighting is often used when measuring sound pressure (i.e. loudness) to make a recorded audio clip more representative of what would be perceived by the human ear. It works by increasing or decreasing the magnitude of audio frequencies according to what humans can hear. This leads to the A-weighted …

    Read more...

  • Alee

    Alee aims to prove the effectiveness of programming microcontrollers in Forth for both education as well as production. It consists of two projects:

    • Alee Forth, a compact, portable, and standards-compliant Forth implementation.
    • Alee devboard, an Arduino-form-factor development board featuring an MSP430FR microcontroller with FRAM.

    The word alee is a nautical …

    Read more...

  • DSP PAW

    source repo: https://code.bitgloo.com/bitgloo/dsp-paw
    hackaday: https://hackaday.io/project/190725-dsp-paw

     

    The DSP PAW project provides a complete solution for hands-on teaching of digital signal processing (DSP). It began as my capstone project during university, continued as an undergraduate research project, and has further grown towards a …

    Read more...

  • stm-game

    stm-game was a personal project meant for studying some low-power design concepts, in the form of a small, hand-held gaming device. This project also involved my first attempt at designing, ordering, and soldering together a PCB prototype.

    The device is built around the STM32L011F4 in its TSSOP20 package. This microcontroller …

    Read more...