SparkFun will be closing early at 3:30 Friday 5/27 and remain closed Monday for Memorial Day (5/30). Orders placed after 2pm MT on Friday (5/27) will process and ship out on Tuesday (5/31).

Creative Commons images are CC BY-NC-SA 3.0

Mini Speaker - PC Mount 12mm 2.048kHz
project on
hackster.io project

On Call Bot
by Jeremy Stover

Description: This is a small 12mm round speaker that operates around the audible 2kHz range. You can use these speakers to create simple music or user interfaces.

This is not a true piezoelectric speaker but behaves similarly. Instead of a piezoelectric crystal that vibrates with an electric current, this tiny speaker uses an electromagnet to drive a thin metal sheet. That means you need to use some form of alternating current to get sound. The good news is that this speaker is tuned to respond best with a square wave (e.g. from a microcontroller).


Recommended Products

Customer Comments

  • Check out our new Piezo tune Instructable to learn how to code your favorite tunes with code and scheme from Circuito.io >> http://www.instructables.com/id/Piezo-Tunes/

  • I bought two of these. One matches the description and datasheet. It works well.
    The other has no markings, does not match the description nor the datasheet. It does not work.
    Based on my experience, you have a 50/50 chance of getting a working buzzer. My next order will be with someone else.

    • When you get a defective part (happens to everyone) from a supplier, wouldn’t it be better to contact them for a replacement/credit/refund than whining about it? How else will they know the failure rate of the parts from their own vendors? Otherwise, they have no way of knowing if you went to a different supplier due to availability, product selection, pricing, or defective parts (unless they read these comments)?

    • Got mine with markings and works fine.

    • I’ve also got one without markings, but this one works.

  • Here’s a quick Arduino sketch to have this component make an arbitrary tone by hooking it up to a digital I/O pin. It’s not super precise, and you may need to adjust DELAY_OFFSET to fine-tune the pitch depending on your processor’s speed. It gets the job done though.
    #define DELAY_OFFSET 11
    #define BEEP_PIN 20
    // declare it for good measure
    void beep(unsigned long hz, unsigned long ms);
    void setup() {
    pinMode(BEEP_PIN, OUTPUT);
    void loop() {
    beep(440, 250);
    void beep(unsigned long hz, unsigned long ms) {
    // reference: 440hz = 2273 usec/cycle, 1136 usec/half-cycle
    unsigned long us = (500000 / hz) - DELAY_OFFSET;
    unsigned long rep = (ms * 500L) / (us + DELAY_OFFSET);
    for (int i = 0; i < rep; i++) {
    digitalWrite(BEEP_PIN, HIGH);
    digitalWrite(BEEP_PIN, LOW);
    Of course, beep() is the important function. You can probably figure out the rest. This is great for simple audible indicators. The example above assumes you connected it to digital pin 20, then simply beeps 440Hz for 250ms once per second. Use a guitar tuner or some other similar device to tweak DELAY_OFFSET as necessary to achieve exactly 440Hz if it’s important to you. I used 11 for a Teensy++ configured to run at 8MHz. It shouldn’t be off by very much if it is at all for your board.

    • Good heavens, I just realized that I pretty much re-created the tone() function that is part of the Arduino IDE. D'oh. This one may not have PWM interference problems though. On the other hand, it is an asynchronous/blocking function.
      This ought to teach me to look stuff up first…

  • I bought a few of these hoping to get piezo discs out of them, with which to make contact microphones. Unfortunately for me, these are NOT piezobuzzers. Inside is a tiny ferrite-core electromagnet (shielded!), which sits under a very thin metal disc with a little magnet glued to the middle.

    • You are correct, these are actually small SPEAKERS (with a very non-flat frequency response). The product title is wrong, but there is a clue in the datasheet (albeit a small one), where it describes the part as a “magnetic speaker”, rather than “piezoelectric speaker”. We can only hope that Sparkfun eventually fixes this.

    • This part is also included in the SIK, where it’s also referred to as a piezo element. Had me stumped as to why I couldn’t get a voltage out of it.

  • Somewhat confused about this item :-\
    Is it a buzzer, ie I apply a constant 5V current and it makes a sound, or is it a speaker in the sense I have to send pulses of current?
    The title (Buzzer - PC Mount 12mm 2.048kHz) would suggest a buzzer that emits a tone of 2048Hz, yet the appearance of the PCB underneath would suggest it’s a passive speaker.

    • This is more of a generic speaker than an actual buzzer. If you feed it a constant voltage, you will hear nothing.

  • Will this work with a 220 Ohm resistor on the transistor base?

    The datasheet says to use 180 Ohm, but the closest I got is 220 Ohm.

  • I ordered one of these but instead received an Electro-Magnetic Transducer. The markings read: CET 12A3.5 13 501 And it is very similar to this one: http://www.chinasound.com/Product/CET/CET12A3.5-42-2.0R.htm

  • It is not a buzzer, it is a speaker. If I had read the comments, I’d have seen that I’m not the first to be misled by the product description. Shame on me for not looking closer. OTOH, often the reason I order from sparkfun instead of mouser or digikey is because of sparkfun’s clear product descriptions, pictures, and examples…that save me from having to wade through a bewildering array of product options on those other sites. Sparkfun’s lack of response to multiple comments about misleading product description is disappointing, and, frankly, below what I expect from sparkfun. Hope you guys take the 5 minutes it would require to clarify the product description web page.

  • A bit quiet, it’ll get your attention if it’s sitting on your desk while you’re working, but don’t expect much. It gets noticeably louder if you put a bit of scotch tape over hole.

    • Just tried the tape, and there is a definite increase in volume. I’m wondering if anyone knows why this should work (just curious). :)

  • It’s not a buzzer. It appears that you need to drive it with an ac signal as it only “clicks” when you apply a dc voltage. Misleading description. Not worth returning for $1.95.

  • I’d like to find something to drive a dog off a couch. I needed something that will emit in the 20khz to 40khz range. Will this work?

  • Hey, I tried to modify this code http://ardx.org/src/circ/CIRC06-code.txt to include an A#. I found the frequency, and then the ‘timehigh’ required for the note, and I changed the char names [] and int tones [] to include the a#, and I changed the for{} below to go up to 9. However, I am still getting an error, which I do not understand. Can anyone help?

  • I built the board up last night, and so far everything seems functional except the knock sensor. Both the buzzers measure 18 ohms, and the buzzer works fine. However i cannot get a usable reading off of the knock sensor. Considering that the original knock sensor was based on a piezo element, and this is clearly a coil device, is it possible that it just is not sensitive enough?
    Any suggestions?
    tom w wolf

    • It’s just not sensitive enough. One day, I got an 8-ohm cone speaker where the coil was right in the foreground, I knocked on it, nothing. Try the PC Mount Piezo Buzzer from RadioShack, about the same size, works as a knock sensor, and of course, overpriced. It’ll actually work, though.

  • How do you drive these? By feeding it at a certain frequency around 2kHz?
    How loud are these? I need to generate something like a whistle tone (so not constant frequency) that should be audible outdoor at around 50 meters.

    • How loud?
      In my experience not nearly enough.
      I am driving mine at 2kHz (2000Hz as opposed to 2048Hz) because of the settings of the timer I use and the volume is pretty low.
      I was hoping to make it a beeping tone to help find the rocket once it has landed but with the volume I get out of it I will have to find the rocket first in order to assess if it is beeping.
      Now, admittedly the response curve has peaks and I might be just on the edge of the high-response peak - but if so you can forget your whistle tone as a slight variation of frequency cuts it by 20dB according to the datasheet, and the low noise is, well, low.

      • In the past I’ve used a Piezo beeper on a rocket for exactly that purpose (finding a small rocket in sagebrush can be challenging to say the least). The Piezos have a loud, piercing tone (think smoke alarm) and very low power consumption. SparkFun doesn’t sell one, but you can find them a lot of other places including Radio Shack.

  • Got one with markings, works great with the arduino “Melody” example, slightly bending one of the pins allows you to plug directly into digital pin 12 and ground.

Customer Reviews

4.4 out of 5

Based on 5 ratings:

5 star
4 star
3 star
2 star
1 star

1 of 1 found this helpful:

Pretty good little noise maker

I’ve used this speaker to generate an alarm tone. It makes a decent amount of noise, but:

  • It’s loudest at 2048Hz
  • Drive it with a transistor and include the diode (see schematic in datasheet).

1 of 1 found this helpful:

Pretty good little noise maker

I’ve used this speaker to generate an alarm tone. It makes a decent amount of noise, but:

  • It’s loudest at 2048Hz
  • Drive it with a transistor and include the diode (see schematic in datasheet).

2 of 2 found this helpful:

Loud enough for it's size

It’s seems like most people complain that this speaker isn’t loud enough but I would disagree. Sounds like it will be plenty loud to wake me up at night over my white noise generator which is what I needed. Plus, how much volume do expect to get out of a SPEAKER this size? A piezo would be louder, yes, but that’s not what you’re buying.

I followed the schematic in the datasheet; supply voltage is 3.3V, the diode is a simple 1N4148, transistor is a PN2222A (same thing as a 2N3904, just more power capability and what I had on hand!), a 180 ohm base resistor, and driving it with 2048Hz PWM from an Arduino.

I should also say that mine doesn’t have the markings like the one in the product picture, but it still works great! That seemed to be something people were complaining about in comments I read.

compact goodness

Good volume, easy to breadboard and work with, one transistor and a pulldown resistor and you’re good. I’m with the other guys though, these things amplitude falls of at higher/lower pitches rapidly.