LEAP#389 Two-Stage Amp Design

Reviewing techniques for two-stage CE amplifier design. My calcs are a bit off (under-estimated gain), but I got a workable Class A amplifier out of it! As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub hero_image

LEAP#387 GPS Modules

This is the first time I’ve played around with a GPS module, so it was an interesting dive into NEMA standards. But at the end of the day, the TinyGPSPlus library makes it a piece of cake to get GPS readings. I log these to serial and display the main facts on an LCD. As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub hero_image

LEAP#386 The Blue Pill

Popularly known as the Blue Pill, the STM32F103C8T6 Minimum System Development Board seems like an excellent gateway drug for getting into ARM Cortex-M3 development.

This is particularly true as it is possible to program it with the familar Arduino IDE.

It is my first look at one of these boards, so I have simple expectations - follow along some of the tutorials on the web/youtube and at least get a simple program running on (more...)

LEAP#385 BolportClub Widlar Blinky

The µA723 voltage regulator is a classic from 1967, and was celebrated in the Boldport Club “Widlar” (Project #21). It is a bit boring to just regulate voltage, but since the µA723 contains an error amplifier and voltage reference … yes, it is possible to make an oscillator instead. My version of the Widlar glows an orange LED…

As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on (more...)

LEAP#379 AS3935 Lightning Sensor

I first heard about the AMS AS3935 Franklin Lightning Sensor in Arduino for Ham Radio. They are available as modules with built-in tuned antenna, but are relatively expensive/rare. I finally got my hands on one to experiment with.

Since we have between 171 and 186 lightning days on average a year here in Singapore, with each square kilometer being struck up to 16 times annually, I’m expecting to have some fun with this.

Here’s (more...)

Oracle ORA-02287: sequence number not allowed here

I’ve recently hit an issue when trying to include a sequence.nextval in an Oracle database view. the database throws the following error: [crayon-5aba534de1f38771671729/] I can see why that might not be allowed – each time you select from the view you’ll get a new sequence number making it a bit daft for most circumstances. I

Oracle View Sequence Test


LEAP#378 BJT Phase Splitter

Simple unity-gain phase splitter in a little breadboard-compatible package. It uses a common-emmiter amplifier with a gain of -1.

As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub hero_image

LEAP#377 DIY Nokia 5110 Shield

Wiring it up a Nokia 5110 display every time I want a little LCD output is getting a bit tiresome. I have a spare prototyping shield, so A + B = a handy thing to have lying around for the next time.

As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub hero_image

LEAP#376 Piezo Vibration Detector and BPM Counter

I’m experimenting with some piezo transducers (sensors) to capture physical taps as a beats per minute measure with a microprocessor. All the filtering and debouncing of the raw piezo signal is done onboard the ATmega328 using a combination of:

  • analog comparator interrupts
  • filtering based on musical assumptions
  • exponential averaging

The result is a BPM between the threshold of the perceptual present and too fast to be useful.

As always, all notes, schematics and code are (more...)

LEAP#374 LT1019 Voltage Reference

I’ve been seeing the LT1019 precision reference show up in a number of designs recently, often as a reference for an ADC such as the LTC2400. It is worth a closer look. In this example, I’m using the LT1019 as an external analog reference for an Arduino.

As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub hero_image

cracking the static site SSL challenge with netlify

For the last year or so I’ve been running this blog on Github with Jekyll and Github Pages. That’s nice and easy, but the lack of SSL support for custom domains has remained stubbornly over-the-horizon.

I’m glad I tweeted my wish! With a nudge from @spencerbgibb I got to try out netlify.


… and it is the real deal! I’ve just ported half a dozen sites from Github Pages, now all with automatically-provisioned SSL from (more...)

Move Proxmox Container to Different Storage (Updated for LXC)

The Proxmox Web GUI does not give us the ability to migrate a container from one storage device to another directly. To move a container onto different storage we have to take a backup of the container and restore it to the same ID with a different storage device specified. This can be time laborious when working

Reduce Proxmox LXC Backup Size and Time

Proxmox backs up guests byte-for-byte in a compressed archive. Looking at LXC backups specifically, the file system is compressed into the target backup file with just a few exceptions – temp files aren’t included. You can also add your own exceptions by editing the vzdump.conf to exclude specific file patterns. All that said, one of

Gitlab Runner Error: sudo: no tty present and no askpass program specified

After issuing the first build on a dynamically created Container I came across the following build error when running a command with sudo. [crayon-59847f31522f3681093998/] The error is caused by trying to run a command with sudo, however the calling user has not been authorised to use sudo. The error isn’t helpful, and doesn’t really spell out where to

Scripted Install of Oracle Java 8 on Ubuntu 16.04

Please see Install Oracle Java In Debian/ Ubuntu using apt-get for more information. [crayon-59844b9392d4e955734194/]  

Generating Diceware Passwords in Python

Today I’m going back to a theme from a post last year and looking at generating passwords with my favourite programming language. A tweet from Simon Brunning pointed me to Micah Lee’s article at The Intercept and my first thought was to write a function to do this in Python. So here it is;

def generate_diceware_password(word_count=6):
    import random
    word_dict = {}
    passphrase = []
    with open('diceware.wordlist.andy.txt') as f:
        for line in f. (more...)

Teaching an old dog to Fish

Inspired by the recent furore around Shellshock I decided that it was time to try an alternative to bash. By the very grown up process of shutting my eyes and poking my finger at the results of a search for “shell” I ended up at fish shell, described by the project as “a command line shell for the 90s”. I’m presuming that this means the 1990s and is not a minimum age requirement.

I’m (more...)

Generating Reasonable Passwords with Python

Thanks to a certain recent Open SSL bug there’s been a lot of attention paid to passwords in the media. I’ve been using KeePassX to manage my passwords for the last few years so it’s easy for me to find accounts that I should update. It’s also a good opportunity to use stronger passwords than ‘banana’.

My problem is that I have always resisted the generation function in KeePassX because the resulting strings are very (more...)

My Career

The next time anyone asks me what I do for a living I’m just going to point them to this YouTube video.

Found on the twitters thanks to Nick Hodge and Jess Dodson.