Google Assistant switches Sonoff S20 Switch your light on/off using your voice and the help of Google Assistant. Sure, you can run to the store and purchase a preconfigured light switch, but what's the fun in that and more importantly these switches with their close-source software require access to your home network.

Scalable IoT Integration (ESP32+Google IoT) We're only using the IoT device and Google Cloud Platform. The only programming will be in JavaScript (nodejs). No opening ports on the firewall, no IFT

^{3}. Plain and simple, 'though never as simple as getting up and flipping a light switch, or opening the outside door to see how the weather is. DD-WRT Reverse Proxy and HTTPS (Asus RT-AC68, Pound, LetsEncrypt) Describes how to use DD-WRT as a Reverse Proxy with HTTPS. It relies on

`pound`

for the reverse proxy and LetsEncrypt for the TLS certificate. This configuration was tested on an Asus RT-AC68, but should also work on other routes with DD-WRT firmware. Talk to your CD player using Google Home Describes how to use a microcontroller and infrared LED, to let Google Assistant control infrared enabled devices.

Countdown Countdown to Christmas animation that I wrote in NodeJS

Mandelbrot Mandelbrot calculations that I wrote in NodeJS

Arduino parts Overview of parts and tools that I use to build Arduino projects. Includes breakout boards, shields and development environments.

ESP8266 based alarm that synchronizes with Google Calendar ESP8266 based alarm clock that fetches you AM appointment from Google Calendar and sets an alarm accordingly. Uses a Google Web App script.

ESP8266 reads Google Calendar This is not exactly the first approach of pulling data from Google Calendar, but it may be the first that directly connects to Google. This program calls the Google Script API, that in returns the relevant calendar event.

Pitch Detection on Arduino using Autocorrelation A device that recognizes the notes played on a musical instrument. 1st place in the Silicon Valley science competition. [2015]

Arduino Infrared Interface for SilverLit RC Vehicles Control your Arduino creation using the remote control that came with the SilverLit RC dump truck, flatbed, bulldozer or crane. This article describes the protocol and its implementation for Arduino.

Web browser accessing Arduino data This article shows how an external web site can change i/o values on your Arduino. All you need is a RGB LED and an Arduino with an Ethershield or the newer Arduino Ethernet.

DD-WRT leading two separate networks (Asus RT-AC68) This article shows how a $180 consumer class router can support two different networks. Besides the usual primary network, it will create a secondary network supporting both wireless and wired connections. The secondary network could be used to provide internet access to customers or visitors.

DD-WRT and Wireshark Wireshark is a open-source protocol analyzer that can visualize the frames passing through the router. This analyzer is available on many platforms, but can not run directly on the router.

DD-WRT leading two separate networks (Asus RT-N16) This article shows how you can use a $75 consumer class router to support two different networks. Besides the usual primary network, it will create a secondary network supporting both wireless and wired connections. The secondary network could be used to provide internet access to customers or visitors.

DD-WRT and OpenVPN (without nvram footprint) Uses the OpenVPN implementation as included in the DD-WRT router firmware. This VPN can traverse network address translators (NAT) and firewalls.

Complex Arithmetic in Extended Memory for HP-41cv/cx Introduces complex number operations to the HP-41CV and HP-41CX pocket calculators. Easy to use. Magnitude of functions. Runs in extended memory.

Complex Arithmetic with Adjustable Branch Cut for HP-41cv/cx This program introduces complex number operations to the HP-41 calculator. You can adjust the branch cut in the complex plane.

Polynomial Factorization (to 5th degree) for HP-41cv/cx This program calculates the roots of a polynomial sigh real number up to the 5th degree (quintic). A polynomial of degree n has n roots.

Complex Matrix to Row Reduced Echelon Form for HP-41cv/cx Transforms a complex matrix into row reduced echelon form. Also, computes the inverse and the determinant of its left square part.

Complex Eigenvalues for HP-41cv/cx Calculates complex eigenvalues based on characteristic network equations. Commonly used in control, electrical and mechanical engineering.

Hyperbolic Operations for HP-41cv/cx This program adds hyperbolic operations to the HP-41.

Eigenvalues for HP-41cv/cx This program determines the eigenvalues of a real number matrix.

Discrete Fourier Transform for HP-41cv/cx Program to calculate Time Discrete Fourier Transform for a sampled time domain signal. Witten in focal for HP-41 pocket calculator.

Matrix to Row Reduced Echelon Form for HP-41cv/cx (PPC) This program transforms a matrix into row reduced echelon form. This means the program will calculate determinants and inverses and will solve systems of equations.

Integrate for HP-41cv/cx (PPC) Program uses the Romberg algorithm to calculate a numerical approximation of the definite integral of a function. No step-size information is required.

First Derivative for HP-41cv/cx (PPC) Program to approximates the first derivative of a function at a point. The step size can be provided by the user or can be automatically determined.

Curve Fit for HP-41cv/cx (PPC) This program will determine a curve of best fit to a set of data points. It handles the four standard curve types: linear, exponential, logarithmic and power.

Base Conversion for HP-41cv/cx (PPC) Operators to convert between decimal and another number base.

DD-WRT and VoIP telephony Paying any amount for a mostly idle land line phone seems excessive. Especially when knowing that good alternatives are available. The introduction to this article is shamelessly based on section 8 of Unlimited free calling with Google Voice.

Snapshot Backup with the DNS-321 NAS using rsync Describes how to make daily and weekly backups using rsync, while preventing file duplication between the different backups.

Secure Internet Appliance for home office How to build a Firewall, VPN Server and Wireless Access Point on a single board computer using open source software components.