LittleArduinoProjects#208 Single Stage FM Transmitter

I've been experimenting with FM, and the hardest thing to get right tends to be the hand-wound coils. So to get a baseline, I picked up a 1-transistor kit during a recent visit to Sim Lim Tower.

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



LittleArduinoProjects#207 Frequency Counter

Testing a CMOS frequency counter circuit with a 100Hz - 5MHz range.

I found this circuit published in Electronics magazine (Sep 16 1976). It's a classic demonstration of the CD4026 "bucket-brigade" and CD4047 astable oscillator.

The frequency counter is governed by a CD4047 oscillator. Since this offers a clean 50% duty cycle, it is ideal for flipping the circuit between two modes: sampling period; display period.

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

LittleArduinoProjects#206 CD4047 Astable Oscillator

The CD4047 is capable of running in astable or monostable configurations, with operating frequency configured by an external RC network. So in one sense, sounds like the 555 timer!

Unlike the 555, the CD4047 provides a fixed 50% duty cycle with good frequency stability (+/- 2% @ 100KHz).

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


LittleArduinoProjects#205 Triac Dimmer

A triac is a "bidirectional thyristor" because it conducts in both directions and is typically used in AC applications.

The basic behaviour of a triac can be summarised in two rules:
  • Rule 1. To turn ON, a gate current ≥ IGT must be applied until the load current is ≥ IL (latching current).
  • Rule 2. To turn OFF (commutate), the load current must be < IH (holding current) for long enough for the device to return to the blocking state.

This project is a test of the classic AC dimmer circuit (more...)

Create a Simple Cassandra Cluster With 3 Nodes

Apache Cassandra™ is a massively scalable open source NoSQL database. Cassandra is built from day 1 to be clustered to tick the usual clustering boxes; no single point of failure, and capacity and throughput scales with cluster size. This guide will look at creating a three node basic cluster within a single data centre. It is assumed

Cassandra Firewall Ports

Cassandra uses various ports for communication, either server to server communication or client to server communication. If you’re using Cassandra in a firewalled environment you may need to open various ports depending on your needs. All ports are TCP and can be configured in the relevant config files to use non-default ports.

Install DataStax Cassandra 3 on Debain/ Ubuntu

The following process will install the DataStax distribution of Cassandra on any Debian based system, such as Debian or Ubuntu. We’ll use the official DataStax apt repositories to install Cassandra using apt-get. Cassandra is written in Java and the latest version (at the time of writing) of Cassandra requires Java 8. You can use either OpenJDK or

DataStax Cassandra 3.2 Bash Install Script

The below script installs the DataStax distribution of Cassandra 3.2.x and the latest Oracle Java 8 on Debian. Copy and paste the script into a file called install_cassandra.sh and execute it as root. [crayon-57710056be337224829235/] Then connect to the local Cassandra instance run the cqlsh tool. [crayon-57710056be341380981175/]  

LittleArduinoProjects now with fancy catalog!

I keep finding new uses for GitHub Pages - situations where in the past I would otherwise have spun up a web site on heroku or similar. But if the site can be static, and especially if you are already hosting the git repository at GitHub, Pages are perfect.

For a long time, I've maintained the LittleArduinoProjects project index as a simple table in the README. But it wasn't particularly nice or usable, so I (more...)

On "random" CI failures

I closed a bug yesterday that's been kicking around for almost a year as a sometimes fails on CI but no-one can figure out why frustration.

Sooner or later you'll hear someone suspect it must be a problem with CI. Which is ironically funny in a shoot-the-messenger kind of way!

Thankfully our "CI issue" turned into a for-real bug. In short, the code involved many classes with near 100% test coverage. It had been read (more...)

Automated Bash MongoDB 3.2 Install Script for Debian/ Ubuntu

MongoDB is one of the leading noSQL breeds of database that’s been growing in popularity in recent years. The database is available in a ‘community edition’ that’s available for all to use freely. The database setup and install is mostly straightforward however there are a few steps you have to take to get a MongoDB

MongoDB 3.2 Bash Install Script

The below script installs MongoDB 3.2.x on Debian. Copy and paste the script into a file called install_mongo.sh and execute it as root. [crayon-57643d1def52c510890489/] Then connect to the local MongoDB instance [crayon-57643d1def535550281613/]  

Use DD to Quickly Benchmark Your CPU

Let me start by saying… this is a quick and dirty method and shouldn’t be used for precise comparisons of CPU performance. That said, it’s perfectly adequate for approximating CPU performance, especially on Cloud hosted VPSs to ensure you’re getting the horsepower that you’re being promised. The idea here is to force your machine to

LittleArduinoProjects#204 Type K Temperature Logger

I'm working on an idea where I need to measure temperatures to around 500°C - above those typically supported with semiconductor sensors or thermistors.

This project demonstrates the basic approach using an Arduino as the "temperature logger". I'm using a K Type thermocouple that's rated up to 700°C. Since thermocouples only measure a differential temperature, I'm also using an LM35 to provide the cold-junction baseline. The temperature measurement is displayed on a 5110 LCD.

As (more...)

Install Oracle Java In Debian/ Ubuntu using apt-get

Oracle Java, due to Oracle’s license conditions, it quite a pain to install. The problem is that anyone who isn’t Oracle isn’t allowed to distribute the JDK binaries – they have to be downloaded strictly from Oracle. Luckily the guys over at webupd8team have been creative in this area and created and apt-get package that downloads the

Where to Run Ceph Processes For High Availability

In this blog post we’re going to take a detailed look at the Ceph server processes within a Ceph cluster of multiple server nodes. Ceph is a highly available network storage layer that uses multiple disks, over multiple nodes, to provide a single storage platform for use over a network. Ceph is designed to be fault tolerant

Train SpamAssassin Spam Email Message Detection in Zentyal

SpamAssassin does a great job at identifying SPAM emails and is probably one of the most popular in it’s class. An important part of fighting SPAM email is keeping up with the changes in both SPAM and non-SPAM (often called Ham) email content. Luckily for us, whatever magic SpamAssassin employs to decide if email is SPAM

阿部真央 Don’t let me down

One of the best finds in the racks at Tower Records Fukuoka福岡市. It's been years since I last got to browse a record store in Japan; I'm glad they still exist, with stacks of CD players queued up to sample. And a huge relief to see the indie rock scene is just as vibrant as I remember!

LittleArduinoProjects#203 Homopolar Motor

What happens when electric fields cut across magnetic fields? A force is generated, and the homopolor motor is the classic demonstration.

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


LittleArduinoProjects#202 LM3915 Audio Level Kit

The LM3915 is a useful IC for simple audio level displays. This is a cheap kit build which largely follows the reference circuits in the datasheet.

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