The BeagleBone is a board that doesn’t get a lot of attention in a world of $5 Raspberry Pis, $8 single board computers based on router chipsets, and a dizzying array of Kickstarter projects promising Android and Linux on tiny credit card-sized single board computers. That doesn’t mean the BeagleBone still isn’t evolving, as evidenced by the recent announcement of the BeagleBone Blue.
The BeagleBone Blue is the latest board in the BeagleBone family, introduced last week at CES. The Blue is the result of a collaboration between UCSD Engineering and TI, and with that comes a BeagleBone built for one specific purpose: robotics and autonomous vehicles. With a suite of sensors very useful for robotics and a supported software stack ideal for robots and drones, the BeagleBone Blue is the perfect board for all kinds of robots.
On board the BeagleBone Blue is a 2 cell LiPo charger with cell balancing and a 6-16 V charger input. The board also comes with eight 6V servo outputs, four DC motor outputs and inputs for four quadrature encoders. Sensors include a nine axis IMU and barometer. Unlike all previous BeagleBones, the BeagleBone Blue also comes with wireless networking: 802.11bgn, Bluetooth 4.0 and BLE. USB 2.0 client and host ports are also included.
Like all of the recent BeagleBoards, including the recently released BeagleBone Green, the Blue uses the same AM3358 1 GHz ARM Cortex 8 CPU, features 512 MB of DDR3 RAM, 4GB of on board Flash, and features the main selling point of the BeagleBoard, two 32-bit programmable real-time units (PRUs) running at 200 MHz. The PRUs are what give the BeagleBone the ability to blink pins and control peripherals faster than any other single board Linux computer, and are extremely useful in robotics, the Blue’s target use.
Right now, the BeagleBone Blue isn’t available, although we do know you’ll be able to buy one this summer. Information on pricing and availability – as well as a few demos – will come in February.
Do hardware hackers need a new programming language? Your first answer might be no, but hold off a bit until you hear about a new language called Rust before you decide for sure.
We all know real hackers use assembly language to program CPUs directly, right? Well, most of us don’t do as much assembly language as we used to do. Languages like C can generate tight, predictable code and are easier to manage.
Although some people use more abstract languages in some embedded systems, it is no secret that for real-time systems, device driver development, and other similar tasks, you want a language that doesn’t obscure underlying details or generate code that’s difficult to reason about (like, for example, garbage collection). It is possible to use special techniques (like the Real-Time Java Specification) to help languages, but in the general case a lean language is still what most programmers reach for when you have to program bare metal.
Even C++, which is very popular, obscures some details if you use things like virtual functions (a controversial subject) although it is workable. It is attractive to get the benefit of modern programming tools even if it does conceal some of the underlying code more than straight C.
That’s where Rust comes in. I could describe what Rust attempts to achieve, but it is probably easier to just quote the first part of the Rust documentation:
Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.
Continue reading “Programming with Rust”
There are dozens of different 3D printable cases out there for the Raspberry Pi, but the BeagleBone Black, as useful as it is, doesn’t have as many options. The folks at 3D hubs thought they could solve this with a portable electronics lab for the BBB. It opens like a book, fits a half-size breadboard inside, and looks very cool.
The guy who 3D printed his lawnmower has a very, very large 3D printer. He now added a hammock to it, just so he could hang out during the very long prints.
There’s a box somewhere in your attic, basement, or garage filled with IDE cables. Wouldn’t they be useful for projects? Yep, only not all the wires work; some are grounds tied together, some are not wired straight through, and some are missing. [esot.eric] has the definitive guide for 80-wire IDE cables.
Like case mods? Here’s a golden apple, made out of walnut. Yes, there are better woods he could have used. It’s a wooden replica of a Mac 128 with a Mac Mini and LCD stuffed inside. Want a video? Here you go.
If you have a 3D printer, you’re probably familiar with PEEK. It’s the plastic used as a thermal break in non-all-metal hotends. Now it’s a filament. An extraordinarily expensive filament at €900 per kilogram. Printing temperature is 370°C, so you’ll need an all-metal hotend.
It’s the Kickstarter that just keeps going and going and going. That’s not a bad thing, though: there really isn’t much of a market for new Amiga 1200 cases. We’ve featured this project before, but the last time was unsuccessful. Now, with seven days left and just over $14k to go, it might make it this time.
If you’ve ever been interested in what goes on inside a (roughly) $6000 DLP stereolithography printer, you might want to check out the recent announcement from Autodesk that open sources their electronics and firmware for their Ember 3D printer. The package includes the design files and code for their controller (which is more or less a BeagleBone black with a USB hub, and more memory. It also has two AVR controllers for motor and light control.
Continue reading “Autodesk Open Sources Ember 3D Printer”
Although the BeagleBone Green was announced at the Bay Area Maker Faire last May, there hasn’t been much said about it on the usual forums and IRC channels. Now, it’s finally out and I got my hands on one of them. Through a cooperation between the BeagleBoard foundation and Seeed Studios, the best small Linux board for doing real work with small Linux boards is now cheaper, a little more modern, and green.
The BeagleBone Green is an update to the venerable BeagleBone Black, the dev board based on a TI ARM Cortex-A8. It’s an extremely capable machine with a few interesting features that make it the perfect device for embedded applications. With the BeagleBone Green, the BB Black gets a small hardware refresh and a drastic reduction in price. If you want to do real work on a Linux board, this is the one to get. Check out the review below for everything that’s been updated, everything that’s the same, and why this is one of the most interesting developments in small Linux boards in recent memory.
Continue reading “BeagleBone Green Hands-On: Lower Price, Same Horsepower”
[pmf], like most of us, I’m sure, spends most of his days on a computer. He also has a smartphone he keeps at his side, but over the years he’s grown accustomed to typing on a real keyboard. He came up with the idea of making a USB switch that would allow his keyboard to control either his computer or his phone, and hit upon a really neat way of doing it. He’s using a BeagleBone Black and a Teensy to switch his keyboard between his computer and his phone with just a press of a button.
This homebrew smart KVM uses a BeagleBone Black for most of the heavy lifting. A keyboard and mouse is connected to the USB host port of the BeagleBone, and the main computer is connected to the device port. The BeagleBone is set up to pass through the USB keyboard and mouse to the computer with the help of what Linux calls a ‘gadget’ driver. This required an update to the Linux 4.0 kernel.
With the BeagleBone capable of being a USB pass through device, the next challenge was sending keypresses to another USB device. For this, a Teensy 2.0 was connected to the UART of the BeagleBone. According to [pmf], this is one of the few examples of the Teensy serving as a composite USB device – sending both keyboard and mouse info.
There are a few neat features for [pmf]’s build: the keyboard and mouse don’t disconnect when switching, and thanks to a slight modification of the USB OTG adapter, this will also charge a phone as well as allow for the use of a keyboard. Because the BeagleBone Black has more than one UART this build can also switch keyboards and mice between more than two computers. For those of us who invest heavily in keyboards, it’s a godsend.
If you have a BeagleBone, you already have a lot of tools. We’ve seen them used in driving hundreds of LEDs at a very high frame rate, used as a video card for ancient computers, and as a software defined radio. For his entry to The Hackaday Prize, [Kumar] turned his BeagleBone into a 14-channel, 100Msps logic analyzer that’s good enough to debug just about all those hobby electronics projects you’re working on.
The BeagleBone is only able to have this sort of performance as a logic analyzer because of its PRUs, those fancy peripherals that make the Beagle great at blinking pins really, really fast. [Kumar] is using both PRUs in the BeagleBone for this project. PRU1 reads from the input probes, and PRU0 writes all the samples into DDR memory directly. From there, the samples are off to kernel modules and apps, either sigrok, dd, or something you coded up in Python.
Compared to the cheap logic analyzers we have today like the Salae Logic and the DSLogic, [Kumar]’s project is just as good as any commercial offering (provided you can live with 14 channels instead of 16), and because it’s based on a BeagleBone, the software is infinitely expandable.
UPDATE: After this post was written but before it was published, [Kumar] finished up a blog post on how he’s building a logic analyzer with the BeagleBone’s PRUs. It’s a true tutorial, with enough code demos to allow anyone to build their own 8-bit analyzer on a BeagleBone, and there are more updates coming.