We will be closed on November 25, 2021 and November 26, 2021 in observance of the Thanksgiving holiday. We will resume normal operations on November 29, 2021. Wishing you a safe and happy holiday from all your friends at SparkFun!


Receive a free SparkFun USB Thumb Drive with every order this weekend. Details.



Member Since: January 7, 2010

Country: United States

  • Just got this running and wanted to point out two things about the example code that could cause problems --

    1) There's no delay between the SpeakJet's reset and when it starts in on the first message. Since it's set up to say "Ready" on reset, this makes the demo sound not quite like "All your base are belong to us"; add some pareidolia and I was hearing "Every your base are belong to us".

    2) The strings created to pass to the SpeakJet are not null-terminated. This will give the SoftSerial.print call problems finding the end of each string; in practice, the string of phonemes is read, the .print() keeps looking for a \0, and continues straight on to the next string, the robot noises. It finds a null after that (because it's the last global variable declared) and thus plays the robot noises twice. You can not count on just happening to have a null after an unterminated string, though -- for instance, if the next allocated byte after an unterminated string had the value decimal 16, SpeakJet would interpret that as a Wait command -- and all voicing would freeze, and it could be very hard to debug. So remember to add a 0 to the end of strings.

    Otherwise, I'm enjoying the little thing. Now to decide on an application...

  • The most straightforward way would seem to be converting the quadrature to discrete "up" and "down" pulses, and then pushing that into a digipot with an up/down interface, like the AD5220 or the DS1804 (among many others). http://www.edn.com/design/test-and-measurement/4347618/Rotary-encoder-mates-with-digital-potentiometer is an example using a quadrature decoder chip (the LS7084); http://electronicdesign.com/analog/simple-quadrature-decoder-suits-rotary-encoders has a decoder made from discrete logic if you wanted to go that route.

    LSI used to make a quadrature-encoder controlled digipot, the LSXXXX. Alas, it's long gone now.

  • Late comment here -- "Windows" is not patented. Nor is World of Warcraft. Nor is the iPhone. Each of these makes use of technologies that the appropriate companies have under patent, but none of them is patented of themselves. What they are mostly protected by is copyright. And copyright is absolutely integral to Open Source, both software and hardware -- it's what gives open licences their protection.

    (A copyright applies to a work, a patent applies to an invention. In either case, it's a government-granted monopoly for a (theoretically) limited time, and the intent in either case is to enrich the public good.)

    (As for what Microsoft has patents for that it's getting money from Android phone manufacturers, see http://androidcommunity.com/barnes-noble-reveals-microsofts-android-patents-in-detail-20111114/ ; at a glance, it's a lot of old patents that should mostly be invalidated by prior art. The real force here comes when a company with deep pockets decides to lean on you and say, effectively, "That's a much better product than we could ever make! So give us millions of dollars. Oh, and if you don't want to be blackmailed like this, we can go to the courts, where you'll need to spend millions of dollars defending yourselves, and then give us millions of dollars because we have more lawyers than the population of Wyoming.")

  • Any chance of the 4-conductor 1/8" jacks/plugs like iphones and other smartphones are starting to use?

  • If your meter matches the product picture, the black circle with the slot at bottom-center should adjust with a screwdriver. I couldn't make out the corresponding feature on the "Product Sheet" image.

  • There is this buying guide, though I'm not sure how up-to-date it is (and it obviously doesn't have the MMA8452Q on it yet).