Skip to content

Archive for August, 2013


Message Board – Parola

As anyone in my family will attest, I’m a sucker for winky blink lights. Thus, you, as the reader, have been forewarned.

I’m an Arduino junkie and of course, winky blink LED’s just HAVE to be done with an Arduino. Those 8×8 LED matrix displays caught my eye last year and I’d put one together that was controlled over the network and was pretty decent. Except that when you had more than four modules connected (32 x 8 LED’s) the scrolling speed went from slow to glacial.

A couple months back I came across this video that was in the Arduino forum:

The speed of the display was simply amazing, and of course, I had to research it all out. Turns out the creator is Marco Colli and he has really invested a lot of time and effort it perfecting this project. I decided I’d build a couple of units, 10 displays in each. One for myself, and one for a present.

Early on I knew I was going to make the boxes out of wood. I choose to use birch ply wood that they use for underlay on lino. Nice wood and easy to work with.

The Arduino bits and pieces look like this:

IMG 4037

Then the sheet of birch underlay I cut up on the table saw:

IMG 4038

When I got all the pieces cut up, admittedly there isn’t much too it. I went to a local plastics shop for two pieces of plexiglas for the front display:

IMG 4039

I cut into the 5/16″ birch to give the plexiglas a solid fit and then I test fit all the pieces:

IMG 4040

Of course the wood has markings on it so you know “which way is up”. And by that I mean a lot of markings. The only thing missing to complete the game was the O’s…LOL Any way, out came the Festool sander and just like a magic eraser the “X’s” were gone.

IMG 4041

Putting the box together proved to be harder than I anticipated. My large clamps aren’t really designed for putting together what amounts to a slightly oversize jewellery box. So you just make do with what you have and go for it.

IMG 4045

Boy I love carpenter glue…

The cabinets were made out of birch so a natural Polycrylic finish (gloss) is what I applied. Now if you’re thinking that putting this stuff on was easy, let me straighten you out. If you brush it on, you get bubbles and streaks. Granted you need the right light to see them but when you do, oh my, do they show up. I honestly think you’d be further ahead to try to spray this stuff. Or, put on a coat, sand with 400. Another coat, 600. Another coat, 800. And so on until you get to the point that all you want to do is buff the crap out of it to smooth it out. No, I don’t have that kind of patience.

IMG 4046

Also, the tape I put on the plexiglas to stop the Polycrylic from getting all over it, well, yea. Of course. It leaked. On the bright side, it was a simple little bit of a damp rag and some elbow grease and all was well.

For the Arduino I used a prototype shield and soldered on all male pins because it made using dupont connectors to all the modules easier and more secure. I like easy. I used a Bluetooth HC-05 that acts as the gateway to the module so you can program in the time, effects, and scrolling message. Why not Ethernet? Simple reason is the Parola displays run on the SPI buss and all those WIZNET and ENC ethernet boards don’t like to share the SPI buss with anything.

The drawback is you can’t use an iPhone and a bluetooth terminal program to connect to the project. Apple only connects to BLE (Bluetooth Low Energy). But any laptop or computer with Bluetooth will work. For the time keeping I didn’t use the DS1307 because they aren’t all that accurate. I used a DS3231 and I found those are pretty good.

There was a problem I encountered with the Parola boards though. I’d get junk on the displays at a cold start. So I built a power board for the displays to delay their start time until the Arduino was running. And it worked just fine and if there was still junk, a warm reset always cleared it 100% of the time.

Macro and I have since determined that the INIT code to get these displays running is a little odd. We attribute it to the fact these are no doubt clone chips (MAX7219’s). So I added a single line of code to the library and away we go.

IMG 4054

The finished project from the front:

IMG 4059

And from inside:

IMG 4060

Note on this one I have the power board attached. On the second one I made, I left it out. That’s a DC buck converter to take 9-12V down to 7VDC to feed the Arduino.

Happy to say, they both work like a champ and look very pleasing to the eyes…


GarbageMate Revisited

For the past year and a half we been using the GarbageMate I built up from an Arduino:

IMG 0424

And in that time, there’s always been some confusion about the cans that are supposed to go out to the road. Why? Well the cans are Organic, Recycle and Garbage. The cans are coloured green, blue and black respectively. In my perhaps not so infinite wisdom, I use an orange, red and green LED with the concept being that the first letter of the colour was the can to go out.

Apparently while the concept was okay for me, it consistently confused the wife. Plus it was a blue LCD display that showed the letter of the can as well but it was difficult to read.

I’d been working with TFT displays and they are like little mini-monitors in comparison to the run of the mill monochrome LCD’s for the Arduino. I’d picked up a ColdTears 3.2″ TFT with an adapter shield for the MEGA for another project I was going to build, only to find out that 3.2″ was going to be too small. So I put it back in the parts bin.

So, as Arduino stuff is famous for, I repurposed it to what I hope eventually will be a GarbageMate Pro…

At this moment it’s just sitting and running the modified sketch to be sure it works as expected. If it does, I’ll put it in a case and it’ll be good to go.

IMG 4068

The digital camera doesn’t seem to pick up the TFT screen colours all that well, but those are grey cans with coloured lids (and I wrote on them as well to end all confusion). The graphics are stored on an SD card on the back of the display. Not because I ran out of room in the MEGA’s flash, it’s because there seems to be a bug (or two) in the IDE uploader.

I find I can upload about 70K of sketch. Beyond that, it all uploads but it won’t run. I suspect the 16/32 bit addressing doesn’t compile well in the IDE once you go beyond a certain amount. Thus it’s great to 256K of flash memory to use, but it’s deflating when you can’t even use half of it.

To use one of the TFT displays, the best library you can find for it will be Henning Karlsen’s. Incredibly well written, maintained and documented. I’m also using his “tinyFat” library for accessing the SD card on the display.

If there’s a drawback to using the SD card it’s that the library has to be formatted FAT16. Which is a bit of a challenge for me since I run nothing but Mac’s here. Henning’s a Windows and open source advocate so he has an online utility (and stand alone version) for creating graphics to .c or .raw files for use with the Arduino, Due or chipKit.

As a long time Mac programmer I used his online converter a few times before I wrote one that does the same for Mac users and will be posting it on my main web site (whoRAW565). It’s interesting that on the same graphics source file, we come up with different conversions. I suspect it has something to do with the different gamma’s of the Mac and PC world. My output typically looks more saturated.

While I was doing all this I was dismantling some old equipment and came across one of these:

IMG 4070

When I started programming in 1978, I was using a TRS-80 Model 1 16K (Trash80 as the naysayers labeled it). I programmed it in Basic for about 4 months, learning. Then I changed to writing machine code using a couple different editor assemblers and eventually settled on Zeus by Vern Hester.

I wrote Z80 assembler until I finally parted company with the TRS line (Model I, III and IV’s) in 1994. In those early years I wrote columns for 80 Micro and a lot of software. The most successful of the lot was my Fast80 BBS (bulletin Board System) and my FastTerm (terminal software with VT100 support). All text based of course and, get ready for it…DIAL UP MODEMS…in those days, but the BBS was doing “email” much the same way the internet did it (it could talk to other Fast80 BBS’s). The FastTerm terminal, well, for some unknown reason, guys run TRS80 emulators on their PC’s and still use FastTerm to connect to other systems. Darn near 30 years after I wrote FastTerm, it’s still being used. Now that’s a head snapper.


Reverend Club King 290 – Un-Bigsby

Usually in a blog about a guitar you get to read about a mod that someone does to a guitar to make it, look, sound, or play better. If you’re looking for “that” blog, I wasn’t even blogging when I initially did that mod to make my guitar “play” better. So for a brief moment, we’ll fire up the way-back machine to about 5 years ago.

I was in a local music store (Tom Lee) and at the time the manager who knows my playing style and sound that I was after, pointed me to a couple of Reverend guitars they had. He said, “Try it, I think you’ll like it.” At first glance the thing looked like a Gibson/Epiphone to me. But as I got closer I could see a lot of differences.

I’d never heard of Reverend Guitars, but as it turns out, they make some decent gear. No way I’d part with mine.

Reverend Club King 290

Standard 25.5″ scale, bolt on neck, 12″ radius, P-90 pups, and simple controls. There were two colours available. A black one, and one that looked like a orange traffic cone. I grabbed the orange one first and heard from the store front, “Try the other one.”. Being one to A/B things, I plugged in the orange one and I think a strung traffic cone would have sounded better. So I grabbed the black one next. Whoa. Day and friggin’ night. I even checked the headstock to make sure I had picked up the same guitar. Yep. A Reverend Club King 290.

The bass tone contour control was something I’d never experienced before. The guitar has a single volume and tone control, but the bass contour control goes from treble to heavy bass, smoothly. Apart from the ease of which the guitar played and sounded, the contour control sold me on it.

After the time I was of the mind that I really, really needed a whammy bar. At that time, the 290 had no such option. After emailing Reverend, they gave me the info I needed to find a mounting plate and Bigsby that would fit it. No extra drilling required. Nice. So that’s what I did.

You know how you start off with those great ideas? And they never actually work out? This was one of them. Sure a Bigsby whammy works, but it’s a far cry from a Fender Jazzmaster whammy. Thus I found myself simply not using it. Plus it made the guitar a little heavier. No, not as heavy as my Godin xtSA (roughly 3lbs lighter than my SUV), but heavier none the less.

So after four years of putting it off, today I decided was “the day”. I was going to put it back to “factory”. Now that’s an original concept for a guitarist… Here’s the token shot of the start:

IMG 4014

First, I took the strings off. I checked and I hadn’t actually changed those strings in three years. Yeah, I know what you’re thinking. Must have sounded like crap. Actually no. Those are flat wounds, not round wounds. They don’t change much in sound, are easy on the fingers and last forever it seems like. I don’t play rounds except on my acoustic’s and my baritone.

By the way, if you’re doing any amount of string changing, get yourself one of those little battery powered string winders. Slick.

IMG 4015

After removing the strings, I took a shot of the Bigsby and the Vibra Mate it sits on:

IMG 4017

What’s a Vibra Mate? Essentially it’s a custom mounting plate made for a Bigsby so you don’t have to drill any special mounting holes in your guitar. Check them out:

Vibra Mate

You can see the four screws that hold the Bigsby to the Vibra Mate (and don’t go into your guitar underneath). Removing the Bigsby leaves the plate exposed:

IMG 4018

It’s a slick way of doing it as you can see and underneath the plate there are felt feet so the plate never contacts the body at all. I did order a roller bridge with the Bigsby but that was it.

Unlike my normal mode of operation, I’d saved all the parts when I installed the Bigsby so it was a simple matter of putting them back in.

IMG 4020

I also removed the roller bridge and put the stock bridge back on. So now I’m going to say something profound like the sound is completely different. Ah, nope. It doesn’t sound a bit different other than the fact it has new strings on it and feels slightly lighter. Within 24hrs it’ll sound pretty much the same as the last set of flats on it did.

It took longer to get the strings off and restring the guitar than it did to remove the whole Bigsby setup. I was toying with the idea of selling the Bigsby and plate, but you know what? Maybe someday in the distant future I’m going to wish I had a whammy bar on my Club King so I’m going to keep it.

For now, the guitar is hanging up back in the studio and it’s still one of my favourites.

IMG 4021


Arduino Bluetooth HC-05

Continuing along with my quest to find a way to program my scrolling LED matrix and finding the ethernet boards don’t really share the SPI buss all that well, I’d ordered some BT (bluetooth boards). From fleaBay. Where else?

After waiting for the standard “slow boat” from China, I got the modules:

IMG 3982

I’d ordered three boards so they don’t separate them but they do score them so you can break them apart. The bluetooth portion is the little green boards on the top (HC-05), the “break out” board is what they are soldered to. Bluetooth runs off 3.3V, but with some breakout boards you can use 5V since they have a regulator on board. Which is how I ended up with the ones I got.

From what I’ve read (crash course in bluetooth) boards with ODD numbers can be slaves or masters. Boards with even numbers are slaves only. Thus my HC-05 can be a master or slave whereas an HC-06 is strictly a slave.

Wiring these up is pretty brain dead. While a lot of tutorials would have you wire them to the Arduino’s TX/RX pins (D0/D1), I’d caution against that and say use SoftwareSerial. The reason is that D0/D1 are used for the USB communication and having bluetooth on the same pins will foul it up.

The HC-05 has a nice 30 page data sheet. Compared to a module like the HC-06, you have a LOT more control. You know, things to screw up. And because it’s really just serial, reading and writing to it are pretty simple. Hence, at this point, you’re pretty much on your own. Big time.

When you have multiple bluetooth modules, they each have an ID number (hopefully unique), and a name. Course all the names are the same. Royal pain. I spent a couple of days reading the manual to figure out how the modules worked, how you program them and I have to say, there’s a whack of misleading blogs on the net. One even suggested that you had to wire TX–>TX and RX–>RX to program them. Ah, nope.

I paired one with my laptop, opened a terminal program, set 9600, no stop, no parity, and the Bluetooth port and I was talking to the module. Easy as pie (the default password is 1234, whereas on my laptop the default is 0000; little snafu there).

At this point, I knew they worked. And little else. As I said I wanted to rename them so I started down the long rocky road to achieve that.

First off, with these breakout boards (or backplanes if you prefer), you need to add a little bit of wire..

IMG 3984

On the back of the boards you see the usual mjkdz (I’m sure this is an acronym for something). You also see the HC module solder pads (05 or 06) the 3.3V pads (the board normally uses 5V and works fine that way) and the AT terminal. Left floating, the AT terminal is in “running” mode. When you bridge the pads, it puts the HC-05 in AT Command mode.

Here again, things work oddly. When using the HC-05 in running mode, the default baud rate is 9600, no stop, no parity. Short out the AT pads, power up the board and you’re in AT command mode. It MUST be programmed via the RX/TX lines, you can’t do it over wireless.

The catch is in AT mode, you need the serial port setting to be 38400, no stop, no parity.

So I modded my board slightly to make programming it easier.

IMG 3985

Soldered on some pins (bent them to fit). I ended up putting a 10K resistor across the terminals when programming.

Initially I tried using a USB to TTL RS232 converter to program them. For whatever reason I could never get it to work. So what the heck, use the Arduino.

IMG 3986

A lot of reading, trial, error, I finally got it working so I could change parameters (some of them any way; there’s a whack of them on here) and it works just fine.

If you have one of these backplanes and don’t feel like reinventing the wheel, I’m including the Sketch I wrote for programming the HC-05. It’s not overly pretty, kind of a one trick pony really. But it might save you some time so…


The Patrick – Golf Annual

My younger brother and I try to get in our “annual” game of golf. I say annual because it doesn’t always work out that we actually make it. This year we made it to my local haunt, Northview Golf & Country Club to play the Canal course.

While I play probably 40 or 50+ games a year, Roland makes it out, maybe, three times a year on average. And considering that, he actually plays quite well.

For whatever reason, we were a twosome on the course but we had a ball. On the 4th tee box I noticed Roland was very focused on something on the course:

IMG 3969

So I followed his line of vision and, there it was. One of local Northview regulars…

IMG 3967

The otter couldn’t have been more than 20 or 30 feet away from us and probably seen more balls in his pond than we could ever imagine. Although to be honest I think I’ve contributed some golf balls to his pond, oh, once or twice.

NV being a wetlands course, it’s littered with these little critters, frogs, muskrats, herons, eagles & hawks, ducks and a bazzilion Canada Geese (that I could do without because of their lack of excrement control). I’ve seen the greens so covered in geese you’d wonder how you can hit into them without missing them. But they’re good at being missed.

I seen a heron sitting in tree beside one of the tee boxes in silhoutte and wish I’d got a picture of it. It looked exactly like a vulture just waiting for a bogey golfer to show up.

So as we played our game, as always we took some candid photos, me in my Prairie Sombrero:

IMG 3971

Roland on the long par 5, 8th (I try to time the photos so I can catch the ball at launch).

IMG 3972

And finally, Roland’s “kick in” on the 8th for a par:

IMG 3973

You know, there’s a lot of things I enjoy in life, but golfing with my “kid” brother is one of a handful that rates at the top of that list. As someone once said, “it just doesn’t get any better than this”.


Arduino Programming

I tend to read the Arduino forum on a semi-regular basis. As such, I find that there’s a lot of interest in the Arduino from people who obviously don’t have the first clue about what it takes to write software, let alone wire up an Arduino. “Blink” is about their limit.

Interestingly enough, a lot of interest is from “school”. Someone has a class project and stumbles across an Arduino and jumps in. To the deep end. Without a life line. And they can’t swim.

Thus a common thread runs something like, “I wanna do this or that and I need help on how to do it”. Generally speaking the “this” or “that” is so vague anyone short of the Great Carnac can in no way answer the question. To most of their credit, the savvy of the Arduino forum do give it their best shot anyway sometimes, but also they don’t suffer fools all that well should it become obvious the person is way out of their depth.

As an Arduino newbie myself not all that long ago and in spite of the fact I’ve been writing software since 1978, I found the documentation for the Arduino typical of a lot of “open source” material. In my opinion, about two cuts above pathetic. Not to mention the scads of libraries and variations thereof that can drive you nuts and poorly or not documented as well.

I was looking through the forum messages and I spotted one about using a temp sensor to control one of those PWM (pulse width modulation) computer fans. Since I’d just finished building one for myself, I decided to read the topic.

And there, it all it’s glory was the best answer I’d ever seen. You might think it’s a little nasty, but really some people actually want you to do all the work for them rather than Google and educate themselves on how it could be done (there’s always examples for Arduino stuff).

So this had me laughing so hard I hurt…

Arduino Truth