A simple programmable robot-rover using the LCD board

Here is a laser cut rover I’ve made, using the LCD-button-board as the controller. The motors are cheap, modified Hobbyking servos. It’s a very simple build, and it is programmable using the keys on the LCD-board. The LCD-board has connectors for two servos and one sensor, giving access to two IO (one of which is P1.6, an analog input, required for the IR sensor).

The software is programmed using Energia, which is an Arduino-clone for MSP430.

It uses a home-made IR proximity sensor.

The firmware used on the video is here and you also need the LCD library for the board, which is here. If you think this is interesting you may also want to look at one of my other, even simpler builds, which requires less components.

If you’d like to make one yourself, you can do it without the laser-cut kit also. You can just get a 3-cell battery box as on the picture and use double-sided tape to glue the servos on top of it, and the board on top of the servos. Use something round (CDs?) as the wheels. Will work fine. But make sure you use 3 NiMH batteries (1.2 V each, 3.6 V in total), since this will give a good voltage you can feed directly to the servos and to the MSP430/LCD without breaking anything. If you use 3 Alkaline batteries, you need a regulator for the MSP430/LCD.

If you want a laser-cut kit, I can make one for you. Send me a message and I’ll add it to the store.

Here’s the Youtube video:

Continue reading A simple programmable robot-rover using the LCD board

Manufacturing boards using surface mount and a hot plate

I thought I’d write a little note and post some pictures of how I’m assembling the LCD display boards. The PCBs are manufactured at Seeedstudio and are really nice quality. I’ve tried to use as many surface mount components as possible, but have some through-hole also (headers etc). The LCD itself is also surface-mount, but I solder it on manually, not using the hot plate.

I basically use solder paste in a syringe and manually apply solder paste on each surface mount point.  It would probably have been slightly faster using a surface mount stencil, but using a syringe is also quite quick and not as messy as a stencil.

I then place the surface mount components onto the paste. In my case these are just simple capacitors and resistors, so it’s not very complicated. I used 1206 size originally, but have now started using 0805 size capacitors.

The board is now ready to be fried. There are several ways of doing this. Some people use a reflow oven that surrounds the entire board with heat, but I find that if the surface mount components are only on one side, using a hot plate such as this is the easiest. Not sure what the pros and cons are of each, but Sparkfun have also recommended using hot plates. I use a thermistor to control the heat, but since my hot plate has a thermostat I just use the thermistor to guide me towards the best setting.

Here’s a picture of some of the boards on the hot plate. I can do several at the same time.

The whole process of applying paste, heating them on the hot plate and then manually soldering on the LCD means I use about 1 hour on 10 boards. Of this, just doing the surface mount takes maybe 10-15 minutes for 10 boards. It’s definitely faster than manual soldering.  I might get more efficient as I move along. Right now I’m also soldering on headers on all the boards as it makes it easier to test, but I won’t do that in the long run. I’m shipping 14 boards to the 43oh.com store tomorrow. I will keep a few to sell here on the site. Unfortunately, Arrow have told me the remaining batch of 222 LCDs is delayed until July, so if you want to test a board early, it might be good to get one of this first batch.

Here’s a zoomed in picture of one of the boards, before the solder paste has melted. The picture also shows my silk-screen error (P1.4 is really P2.0). Other than that and a slightly inefficient LED-connection, the first batch of boards seem to be pretty ok (the points that need to be connected to turn on the backlight are a bit far apart, but no big issue). The next version will also have the SMT components on the bottom, as it looks nicer.

And here’s a picture of the LCD connector soldered onto the board. I do this manually, but it’s pretty easy when using flux to ‘guide the solder’. You can barely see the liquid flux on the board around the connector.

LCD Booster pack – first versions ready

I have made three LCD boosterpacks for the MSP430 Launchpad or other 3V microcontrollers. These are based on the Powertip PE9665WRF display with the ST7579 controller. The screen is small (28x19mm viewable area) and requires little power (0.2mA). It is SPI-based, has backlight and  has 96×65 dots. It’s a perfect display if you need a cheap, small and low-power display for your next project. If you want to make your own boosterpack, I can also sell the display itself. I have bought a bunch of 250 displays, so need to get rid of them. I won’t be making any money on these boosterpack. I’m doing it for fun and learning. A first batch will soon be available in the 43oh.com store.

The boosterpacks are currently in their first version, and may evolve and be improved from this description. The packs are:

  • LCD Touch Boosterpack – a classic boosterpack with the LCD and 4 capacitive touch button areas (the display isn’t touch-enabled, in case you were wondering, just the 4 areas below the screen).
  • LCD Button Boosterpack – can be a classic boosterpack to mount onto a Launchpad or it has a place to put a DIP MSP430 onto it, so you can use the Boosterpack without a Launchpad. Also has room to solder on a regulator in case you want to run it off a battery.
  • LCD Watch – not really a boosterpack, as it won’t fit onto the Launchpad. It’s smaller in size and is meant to be part of a wrist-watch kit.

There is more info about the boosterpacks on a permanent page here on my blog, including a link to a video.

Thermistor based thermometer for MSP430

I’ve made some MSP430 code for a high-temperature capable thermometer, by adapting the code from Reprap. The code uses the B57560G104F thermistor that can measure temperatures up to 300 Degrees C. As a display I suggest you buy the display I’m showing below (will soon be available to buy) or for example this character-display from Farnell.

The picture shows the temperature in a display and in front the Thermistor. These are really tiny glass beads that can handle high temperatures, but be careful with how you mount it.

The circuit is basically

Vcc — 10K resistor — P1.2 — Thermistor — 0V

It’s also good to place a 1uF capacitor across the thermistor to remove noise.

IAR MSP430 code is below. It can easily be adapted to CCS or MSPGCC.

Continue reading Thermistor based thermometer for MSP430

LCD MSP430 Launchpad Booster pack

‘ve changed display type to SPI, and I have now received the first batch of an order for 250 displays, that I really planned to make a boosterpack with. I’m planning to order a test-batch of booster pack PCBs that look like this:


an the schematic:


The display looks similar to the above pictures, but is slightly smaller and I think maybe slightly better quality. It has backlight, and a 9-bit 3-line SPI interface. It’s quite small, so I’ve made another post about the possibility to make a wrist-watch kit from this display.

New version of MSP430 LCD watch?

I’ve now got the first batch of the 250 SPI B/W small LCD displays that I ordered, but I’m not quite sure what to do with them. The obvious thought is a booster pack, but since this is quite a small display I’m thinking maybe I could make a watch kit with it. I might also make some booster packs eventually.

The display data sheet is here. It is SPI-based, but it uses a 9-bit SPI interface. The first bit is decides whether it’s a write to the display memory or a config-command. As far as I understand, the USCI-chips don’t support 9 bits, while the USI ones do. I’ve made a bitbanging driver for it so far, and it works ok. I guess with an HW-driver it’ll be updating faster. I’ll see if maybe it can be tweaked onto the USCI peripheral by sending 2 bytes.

The features are:

– small (34 x 30 mm physical size. Viewing area 28×19)
– 3-line SPI 9-bit (Driver Sitronix ST7579-G2)
– low power
– backlight
– black and white LCD
– approx 3 USD cost

I made a watch with the earlier LCD display (i2c-version) I was using. Here’s a picture. The SPI-display is slightly smaller, but the display quality is similar (slightly better on the SPI display). I will have 250 of these, so if anyone is interested in this display for projects, let me know. I’m planning on making some packs that are finished soldered and can be sold in the shop, but it’s relatively easy to solder these displays onto a board for your own projects also.


So I’m planning on making a watch-board for the new display. It’ll have the display soldered onto one side. The other side will have space for example for a MSP430G2452. The design will be open source. Any suggestions to peripherals and buttons? I could put an accelerometer there, for example to detect taps on the display. I guess I could also put a radio in it???

A very basic start is here (this one has places for a header in case one wants to use the display as a breakout instead). The board design is a bit strange since I’ve used it to make a single-side test board also. So the ‘breakout’-traces are on the top only.



Character display

I got a really nice, small character display from Farnell, and want to use it in a new project I’m building (A general temperature controller that can be used in a Sous Vide or even a hot plate for soldering surface mount components). Farnell (Element14) is a good site to get components for DIY projects from. I’ve bought lots of my supplies for the 3D printers there also. Here’s a picture of the display.

I thought I had messed it up a bit while connecting the display, as I connected GND and VCC wrong. But it still works. Though for some reason I’m not able to write to the second line. I think there’s probably a bug in my code.

I’ve also bought a B57560G104F thermistor and some other components to make up the controller, and will report back (though with the baby there isn’t so much time for projects right now). This thermistor is the same I use for my 3D printers, and is used widely by the 3D printing community. It measures temperatures up to 300 Degrees C, so it’s possible to use for soldering applications.

Code and more info below the line.

Continue reading Character display

Play time counter with MSP430 and launchpad

We have decided to just buy one DS, but we have two kids. When we’re in the car, there’s a constant question of when the ‘swap time’ is. So that we don’t have to keep track of time ourselves, I made a watch that counts down from 10 minutes and then plays a sound. It uses a Powertip PE9665ARF-001 display to show the remaining time, and an MSP430 value line MSP430G2452 MCU.

It’s of course silly to make something like this, but it’s fun.

The PE9665ARF-001 display is really cheap (only a few dollars) and uses a Sitronix ST7576i I2C driver. It’s a really nice display and works brilliantly. Most importantly it’s super cheap, much cheaper than the other displays from Sparkfun or similar. I’ve bought it from Arrow.

I’ll post a picture later when I’ve put it in a box, but the following is a picture of two prototypes, one on a breadboard and one on a prototype board (this is the one I’m going to print a case for).