Author Archives: Neil MacMillan

Low-rent acoustic receiver

Receiver Circuit

Transmitter (top) and receiver (bottom) circuits.

I’ve previously described the power supply and transmitter for my acoustic modem.

The receiver circuit completes the modem’s hardware design.  It is simply a two-stage amplifier that gives a total gain of about 2000, in series with a band-pass filter.

The acoustic transducer produces a beautiful sine wave with nearly no noise.  I found that I could apply a huge gain to its output and the amplifier’s output would still be clean: the raw (unfiltered) output has a 5 V offset, and the signal fits into the 5 V above the offset.  In other words, the output is at -5 V when idle and peaks at around 0 V when the receiver receives a signal.

The goal is for the receiver to output a signal that is around -10 V when idle and peaks at -5 V when it receives a signal.  These voltages correspond respectively to logic low and high on the microcontroller.

Continue reading

Ruminations on guitar tuner mkII

Moooooooo.

The old guitar tuner I made works fine, but I’m thinking of some improvements:

  • The first priority is to switch the power supply from a 16 mm coin cell to a 20 mm coin cell.  20 mm cells are way easier to find: the dollar store down the street carries 2032 cells (2032 means 20 mm diameter, 3.2 mm height), but 1632 cells are expensive and hard to find.  Right now I’m clamping a 3x AA battery holder to the tuner’s + and – power pins, which is not comfortable.
  • The rotary switch is too expensive.  A 0.1″ two-row header with a jumper to select the tuner’s frequency will be cheaper, and won’t be an ugly blue box.  This is still not as flexible as the 7-segment display the original project used.
  • I’d like to use a low profile DIP switch to turn the power on and off instead of (or in addition to) mucking around with sleep mode.
  • It would be cool to use a surface mount microcontroller and crystal.  Getting an STK 600 routing card for 14-pin SOIC AVR chips might be worth it if I find money somewhere.

I considered replacing the microcontroller with a 555 timer, but I don’t think the 555 timer will generate sufficiently precise frequencies because of the tolerances in the resistors and capacitors.

Low-rent acoustic transmitter

Acoustic transmitter circuit

Acoustic transmitter circuit.

Above you can see the transmitter part of my acoustic modem.  From left to right, the components are: the power supply, the acoustic transducer, the amplifier, and the microcontroller.

The problem: I need to send a 40 kHz, 20 V peak-to-peak square wave to the transducer.  The circuit has two outputs, + and -, that are connected to the two transducer pins.  In other words, each output needs to switch from +10 V to -10 V  and back once every 25 microseconds.

As always, there are a few decent solutions, and as always I didn’t implement the best one.

Continue reading

The Schmitt trigger

Schmitt trigger example

Simulation of a Schmitt trigger. The yellow sine wave is the input, the purple square wave is the output.

I was looking for a way to convert an analogue signal into a digital signal, and came across the Schmitt trigger.  This is a great little circuit that you can build with a couple transistors or with an operational amplifier.  I tried to build a transistor-based simulation in Simulink, but it didn’t work right away.  My op-amp simulation did work, so I stuck with that.

The principle is simple: if the trigger input rises above a certain threshold, then the output saturates to the op-amp’s positive power supply voltage.  When the input falls below another threshold, the output saturates to the op-amp’s negative power supply voltage.  If the input lies between the thresholds then the output doesn’t change from whatever it was before.

This is incredibly useful.  To the left you can see a 0.3 V sine wave being converted into a 5 V binary signal (actually a 4.5 V signal, since I added a diode in series with the output to keep it from going down to -5 V).  It also effectively filters out any input jitter that doesn’t cross the threshold needed to change the output state.  Microcontrollers have Schmitt triggers on their digital inputs.  For example, an AVR microcontroller being powered by 5 V typically considers a 0 logic level to be under 1.5 V and a 1 logic level to be over 3 V.  If the input sits between 1.5 V and 3 V then the digital state remains whatever it was before the input entered that region.

Alas, it’s not a perfect circuit.  I used an online calculator to figure out what resistances I needed for my project.  Configurations that worked in the calculator and in simulation didn’t work in reality, either producing no output or something more like a sawtooth wave than the square wave I expected.  It’s probably a limitation in my op-amp—maybe the signal is too high-frequency, I didn’t investigate very deeply.

How I’m powering my acoustic modem

Power supply

A ±10 V power supply

I’ve covered how not to power an acoustic modem, and how I’d like to power an acoustic modem, now it’s time to tell how I’m doing it right now.

To restate and clarify the problem: I want to use an acoustic transducer to transmit and receive data via pressure waves.  The transducer I have transmits a 40 kHz carrier wave, and can be driven by up to 20 V.  That means that when transmitting, the circuit must alternate a 20 V signal back and forth between the transducer’s two input pins, once every 25 microseconds.  Additionally when receiving, the transducer’s output signal needs to be amplified into a usable signal. Continue reading

How to power an acoustic modem

I mentioned before that I’m basing my acoustic transducer off the Devantech SRF04 ultrasonic ranger.  I’m removing the piezoelectric transducers from a dead SRF04 unit and using them for my modem.  The transducers, which are the part that generate and receive the acoustic pressure wave that carries data, have a range of about 6 metres or so (one way), are driven with up to 20 V, and resonate at around 40 kHz.

The puzzle I’m working on right now is how best to actuate the transducer to generate a 40 kHz pulse.  The SRF04 does it using a chip that’s intended to convert 5 V logic signals into the ±12 V signals used for the RS-232 serial protocol.  Unfortunately most RS-232 converter chips aren’t made to power an acoustic transducer, and they aren’t able to provide enough current to generate a strong signal.

Continue reading

How not to power an acoustic modem

crummy power supply

How not to generate a ±10 V power supply

I feel pretty dumb talking to nobody like this.  My domain name doesn’t even work yet, but I guess logging is what engineers do.  And I’m imaginative enough to see the utility of it: it’ll be nice down the line to have a log to review, writing stuff down helps flesh out ideas, and an open design process will make it a heck of a lot easier to produce open documentation.  It will be tough to expose all my bad decisions and half-baked ignorance (and mixed metaphors), but I can suck it up.

My first project is to build an acoustic modem.  This follows the principle of multiplying work: the modem doubles as my class project for ELEC 571: Underwater Acoustics.  We’ve been using the Devantech SRF04 ultrasonic ranger in the mechatronics lab, and it strongly informs my design.  The SRF04 actually uses an RS-232 chip to generate ±9 V levels, which actuate a piezoelectric transducer.  I took a couple of the transducers from a broken SRF04 to use for my project.

I tried using an RS-232 chip that we had lying around in the lab, but those things have draconian current limits.  There’s no way I can power a whole circuit off of one.  I’m probably going to try it again soon though.

My solution: a DC/DC converter (AP34063N8L) to step up a 7.4 V lithium polymer battery up to 20 V.  Taking half the output as the reference voltage will produce a ±10 V power supply.  With that I can power pretty much anything I want. Continue reading