A Multifunction ESP8266 Smartwatch

Most of the DIY smartwatch projects we feature here on Hackaday aren’t exactly what most people would consider practical daily-use devices. Clunky designs, short battery life, limited functions: they’re more a wearable display of geek cred than they are functional timepieces. Oddly enough, the same could be said of many of the “real” smartwatches on the market, so perhaps the DIY versions are closer to the state-of-the-art than we thought.

But this ESP8266 smartwatch created by [Shyam Ravi] is getting dangerously close to something you could unironically leave the house with. It’s still missing an enclosure that prevents you from receiving PCB acupuncture while wearing it, but beyond than that it has a more than respectable repertoire of functions. It even seems to be a fairly reasonable size (with the potential to be even smaller). All that with a total build cost of less than $20 USD, and we’re thinking this might be a project to keep an eye on.

Not content with a watch that simply tells the time, [Shyam] added in a weather function that pulls the current conditions for his corner of the globe from the Yahoo weather API and displays it above the time and date on the watch’s multi-color OLED display when the center button is pressed. Frankly, given the state of DIY watches, that would already have been impressive enough; but he didn’t stop there.

The left and right buttons control Internet-connected relays which [Shyam] uses to turn his lights and air conditioner on and off. When he presses the corresponding button, the watch will even display the status of the devices wherever his travels might take him.

A smattering of DIY watches pass by our careful gaze, though it’s been a while since we’ve seen an ESP8266 watch. More recently we’ve seen an Arduino watch, and some downright gorgeous analog creations.

Continue reading “A Multifunction ESP8266 Smartwatch”

Turning The Deep Note Into A Game

One of the most famous pieces of computer-generated music is the Deep Note, the audio trademark for THX. It begins with a dozen or so voices, randomly tuned between 200 and 400 Hz, then glissandos to a frequency spread of three octaves. Put that through a few thousand watts of a speaker system, play it before Jedi, and the audience will be listening.

The original THX Deep Note was created on hundreds of thousands of dollars worth of hardware running 20,000 lines of code, but that was in 1983. Now we have cheap microcontrollers, so of course, you can now fit the Deep Note in your pocket. You can even make it a game. That’s exactly what [Bob] did with his Deep Synth. It’s the Deep Note, in a Game Boy-ish format.

The hardware for this build is the 1Bitsy 1UP, a retro-inspired handheld game console from [Bob]’s friend [Pitor]. Onboard the 1Bitsy is an STM32 F4 running at 168 MHz with a 2.8″ LCD, SD card reader, and the traditional Game Boy control scheme. All the games are up to you.

[Bob] wrote an audio driver for the 1UP, but needed a good audio demo. Since the Deep Note was a good enough demo for Lucasfilms, it would obviously be a good enough demo for a microcontroller. In far less than 20,000 lines of code, [Bob] made the 1UP polyphonic, and it was surprisingly fast enough to synthesize around thirty oscillators. It actually sounds like the Deep Note, too. You can check out a video (and audio) of that after the break.

Continue reading “Turning The Deep Note Into A Game”

I2C Bootloader For ATtiny85 Lets Other Micros Push Firmware Updates

There are a few different ways of getting firmware onto one of AVR’s ATtiny85 microcontrollers, including bootloaders that allow for firmware to be updated without the need to plug the chip into a programmer. However, [casanovg] wasn’t satisfied with those so he sent us a tip letting us know he wrote an I2C bootloader for the ATtiny85 called Timonel. It takes into account a few particulars of the part, such as the fact that it lacks a protected memory area where a bootloader would normally reside, and it doesn’t have a native I2C interface, only the USI (Universal Serial Interface). He’s just released the first functional version for the ATtiny85, but there’s no reason it couldn’t be made to work with the ATtiny45 and ATtiny25 as well.

Timonel is designed for systems where there is a more powerful microcontroller or microprocessor running the show (such as an ESP8266, Arduino, or even a board like a Raspberry Pi.) In designs where the ATtinys are on an I2C bus performing peripheral functions such as running sensors, Timonel allows the firmware for these peripheral MCUs to be updated directly from the I2C bus master. Embedded below is a video demo of [casanovg] sending simple serial commands, showing a successful firmware update of an AVR ATtiny85 over I2C.

Continue reading “I2C Bootloader For ATtiny85 Lets Other Micros Push Firmware Updates”

A New Kid On The Mini ARM Block

The breadboard microcontroller experimenter has a host of platforms to work with that can be had in the familiar DIP format. Old-school people can still find classic 8-bit platforms, the Ardunisti have their ATMegas, and PIC lovers have a pile of chips to choose from. But ARM experimenters? Out of luck, because as we have previously reported, popular past devices such as the LPC810 in a DIP8 package are now out of production.

News comes from China though of a tiny ARM Cortex M0 for pennies that may not be in a DIP8, but is in almost the next best thing. The Synwit SWM050 can be had in a TSOP8, which though it’s not quite as friendly as its larger SOIC8 cousin, is still easily solderable onto a DIP8 adaptor for breadboard use. Spec-wise it’s 5 V tolerant, has an 8 kB FLASH and 1 kB of RAM, 6 GPIOs, and can clock away at a not incosequential 36 MHz.

We have [Sjaak] to thank for the discovery of this device, and for doing a lot of work including getting some die shots taken to dig up and make sense of the Chinese documentation, and to provide some dev tools should anyone want to play with it.  There’s even a small breakout board for the experimenter unwilling to design their own.

Earlier this year we marked the passing of the DIP8 version of the LPC810 microcontroller, and for those mourning it we made an important point. It’s now normal to use one of the vast array of single board computers instead of a bare microcontroller, you might wish to ask yourself why you would do so.

Thanks [Ziew] for the tip.

Programming A RISC-V Softcore With Ada

We were contacted by [morbo] to let us know about a project on the AdaCore blog that concerns programming a PicoRV32 RISC-V softcore with Ada. The softcore itself runs on a Lattice ICE40LP8K-based TinyFPGA-BX FPGA board, which we have covered in the past.

The blog post describes how to use the Community edition of the GNAT Ada compiler to set up the development environment, before implementing a simple example project that controls a strip of WS28212b RGB LED modules. There are two push buttons changing the animation and brightness of the lights.

The source can be found at the author’s Github repository, and contains both the Ada source and the Verilog source for the PicoRV32 softcore. To build the project one needs the GNAT compiler, as well as the open-source iCE40 development tools to compile the softcore.

There is a video demonstrating the finished example project, that we’ve placed below the break.

Continue reading “Programming A RISC-V Softcore With Ada”

Amplifier Controlled Motorized Display

It’s easy to get jaded by gadgets like the Chromecast or Sonos, which let the user control AV equipment remotely from a mobile device or computer. You can pick something to play from your phone and send it off to your speakers via the magic of Wi-Fi. But it’s still nice to have a display to look at for music visualizations and that sort of thing, at least occasionally.

To address this only occasional desire to have a display on your media setup, you could follow in the footsteps of [Steven Elliott] and create a DIY motorized display which only pops up when needed. Inspired by seeing videos of TVs rising out of cabinets and other such trickery, he decided to create his own version using an old computer monitor he had lying around.

The monitor is lifted with a beefy linear actuator, which has been placed inside of a square metal fence post to keep from rotating. It already had a power supply and control board with relays for extending and retracting, so [Steven] just needed to find a convenient way of firing them off.

The answer came from a somewhat unconventional source: his amplifier. [Steven] explains that many amplifiers feature a “Trigger Output”, which uses a standard stereo 3.5mm connector and sends a 12V pulse to connected device. This is generally used to turn on downstream devices when the amplifier switches to the respective input. It’s too short and not nearly powerful enough to close the actuators relays, but it’s easy enough to detect.

[Steven] uses a LeoStick microcontroller to wait for the pulse from the amplifier, and then use that to raise or lower the display depending on the selected input. There’s also a SPST momentary switch which can be used to trigger the actuator manually. Beyond the fact the linear actuator is a bit loud, he says the setup works very well and prevents him from having to start up his projector if he just wants to take a quick glance at what’s playing or program his DVR.

We don’t see many motorized display lifts like this anymore, not since wall mounted LCDs became popular anyway. But it’s still a cool effect, and today made quite a bit easier thanks to the fact that TVs and monitors no longer weigh as much as a small car.

[Thanks to Baldpower for the tip.]

Easy Access Point Configuration On ESP8266

One of the biggest advantages of using the ESP8266 in your projects is how easy it is to get WiFi up and running. Just plug in the WiFi library, put the SSID and encryption key in your source code, and away you go. It authenticates with your network in seconds and you can get on with building your project. But things get a little trickier if you want to take your project someplace else, or distribute your source code to others. Quickly we learn the downside of using static variables for authentication.

While there are already a few solutions to this problem out there, [Martin Raynsford] wasn’t too thrilled with them. Usually they put the ESP8266 in Access Point mode, allow the user to connect, and then ask which network they should authenticate with. But he didn’t want his projects to require an existing network, and figured he could do just as well making a field-configurable AP.

Using it is simple. Once the ESP8266 starts up it will create a new network in the form of “APConfig XXXXXX”, which should be easy enough to find from your client side device. Once connected, you can go to a simple administration page which allows you to configure a new AP name and encryption key. You even have the option to create an open AP by leaving the “Password” field blank. Once rebooted, the ESP8266 will create a new network with the defined parameters.

[Martin] has also included a “backdoor” to let anyone with physical access to the ESP8266 board create a new open AP that can be used to reconfigure the network settings. During boot up there is a brief period, indicated with specific blinks of the LED, wherein you can hit the reset button and trigger the open AP. This keeps you from getting locked out of your own project if you forget what key you gave it.

If you’re not one to go the austere route, take a look at some of the more robust solutions we’ve seen for easier end-user setup of the ESP8266.