Transparent ESP8266 WiFi-to-Serial Bridge

These days, connecting your microcontroller project to a WiFi network is pretty easy — you connect up an ESP8266 to your microcontroller project and pretend it’s a WiFi modem, using these old-school-style AT commands. But what do you do if you need to flash new code into the microcontroller? You can’t reprogram the micro remotely through the ESP8266 because those stupid AT commands get in the way.

The solution? By flashing the esp-link firmware into your ESP8266, you talk directly to the microcontroller over WiFi as if it were connected by a serial cable: the ESP8266 becomes a totally transparent WiFi-serial bridge. Now, with a serial bootloader and an ESP8266 in Wifi-to-serial bridge mode, you can reflash your microcontroller wirelessly, and then telnet in to interact with and debug the system remotely. Once you’ve fixed the bugs, you can re-flash the microcontroller: all over WiFi, without having to climb up a ladder to reach your IoT attic-temperature sensor.

To flash a connected Arduino, for instance, all you need to do is convince AVRDUDE to use the network instead of a locally-connected USB-serial cable: avrdude -p m328p -c arduino -b 115200 -P net:192.168.1.123:23 -U:yourHexFile.hex. The ESP8266 passes the data straight through its TX and RX lines to your microcontroller and everything works as if it were wired.

Configuration to allow the ESP8266 to join your WiFi network takes place on a self-hosted webpage that uses [Sprite_tm]’s esp-httpd standalone server, which makes setup pretty painless. And then after that you can simply telnet to the ESP8266 at port 23 and type away, or do anything else you would with a wired serial connection.

Although the simple bridge mode came first, esp-link looks like it’s growing to be a one-stop shop for all your IoT or microcontroller + WiFi needs. In addition to the serial bridge code, there is also a REST-based microcontroller-to-internet mode and there is bi-directional MQTT support in the wings. We haven’t had a chance to dig into these yet, so if you have, let us know in the comments.

If you want to dig in deeper, head over to [Jeelabs]’ blog for a slightly outdated tour of the project written by the code’s author, [Thorsten von Eicken]. For the most up-to-date development news, follow the very active development of esp-link in this thread on the esp8266 forums.

Retro Games On ArduinoCade Just Shouldn’t Be Possible

Making retro video games on today’s micro controllers brings many challenges, especially when using only the micro controller itself to handle the entire experience. Complex graphics, sound, game logic and input is taxing enough on the small chips, toss in NTSC color graphics and you have a whole different bear on your hands.

[rossum] set out making the Arduinocade retro game system using an overclocked Arduino Uno, and not much more. Supporting 4 voice sound and IR game controllers, the system also boasts 27 simultaneous colors all in software. These colors and the resolution feel like they’re impossible without a graphics chip to offload some of the work. While doing all of this the ATmega328p is also playing some faithful reproductions of classic arcade games.

The uses a couple of interesting tricks. Color is generated with NTSC color artifacts, where the screen is really black and white, but thanks to a delay or two in the signal generation the bits are out of phase from the reference “color burst” signal and appear on-screen as unique colors. This approach was used in the 8 bit Apple II personal computers to generate its colors, and also on the early IBM PC’s with CGA cards to drastically increase color depth. In this case, the chip is overclocked with a 28.6363 MHz crystal (a multiple of NTSC timing) and the SPI hardware leveraged to shift out all the necessary pixels. Check out how great it looks and sounds after the break.

It’s good to see an old trick on a new project and we are off to play some games!

Continue reading “Retro Games On ArduinoCade Just Shouldn’t Be Possible”

Automated Bubble Gun Just Because

After a recent trip to Disney Land, [Thomas] came home with an electric bubble gun. [Thomas] is a full-grown man. But since when did that stop us having fun blowing bubbles?? Obviously, a project was to be had using this fun little toy. So he decided to automate it.

So after taking some measurements with his trusty calipers, [Thomas] got on the computer and started designing an enclosure for the bubble gun using SolidWorks. It’s pretty simple. He designed it to hold the bubble gun in place, and allow him to attach a small RC servo motor in order to trigger the switch. Hooking that up to an Arduino Micro and he was now able to trigger it remotely.

Continue reading “Automated Bubble Gun Just Because”

Debug An IKEA Lamp Hack, Win A Lamp Controller

[Limpkin], aka Hackaday alum [Mathieu Stephan], is at it again, converting an IKEA lamp into a visual wake-up light. He wants to build an alarm that can be remotely triggered, He’s basing this project around a combination of an ESP8266 that handles the communication and timing, and a pile of 10-watt RGB LEDs. However, he is having a problem: every time he initializes the PWM (pulse width modulation) signalling that will control the level of the LEDs, his ESP8266 dev board reboots. So, he’s offering an interesting bounty for the person who finds the issue: figure it out and he will send you the lamp. Well, the PCB and components, anyway: you’ll have to add your own IKEA lamp. It’s an interesting approach to debugging a hardware problem, so feel free to take a look. The full hardware and software details are on his GitHub repository.

Arduino Masters Ham Radio Digital Mode

[jmilldrum] really gets a lot of use out of his Si5351A breakout board. He’s a ham [NT7S], and the Si5351A can generate multiple square waves ranging from 8 kHz to 160 MHz, so it only stands to reason that it is going to be a useful tool for any RF hacker. His most recent exploit is to use the I2C-controllable chip to implement a Fast Simple QSO (FSQ) beacon with an Arduino.

FSQ is a relatively new digital mode that uses a form of low rate FSK to send text and images in a way that is robust under difficult RF propagation. There are 32 different tones used for symbols so common characters only require a single tone. No character takes more than two tones.

Continue reading “Arduino Masters Ham Radio Digital Mode”

Brewing Tea Too Stressful? 3D Print A Tea Steeper

When you want to relax with a nice hot cup of tea, the last thing you need is the stress of dunking the teabag in and out of the hot water, right? [Andylear] got tired of it and he has a 3D printer, so he set about solving the problem.

The solution uses a standard mini servo and the VarSpeedServo Arduino library. This library uses interrupts to control speed and position of up to 8 servos. All servos can operate at once and you can control both the position of the servo and the speed of the motion required to get it there. Commands can be asynchronous or you can wait for them to complete and you can even send sequences of commands to each servo.

Continue reading “Brewing Tea Too Stressful? 3D Print A Tea Steeper”

A Gramophone For Your Pebble Smart Watch

At a recent Pebble-themed hackathon, one of the teams created a pretty cool device called the TimeDock Sleepeasy.

It’s a gramophone inspired docking station for your Pebble Time smart watch. And it’s not just a 3D printed mount — nope, there’s an Arduino inside! The team’s plan from the beginning was to make an interactive docking station for the Pebble that would allow it to talk to you without actually pressing any buttons on the watch.

It was rather tricky getting the Arduino Uno talking to the Pebble, but once they figured it out they had a lot of options for interaction — they ended up using an ultrasound sensor so you can just wave your hand at the TimeDock and it would tell you the time.

Continue reading “A Gramophone For Your Pebble Smart Watch”