With the ability to run a full Linux operating system, the Intel Edison board has more than enough computing power for real-time digital audio processing. [Navin] used the Atom based module to build Effecter: a digital effects processor.
Effecter is written in C, and makes use of two libraries. The MRAA library from Intel provides an API for accessing the I/O ports on the Edison module. PortAudio is the library used for capturing and playing back audio samples.
To allow for audio input and output, a sound card is needed. A cheap USB sound card takes care of this, since the Edison does not have built-in hardware for audio. The Edison itself is mounted on the Edison Arduino Breakout Board, and combined with a Grove shield from Seeed. Using the Grove system, a button, potentiometer, and LCD were added for control.
The code is available on Github, and is pretty easy to follow. PortAudio calls the
audioCallback function in effecter.cc when it needs samples to play. This function takes samples from the input buffer, runs them through an effect’s function, and spits the resulting samples into the output buffer. All of the effect code can be found in the ‘effects’ folder.
You can check out a demo Effecter applying effects to a keyboard after the break. If you want to build your own, an Instructable gives all the steps.
Continue reading “Audio Effects on the Intel Edison”
The Intel Edison is a neat piece of hardware, but the connector for the Edison is extremely intimidating and the Mini breakout board is incompatible with breadboards. What’s [Federico], a builder of Internet of Things to do? Etch their own breakout board.
The Mini Breakout board for the Intel Edison is the official ‘minimal’ offering for getting the Edison up and running with a mess of jumper wires and LEDs. While this breakout board handles the USB to UART bridge, power regulation, and exposes all the pins on the Edison connector, it is terrible for prototyping. It’s a 4×14 array of holes on a 0.1″ grid that are hidden underneath the Edison.
[Federico] handled this problem with a copper clad board and a little bit of ferric chloride. He jumped into Eagle and created a breakout board to turn the 4×14 pin grid into a more sensible breadboard-friendly layout.
The breadboard-friendly adapter doesn’t have level shifters, but by using the mini-breakout board between the Edison and the breadboard adapter [Federico] still has the UART to USB hardware and a battery charging circuit. Still, there’s room for improvement and we can’t wait to see what he comes up with next.
[Renee] dropped a tip to let us know about EddiePlus, her balancing robot creation. As its name might imply, EddiePlus is controlled by an Intel Edison processor. More specifically, [Renee] is using several of Sparkfun’s Edison Blocks to create Eddie’s brain. EddiePlus’ body is 3D printed, while his movement comes from two Pololu DC motors with wheels and encoders. The full build instructions are available as a PDF from [Renee’s] Google drive.
Eddie is able to balance and drive around on two wheels, much like a Segway. Sensor data for balance comes from Sparkfun’s LSM9DS0 based Inertial Measurement Unit (IMU) block. In this new “plus” version of Eddie, [Renee] has added encoders to the robot’s wheels. This makes it easier for him to adapt to changing loads – such as pumping iron (or banana plugs as the case may be). The encoders also help with varying terrain, as [Renee] demonstrates by tilting a board as Eddie drives on it. Eddie’s code is written in C, and available on Github. Controlling Eddie is as easy as sending simple commands via UDP.
As you might imagine, the Intel Edison still has plenty of cycles left over after computing Eddie’s balance. [Renee] uses some of these with a webcam based teleoperation mode.
Click past the break to see Eddie in action!
Continue reading “EddiePlus, the Edison based balancing robot”
A few months ago, the Intel Edison launched with the promise of putting a complete x86 system on a board the size of an SD card. This inevitably led to comparisons of other, ARM-based single board computers and the fact that the Edison doesn’t have a video output, Ethernet, or GPIO pins on a 0.100″ grid. Ethernet and easy breakout is another matter entirely but [Lutz] did manage to give the Edison a proper display, allowing him to run Doom at about the same speed as a 486 did back in the day.
The hardware used for the build is an Edison, an Arduino breakout board, Adafruit display, speaker, and PS4 controller. By far the hardest part of this build was writing a display driver for the Edison. The starting point for this was Adafruit’s guide for the display, but the pin mapping of the Edison proved troublesome. Ideally, the display should be sent 16 bits at a time, but only eight bits are exposed on the breakout board. Not that it mattered; the Edison doesn’t have 16 pins in a single 32-bit memory register anyway. The solution of writing eight bits at a time to the display means Doom runs at about 15 frames per second. Not great, but more than enough to be playable.
For sound, [Lutz] used PWM running at 100kHz. It works, and with a tiny speaker it’s good enough. Control is through Bluetooth with a PS4 controller, and the setup worked as it should. The end result is more of a proof of concept, but it’s fairly easy to see how the Edison can be used as a complete system with video, sound, and wireless networking. It’s not great, but if you want high performance, you probably won’t be picking a board the size of an SD card.
Video demo below.
Continue reading “Running Doom On The Intel Edison”
Introducing the Hayes Smartmodem 1200. The era of the single station microcomputer…. is over. The Hayes Smartmodem offers advanced features like auto answer and auto dial. Now if we could only find an ‘RS-232 Computer.’
Have a 3D printer and an old router? How about controlling your printer with Octoprint? For some cases, it might be better than using a Raspberry Pi and OctoPi, but you won’t get a camera for streaming pics of your builds to the web.
Last year, [CNLohr] built a microscope slide Minecraft thing and in the process created the smallest Minecraft server ever. The record has now been bested with the Intel Edison. There’s a bit of work to install Java, but the performance is pretty good for one player. Bonus: Minecraft is a single threaded app, so you have another core for garbage collection.
Remember the Scribble pen, that showed just how gullible people are and how crappy tech journalism is? They’re back with a beta program. A mere $15 guarantees you a scribble pen for their beta program. I wouldn’t give these guys $15 of someone else’s money, but lucky for us [ch00f] bit the bullet. He’ll be updating everyone on the status of his fifteen dollars, I’m sure.
Hey, guess what will eventually be in the Hackaday store? Keycaps for your mechanical keyboard. Yes, we actually figured out a way to do this that makes sense and won’t lose money. Pick your favorite, or suggest new ones in the comments:
The Intel Edison is an incredibly small and cheap x86 computing platform, and with that comes the obvious applications for robotics and wearable computing. [mz] had another idea: what if the Edison could do work that is usually done by workstations? Would it make economic sense to buy a handful of Edisons over a single quad-core Xeon system?
[mz] thought the Edison would be an ideal platform for fuzz testing, or sending random, automated data at a program or system to figure out if they’ll misbehave in interesting ways. After figuring out where to solder power and ground wires to boot an Edison without a breakout board, [mz] got to work benchmarking his fuzz testing setup.
Comparing the benchmarks of a fuzzing job running on the Edison and a few servers and workstations, calculations of cost-efficiency worked out well for this tiny x86 system on module. For parallelizable tasks, the Edison is about 8x less powerful than a reasonably modern server, but it’s also about 5-8x cheaper than a comparable desktop machine. Although renting a server is by far the more economic solution for getting a lot of computing power easily, there are a few use cases where a cluster of Edisons in your pocket would make sense.
While most embedded development is still done in C and/or assembly, some people are working with more modern languages. The team over at Gobot has successfully managed to get Go running on the Intel Edison.
The Go programming language, which has been around for about five years, compiles to machine code like C. It has a number of modern features including concurrency, garbage collection, and packages.
We’ve looked at the Edison on Hackaday before, and even took a detailed look at the hardware. It features a Quark SoC, Bluetooth, and WiFi, which makes it well suited for connected devices.
Getting Go to work on the Edison hardware wasn’t particularly difficult, since it supports the Pentium instruction set and MMX. However, a library was needed to interface with the Edison’s peripherals. The Gobot team whipped up gobot-intel-iot, which makes it easy to work with GPIO, I2C, and PWM.
After the break, the team demos PWM on the Edison using Go.
Continue reading “Running Golang on the Intel Edison”