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?”
[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.
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.
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.
[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”
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?”
For reasons we both agree with and can’t comprehend, most ‘prosumer’ SLR cameras don’t have mechanical shutter releases. Instead, IR LEDs are brought into the mix, the Canon RC-1 remote trigger being the shutter release of choice for people who didn’t choose Nikon. [Vicente] cloned the Canon RC-1, but he didn’t do it to save money; there’s a lot to learn with this project, and making his own allows him to expand it with more features in the future.
Studying the function of the Canon RC-1, [Vicente] found that some compromises needed to be made. The total power emitted by an IR LED is usually a function of its beamwidth; a smaller beamwidth means more photons reaching the IR receiver in the camera. This also means the remote must be aimed at the camera more accurately. In the end, [Vicente] decided on a higher power LED with a tighter beamwidth that’s just slightly below the optimum wavelength for the receiver. It’s all an exercise in compromise, but other components could see similar performance.
With the LED selected, [Vicente] moved on to building the actual controller. He chose an MSP430 microcontroller for its low power consumption, driving the LED with a watch battery and a transistor. Put together on a piece of protoboard, it’s actually pretty close to a TV-B-Gone. With everything soldered up, it’s good enough to trigger his camera’s shutter from about 5 meters away. Future improvements include cleaning up the code, making the timing more accurate with a crystal, and implementing low power mode on the MSP430.