Hacklet 83 – Tiny Robot Projects

Hackers, makers, and engineers have been hacking on robot projects since the era of clockwork mechanics. Any robot is a cool project, but there is something particularly attractive about small ones. Maybe it’s the skill required to assemble them, or perhaps it’s the low-cost. Either way, there are lots of palm-sized robot projects on Hackaday.io. This week on the Hacklet, we’re going to highlight a few of them!

tinyrobot2We start with the granddaddy of them all, [shlonkin] and Tiny robot family. [Shlonkin] built line following robots that can hide under a US half-dollar coin. The robots are simple circuits – an ATtiny85 with an LED and pair of phototransistors. The code is provided both in Arduino’s wiring, and in straight C++. Two coreless motors, normally used in cell phones vibrators or quadcopters, provide the locomotion. These robots only know one thing – moving forward and following a line. They do it well though! We love this project so much that we hosted a tiny robot workshop at the 10th anniversary back in 2014.

toteWhen it comes to tiny walking robots, [Radomir Dopieralski] is the king. Many of his projects are small biped, quadruped, or even hexapod robots. He’s done things with 9 gram nano servos that we thought were impossible. Tote, an affordable spider robot, is his latest creation. Tote is a four-legged bot utilizing 12 9 gram servos. [Radomir] created a custom PCB for Tote, which acts as a carrier for its Arduino Pro Mini Brain. This robot is easily expandable – [Radomir] has experimented with the Teensy 3 series as well. Controlling the robot can be anything from an ESP8266 to an infrared remote control.

botbot[Alan Kilian] may well have the ultimate tease project with Hand-wound inductors for a tiny robot. [Alan] was using some tiny GM-10 motors on his micro-bot. The motors didn’t have inductance for the locked-antiphase drive controller. His solution was to wind some coils to provide a bit of added inductance. The mod worked, current consumption dropped from 116 ma to about 6 ma. We want to know more about that ‘bot though! It’s controlled by a Megabitty, [Monty Goodson’s] ATmega8 controller board from sometime around 2003. The lilliputian board has been very popular with the nano sumo crowd. Other than the controller, motors, and the plywood frame, [Alan] has left us guessing about his robot. If you see him, tell [Alan] to give us more info on his micro robot’s design and construction!

 

espbot[Ccates] jumped on the tiny robot bandwagon with Tiny wi-fi robot. Rather than go with an Arduino for control, [Ccates] grabbed the popular ESP-8266 WiFi module. The construction of the bot is inspired by [shlonkin’s] tiny robot family up above. This bot is controlled by the Xtensa processor embedded in the ESP-8266. Since it only drives forward, it only takes two GPIO pins to control the transistors driving the motors. Even the diminutive ESP-01 module has enough I/O for that. We’d love see some sensors and a full H-bridge on this micro beastie!

 

If you want to see more palm-sized robot projects, check out our new tiny robot projects list! These ‘bots are small, so I may have missed yours. If that’s the case, don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet. As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

Compiling Your Own Programs For The ESP8266

When the ESP8266 was first announced to the world, we were shocked that someone was able to make a cheap, accessible UART to WiFi bridge. Until we get some spectrum opened up and better hardware, this is the part you need to build an Internet of Things thing.

It didn’t stop there, though. Some extremely clever people figured out the ESP8266 had a reasonably high-power microcontroller on board, a lot of Flash, and a good amount of RAM. It looked like you could just use the ESP8266 as a controller unto itself; with this chip, all you need to do is write some code for the ESP, and you have a complete solution for your Internet connected blinking lights or WiFi enabled toaster. Whatever the hip things the cool kids are doing these days, I guess.

But how do you set up your toolchain for the ESP8266? How do you build projects? How do you even upload the thing? Yes, it’s complicated, but never fear; [CNLohr] is here to make things easy for you. He’s put together a video that goes through all the steps to getting the toolchain running, setting up the build environment, and putting some code on the ESP8266. It’s all in a git, with some video annotations.

The tutorial covers setting up the Xtensa toolchain and a patched version of GCC, GDB, and binutils. This will take a long, long time to build, but once it’s done you have a build environment for the ESP8266.

With the build environment put together, [CNLohr] then grabs the Espressif SDK from the official site, and puts together the example image. Uploading to the module requires pulling some of the pins high and some low, plugging in a USB to serial module to send the code to the module, standing well back, and pressing upload.

For his example image, [CNLohr] has a few WS2812 RGB LEDs connected to the ESP8266 WiFi module. Uploading the image turns the LEDs into something controllable with UDP packets on port 7777. It’s exactly what you want in a programmable, WiFi chip, and just the beginning of what can be done with this very cool module.

If you’re looking around for some sort of dev board with an ESP8266 on it, [Mathieu] has been playing around with some cool boards, and we’ve been looking into making a Hackaday version to sell in the store. The Hackaday version probably won’t happen because FCC.

Continue reading “Compiling Your Own Programs For The ESP8266”

GCC For The ESP8266 WiFi Module

When we first heard about it a few weeks ago, we knew the ESP8266 UART to WiFi module was a special beast. It was cheap, gave every microcontroller the ability to connect to a WiFi network, and could – possibly – be programmed itself, turning this little module into a complete Internet of Things solution. The only thing preventing the last feature from being realized was the lack of compiler support. This has now changed. The officially unofficial ESP8266 community forums now has a working GCC for the ESP8266.

The ESP8266 most people are getting from China features a Tensilica Xtensa LX3 32-bit SOC clocked at 80 MHz. There’s an SPI flash on the board, containing a few dozen kilobytes of data. Most of this, of course, is the code to run the TCP/IP stack and manage the radio. There are a few k left over – and a few pins – for anyone to add some code and some extended functionality to this module. With the work on GCC for this module, it’ll be just a few days until someone manages to get the most basic project running on this module. By next week, someone will have a video of this module connected to a battery, with a web-enabled blinking LED.

Of course that’s not the only thing this module can do; at less than $5, it will only be a matter of time until sensors are wired in, code written, and a truly affordable IoT sensor platform is created.

If you have a few of these modules sitting around and you’d like to give the new compiler a go, the git is right here.

The Current State Of ESP8266 Development

A few weeks ago we caught wind of a very cool new chip. It’s called the ESP8266, and it’s a WiFi module that allows you to connect just about any project to an 802.11 b/g/n network. It also costs $5. Yes, there was much rejoicing when this chip was announced.

Since we learned of the ESP8266, there has been a lot of work done to translate the datasheets from Chinese, figure out how the SOC can be programmed, and a few preliminary attempts at getting this module working with an Arduino. Keep in mind, very few people have one of these modules in hand right now, so all this information is completely untested. Here’s what we have so far:

Over on Hackaday Projects, [bafeigum] has been working to research the capabilities of this module. Most of the comments deal with the AT Command set for the module and figuring out what is actually returned when certain commands are called.

The ESP8266 community forum is about a week old, but already there’s a wealth of information. Most of the efforts seem to be centered on getting GCC to program this chip, something that would make the ESP8266 a single-solution chip for anything that needs WiFi and a bit of processing power. Everyone (including the great [Sprite_TM]) has currently hit a roadblock, so if you have a ton of experience with GCC and the Xtensa microcontroller, check out that thread. Failing that, we’ll have to wait until someone from Tensilica, the company behind the guts of this chip, to chime in and help everyone figure out how this thing actually works.

The Arduino-heads out there will have a much easier time. There’s already a tutorial for using the ESP8266 as a serial WiFi module. Note the ESP operates on 3.3 Volts, so connecting this module to the 5V pin means you’ll be out $5 and several weeks of shipping time.

This is an incredible amount of development in a very short amount of time, made even more remarkable by the fact that no one has one of these WiFi modules yet. When these modules do arrive to workbenches around the world, we’ll expect the Hackaday tip line to be flooded with very small and somewhat battery friendly WiFi builds.

STM32 Driving A PCIe Video Card

[Gpuhackr] chose his username to explain exactly how he spends his time. For instance, here he’s using an STM32 Discovery board to drive an AMD Radeon HD 2400 graphics card. The ARM microcontroller isn’t actually using the PCIe interface on the card. Instead, [Gpuhackr] has patched into the debugging interface built into the card itself. This isn’t quite as straight forward as it sounds, but if you do the wiring carefully it’s a pretty intersting way to connect an ARM to an LCD monitor.

This project would be almost impossible if it weren’t for the open source code which AMD has released. This lets him implement the card’s 3D rendering features. The demo directly programs the UVD Xtensa CPU which is on the video card. It draws a cube with color gradients on each side. The cube spins while the debug information is overlaid on the screen. In this case the ARM chip/board is really being used as a programmer to upload some custom firmware. But we think a real code-ninja could implement a communications protocol to open up a simple way to drive the card in real-time.

[Thanks uMinded]