NEO430 Puts A Custom MSP430 Core In Your FPGA

We are certainly spoiled by all the microcontroller options nowadays — which is a great problem to have. But between the good old 8-bit controllers and an increasing number of 32-bit varieties, it almost seems as if the 16-bit ones are slowly falling into oblivion. [stnolting] particularly saw an issue with the lack of 16-bit open source soft cores, and as a result created the NEO430, an MSP430 compatible soft processor written in VHDL that adds a custom microcontroller to your next FPGA project.

With high customization as main principle in mind, [stnolting] included a wide selection of peripherals and system features that can be synthesized as needed. Not limiting himself to the ones you would find in an off-the-shelf MSP430 controller, he demonstrates the true strength of open source soft cores. Do you need a random number generator, CRC calculation, and an SPI master with six dedicated chip select lines? No problem! He even includes a Custom Functions Unit that lets you add your own peripheral feature or processor extension.

However, what impresses most is all the work and care [stnolting] put into everything beyond the core implementation. From the C library and the collection of examples for each of the controller’s features, so you can get started out of the box with GCC’s MSP430 port, to writing a full-blown data sheet, and even setting up continuous integration for the entire repository. Each topic on its own is worth looking at, and the NEO430 offers a great introduction or reference for it.

Of course, there are some shortcomings as well, and the biggest downer is probably the lack of analog components, but that’s understandable considering your average FPGA’s building blocks. And well, it’s hard to compete with the MSP430’s ultra low-power design using an FPGA, so if you’re thinking of replicating this watch, you might be better off with a regular MSP430 from a battery lifetime point of view.

Who Needs The MSP430 When You Have TI’s Other Microcontroller, The TI-84?

We’re sure there are more expensive LED controllers out there, but the TI-84 has got to be up there. Unless you have one on hand, then it’s free. And then you’ll doubtless need an SPI library for the famously moddable graphing calculator.

[Ivoah] is using his library, written in assembly for the Z80 processor inside the TI, to control a small strip of DotStar LEDs from Adafruit. The top board in the photograph is an ESP8266 board that just happened to be on the breadboard. The lower Arduino is being used as a 5V power supply, relegated to such duties in the face of such a superior computing device.

Many of us entertained ourselves through boring classes by exploring the features of TI BASIC, but this is certainly a step above. You can see his code here on his GitHub.

After his proof-of-concept, [Ivoah] also made a video of it working and began to program a graphical interface for controlling the LEDs. Video after the break.

Continue reading “Who Needs The MSP430 When You Have TI’s Other Microcontroller, The TI-84?”

Chili-Gation With The MSP430

[Dave] used to grow chili peppers, but after moving to Texas he noticed his plants were drying up and dying off. This is understandable; Texas is freaking hot compared to his old home in the UK. These chilis needed a watering system, and with a pump, relay module, and an MSP430 launchpad, it was pretty easy to put together.

The core of the build is an MSP430 launchpad, a Sharp Memory LCD BoosterPack for the user interface, and a few bits and bobs for pumping water from a large soda bottle to the plant.

Before beginning his build, [Dave] took a look at commercial watering systems, but could only find huge irrigation systems for greenhouses or gardens. This was obviously overkill, but with a few parts – a six volt pump and a relay control board – [Dave] was able to make a simple system that keeps chilis watered for seven days between refilling the reservoir.

New Part Day: MSP430 + Cortex M4F

Texas Instruments’ MSP430 series of microcontrollers has been the standard extremely low power microcontroller for several years now. It’s not an ARM, though, so while there are fans of the ‘430, there aren’t a lot of people who would want to port their work in ARM to a completely different architecture. Here is TI’s answer to that. It’s called the MSP432, and it combines the low power tech of the ‘430 with a 32-bit ARM Cortex M4F running at 48MHz.

This is not the first ARM Cortex M4F platform TI has developed; the Tiva C series is based on the Cortex M4F core and was released a few years ago. The MSP432 is a little bit different, leveraging the entire development system of the MSP430 and adding a DSP engine and a FPU. If you’re looking for something that’s low power but still powerful, there you go. You can find the official press release here.

If you’d like to try out the MSP432, there’s a LaunchPad available. $13 to TI gets you in the door. The most capable MSP432 with 256 kB of Flash, 64 kB of SRAM, and 24 ADC channels hasn’t hit distributors yet, but you can sample it here.

Calibrating The MSP430 Digitally Controlled Oscillator

The MSP430 is a popular microcontroller, and on board is a neat little clock source, a digitally controlled oscillator, or DCO. This oscillator can be used for everything from setting baud rates for a UART or for setting the clock for a VGA output.

While the DCO is precise – once you set it, it’ll keep ticking off at the correct rate – it’s not accurate. Without a bit of code, it’s difficult to set the DCO to the rate you want, and the code to set that rate will be different between different chips.

When [Mike] tried to set up a UART between an MSP430 and a Bluetooth module, he ran into a problem. Setting the MSP to the correct baud rate was difficult. Luckily, there’s a way around that.

There’s an easy way to set the DCO on the MSP programatically; just set two timers – one that interrupts every 512 cycles, with its clock source set to the DCO, and another that interrupts every 32768 cycles that gets its clock from a 32.768kHz crystal. The first timer clicks off every second, and by multiplying the first timer by 512, the real speed of the DCO can be deduced.

After playing around with this technique and testing the same code on two different chips, [Mike] found there can be a difference of almost 1MHz between the DCOs from chip to chip. That’s something that would have been helpful to know when he was playing around with VGA on the ‘430. Back then he just used a crystal.

An MSP430-based Automatic Fish Feeder

[Dmitri] wanted to buy an automatic feeding setup for his aquarium, but he found that most off-the-shelf feeders are really inaccurate with portion control. [Dmitri]’s fish is sensitive to overfeeding, so an off-the-shelf feeder wouldn’t get the job done. Since [Dmitri] knows a thing or two about electronics, he set out to build his own microcontroller-based automatic feeding machine.

[Dmitri]’s machine is based around a MSP430 that starts feeding at scheduled times and controls how much food is dispensed. The MSP lives on a custom PCB that [Dmitri] designed, which includes a stepper motor driver and input for an endstop sensor. The board is wired to a stepper motor that advances a small wooden board with a series of holes in it. Each hole is filled with a single serving of food. The board slides along a piece of U-channel, and food drops out of each hole into the aquarium when the hole reaches the end of the channel.

The whole build is very well documented, and [Dmitri] explains each block of his schematic in detail. His firmware is also open-source, so you can build your own fish feeder based off of his design. Check out the video after the break to see the feeder in action.

Continue reading “An MSP430-based Automatic Fish Feeder”

Calculator Remote with Launchpad

Calculator + MSP430 + IR LED = TV Remote?

Eschewing the store-bought solution, [Stefan] managed to build a TV remote out of an old calculator. The brains of the calculator were discarded and replaced with an MSP430, leaving only the button matrix and enclosure. Rather than look it up, he successfully mapped the matrix manually before getting stumped with the infrared code timings. Some research pointed him to a peculiarity with Samsung IR codes and with help from an open source remote control library he got it working.

When the range was too limited to satisfy him he added a booster circuit and an LED driver which he snapped off the top of an old remote; now it works from 30 feet away. Some electrical tape and hot glue later and it all fit back into the original case.

It cannot take photos or play Super Smash Brothers, but it does what a remote needs to do: browses channels in the guide, control volume, and turn the TV on or off. Considering that all this calculator was built to do was boring basic arithmetic, it is a procrastination-enabling upgrade.

See the video after the break for some smiles.

Continue reading “Calculator + MSP430 + IR LED = TV Remote?”