Single-Board, Arduino Uno Shield-Compatible Dev Kit

Nordic Semiconductor’s new Aruduino Uno shield-compatible nRF51 DK development kit supports Bluetooth Smart, ANT, and 2.4-GHz designs. Nordic also announced the availability of its nRF51 Dongle, which is a 16 mm × 28 mm USB dongle for the testing, analysis, and development of Bluetooth Smart, ANT, and 2.4-GHz applications.Nordic-nRF51 DK_1

The nRF51 DK is based on Nordic’s nRF51 Series SoC, which combines a 2.4-GHz multiprotocol radio, 32-bit ARM Corte M0 processor, flash memory, and 16- or 32-KB RAM. The SoCs can support a wide range of peripherals and are available in quad flat no-lead (QFN) and wafer level chip scale package (WLCSP) options.

Key points about the nRF51 DK and nRF51 Dongle

  • You can use the nRF51 DK with a variety of third-party Arduino shield expansion boards. It also supports ARM mbed for rapid prototyping projects.
  • The nRF51 DK allows access to all device peripherals, interfaces, and I/Os.
  • The nRF51 DK includes four user-programmable buttons and LEDS plus voltage and current pins to measure device power consumption.
  • nRF51 DK and nRF51 Dongle are supported by standard tool-chain options including Keil, IAR, and Gnu Compiler Collection (GCC).
  • The 63 mm × 101 mm nRF51 DK includes a coin-cell battery holder for field testing
  • You can use nRF51 DKhe DK as a programmer for other target boards that use the nRF51 Series SoC.

The nRF51 DK costs $69. The nRF51 Dongle is $49.

Source: Nordic Semiconductor

Arduino-Based Tube Stereo Preamp Project

If you happen to be electrical engineer as well as an audiophile, you’re in luck. With an Arduino, some typical components, and a little knowhow, you can build DIY tube stereo preamplifier design.

Shannon Parks—owner of Mahomet, IL-based Parks Audio—designed his “Budgie” preamp after reading an article about Arduino while he was thinking about refurbishing a classic Dynaco PAS-3.

Budgie preamp (Source: S. Parks)

Budgie preamp (Source: S. Parks)

In a recent audioXpress article about the project, Parks noted:

Over the last 10 years, I have built many tube power amplifiers but I had never built a tube preamplifier. The source switching seemed particularly daunting. A friend recommended that I refurbish a classic Dynaco PAS-3 which has been a popular choice with many upgrade kit suppliers. Unfortunately, the main part of these older designs is a clumsy rotary selector switch, not to mention the noisy potentiometers and slide switches. In the 1980s, commercial stereo preamplifiers started using IC microcontrollers that permitted cleaner designs with push-button control, relays for signal switching, and a wireless remote. While reading an article about the Arduino last year, I realized these modern features could easily be incorporated into a DIY preamplifier design.

All the circuits are on one custom PCB along with the power supply and microcontroller (Source: S. Parks)

All the circuits are on one custom PCB along with the power supply and microcontroller (Source: S. Parks)

Parks said the Arduino made sense for a few key reasons:

I found these features were incredibly useful:

  • A bank of relays could switch between the four stereo inputs as well as control mute, standby, gain, and bass boost settings.
  • A red power LED could use PWM to indicate if the preamplifier is muted or in standby.
  • An IR receiver with a remote could control a motor-driven volume potentiometer, change the source input selection, and turn the unit on/off. Any IR remote could be used with a code learning mode.
  • A backlit display could easily show all the settings at a glance.
  • Momentary push buttons could select the input device, bass boost, gain, and mute settings.
  • Instead of using several Arduino shields wired to an Arduino board, all the circuits could fit on one custom PCB along with the power supply and the microcontroller.

Parks used an Arduino Nano, which 0.73” × 1.70”. “The tiny Nano can be embedded using a 32-pin dual in-line package (DIP) socket, which cleans up the design. It can be programmed in-circuit and be removed and easily replaced,” he noted.

Parks used an Arduino Nano for the preamp project (Source: S. Parks)

Parks used an Arduino Nano for the preamp project (Source: S. Parks)

Parks described the shift register circuit:

The Budgie preamplifier uses a serial-in, parallel-out (SIPO) shift register to drive a bank of relays ….

A SIPO shift register is used to drive a bank of relays (Source: S. Parks)

A SIPO shift register is used to drive a bank of relays (Source: S. Parks)

Only four Arduino digital outputs—enable, clock, latch, and data—are needed to control eight DPDT relays. These correspond to the four outputs labeled D3, D4, D5, and D7 s …. The Texas Instruments TPIC6C595 shift register used in this project has heavy-duty field-effect transistor (FET) outputs that can handle voltages higher than logic levels. This is necessary for operating the 24-V relays. It also acts as a protective buffer between the Arduino and the relays.

Here you see the how to set up the Arduino Nano, LCD, power supply, push button , IR and motor control circuits (Source: S. Parks)

Here you see the how to set up the Arduino Nano, LCD, power supply, push button , IR and motor control circuits (Source: S. Parks)

As for the audio circuit, Parks explained:

The 12B4 triode was originally designed to be used in televisions as a vertical deflection amplifier. New-old-stock (NOS) 12B4s still exist. They can be purchased from most US tube resellers. However, a European equivalent doesn’t exist. The 12B4 works well in preamplifiers as a one-tube solution, having both high input impedance and low output impedance, without need for an output transformer. An audio circuit can then be distilled down to a simple circuit with few parts consisting of a volume potentiometer and a grounded cathode gain stage.
The 12B4 has about 23-dB gain, which is more than is needed. This extra gain is used as feedback to the grid, in what is often referred to as an anode follower circuit. The noise, distortion, and output impedance are reduced (see Figure 3). Using relays controlled by the Arduino enables switching between two feedback amounts for adjustable gain. For this preamplifier, I chose 0- and 6-dB overall gain. A second relay enables a bass boost with a series capacitor.
You only need a lightweight 15-to-20-V plate voltage to operate the 12B4s at 5 mA. Linearity is very good due to the small signal levels involved, as rarely will the output be greater than 2 VPP. A constant current source (CCS) active load is used with the 12B4s instead of a traditional plate resistor. This maximizes the possible output voltage swing before clipping. For example, a 12B4 biased at 5-mA plate current with a 20-kΩ plate resistor would drop 100 V and would then require a 120-V supply voltage or higher. Conversely, the CCS will only drop about 2 V. Its naturally high impedance also improves the tube’s gain and linearity while providing high levels of power supply noise rejection.

This article first appeared in Circuit Cellar’s sister publication, audioXpress (July 2014).

 

 

DIY Arduino-Based ECG System

Cornell University students Sean Hubber and Crystal Lu built an Arduino-based electrocardiography (ECG) system that enables them to view a heart’s waveform on a mini TV. The basic idea is straightforward: an Arduino Due converts a heartbeat waveform to an NTSC signal.

Here you can see the system in action. The top line (green) has a 1-s time base. The bottom line (yellow) has a 5-s time base. (Source: Hubber & Lu)

Here you can see the system in action. The top line (green) has a 1-s time base. The bottom line (yellow) has a 5-s
time base. (Source: Hubber & Lu)

In their article, “Hands-On Electrocardiography,” Hubber and Lu write:

We used the Arduino Due to convert the heartbeat waveform to an NTSC signal that could be used by a mini-TV. The Arduino Due continuously sampled the input provided by the voltage limiter at 240 sps. Similar to MATLAB, the vectorized signal was shifted left to make room at the end for the most recent sample. This provided a continuous real-time display of the incoming signal. Each frame outputted to the mini-TV contains two waveforms. One has a 1-s screen width and the other has a 5-s screen width. This enables the user to see a standard version (5 s) and a more zoomed in version (1 s). Each frame also contains an integer representing the program’s elapsed time. This code was produced by Cornell University professor Bruce Land.

As you can see in the nearby block diagram, Hubber and Lu’s ECG system comprises a circuit, an Arduino board, a TV display, MATLAB programming language, and a voltage limiter.

The system's block diagram (Circuit Cellar 289, 2014)

The system’s block diagram (Circuit Cellar 289, 2014)

The system’s main circuit is “separated into several stages to ensure that retrieving the signal would be user-safe and that sufficient amplification could be made to produce a readable ECG signal,” Hubber and Lu noted.

The first stage is the conditioning stage, which ensures user safety through DC isolation by initially connecting the dry electrode signals directly to capacitors and resistors. The capacitors help with DC isolation and provide a DC offset correction while the resistors limit the current passing through. This input-conditioning stage is followed by amplification and filtering that yields an output with a high signal-to-noise ratio (SNR). After the circuit block, the signal is used by MATLAB and voltage limiter blocks. Directly after DC isolation, the signal is sent into a Texas Instruments INA116 differential amplifier and, with a 1-kΩ RG value, an initial gain of 51 is obtained. The INA116 has a low bias current, which permits the high-impedance signal source. The differential amplifier also utilizes a feedback loop, which prevents it from saturating.

Following the differentiation stage, the signal is passed through multiple filters and receives additional amplification. The first is a low-pass filter with an approximately 16-Hz cutoff frequency. This filter is primarily used to eliminate 60-Hz noise. The second filter is a high-pass filter with an approximately 0.5-Hz cutoff frequency. This filter is mostly used to eliminate DC offset. The total amplification at this stage is 10. Since the noise was significantly reduced and the SNR was large, this amplification produced a very strong and clear signal. With these stages done, the signal was then strong enough to be digitally analyzed. The signal could then travel to both the MATLAB and voltage limiter blocks.

Hubber and Lu’s article was published in Circuit Cellar 289, 2014. Get it now!

24-Channel Digital I/O Interface for Arduino & Compatibles

SCIDYNE Corp. recently expanded its product line by developing a digital I/O interface for Arduino hardware. The DIO24-ARD makes it easy to connect to solid-state I/O racks, switches, relays, LEDs, and many other commonly used peripheral devices. Target applications include industrial control systems, robotics, IoT, security, and education.Scidyne

The board provides 24 nonisolated I/O channels across three 8-bit ports. Each channel’s direction can be individually configured as either an Input or Output using standard SPI library functions. Outputs are capable of sinking 85 mA at 5 V. External devices attach by means of a 50 position ribbon-cable style header.

The DIO24-ARD features stack-through connectors with long-leads allowing systems to be built around multiple Arduino shields. It costs $38.

[Source: SCIDYNE Corp.]

Arduino-Based Lathe Tachometer

Want an electronic tachometer to display the RPM of a lathe or milling machine? If so, Elektor has the project for you.

The electronics tachometer design features an Arduino micro board and  a 0.96″ OLED display from Adafruit for instantaneous readout. The compact instrument also has a clock displaying the equipment running time.