my recent reads..

Atomic Accidents: A History of Nuclear Meltdowns and Disasters; From the Ozark Mountains to Fukushima
Power Sources and Supplies: World Class Designs
Red Storm Rising
Locked On
Analog Circuits Cookbook
The Teeth Of The Tiger
Sharpe's Gold
Without Remorse
Practical Oscillator Handbook
Red Rabbit

Friday, August 26, 2016

LittleArduinoProjects#222 Stair-step Generator

Once again I'm inspired to go and build a circuit by yet another great tutorial from w2aew.

This circuit generates a stairstep waveform by an ingenious combination of 3 circuit elements:
  • a "high" (265Hz) frequency pulse (555 timer) provides the charge to step-up the output
  • the step pulse feeds an OpAmp pulse integrator/accumulator
  • a low frequency pulse generator (OpAmp oscillator) provides the reset pulse that clears the accumulator and resets the 555

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



Friday, August 05, 2016

LittleArduinoProjects#221 XOR with Resistor-Transistor Logic

Exclusive OR (XOR) operation is true only when the inputs are different.

An XOR may be constructed using combinatorial logic: an OR ANDed with a NAND. But can it be done with even more basic discrete components?

This circuit uses a diode-bridge and a single transistor - quite neat. It does mean however that there is no output buffer, in fact the output is powered from the inputs. I'm using an Arduino to drive the circuit and capture the output plot.

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



Monday, July 25, 2016

LittleArduinoProjects#220 Arduino gcc toolchain

The Arduino IDE is the most convenient way to get started with Arduino, but it does obscure the underlying mechanics of building software for an Arduino.

How to do it from scratch? This is my experiement and guide to building software for an Arduino from the command line. I use a Mac and homebrew, so it is somewhat MacOSX-specific.

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


Wednesday, July 20, 2016

LittleArduinoProjects#219 DS18S20 1-Wire Reading

Another way to measure temperatures, this time the DS18S20 - an inexpensive 1-Wire digital thermometer with a range of -55°C to +125°C, at ±0.5°C accuracy from -10°C to +85°C.

It comes in TO-92 packaging and may be powered directly (using three pins), or take parasitic power from the data line (using two pins). This makes it ideal for pin-starved microcontrollers that need a decent ambient temperature reading. In this project, I'm just exercising the sensor with a simple Arduino sketch.

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



Thursday, July 14, 2016

LittleArduinoProjects#218 MPU-6050 3-Axes Accelerometer Gyroscope Module

I'm planning to build a controller that needs motion detection, so got hold of an Invensense MPU-6050 3-Axes Accelerometer Gyroscope Module to see if it would do the trick. The module conveniently operates on 3-5V. All I've done so far is a simple sketch to confirm I can read raw values from the MPU-6050 using the Arduino Wire library.

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


Wednesday, July 13, 2016

LittleArduinoProjects#217 Basic AVR-controlled Buck Converter

Buck converters are switching power supplies configured such that the output voltage is lower than the input voltage.

Since the primary components (inductor and capacitor) ideally consume no power, high conversion efficiencies are possible. In practice of course, components are not ideal and there is some power loss. More significant however is any power consumed in the control and feedback circuits.

This circuit is a demonstration and exploration of the basic buck configuration with a fixed load. Since the load is fixed, I have not implemented any feedback control system. Of course there are plenty of buck converter chips and modules on the market and these are so cheap you'd be crazy (or have such precise and unusual requirements) to build your own for a real application. But it's nice to see how they work!

My inspiration for this circuit was DIY Buck Converter by GreatScott! - IMHO the "missing lab" to accompany very good but dry courses such as the Power Electronics Specialisation from University of Colorado Boulder.

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


Monday, July 11, 2016

LittleArduinoProjects#216 OSHChip driving SPI LED module

How easy is SPI with the OSHChip? I thought I'd find out by first controlling a module that has a very basic SPI-ish slave interface.

I'm using the LEDx16Module that I designed in the KiCad like a Pro course from Tech Explorations. It has dual 74HC595 shift registers that can be driven with SPI to control 16 onboard LEDs.

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


Sunday, July 10, 2016

Feature Lifecycle Analysis with PivotalTracker

Can you trust your agile planning process to deliver the best result over time?

In an ideal world with a well-balanced and high-performing team, theory says it should all be dandy. But what happens when the real world sticks it's nose in and you need to deal with varying degrees of disfunction?

Feature Lifecycle Analysis is a technique I've been experimenting with for a few years. The idea is to visualise how well we are doing as a team at balancing our efforts between new feature development, refinement, maintenance and ultimately feature deprecation.

If you'd like to find out more, and run an analysis on your own projects, try out the Feature Lifecycle Analysis site. It includes some analysis of two real software development projects, and also a tool for analysing your own PivotalTracker projects.

As always, all notes, schematics and code are on GitHub.


Saturday, July 09, 2016

LittleArduinoProjects#215 OSHChip yotta toolchain

After bruising myself on the raw gcc toolchain - and although I got a program running - I think I want my toolchain to do more of the hard work for me!

So next I tried yotta, the software module system used by mbed OS. Building a simple program using the Official Yotta target for OSHChip and gcc on MacOSX proved quite straight-forward.

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


Thursday, July 07, 2016

LittleArduinoProjects#214 OSHChip gcc toolchain

Can I build a program for the OSHChip using the gcc toolchain and Nordic Semi SDK on MacOSX?

Yes..ish!

Here are my notes and scripts for compiling and deploy a simple program, but there remain a few rough edges. There are probably easier ways to do this ... like using the Official Yotta target for OSHChip using gcc ... but I was curious to see how far I could get with just gcc and the Nordic Semi SDK.

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


Wednesday, July 06, 2016

LittleArduinoProjects#213 OSHChip blinky

I heard about the OSHChip on the embedded.fm podcast #146 and immediately wanted one!

An ARM Cortex-M0 32 bit micro processor (nRF51822) with 2.4 GHz Radio and other goodies all in a breadboard-compatible DIP16 package .. how could you say no?!

So far, so good. Literally 5 minutes to the first blinking LED, and hours of fun followed .. this is an awesome little package.

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


Tuesday, July 05, 2016

LittleArduinoProjects#212 Stay Creative!

A simple project inspired by Make your own LED Sign VU Meter by GreatScott!. The catch-phrase should be familiar if you subscribe to his channel;-)

It's a VU meter, but rather than doing the "bar graph" thing à la LM3915, it pulses the intensity of all LEDs to the volume of the incoming audio.

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


Monday, July 04, 2016

LittleArduinoProjects#211 Buck Converter Modules

There are many super-cheap buck converter modules available, often based on the LM2596S-ADJ. The "BuckConverterModules" project is where I've recorded notes on the individual units I get to see. So far I've tested four. Two perform really well; two are OK but I have my doubts about the specs of the converter chip.

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





Sunday, July 03, 2016

LittleArduinoProjects#210 Pump up the Jam!

This is a super cheap amplifier kit built around the TDA7297 15+15W dual bridge amplifier chip. All the other parts in the kit are essentially the basic supporting components for the TDA7297.

Performance is very good, although my impromptu speaker boxes don't do it justice. They need better baffles at least, but I can hardly blame Straits Preserves for not making marmalade boxes to the specification of speaker enclosures!

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


LittleArduinoProjects#209 a funky little LED display

I found this interesting LED display at Sim Lim Tower, and grabbed one to test. The LED unit combines 7 x 7-segment display (no decimal points) and 7 indicator LEDs (Red-Green-Yellow).

It is marked as "72R02PHIL T9717". I have no idea what that means(!), and of course there's no sign of a datasheet on the net, so pinouts needed a bit of reverse-engineering. All in all, an interesting display unit for a combination of numerical and status display.

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

Friday, July 01, 2016

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.



Thursday, June 30, 2016

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 the Little Electronics & Arduino Projects repo on GitHub.


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.


Wednesday, June 29, 2016

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 with Triacs with a 12V AC supply. It allows power to be dialed down by effectively chopping out part of each cycle. As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub.

Sunday, June 26, 2016

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 decided to pimp it up and serve the catalog index with pages. Turned out to be a piece of cake (with a few scripts to convert the old index to JSON for the catalog page.

So here it is, Little Electronics & Arduino Projects at leap.tardate.com:


As always - and since the gh-pages code lives in the same repo - all notes and code for the catalog are available in the same Little Electronics & Arduino Projects repo on GitHub.

Saturday, June 25, 2016

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 and re-read and everyone would swear there's no way this could fail.

No, of course we were wrong. The bug was basically a conspiracy of two bits of code in two very different places:
  • a record validation that ensured field1 was not the same as field2
  • a data collection routine that could be configured to filter/replace sensitive values with a random ** string: ["*" * rand(4..10)]

And you can see where this leads: our problem was filtered data ending up by obscure and circuitous means in field1 and field2 ... with a 1 in 7 chance of the record validation failing (never happens on our machines of course). After that it was an easy fix.

So once again we learn the lesson:
If CI say red but we can't figure out why, "must be a problem with CI" is 99.999% the wrong answer. It just means we haven't found the bug yet.

I've seen this scenario play out a dozen times in as many years, and CI was always right;-) Since it keeps cropping up, it made me think about how to best knock these on the head. Five things:

start by assuming there is a bug until proven otherwise


It's too easy to give up, find scape-goats or "magic" explanations otherwise.
Take heart in the fact that if you assume CI is right, the odds are on your side.

put a canary in a coalmine


When we first encountered this issue and failed to find the root cause, we added code to catch the "this is about to fail in that unexpected way" situation and log/report appropriately.

So while the ticket got iced, it's been that "canary" that keeps dying in order to keep the issue alive! So when it died again yesterday, it was a painful reminder to get to the bottom of the issue once and for all.

finding bugs .. is like looking for your keys


Always found in the last place to look. So when you've honed in on the code you think is failing, studied it upside down, left to right, and still can't find the issue .. maybe it's time to consider you might be right. Throw out that hypothesis, pull back and fan out instead.

treat random errors like a lottery


If errors happen infrequently, reproducing them is like trying to win the lottery. The more entries, the better your chances.

So don't run tests a few times, run them millions of times if you have to. Computers are good at this. That's how I diagnosed this latest issue while tweaking logging and the test itself. Bash away:
for (( ; ; )) ; do
  rspec spec/that_wierd_spec.rb 
  if [ $? == 1 ] 
  then 
    echo "JACKPOT!" 
    break 
  fi 
done

random failures ... might really be random


This sounds so simple that it's easy to overlook.

If things fail randomly .. it only takes a few moments to search the code to see if anything is using something similar to a random function.

Could it be possible that random failures and the use of rand() might be related?!
May be not, but if they are, that's a cheap win!

Wednesday, June 15, 2016

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 always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub.

Tuesday, May 31, 2016

阿部真央 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!

Friday, May 20, 2016

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.


Wednesday, May 18, 2016

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.

Monday, May 02, 2016

LittleCodingKata: Hardware Excuse Generator with gRPC

gRPC is a very interesting lightweight middleware framework for language-neutral, cross-platform RPC.

When I heard about Natalie Silvanovich's Hardware Excuse Generator on Embedded.fm, I immediately recognised a better "Hello World" for testing out gRPC.

Introducing "The Explainer": my programming exercise to learn basic cross-language request/reply with gRPC.

I haven't completed the whole matrix of client-server possibilities yet, but here's a sampling...

Start up a server (e.g ruby version)
$ ./explainer.rb 
ShiFu is waiting to explain all of your problems...

And then ask it questions. Pick a language!
# Ruby client
$ ./explain.rb "Your phone is crashing because of REASON" 
Your phone is crashing because of the 
PCB not being manufactured to specification

# C# client
$ mono bin/Release/explain.exe "Your phone is crashing because of REASON"
Your phone is probably crashing because of stray harmonics

# C++ client
$ ./explain "Your phone is crashing because of REASON"
Your phone is crashing because of impedance in the coil

# node.js client
$ node ./explain.js "Your phone is crashing because of REASON"
Your phone is crashing because of a lack of shielding against 
alpha radiation (cosmic rays) in antenna

# Python client
$ python explain.py "Your phone is crashing because of REASON"
Your phone is crashing because of residual capacitance 
caused by the USB connector

All my notes and code are available in the LittleCodingKata GitHub repository.

Saturday, April 16, 2016

Embedded: Specialization is for insects

embedded.fm has fast become my favourite podcast of the moment (always excepting QOTD). Great ideas shared in an inclusive and warm-fuzzy way.

Elecia's end-of-show quote always makes it worth listening right to the end. Until I heard #146's,
I'd struggled to find words to express exactly this. It's a quote from Robert A. Heinlein:

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

LittleArduinoProjects#201 Yet Another Doorbell

aka door-fart according to my better half ... 555 Timer-based oscillators are not exactly the most musical creatures.

#201 is a kit build. Ridiculously cheap on aliexpress, it even came with extra components, so a bit of a bargain impulse-buy.

The kit turned out to be a simplified version of a circuit I've built before. It lacks the power control circuit, and draws about 4mA when idle - so if you actually use it, expect to be replacing batteries on a regular basis.

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

Here's the start of the "ding.." on a 'scope..

Tuesday, April 05, 2016

LittleArduinoProjects#200 Mini Solenoid Engine

Solenoid engines? They definitely fall into the the category of because you can.
Some people take it to a whole other level (like this V8 model).

What I have here is much more modest - a single-cylinder engine powering an impromptu-wire-art drive train. The mini-solenoid used here has a very small effective stroke - about 8mm - which necessarily constrains the gearing. I was inspired by 30GB's similar model for the layout.

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



Monday, April 04, 2016

LittleArduinoProjects#199 CD4026 Bucket-brigade LED driver

This is an extension if the ideas in #196, demonstrating how it's possible to build a "bucket-brigade" of CD4026 chips to drive an arbitrary number of 7-segment LEDs with a single data line.

It just requires the carry-out from the first CD4026 to be chained as the clock input for the second and so on.

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


Sunday, April 03, 2016

LittleArduinoProjects#198 Hall Effect Switch

Hall-effect sensors generally support one of three modes:
  • switch - turn on in the presence of a magnetic field of a specified polarity
  • latch - turn on in the presence of a magnetic field, and stay on until exposed to the reverse polarity
  • linear sensor - output is proportional to the magnetic field strength
The components I have for testing are marked "44E/938" and are nominally compatible with the A3144 or OH3144. These are switches that turn on when facing a south magnetic polarity

The chip is rated for continuous output current of 25mA, so that is sufficient to drive an LED (as demonstrated here). For other switching applications, the output can be used to switch a transistor or pull a microcontroller output low.

Testing with some neodymium magnets, I get a strong full-on when the south pole of the magnets are within 23mm directly to the front of the chip. The output remains on until I pull back to over 40mm.

A common use for Hall-effect sensors is to detect and measure rotation. A good demonstration of this is to sequence a PoV display as demonstrated in Great Scott's latest video - HACKED!: Old Fan becomes a POV Display

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

Tuesday, March 22, 2016

LittleArduinoProjects#197 Wien Bridge Audio Tone Generator

A Wien bridge oscillator is essentially an RC Band Pass Filter with a high Q factor at the resonant frequency, and generates a nice sine wave. I wanted a simple audio-frequency test signal generator, and a Wien Bridge turned out to be perfect for the job.

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


A good old LM324 does triple duty in the circuit:
  • a non-inverting amplifier with a gain of ~3 provides the feedback required to sustain the oscillator
  • one unit buffers a half-supply voltage to provide a "virtual ground" for the non-inverting amplifier
  • a third unit buffers the output signal to avoid load interference with the oscillator
The LM324 doesn't have great upper and lower limits, and clipping is severe in the basic circuit. This is solved with diode stabilisation.

The result is a pretty decent sine wave at ~1.574kHz, very close to the theoretical resonant frequency of 1.592kHz.

Sunday, March 20, 2016

LittleArduinoProjects#196 Driving a 7-segment display with CD4026 Counter

Here's yet another way to drive a 7-segment single-digit display unit - using a CD4026.

The CD4026 is a 5-stage Johnson decade counter with decoded 7-segment display outputs and display enable. With RESET and CLOCK INHIBIT low, and DISPLAY ENABLE IN high, the 7-segment display outputs progress through the 0-9 sequence on the rising edge of the CLOCK pulse.

It's an interesting alternative to a shift register for driving a 7-segment LED (as in the ShiftDrive project). While a latched shift register provides random addressing and clean transitions to any digit, it requires the 7-segment display outputs to be decoded externally (like in code). On the other hand, the CD4026 takes care of the decoding, and external circuits just need to send a counter pulse.

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

Thursday, March 10, 2016

LittleArduinoProjects#195 Coil Resonance and Inductor Testing

I've been trying to do some RF experiments, but instead being driven mad by hand-wound coils that never seem to behave as the standard coil inductance calculations would lead us to believe.

As always, it's w2aew to the rescue with a neat deconstruction and demo of a circuit for coil or inductor measurement.

I built the circuit out, and was easily measuring down to 10µH on a breadboard, and sub-1µH once I put the circuit on a hacked up copper board with islands. Using the LC circuit resonant frequency formula, it's possible to work backwards from known frequency and capacitance to determine the inductance (wolframalpha is great for this).

So now I hope to get back into some RF without the nagging doubt of not really knowing what my coils are doing!

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

Here's a beautiful trace of a (nominally) 10µH choke with a 150pF capacitor. I measure the frequency at 4.26MHz, therefore an actual inductance of 9.3µH .. pretty close!


Even with a super-bodgy 4.5 turn coil whipped up on the spot and put in parallel with a 30pF capacitor, I'm still getting a decent oscillation at 34.09MHz for a calculated inductance of 0.73µH


And here's the board delivering the results:

Tuesday, March 08, 2016

LittleArduinoProjects#194 DIY ESP8266 DevBoard

With the funding of the MicroPython on the ESP8266 campaign, my interest in the ESP8266 is rekindled!

I have an ESP-01 module lying around, but I'm a bit tired of wiring it up a breadboard again. So here is a little "devboard" I whipped up on a 4x6cm protoboard and hot-glued to a business card holder.

Now it's plug'n'play - add power and plug in a USB serial adapter and I'm good to go.

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

Thursday, March 03, 2016

LittleArduinoProjects#193 PoV LED Shake Stick

This AT89S52-based "shake stick" kit pops up all over the place for a few dollars. I built it and hey, it works great!

But it's not packaged to be easily re-programmed for other messages or graphics. So started my sleuthing.. which turned into a fascinating story.

It seems the kit was originally designed and built as a uni project by Zheng Zhong Xing 兴向荣 (aka zhengzhongxing39) studying Control Technology and Instruments/Principles and Applications at a Chinese University. Reportedly "... soldering was troublesome, with lots of changes and no solid basic skills, so burned out the first board" ;-) But it seems persistence paid off, and ended up commercialising the kit and starting electronics business and taobao store where you can find this kit and many others.

As always, all notes, schematics and code are in the Little Arduino Projects repo on GitHub, including my annotation of the source code and schematic for the shake stick.


Monday, February 29, 2016

LittleArduinoProjects#192 Sagrada Família model with LED effects

The Basílica i Temple Expiatori de la Sagrada Família has been under construction since 1882. The magnitude of the vision driving the project - both physically and creatively - is striking, especially at first hand.

Then you see the work in progress - the cranes, scaffolding, workers scurrying around the site. But that is what I think really brings it to life. This is not a frozen, finished statement of something other-worldy. It's a vibrant expression of the hope and aspirations of a whole bunch of people working together.

In other words, it is the ultimate maker project! Personally, I think it will be a sad day when someone declares it actually "finished".

Now at the extreme other end of the maker-scale is this neat little paper nano Sagrada Familia kit that I picked up in my travels.

I've "electrified" it to some extent with some LowVoltageGlowingLEDs that animate the background, just running off a 1.5V supply. Although I think I could have slowed down the LEDs even further.

A nice effect I think..



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

Sunday, February 28, 2016

LittleArduinoProjects#191 glowing LEDs on 1.5V

So for another project I wanted some "glowing" LEDs, ideally powered from a single 1.5V AA or AAA battery. That seemed like an interesting challenge, especially when the forward voltage of the LEDs I'm using is about 2.1V.

I had a feeling I could cobble together a couple of ideas (Relaxation Joule Thief and RC Oscillator) .. and lo, it works!



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



Here's a glimpse of the "modified oscillation". CH2 (red) is the LED cathode/transistor collector - as it rises and falls the LED slowly switches off then back on.


For protoboard-based builds I tend to layout the schematic with PAD tools (Pencil-Aided Design) ...

Thursday, February 25, 2016

LittleArduinoProjects#137 Toroidal Joule Thief

In #129 I posted about a two-transistor boost circuit. This is an even simpler circuit - very common over around the internet and known as the archetypal "joule thief". The smallest I've seen is Eric Wasatonic's micro version.

I stuffed my circuit into a AA battery holder and it works great as a night light, powered by either a single somewhat-depleted AA or AAA battery.

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

Wednesday, February 24, 2016

LittleArduinoProjects#129 Relaxation Joule Thief

I was inspired by w2aew's excellent video to check out the Ears To Our World humanlight project. It's a good cause, although shipping costs kill the idea of buying one myself - better just to make a direct donation.

It's also an interesting circuit - a variation on the many "joule thief" circuits out there - and also demonstrates some of the basics that under-pin boost converter power supplies.

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


With my particular mix of components, I'm getting almost 40% duty cycle which actually produces an apparently very bright LED on just 1.5V supply.

Monday, February 22, 2016

LittleArduinoProjects#001 basics of 7-segment LED control

Going back to basics - this project is a test of directly driving a common cathode 7-segment LED with an Arduino. It covers the fundamentals behind more advanced circuits like this custom PCB with register interface.

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

Saturday, February 20, 2016

LittleArduinoProjects#178 making a 7-segment LED PCB

My version of the second project from the KiCad like a Pro course (the first was an nRF24 breakout board).

The board combines a common-cathode 7-segment display with a shift register and current-limiting resistors. Nothing earth-shattering, but a good little KiCad exercise. I recently got the boards back from OSH Park, and they work just fine!

As always, all notes, schematics and code (including the KiCad project) are in the Little Arduino Projects repo on GitHub.

LittleArduinoProjects#188 read/write AT24C02 external EEPROM

The AT24C02 is from Atmel's line of serial EEPROM chips with a whopping capacity of 2K! (256 x 8) That's not a whole lot more than the onboard EEPROM in an Arduino, but it does have the advantage of being external:
  • it can stay in-situ even if the microcontroller disappears/gets exchanged
  • multiple devices can share access
There are a few libraries available that encapsulate the interaction with external EEPROMs, but first step is a simple test of the basic read and write capability using the basic Wire library. Surprise, it just works (as long as you get your bits and bytes ordered correctly).

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