Muscle Wire BugBot and a Raspberry Pi Android with Its Eye on You at Maker Faire

I spent a good chunk of Saturday afternoon hanging out at the Homebrew Robotics Club booth at Maker Faire Bay area. They have a ton of really interesting robot builds on display and I just loved hearing about what went into these two in particular.

It’s obvious where BugBot gets its name. The six-legged walker is the creation of [Mark Johnston] who built the beast in a time where components for robots were much harder to come by. Each leg is driven by a very thin strand of muscle wire which contracts when high voltage is run through it. One of the really tricky parts of the build was finding a way to attach this wire. It has a very low melting point, so trying to solder it usually results in melting right through. His technique is to wrap the wire around the leg itself, then slide a small bit of brass tubing over it and make a crimp connection.

At the heart of the little bug is a PIC microcontroller that is point-to-point soldered to the rest of the components. This only caused real problems once, when Mark somehow bricked the chip and had to replace it. Look close and you’ll see there’s a lot of fiddly bits to work around to pull that off. As I said, robot building was more difficult before the explosion of components and breakout modules hit the scene. The wireless control components on this were actually salvaged out of children’s RC toys. They’re not great by any stretch of the imagination, but it was the best source at the time and it works! You can find a demo of the robot embedded after the jump.

Ralph Campbell (left) and Mark Johnston (right)

An Android robot was on display, but of course, I was most interested in seeing what was beneath the skin. In the image above you can see the mask sitting to the left of the “Pat” skeleton. Ralph Campbell has been working on this build, and plans to incorporate interactive features like facial recognition and gesture recognition to affect the gaze of the robot.

Inside each of the ping pong ball eyes is a Raspberry Pi camera (actually the Adafruit Spy Camera because of its small board size). Ralph has a separate demonstration for facial recognition that he’s in the process of incorporating. But for me, it was the mechanical design of the bot that I find fascinating.

The structure of the skull is coat hanger lashed and soldered together using magnet wires. The eyes move thanks to a clever frame made out of paper clips. The servos to the side of each eye move the gaze up and down, while a servo beneath the eye takes care of left and right. A wooden match stick performs double duty — keeping the camera in place as the pupil of the eye, and allowing it to pivot along the paperclip track of the vertical actuator. It’s as simple as it can be and I find it quite clever!

Continue reading “Muscle Wire BugBot and a Raspberry Pi Android with Its Eye on You at Maker Faire”

Hackaday Podcast Ep17: Are Cheap Microcontrollers Worth It? Android on Your Bike. Plus Food Printers and Coffee Bots

Join editors Mike Szczys and Elliot Williams as they recount a week of fascinating hacks. We take a good look at the PMS150C, a microcontroller that literally costs pennies but can only be flashed once. SNES emulators have a new trick up their sleeves to make low-def a lot less low, and you retro enthusiasts will either hate or love the NES zapper chandelier. Elliot’s enamored by a bike computer running Android core, and both Mike and Elliot delve into the food hacking scene, be it meat, chocolate, coffee, or of course frosting!

Take a look at the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Direct download (72 MB of audio splendor)

Places to follow Hackaday podcasts:

Continue reading “Hackaday Podcast Ep17: Are Cheap Microcontrollers Worth It? Android on Your Bike. Plus Food Printers and Coffee Bots”

Bike Computer Exploration Uncovers a Hidden Android

As a happy side-effect of the smartphone revolution, the world is now awash with tiny computers that are incredibly cheap thanks to the nearly unfathomable volumes in which their components are manufactured. There wouldn’t be a $10 Raspberry Pi Zero if the billions of smartphones that were pumped out before it hadn’t dropped the cost of the individual components to literal pennies. That also means that smartphone hardware, or at least systems that are very close to it, have started to pop up in some unexpected places.

When [Joshua Wise] recently took ownership of a Wahoo ELEMNT BOLT bike computer, he wondered how it worked. With impressive list of features such as Internet connectivity, GPS mapping, and Bluetooth Low Energy support, he reasoned the pocket-sized device must have some pretty decent hardware under the hood. With some poking and prodding he found the device was powered by a MediaTek SoC and incredibly had a full-blown install of Android running in the background.

So how does one find out that their lowly bike computer is essentially a cleverly disguised smartphone? If you’re [Joshua], you listen to who it’s trying to talk do when doing a firmware update over the Internet. He used mitmproxy running between his Internet connection and a WiFi access point setup specifically for the BOLT, from there, he was able to see all of the servers it was connecting to. Seeing the device pull some data down from MediaTek’s servers was a pretty good indication of whose hardware was actually inside the thing, and when it ultimately downloaded some Android .apk files from the Wahoo website, it became pretty clear what operating system it was running underneath the customized user interface.

Further examination of the Bolt’s software brought to light a few troubling issues. It turned out that the firmware made extensive use of Apache-licensed code, for which no attribution was given. [Joshua] contacted the company and was eventually referred to the Wahoo’s CEO, Chip Hawkins. Refreshingly, Chip was not only very interested in getting the licensing issues sorted out, but even had some tips on hacking and modifying the device, including how to enable ADB.

Before the publication of this article, we reached out to Chip Hawkins (yes, he really does respond to emails) for a comment, and he told us that not only has he made sure that all of the open source packages used have now been properly attributed to their original authors, but that his team has been providing source code and information to those who request it. He says that he’s been proud to see owners of his products modifying them for their specific needs, and he’s happy to facilitate that in any way that he can.

Open source license compliance is a big deal in the hacking community, and we’ve seen how being on the wrong side of the GPL can lead to lost sales. It’s good to see Wahoo taking steps to make sure they comply with all applicable licences, but we’re even more impressed with their positive stance on customers exploring and modifying their products. If more companies took such an enlightened approach to hacking, we’d all be a lot better off.

[Thanks to Roman for the tip.]

Macintosh API Comes To Linux, Android

Unlike DOS, early versions of Windows, and most *nixes, the classic Mac operating system is weird. Contained in the ROM are subroutines to draw windows, pop up dialog boxes, and other various tasks purely related to the UI. On other systems, this would be separate from the BIOS, but in your Mac from the 80s, everything is baked into the ROM and hidden deep in the operating system. This has caused many problems for emulation; you can’t emulate an old Mac without a ROM or without a real installation of the operating system. Where BeOS — a cool but entirely forgettable operating system — has an Open Source reimplementation of the programming API, there’s nothing like that for a computer that at one point had a ten percent market share. This is weird, and we’ve all been waiting for someone to come up with an Open Source reimplementation of the Macintosh Toolbox, the API that’s responsible for everything from LoadRunner to Shufflepuck.

Now that day has finally come. The Advanced Mac Substitute is an API-level reimplementation of the classic Mac OS. You can now run classic Mac apps on Linux and Android without using an Apple ROM or Apple system software.

The Advanced Mac Substitute (AMS) is a project from [Josh Juran] to run old (pre-OS 7) Mac software without an Apple ROM. For the last twenty years, Macintosh emulators have required Apple ROMs and/or installation media because the API calls will redirect to the ROM. Unlike other emulation projects, the AMS does not attempt to emulate the hardware, except for the 68k processor. It simply launches directly into an application with the frontend being a generic bitmap terminal. This means there is no OS to speak of, but that also means we finally get flatpak for the classic Mac OS.

AMS is still in the very early phases of development; keyboards don’t work on some systems, and it doesn’t work on the latest versions of MacOS at all. Additionally, there’s no support for System 7 applications. That said, this is an excellent advance in the state of Macintosh emulation. If you’d like an example of how cool this could be, go play some Oregon Trail and tell me how awesome playing Shufflepuck or Glider on a webpage would be.

Learn to Optimize Code in Assembly… for Android

When programming a microcontroller, there are some physical limitations that you’ll come across much earlier than programming a modern computer, whether that’s program size or even processor speed. To make the most use of a small chip, we can easily dig into the assembly language to optimize our code. On the other hand, modern processors in everyday computers and smartphones are so fast and have so much memory compared to microcontrollers that this is rarely necessary, but on the off-chance that you really want to dig into the assembly language for ARM, [Uri Shaked] has a tutorial to get you started.

The tutorial starts with a “hello, world” program for Android written entirely in assembly. [Uri] goes into detail on every line of the program, since it looks a little confusing if you’ve never dealt with assembly before. The second half of the program is a walkthrough on how to actually execute this program on your device by using the Android Native Deveolpment Kit (NDK) and using ADB to communicate with the phone. This might be second nature for some of us already, but for those who have never programmed on a handheld device before, it’s worthwhile to notice that there are a lot more steps to go through than you might have on a regular computer.

If you want to skip the assembly language part of all of this and just get started writing programs for Android, you can download an IDE and get started pretty easily, but there’s a huge advantage to knowing assembly once you get deep in the weeds especially if you want to start reverse engineering software or bitbanging communications protocols. And if you don’t have an Android device handy to learn on, you can still learn assembly just by playing a game.

Reverse Engineered Media Controller From Car Is Best Friends With Android

The CAN bus is a rich vein to mine for a hacker: allowing the electronic elements of most current vehicles to be re-purposed and controlled with ease. [MikrocontrollerProjekte] has reverse engineered a CAN bus media and navigation controller and connected it to an STM32F746G-Discovery board. The STM32 is in turn connected to an Android phone, and allows the media controller to trigger a large number of functions on the phone, including music playback, maps, and general Android navigation.

When reverse engineering the controller, [MikrocontrollerProjekte] employed a variety of approaches. A small amount of information was found online, some fuzzing was done with random CAN bus IDs and messages, as well as some data logging with the device inside the car to identify message data to the relevant IDs on the bus.

The STM32F746G-Discovery board acts as a Human Interface Device (HID), emulating a mouse and keyboard connected to the Android phone via USB OTG. The LCD screen shows the output of the keystrokes and touchpad area. We’re not sure how useful the mouse-emulation would be, given that the phone has a touchscreen, but the media functions work really well, and would also make a really snazzy music controller for a PC.

We’ve covered plenty of other cool CAN bus hacks, like reverse-engineering this Peugeot 207, or this general purpose CAN sniffer.

Continue reading “Reverse Engineered Media Controller From Car Is Best Friends With Android”

Gaming System Built With Kite, The DIY Android Kit

As a gamer, [Lexie Dostal] dreamed of a smartphone that was a viable gaming platform: something with enough power to run the games and emulators he was interested in, with the controls to make playing them feel natural. So when he got his hands on an early version of Kite, the modular open hardware platform designed to be hacked and customized, that’s exactly what he decided to build. The Kite kit would provide the touch screen and Android-equipped motherboard, he just needed to design a case and integrate controls to make it a real gaming device.

The case design [Lexie] came up with is inspired by the bottom half of the Nintendo 3DS, and ended up only a few centimeters wider than the stock case from the Kite kit. Unfortunately, his delta 3D printer wasn’t large enough to fit the device’s case, so he ended up having to break it into five separate pieces and glue them together. With the case in one piece he worked his way from 220 to 400 grit sand paper, filling any voids in the print with glue as he went. A few coats of primer, more sanding, and a final matte texture spray give the final case a very professional-looking finish.

Not only was the Nintendo 3DS an inspiration for the device, it was also a donor for some of the parts. The directional pad, analog “nub”, and buttons are replacement 3DS hardware, which is interfaced to the KiteBoard with an Arduino Nano. When he couldn’t find springs small enough to use for the shoulder buttons, he bought some thin music wire and wound them himself. Talk about attention to detail.

There’s quite a bit of gear packed into the case, but [Lexie] thinks there’s probably still room to make some improvements. He could free up some room by dropping the connectors and soldering everything directly, and says he’d like to come up with a custom PCB to better interface with the 3DS’s hardware to cut down on some of the wiring required. With the extra room he thinks the battery, currently a 3200 mAh pack designed for the LG V20 smartphone, could probably be replaced with something even bigger.

Readers may recall that the Kite is currently in the running for the 2018 Hackaday prize. Seeing Kite already delivering on the promise of making it easier to develop powerful Android devices is very exciting, and we can’t wait to see what else hackers will be able to do with it.