Scope Noob: Microcontroller Quirks with DDS

In this installment of Scope Noob I’m working with Direct Digital Synthesis using a microcontroller. I was pleasantly surprised by some of the quirks which I discovered during this process. Most notably, I had a chance to look at errant triggers solved by using holdoff and a few timing peculiarities introduced by my use of the microcontroller. Here’s a video synopsis but I’ll cover everything in-depth after the break.

Continue reading “Scope Noob: Microcontroller Quirks with DDS”

Frappé Coffee Robot Offers Automated PIC-Me-Up

Although [Giorgos Lazaridis] has graced Hackaday several times, we’ve never covered the build of his frappé machine which reader [Jim] encountered after searching for information about the PIC16F1937. His site shows the build as in-progress, but he definitely has a working prototype here, and it’s definitely awesome.

Frappé coffee is made by mixing spray-dried instant coffee, a small amount of cold water, and sugar to taste in a manual shaker or a milkshake machine that uses a single beater. More water and/or milk is added as desired to top off the glass. The method was invented by accident in Thessaloniki, Greece, and has become quite popular.

In addition to sixteen pages of detailed build logs, [Giorgos] shot videos that demonstrate each of the modules that make up the machine. The operator puts a glass in a holder attached to a turntable. It moves first to the coffee and sugar dispenser, which fall through the same easily removable funnel. The next stop combines the add-water-and-beat steps beautifully. A length of hose strapped to the beater’s housing dispenses the initial cold water base. Then, the beater lowers automatically to beat the mixture. After mixing, the beater is drawn back up an inch or so, and more water is dispensed to rinse it off. Then the beater is fully withdrawn and the glass is filled the rest of the way. The final stop for the frappé is essential to the process: a bendy straw must be added. This is vitally important, and [Giorgos] handles it admirably with a stinger that shoots a straw into the glass.

[Giorgos]’s coffee robot is built around a PIC16F1937. He rolled his own PCB for the motherboard and each of the machine’s modules. There is a lot of logistical ingenuity going on in this project, and [Giorgos]’ build logs convey it all very well. Be sure to check out [Giorgos]’ machine in action after the break. The full set of eight videos that shows each module and culminates in the one below is well worth your time.

Continue reading “Frappé Coffee Robot Offers Automated PIC-Me-Up”

Better SPI Bus Design

Quick, how do you wire up an SPI bus between a microcontroller and a peripheral? SCK goes to SCK, MISO goes to MISO, and MOSI goes to MOSI, right? Yeah. You’ll need to throw in a chip select pin, but that’s pretty much it. Just wires, and it’ll most likely work. Now add a second device. The naïve solution found in thousands of Arduino tutorials do the same thing; just wires, and it’ll probably work. It’s not that simple, and Mr. Teensy himself, [Paul Stoffregen] is here to show you why.

When using multiple SPI devices, a pullup resistor on the chip select lines are a really great idea. Without a pullup, devices will work great when used alone, but will inexplicably fail when used together. It’s not magic; both devices are listening to the bus when only one should be. Putting a pullup on the CS lines keeps everything at the right logic level until a device is actually needed.

How about the MISO line? Most peripherals will disconnect their pins when the chip select signal is active, but there are exceptions. Good luck finding them. There is an easy way to check, though: just connect two resistors so the MISO line floats to a non-logic level when the CS pin is high, and check with a voltmeter. If MISO is driven high or low, you should put a small tri-state buffer in there.

That just covers hardware, and there are a few things you can do in software to reduce the number of conflicts when using more than one SPI device. One of these methods is transactions, or defining the clock rate, setting MSB or LSB first, and the polarity of the clock. Newer versions of the Arduino SPI library support transactions and the setup is very easy. In fact, transaction support in the Arduino library is something [Paul] worked on himself, and gets around the problem of having SPI-related code happening in both the main loop of a program and whenever an interrupt hits. Awesome work, and a boon to the Arduino makers around the world.

Programmable Lithium Charger Shield for Arduino

Surely you need yet another way to charge your lithium batteries—perhaps you can sate your desperation with this programmable multi (or single) cell lithium charger shield for the Arduino?! Okay, so you’re not hurting for another method of juicing up your batteries. If you’re a regular around these parts of the interwebs, you’ll recall the lithium charging guide and that rather incredible, near-encyclopedic rundown of both batteries and chargers, which likely kept your charging needs under control.

That said, this shield by Electro-Labs might be the perfect transition for the die-hard-‘duino fanatic looking to migrate to tougher projects. The build features an LCD and four-button interface to fiddle with settings, and is based around an LT1510 constant current/constant voltage charger IC. You can find the schematic, bill of materials, code, and PCB design on the Electro-Labs webpage, as well as a brief rundown explaining how the circuit works. Still want to add on the design? Throw in one of these Li-ion holders for quick battery swapping action.

[via Embedded Lab]

Morse Decoder’s Lean and Sexy Search Algorithm

Often the Morse Code centered projects that we feature are to help you practice transmitting messages. This one takes a tack and builds an automatic decoder. We think [Nicola Cimmino’s] project is well worth featuring simply based on his explanation of the Digital Signal Processing used on the signal coming in from the microphone. Well done. But he’s really just getting warmed up.

What makes this really stand out is a brilliant algorithm that allows conversion from Morse to ASCII using a lookup table of only 64 bytes. This provides enough room for A-Z and 0-9 without chance of collision but could be expanded to allow for more characters. Below is a concise description of how the algorithm works but make sure you take the time to read [Nicola’s] project description in its entirety.

The algorithm can be decribed as follows. Have an index inside the lookup string inizialied to zero. Have an initial dash jump size of 64. At every received element (dot or dash) halve the initial dash jump and then increase by 1 the index inside the lookup string if a dot was received and by dash jump size if a dash was received. Repeat until a letter separator is reached, at that point the index inside the lookup string will point to the ASCII corresponding to the decoded morse.

Have you heard of this technique before? If so, tell us about it in the comments below. Before you jump all over this one, realize that Magic Morse uses a different technique.

Throwing Pis into the Stratosphere

It’s always exciting to see the photos from High Altitude Ballooning (HAB) outings. While it’s no surprise that the Raspi is a popular choice—low cost, convenient USB jacks, etc.—this is the first build we’ve seen that uses an OLED during the trip to show real-time data on-screen to be picked up by the on-board webcam. (Though you may have to squint to see it at the bottom middle of the above image).

[Fabrice’s] payload made it to 26,000m, and the screen he chose, an ILSOFT OLED, performed admirably despite the extreme conditions suffered (temperatures can reach -50C). The last time we saw a near-space Raspi payload was a couple of years ago, when [Dave Akerman] was closing in on UK balloon altitude records. [Dave] hasn’t stopped launching balloons, either, testing new trackers and radio modules, as well as his most recent build that sent a Superman action figure to the skies—all recorded in glorious HD.

Check out both [Dave] and [Fabrice’s] blogs for loads of pictures documenting the latest in High Altitude Ballooning, and stay with us after the jump for a quick video of [Fabrice’s] OLED in action.

Continue reading “Throwing Pis into the Stratosphere”

Adding a Battery Gauge to a Project With Zero Parts

The typical way of doing a low battery detector is throwing a comparator in the circuit, setting it to measure a certain threshold voltage, and sending that signal off to a microcontroller or other circuit to notify someone the battery is going dead. [Josh] has a simpler way using an 8-bit AVR and zero other parts.

The chip [Josh] is using is the ATtiny84. The ADC in this chip is usually used to measure an unknown voltage against a reference voltage. The trick [Josh] is using is to do this in reverse: The internal 1.1 Volt reference voltage is measured against an unknown scale, namely the input voltage.

The value provided by the ADC on the chip will always be Vin times 1024 over the reference voltage. Since Vin will be 1.1 V in this case, the ADC value is known, it’s only a matter of doing some 6th grade algebra to determine the value of the input voltage.

[Josh] put together a small demonstration where the chip blinks out the number of volts its receiving from a bench power supply. By blinking a LED, it can blink out the current value of VCC as integers, but by using this technique you should be able to get a fairly fine-grained reading of what VCC actually is. Video below.

Continue reading “Adding a Battery Gauge to a Project With Zero Parts”