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.

Free ARM Cores For Xilinx FPGAs

In a surprising move, ARM has made two Cortex-M cores available for FPGA development at no cost.

In the over three decades since [Sophie Wilson] created the first ARM processor design for the Acorn Archimedes home computer, the architecture has been managed commercially such that it has become one of the most widely adopted on the planet. From tiny embedded microcontrollers in domestic appliances to super-powerful 64-bit multi-core behemoths in high-end mobile phones, it’s certain you’ll own quite a few ARM processors even if you don’t realise it. Yet none of those processors will have been made by ARM, instead the Cambridge-based company will have licenced the intellectual property of their cores to another semiconductor company who will manufacture the device around it to their specification. ARM core licences cost telephone-number sums, so unless you are a well-financed semiconductor company, until now you probably need not apply.

You will still have to shell out the dough to get your hands on a core for powerful chips like those smartphone behemoths, but if your tastes are more modest and run only to a Cortex M1 or M3 you might be in luck. For developers on Xilinx FPGAs they have extended the offer of those two processor cores at zero cost through their DesignStart Programme.

It’s free-as-in-beer rather than something that will please open-source enthusiasts, But it’s certainly a fascinating development for experimenters who want to take ARM for a spin on their own gate array. Speculation is swirling that this is a response to RISC-V, but we suspect it may be more of a partial lifting of the skirts to entice newbie developers such as students or postgraduates. If you arrive in the world of work already used to working with ARM IP at the FPGA level then you are more likely to be on their side of the fence when those telephone-number deals come up.

Thanks [Rik] for the tip!

Seeed Air602 WiFi dev board.

Tiny WiFi-Enabled ARM MCU For Tiny Projects

Ever since the ESP8266 WiFi-enabled microcontroller came on the scene, it seemed like suddenly everyone came up with WiFi-enabled projects. But the ESP8266 is not the only game in town! Reader [PuceBaboon] notified us of a new product released by Seeed Studios: the imaginatively called Air602 WiFi Development Board.

The core of this board is the tiny WinnerMicro W600 MCU, which integrates a 32-bit ARM Cortex M3 CPU, along with dual UARTs, I2C, SPI and I2S interfaces, as well as a real-time clock (RTC). Add to this hardware crypto, seven I/O pins (five broken out on the development board) and you have a very capable WiFi-enabled MCU which can be programmed using the usual ARM development tools (e.g. Keil) using the provided SDK.

The W600 module can be bought by itself, in all its diminutive 12 mm x 10 mm glory, for a mere $1.90 as of time of writing – without antenna – as noted in [PuceBaboon]’s thoughts on this MCU and the development board.