Skip to content
Avatar
🐿️
oh nuts
🐿️
oh nuts

Achievements

Achievements

Block or Report

Block or report ardnew

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ardnew/README.md

The following software is all personally authored and free for public use unless noted otherwise.

PGP/SSH public keys are kept securely at ardnew.com/keys, backed up here on GitHub at ardnew/keys.

Pull requests, criticism, and donations welcome. No refunds.

Each repository is assigned a subjective color code (㏄) to indicate its status and general quality. See Color Code for definitions.

Go

Modules

Repository Documentation Description
🟦 ardnew/mcp2221a GoDoc Go module for the MCP2221A USB to I²C/UART Protocol Converter with GPIO
🟦 ardnew/ft232h GoDoc Go module for FTDI FT232H USB to GPIO/SPI/I²C/JTAG/UART protocol converter
🟦 ardnew/ipseq GoDoc Go module to parse and iterate over IPv4 address intervals
🟦 ardnew/lsi GoDoc Go module to follow elements of a file path
🟧 ardnew/version GoDoc Go module to easily embed semantic versioning compliance with change history
🟧 ardnew/oibot -- Go package for controlling iRobot Create 2 robots using Open Interface (OI) specification

Shell integration

Repository Command Target/Host Description
🟦 ardnew/gosh cmd/gosh Linux Launch shell with YAML-driven environment
🟦 ardnew/gosh cmd/goshfun Linux Generate command-line interface for Go library functions

Utility

Repository Command Documentation Description
🟦 ardnew/roster roster GoDoc Check which files have changed using configurable directory index file
🟦 ardnew/ipseq cmd/ipseq GoDoc Print IPv4 addresses in ranges similar to seq from GNU coreutils
🟩 ardnew/lcpre lcpre -- Determine the longest common prefix among multiple strings (e.g., common ancestor directory)
🟦 ardnew/lsi cmd/lsi GoDoc Follow elements of a file path similar to namei from util-linux
🟦 ardnew/svngrab svngrab GoDoc Export, merge, and package paths from SVN repositories per YAML configuration file
🟦 ardnew/erro erro GoDoc Echo formatted text to stderr
🟧 ardnew/wslpath wslpath GoDoc Convert between Windows and Linux file paths in WSL
🟧 ardnew/mkgo mkgo GoDoc Create a Go main module using template source file

Build Tools

Repository Description
🟦 ardnew/go-Makefile A flexible Makefile for Go "command" projects (native and cross-compilation)

Raspberry Pi

Repository Command Target/Host Description
🟩 ardnew/rpireboot rpireboot Linux (systemd) Raspberry Pi service to reboot system on GPIO interrupt
🟨 ardnew/remax remax Linux Maximize serial terminal based on current window size

TinyGo

Microcontrollers (board support)

Repository Branch Target/Host Hardware Support
🟦 ardnew/tinygo board/teensy40 PJRC Teensy 4.0 GPIO, NVIC, ADC, UART, I²C, SPI, USB FS/HS
🟦 ardnew/tinygo board/teensy41 PJRC Teensy 4.1 GPIO, NVIC, ADC, UART, I²C, SPI, USB FS/HS
🟦 ardnew/tinygo board/arduino-portenta-h7 Arduino Portenta H7 Dual-core (Cortex-M7 + Cortex-M4), synchronized GPIO via hardware semaphore (HSEM), USB HS/FS
🟦 ardnew/tinygo board/grandcentral-m4 Adafruit Grand Central M4 GPIO, NVIC, ADC, PWM, UART, I²C, SPI, USB
🟦 ardnew/tinygo board/matrixportal-m4 Adafruit Matrix Portal M4 GPIO, NVIC, ADC, PWM, UART, I²C, SPI, HUB75
🟦 ardnew/tinygo board/feather-stm32f405 Adafruit STM32F405 Feather GPIO, UART, I²C, SPI

Core (machine, runtime)

Repository Branch Target/Host Description
🟨 ardnew/tinygo feature/usb-common * Common (target-agnostic) USB device-only driver — CDC-ACM, HID, and composite device classes (includes virtual serial/UART and HID keyboard drivers). Current support: Teensy 4.0/4.1; partial support: Arduino Portenta H7

import "tinygo.org/x/drivers" (peripheral drivers)

Repository Branch Target/Host Interface Description
🟦 ardnew/tinygo-stusb4500 stusb4500 * I²C STUSB4500 USB PD sink controller
🟦 ardnew/drivers rgb75 ATSAMD51 GPIO HUB75 RGB LED matrix panel
🟦 ardnew/drivers stm32f4-spi STM32F4 SPI ILI9341 TFT LCD (Adafruit STM32F405 Feather)
🟦 ardnew/drivers teensy40-spi MIMXRT1062 SPI ILI9341 TFT LCD (Teensy 4.0/4.1)

Arduino

Repository Target/Host Description
🟦 ardnew/portenta-tools Arduino Portenta H7 Build and debug tools for Arduino Portenta H7
🟦 ardnew/STUSB4500 Arduino Arduino library for real-time capabilities of the STUSB4500 USB PD sink controller
🟩 ardnew/StatusLED Arduino Single-LED RGB driver for Arduino, intended for use with onboard Neopixel/DotStar/RGB LEDs
🟧 ardnew/timecard Arduino PyPortal (Arduino) application to track hours charged to projects
🟧 ardnew/ILI9341-Layout-Manager Arduino An autolayout engine with callback support for designing and organizing buttons, text fields, and modal windows for ILI9341 chipsets
🟧 ardnew/XPT2046_Calibrated Arduino XPT2046_Touchscreen library (Paul Stoffregen) fork with added 3-point calibration
🟧 ardnew/upd-layman Arduino USB-C Power Delivery protocol analyzer and sink controller with versatile touchscreen interface
🟧 ardnew/pwsens-8266 Arduino Voltage and current monitor with Adafruit INA260 for the Heltec WiFi Kit 8 OLED

STM32

Repository Target/Host Description
🟦 ardnew/ILI9341-STM32-HAL STM32 ILI9341 color TFT display and XPT2046 touchscreen driver for STM32 using HAL SPI with DMA
🟦 ardnew/INA260-STM32-HAL STM32 INA260 voltage/current sensor driver for STM32 using HAL I²C

Perl 5

Repository Command Target/Host Description
🟩 ardnew/bases bases * Evaluate and print expressions in various bases
🟩 ardnew/chars chars * Print ASCII and regular expression character class tables
🟦 ardnew/jlink-core-id jlink-core-id * Get CPU core identifier for target board by name
🟧 ardnew/perl-mod -- * Pure Perl modules for I/O, functional iterators, files, and list utilities.
🟧 ardnew/pcp pcp * File and directory copy on steroidsPCP
ardnew/ios-scripts iosctrl macOS Analyze, compile, and package iOS applications from Xcode projects

Bash

Repository Command Target/Host Description
🟩 ardnew/bash-busy busy * Animated busy indicator for Bash shell scripts
🟧 ardnew/bash-arduino ino * bash environment and utilities for simplifying arduino-cli interactions

Delphi

Repository Command Target/Host Description
🟧 ardnew/mswin-systool SysTool.exe Windows XP/7 System tray utility for bit pattern manipulation (two's-complement, IEEE-754, base conversions), file analysis (hex dump, checksum, NTFS/FAT attributes), and other stuff.

Projects

Wireless LED Strip Controllers/Drivers

Two separate projects for implementing a wirelessly-controlled LED strip using Bluetooth Low-Energy (LE):

Blixel — General-purpose wireless LED strip controller for Android mobile phones/tablets

Android mobile device -to- Arduino-driven LED strip
Repository Application Target/Host
🟩 ardnew/ItsyBitsy-BLE-LED ItsyBitsy-BLE-LED Adafruit ItsyBitsy nRF52840 (Arduino/C++)
🟩 ardnew/Android-BLE-LED Blixel Android (Java)

Designed for Android mobile devices, implemented using an Adafruit ItsyBitsy nRF52840 and a 300-pixel (5 meters) RGB LED WS2815 strip.

Instead of the commonly-found Bluetooth (LE) to serial UART string-based frameworks (hacks!), a custom BLE GATT protocol was designed as communication transport — which provides a rich, structured message framework for much faster (and more reliable) communication to transmit per-pixel and/or per-segment color information.

Currently supports several modes of operation:

  • Color fill entire strip, partial strip (segment), or individual pixels
  • Parameterized animation patterns (color wheel, theater chase, and fade/breathe)
  • Optional motion-activated trigger (passive-infrared or doppler radar) with timer — great as a nightlight!

NeoCLUE — Real-time sensor-reactive wireless LED strip controller

Arduino sensor-based device -to- Arduino-driven LED strip
Repository Application Target/Host
🟩 ardnew/NeoCLUE Controller Adafruit CLUE nRF52840 (Arduino/C++)
🟩 ardnew/NeoCLUE Driver Adafruit ItsyBitsy nRF52840 (Arduino/C++)

Similar to the Android-based project above, but implemented using a pair of Arduino-based Nordic nRF52840 devices.

Additionally, this project is designed to utilize the suite of environmental sensors embedded on the Controller (Adafruit CLUE).

For example, the user can control the LED strip color in real-time using the accelerometer (e.g., X, Y, and Z-axis mapped to the Red, Green, and Blue components, respectively, of the RGB-colored LEDs), gyroscope, magnetometer, air temperature, barometric pressure, humidity, light color, proximity, gesture sensor, or PDM microphone.

Various animation patterns (e.g., color pulse/fade using microphone audio levels, rainbow pattern with origin seeded by magnetic North, etc.) are also supported.

The onboard IPS LCD screen provides a rich GUI interface based on the LVGL embedded graphics library.

WiFi-Enabled Timecard

Repository Target/Host
🟧 ardnew/timecard Adafruit PyPortal (SAMD51) (Arduino/C++)

This software lets you select a project and an associated activity, then you can start and stop a timer that tracks how many hours you worked on that activity.

Designed for the Adafruit PyPortal, it takes advantage of the ESP32 WiFi module by automatically synchronizing local time with an NTP server. Additionally, time is tracked by logging to the internal SD card, making it easy to open and read from a PC when you actually submit your hours wherever. Alternatively, if your time-tracking system and the PyPortal are on a shared network, the software could easily be modified to submit your time automatically.

Color Code

Color Status Description Active
🟦 Excellent Robust, tested, stable, well-documented
🟩 Good Correct, easy to use or understand
🟨 Reusable Functional, may require modification
🟧 Deprecated No longer used or maintained
🟥 Broken Partially implemented, missing or broken capabilities
Y̴o̵u̶ ̷m̵̦̚à̷̤y̶̧̕ ̸̱͋ḧ̵̰̻́̐̉̚a̸͕̰̅̍͊̓͆v̷͚̳̏̿̓͊é̶̡̯̘̻͈̐̌̎̾ ̴̖͔̯̪̠̾̎s̴̲̣̮͒̏̿͝ȩ̴̦͎̥̻̰͇͆̾ŗ̴̪̰̥̽̑́͒̈́i̶̢͕̺̲͕̬͊̀̓ô̵̹̲͉̼̻̎̽u̶̡̢̢̫̳͔̓͑̂̔̑̃͘s̴͕̊͆̅̕ ̵̘͓͙̃͘p̵̺̠̥̝͔̀ṙ̶̡̺̣̞̯̆̏͜ő̸̧b̵̫̜͖̓̈͒͗ĺ̴̢̝͖̬͙̳̀ę̸̹͒̐̓̌̿̽͝ͅm̸̟̬̪̣̖̮͒̍͊̐͑͛͘s̷̛̫̤͐͗̇̾̃ ̸̢̛̣͋̐̎͋̎̈́u̶̳̥̭͑́̓̀͌̆s̶̥̭̝̯̃͊̕͘͠͠į̷̛̳̤͈̬̍͗̅̀ń̶̦͊̌̔̑͗͗g̷͎͐́̑ ̶̘͓̺̱͆̓͜ţ̶̢̡̧͉̜͙͙͚̘͓̼̝͙̥͔̟̦͓̮̯̞̘̞̫̺̱̖̀̉ḩ̶̨̧̡̛͈͍̙̖̮̫͚̜̜̮̦̻̼͉̪̻̹̀̌͊̽̓̄́̓̿̋͌̑͌͐̒͌͑̋̕̕̚ȋ̴̧̛̼̘̼̙̟͍̥̱͌̍͂́̐͐̈́̆̍̀͑̀̑͒͘s̶̮̖̟͔̥̮̭̥̺͕̲̪̪̅̑͜͝͝ ̸̝̹͕̬̱̠́̽̍̒͛͆͛̔͌̔̊̓̂̈̄̿͑̆͆̈́͑̂̐͘͝s̴̨̞͉̼̮̱̠̤̤̦͍͇̹̗̯̖̱͓͈̭̩̞̄͐͂͒͛̓̌̍̈́̐͛̏̐̀̀̕̚͘͘͘̕͜͜͝ǫ̷̢̡̢̡̛̟̙̥͚̬̹̼̺̦̭͇͈̣̥̝̂̌̊̓̿̃́̔̃̐̅̕̕f̶̟̳̮̠͔̻̾́̌͛̉͜ͅţ̶̢̡̧͉̜͙͙͚̘͓̼̝͙̥͔̟̦͓̮̯̞̘̞̫̺̱̖̀̉w̶̢̲̘̙̭̭̣̫̬͎̖͔͚̗̟̣̠͓̘̮͓̞͎̪̲͓̖̝̦̘͉̋̌͐͛̈̃̃͊͐͘͝͠ą̷̛̛̛̖̭͉̦̗̱̠̜͈͚͖̰̟͓̇͒̂̐̀̏̑͛̎̈̈̆̌͑̓̌͐̅̓͊̀̌̊̅̈́̚̚̚͠r̸̢̨̡̨̨͎̯͙̩͖͖̦̪͖̠̺̜̳̘̞̠̪̭̙̭͍̝͓͕͎̩̯͈͖̮͂͛̇͐̎̌̃̄̀͜͝ͅę̷͍̫̟͉̮̼͗̊̌͂̆̐̄̊̈́̍̍̄̇͘͠͠

Misleading Statistics

ardnew's github stats

Top Langs

Pinned

  1. Personal profile

367 contributions in the last year

Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Mon Wed Fri
Activity overview
Contributed to tinygo-org/tinygo, ardnew/ardnew, ardnew/portenta-tools and 5 other repositories

Contribution activity

August 2021

Created 2 repositories
Opened 1 pull request in 1 repository

Seeing something unexpected? Take a look at the GitHub profile guide.