DC to DC conversion has come a long way. What was once took an electromechanical vibrator and transformer has been reduced to a PC board the size of a largish postage stamp that can be had for a couple of bucks on eBay. So why roll your own buck-boost converter for the ground up? Maybe because sometimes the best way to learn is by doing.
Open Source software has been around for decades. Over these decades, Open Source software has been the driving force behind most of the Internet, and all of the top-500 supercomputers. The product of the Open Source software movement is perhaps more important than Gutenberg’s press. But hardware has not yet fully embraced this super-charging effect of openness. Being able to simply buy an open source CPU, free of all proprietary bits and NDAs is impossible.
Now, this is finally changing. OnChip, a startup from a group of doctoral students at the Universidad Industrial de Santander in Colombia, have been working on mRISC-V, an open 32-bit microcontroller based on the RISC-V instruction set. It’s now a crowdfunding campaign, and yes, you can simply buy an open source chip.
We’ve taken a look at onchip’s Open microcontroller project before. The team has made significant progress of moving from something that can run on an FPGA to the tapeout of a real, physical chip. The onchip twitter timeline is a flurry of activity, with real silicon and a prediction that 50% of low-end microcontrollers will be running RISC-V in a decade.
A render of the Open-V dev board
If you want to get your hands on one of these open microcontrollers, the Crowd Supply campaign is actually fairly reasonable, considering this is custom silicon. $49 USD gets you a first-run mRISC-V in a QFN-32 package. $99 gets you the mRISC-V dev board with an SD card slot, USB, regulators, and of course the micro itself.
This chip’s capabilities are almost on par with a low-power ARM Cortex M0. The chip itself runs at 160MHz, has SPI, I2C, SDIO, and JTAG, as well as a 10-bit 10MS/s ADC and a 12-bit DAC. There are 16 GPIO pins on mRISC-V. You won’t be able to build a smartphone or laptop with this chip, but you will be able to build an Internet of Things gizmo.
While OnChip’s efforts won’t result in a completely open source smartphone, there are other projects in the works that will bring an Open Source core to more powerful devices. lowRISC is a project to bring a Linux-capable System on Chip to production, and various people smarter than us have brought GCC, LLVM, and QEMU to the architecture.
Most of the efforts to bring the RISC-V architecture, and indeed most Open Source processors, have focused on the big chips — full CPUs and SoCs. Onchip’s mRISC-V goes the other direction to create a small, open microcontroller. If you’re looking to create an ecosystem of Open processors, this makes a lot of sense; there are more Honda Civics on the road than Lamborghinis, and Microchip and TI ship far more microcontrollers every year than Intel ships CPUs.
We’ve all had that treasured pair of headphones fail us. One moment we’re jamming out to our favorite song, then, betrayal. The right ear goes out. No wait. It’s back. No, damn, it’s gone. It works for a while and then no jiggling of the wire will bring it back. So we think to ourselves, we’ve soldered before. This is nothing. We’ll just splice the wire together.
So we open it up only to be faced with the worst imaginable configuration: little strands of copper enamel wire intertwined with nylon for some reason. How does a mortal solder this? First you try to untwine the nylon from the strands. It kind of works, but now the strands are all mangled and weird. Huh. Okay. well, you kind of twist them together and give a go at soldering. No dice. Next comes sandpaper, torches, and all sorts of work-a-rounds. None of them seem to work. The best you manage is sound in one ear. It’s time to give up.
Soldering this stuff is actually pretty easy. It just takes a bit of knowledge about how assembly line workers do it. Let’s take a look.
[austiwawa] was playing around with one of those simple linear motors people build as friendly little science experiments. There’s an AA battery in the middle of a set of magnets. When you put it inside of a spring it zips around inside until you run out of spring or magic pixies in the battery.
Of course, the natural question arose, “How do I make it go fast!? Like fast!” After making explosion and woosh noises for a bit (like any good hacker would) he settled down and asked a more specific question. If I made the coil the barrel of an air gun, and then shot the battery out… would it go faster?
So, he built an air cannon. It took some ingenuity and duct tape, but he managed to line the barrel with a copper coil. After that he built an experimental set-up, because making something dangerous is only okay if it’s science. That’s the difference between sensible adults and children.
He shot three “dead” rounds through the cannon, and got a baseline result. These dead rounds were made so by placing the magnets at the improper polarity to forego the motion-boosting properties. Then he shot three live ones through. It went measurably faster! Neat!
What’s the silliest thing you’ve ever seen properly characterized? Let us know in the comments below.
I have a confession to make. I enjoy the challenge of squeezing software into a tiny space or trying to cut a few more cycles out of a loop. It is like an intricate puzzle. Today, of course, there isn’t nearly as much call for that as there used to be. Today even a “small” microcontroller has a ton of memory and resources.
Even so, there’s still a few cases where you need to squeeze those last few bytes out of memory. Maybe you are trying to maximize memory available for some purpose. Maybe you are anticipating mass production and you are using the smallest microcontroller you can find. Or maybe you’re doing the 1 kB Challenge and just want some advice.
One way to find techniques to maximize resources is to look at what people did “in the old days.” Digital Equipment computers once had a special character set called Squoze (or sometimes DEC Radix-50). This technique can be useful when you need to get a lot of strings into memory. The good news is that you can reliably get 3 characters into 2 bytes (or, as DEC did, 6 characters into 4 bytes). The bad news is that you have to pick a limited character set that you can use. However, that’s not always a big problem.
We’ve seen networks built over some interesting mediums, but QR codes has to be a new one. [Eric Seifert] decided to try to use QR codes to make an IP connection. He used these visual codes to create a bi-directional connection between two camera-equipped computers. He’s a persistent chap, because it works: in one of his videos, he shows an SSH connection between two devices.
He faced a number of challenges on the way. Although there is plenty of code to read QR codes, the data that can be encoded and read from them is limited. There is a binary mode that can be used with QR codes, but it is really inefficient. [Eric] decided to use base32 coding instead, packing the data into each frame as alphanumeric text. Each QR code image that is created and received is numbered, so the system can keep track and request any lost images. He also had some problems with keeping the data consistent between the encoded and decoded versions, so he had to add some packing to the data before it would work. It uses Python-pytun to create a TUN/TAP device that carries the data.
The speed of the connection is rather slow: in his demo video, the two computers take over a minute to exchange keys for an SSH connection, and [Eric] measured the speed of the connection at about 100 bits per second. But even getting something like this working at all is a significant achievement. He has published his code on GitHub.
We’ve featured the work of [Eric] before: he created a data connection using an iPod FM transmitter.
A bubbling Wurlitzer juke would be a prized addition to the classic picture of a man cave — brass-railed bar, kegerator, pool table, tin signs and neon on the walls. But it would take a particularly geeky abode to give a proper home to this Millenium Falcon holochess table jukebox. And a particularly awesome one at that.
It all started with a very detailed and realistic replica of a holochess table made by [Jim Shima]’s friend. A lot of time and care went into the prop, and [Jim] was determined not to alter the look while installing the media player gear, consisting of a Raspberry Pi running OSMC and a 160-watt power amp.
The speakers were problematic – there was nowhere convenient to mount them except under the brushed aluminum playing surface of the table. The sound quality was less than acceptable, so rather than poke unsightly holes in the table, [Jim] devised a servo to lift the table while the music is playing.
An LCD monitor and wireless keyboard slightly detract from the overall look; we’ll give [Jim] a pass until he can come up with a holographic display to finish the build right. But we are disappointed that he didn’t use “Mad About Me” by Figrin D’an and the Modal Nodes as the demo tune in the video below.