[Great Scott] should win an award for quickest explanation of a buck converter. Clocking in at five and a half minutes, the video clearly shows the operating principles behind the device.
It starts off with the question, what should you do if you want to drop a voltage? Many of us know that we can dim and brighten an LED using the PWM on an Arduino, but a closer inspection with an oscilloscope still shows 5V peaks that would be dangerous to a 3.3V circuit. He then adds an inductor and diode, this keeps the current from dropping too fast, but the PWM just isn’t switching fast enough to keep the coil energized.
A small modification to the Arduino’s code, and the PWM frequency is now in the kHz range. The voltage looks pretty good on the oscilloscope, but a filter cap gets it to look nice and smooth. Lastly, he shows how when the load changes the voltage out looks different. To fix this a voltage divider feeds back the information to the Arduino, letting it change the PWM duty to match the load.
In the last minute of the video he shows how to hook up off-the-shelf switching regulators, whose support components are now completely demystified as the basic principles are understood. Video after the break.
Continue reading “How Does a Buck Converter Work Anyway?”
We first thought [Alexis Ospitia]’s watch was a sports watch made with an Arduino, but it’s actually a sporty watch made with an Arduino. This explains the watch’s strange ability to tell you the current temperature and humidity.
The core of the watch is an Arduino Mini. To make it good for time telling, a real-time clock module was added. A DHT11 monitors the temperature and humidity. A charge circuit and lithium battery provide power. Finally, the watch displays the date, time, and other data with an LCD from a Nokia 5110. We can tell you the last part that’s going to break on this.
Even if you think the watch is a bit chunky, the tutorial is very slick. [Alexis] has taken the trouble to individually draw and describe each portion of the watch’s construction. He explains each pin, what they do, and provides a Fritzing drawing of the wires to the Arduino. The code is provided; to program the watch a USB-to-serial module must be used.
For the housing he made a box from a thin gauge aluminum sheet and attached leather straps to the assembly. The final construction is cool looking in a techno-punk way, and is fairly compact. One might even say sporty.
If you’re on the edge about getting your amateur radio license, just go do it and worry about the details later. But once you’ve done that, you’re going to need to know a little bit about the established culture and practices of the modern ham — the details.
Toward that end, [McSteve] has written up a (so far) two-part introductory series about ham radio. His first article is fairly general, and lays out many of the traditional applications of ham radio: chatting with other humans using the old-fashioned analog modes. You know, radio stuff.
The second article focuses more on using repeaters. Repeaters can be a confusing topic for new radio operators: there are two frequencies — one for transmitting and one for receiving — and funny control tones (CTCSS) etc. This article is particularly useful for the new ham, because you’re likely to have a relatively low powered radio that would gain the most from using a repeater, and because the technology and traditions of repeater usage are a bit arcane.
So if you’re thinking about getting your license, do it already. And then read through these two pages and you’re good to go. We can’t wait to see what [McSteve] writes up next.
Implementing a Bluetooth Low Energy (BLE) device from scratch can be a daunting task. If you’re looking for an incredibly detailed walkthrough of developing a BLE project from essentially the ground up, you’ve now got a lot of reading to do: [Jocelyn Masserot] takes you through all the steps using the ARM-Cortex-M0-plus-BLE nRF51822 chip.
The blog does what blogs do: stacks up in reverse-chronological order. So it’s best that you roll on down to the first post at the bottom and start there. [Jocelyn] walks you through everything from setting up the ARM compiler toolchain through building up a linker script, blinking an LED, flashing the chip, and finally to advertising your device to your cell phone. It’s a lot of detail, but if you’re doing something like this yourself, you’re sure to appreciate it.
Of course, all the code is available for you to
crib peruse on [Jocelyn]’s GitHub. And for yet more background reading on BLE, check out the Hackaday Dictionary.
[Vadim] wrote up this short but sweet tutorial on getting started with the Vocore (tiny) OpenWRT-router-on-a-stamp. If you need more computing power than you can get with an ESP8266, and you want an open-source Linux-plus-Wifi solution in a square inch of board space, the Vocore looks pretty sweet.
We covered the Vocore a while ago. It has 28 GPIOs, all accessible from system calls in OpenWRT. It becomes much more computer-like if you add a dock that breaks out the USB and Ethernet functionality, but that also doubles the price.
Getting started with a no-frills Linux box (chip?) can be intimidating. So it’s a good thing that [Vadim] details a first setup of the Vocore over WiFi and SSH, and then takes you through a button-and-LED style ‘Hello World’ application that makes simple use of the GPIOs.
He says he’s going to interface it eventually with a TI CC110 sub-gig radio unit, but that’s going to involve writing some drivers and will take him some time. We’d love to see how to connect peripherals, so we’re waiting with bated breath.
[Vadim] also helpfully included an un-bricking script for the Vocore, which restores the default firmware and gets you out of whatever hole you’ve managed to dig yourself into. Basically, you connect to the device over a USB-Serial adapter, run his script, and you should be set.
Any of you out there using a Vocore? Or other OpenWRT routers? Give [Vadim]’s tutorial a glance and let us know what you think.
If you’re just getting into software-defined radio (SDR) but you find some of the math and/or terminology a bit of hurdle, you could absolutely do worse than to check out these SDR tutorials by [Michael Ossmann]. While they’re aimed at people using his HackRF One tool (which we love), most of the tutorial videos are very generally applicable, and we realized that we hadn’t mentioned them explicitly before. Shame on us!
Ossmann focuses on SDR using the open-source GNURadio Companion GUI tool, which makes implementing a lot of cool SDR techniques as easy as dragging and dropping items into a flow diagram. If you want an overview of GNURadio or SDR in general, these videos are a must-watch.
In particular, we loved his entries on complex numbers and complex numbers in DSP because he goes through the whole rationale behind using imaginary numbers in radio work with a graphical presentation that helps add rationale to the otherwise slightly spooky math. Heck, watch these two even if you’re not interested in radio.
The newest entry, covering DSP filters includes a great hands-on introduction to finite impulse response (moving average) digital filters. We really like the practical, simulation-based approach presented in the video — it’s just perfect for a quick introduction.
So if you’re looking for a relatively painless way to get into SDR, grab yourself an RTL-SDR dongle, burn yourself a GNURadio Live DVD, and work through these videos.
Working with embedded systems usually involves writing code which will interface with hardware. This often means working on the register level. It doesn’t matter if we’re talking about a UART, an analog to digital converter, an LCD controller, or some other gizmo. Sooner or later, you’re going to have to break out the datasheets and figure out how to talk to an external device. To succeed at this you must become a master of bit manipulation.
Hardware designers don’t like wasting space, so modes, settings and other small pieces of information are often stored as packed bits. Our processors usually access things a byte (or a word) at a time, so what is the best way to handle this? Like so many other topics in software engineering, there are multiple ways to skin this cat. In C (and its derivatives) there are two major options: shift and mask, and bit fields.
Continue reading “Firmware Factory: Bit Fields vs Shift and Mask”