Interrupt Free V-USB

resync

[Tim’s] new version of Micronucleus, Micronucleus 2.0, improves upon V-USB by removing the need for interrupts. The original Micronucleus was a very small implementation of V-USB that took up only 2KB. Removing the need for interrupts is a big leap forward for V-USB.

For those of you that do not know, “V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.” One tricky aspect of using V-USB is that the bootloader requires interrupts, which can lead to messy problems within the user program. By removing the need for interrupts, Micronucleus 2.0 reduces the complexity of the bootloader by removing the need to patch the interrupt vector for the user program.

With the added benefit of  speeding up the V-USB data transmission, Micronucleus 2.0 is very exciting for those minimal embedded platforms based on V-USB. Go ahead and try out Micronucleus 2.0! Leave a comment and let us know what you think.

Public Transportation Display

display_cropped

[Adrian] and [Obelix] wanted to have an easy way to know when to expect the public transportation, so they hacked an LED dot matrix display to show arrival times for stops near their dorm.

They found the display on Ebay with a defective controller which they replaced with an ATmega328p. They connected the display to the internet by adding a small TP-Link MR3020 router and connecting it to the ATmega328p via a serial line. Their local transportation office’s web page is polled to gather wait times for the stops of interest. All rendering of the final image to display to the dot matrix display is done on their PC, which then gets pushed through to the MR3020, which in turn pushes it out to the ATmega328p for final display.

[Adrian] and [Obelix] warn about setting proper watchdog timers on the display driver to make sure bugs in the controller don’t fry the dot matrix elements. Their ATmega328p dot matrix driver code can be found on [Adrian]’s GitHub page.

Check out a video of the display in action after the jump.

Continue reading “Public Transportation Display”

Software USB On The STM8

STM8

Thanks to V-USB, software-based USB is all the rage now, with a lot of uses for very small and low power microcontrollers.[ZiB] wondered if it would be possible to implement a USB controller on the STM8 microcontroller (Google translation) in software and succeeded.

The STM8 is a bit of a change from the usual 8-bit micros we see like AVRs and PICs. [ZiB] chose the STM8S103F3, although any chip in the STM8 family will work with this project when a 12MHz crystal is attached.

The build began by generating USB signals with the help of a whole lot of NOPs. This code doesn’t take up much space – only 300 bytes, and the receiving code (Google translation) is similarly sized.

The code isn’t quite there yet, but [ZiB] has proven a software-based USB implementation on the STM8 is possible. All the code is available for download (comments in Russian) and a video demoing the project available below. If anyone cares to translate this project to English, we’ll post a link to your work here.

Continue reading “Software USB On The STM8”

Microcontroller Speech Synthesis Lets Your Project Be Heard

[Aditya] had a project that called for spoken output. He admits that he could have built a PC-based solution, but he found that adding speech by using a microcontroller was not only a cheap and portable alternative, it was also a fun and easy build.

His design uses an ATMega128. Many microcontrollers would work, but his major requirements were PWM generation and plenty of memory to store the file(s). The output is cleaned up in a simple low pass filter before going to the 8Ω speaker.

[Aditya] lays his tracks in WAV format and then compresses it to 8-bit/8kHz. He found a C++ function that converts the track data into a huge arrays and then digitizes it. He uses two timers, one to generate the waveform and second one to time the square wave. [Aditya] has a zip of samples available on his site that will speak the digits 0-9.

The Catweazle Mini: A Super Small ARM Based Embedded Platform

Catweazle

There has been a recent trend in miniaturizing embedded platforms. [Jan] wrote in to tell us about his very tiny ARM based embedded platform, the Catweazle Mini. Who knew that an ARM based system could be so simple and so small?!?

With the success of the Trinket and Femtoduino (miniature Arduino compatible boards) and many other KickStarter campaigns, it is only natural for there to be a mini platform based on the ARM architecture. Built around the NXP LPC810 ARM Cortex M0+ MCU at 30MHz (which only costs slightly more than $1, by the way), this small embedded platform packs some pretty impressive processing power. The board contains a simple linear regulator, and can be programmed via UART. [Jan’s] development environment of choice is the mbed compiler, which is free and requires no installation. If you need some help getting started Adafruit has a nice guide for the LPC810.

Do you need some more processing power for your next wearable project? Be sure to use the Catweazle Mini.

Giant Tetris Adds Some Retro To Your Room

giant tetris

[Sam] just finished off this awesome 6 foot tall Tetris game using National Instruments myRIO with FPGA.

The build makes use of a 10 x 20 grid of RGB LEDs controlled by the myRIO. It’s played by using a web interface on any device, as long as you have WebSockets support. [Sam] had originally built it using an Arduino at the heart, but wanted a stand-alone device to do everything — no extra computer or Raspberry Pi for the web interface. That’s when he discovered the myRIO — it’s a pretty cool piece of hardware that we haven’t seen too much of yet, other than the recent Picasso with a Paintball gun project…

Don’t forget to watch the following video to see the game in action!

Continue reading “Giant Tetris Adds Some Retro To Your Room”

NXP’s ARM Micros With Motor Controllers

motor

It’s still relitavely early in the year, and all those silicon manufacturers are coming out with new toys to satiate the engineer and hobbyist for years to come. NXP’s offering is the LPC1500, a series of ARM microcontrollers optimized for motor and motion-control applications.

The specs for the new chips include an ARM Cortex-M3 running at 72MHz, up to 256kB Flash, 36kB SRAM, USB, CAN, 28 PWM outputs, an a real-time clock. There are options for controlling brushless, permanent magnet, or AC induction motors on the LPC1500, with dev boards for each type of motor. Each chip has support for two Despite NXP’s amazing commitment to DIP-packaged ARM chips, the LPC1500 chips are only available in QFP packages with 48, 64, and 100 pins.

Don’t think the LPC1500 would be a perfect chip for a CNC controller – the chips only support control of two motors. However, this would be a fantastic platform for building a few robots, an electric car, or a lot of the other really cool projects we see around here.