13 November 2017

Jaycar Arduino 16 Key Touch keypad XC4602

So my ten year old daughter wanted to build a keypad enabled electric lock for her bedroom "to keep her little brothers out".  TLDR: go here and solder.

We picked up the Jaycar Arduino Compatible 16 Key Touch keypad module cat XC4602, which is based on the TTP229 capacitative touch sensor IC. The board's by duinotech, and the only discernible numbers are 1003010 on the board, and 8229BSF on the IC.

There's a downloadable Arduino demo on the Jaycar page, but we didn't have any luck with it.

To get all 16 keys working, we followed the helpful instructions posted by this guy. Yes, it does actually seem like you have to solder at least jumper 3 (yellow link on his post). That's the only one we did.

Then he's got a link to his code, but it's hidden down the bottom of the page. Direct link. You'll need to create yourself a Dropbox account to be able to download it though. The only other gotcha is that his sample code writes to serial at 115200 baud. Make sure you set your monitor to the same or you'll just get rubbish.

After that, it's happy days. Just follow his wiring, and sample code. I figured I'd put this post out there pointing to his blog because there's a number of other posts out there about this IC that were much less helpful.

Aside, we're using the Jaycar Electric Strike EL-973 (fail safe version), Jaycar cat LA5081, for the lock mechanism. It needs 12V to activate, so I figured we'd drive it like a motor with an IRF520 mosfet. It works a treat.

29 January 2017

Arduino Grove LCD RGB Backlight not working

The Grove Starter Kit is a fun way to start on Arduino for young kids, because components can be easily plugged in, rather than needing to poke components into a board.

The first time I tried to use the Grove LCD RGB Backlight board, I was disappointed that it seemed to not work. I could change the backlight color, however no text would appear.

The simple resolution: The LCD specs state that it requires 5V to work. The Grove Base Shield has a slide switch to select 3.3V or 5V. Sensibly, it came preset to 3.3V. Slide it over to 5V and the LCD text starts working. When all else fails, RTM.

Playing with the Jaycar 2.8" TFT LCD touch screen XC4630

Last year I was playing around with the 2.8" TFT LCD touch screen that's available from Jaycar XC4630 on the Arduino Uno. This is must try for anyone experimenting with Arduino. Easy to use and lots of fun.

If this appears to be not working or broken with a blank screen, then possibly the driver library is not quite right.

Jaycar now have a custom build of libraries on their website, which works fine. Download the file, and follow the instructions in the "XC4630 Notes.txt" file. These drivers and examples work fine for me.

Unfortunately this wasn't available last year when I was trying to first get it working. (I was just sitting down now to write up what you can do, but see that it's all much easier now).

The Jaycar libraries are based on the Adafruit libraries, which are hosted in GitHub. For posterity (or if you want to use a more up to date version of the libraries), I had to do the following to get them to work.

1. Download the libraries
2. Import the libraries into the Arduino software
  • Sketch | Include Library | Add .ZIP Library...  (once for each)
3. Open an example
  • File | Examples | TFTLCD-Library-master | graphicstest
4. Fix the hardware identifier

This is the bit that took a while to figure out. For reference, the serial number on my TFT LCD is: QR4 5265S01 G3/2 TP28017.
  • It seems that the readID() function in the Adafruit library does not work with this particular hardware.
  • In the example graphicstest program, Locate line 60:  uint16_t identifier = tft.readID();
  • Change it to:  uint16_t identifier = 0x9341;
  • Or, equivalently, change line 84 to: tft.begin(0x9341);
The tftpaint program also worked for me with a similar change.

Hope this helps someone.