Close
0%
0%

New PCB For Calculator Watch

I like to call this my smart watch, as it can calculate numbers and show the time

Similar projects worth following
I found this calculator watch on aliexpress for under 3 Euros and intend to replace the PCB featuring an ARM chip, mainly to learn stuff. The LCD stays and I want to find out how to connect it.

Goals

  • keep the LCD and find out how to talk to it
  • make the PCB as big as it can get inside to maximize real estate
  • make it tell the time in 24h mode
  • add a pink backlight LED (or a color of your choice, maybe RGB?)
  • get IrDA on SERCOM1 working
  • get I2C on SERCOM5 working
  • use https://github.com/gregdavill/KiBuzzard/
  • get everything into Arduino somehow
  • personal: use more open source software and learn about ARM chips


LCD

currently the plan is to use an SAML22 chip, as it has an LCD controller inside

Watch

buy one here, they have 70k laying around: https://www.aliexpress.com/item/4001351603141.html

  • working in KiCad

    davedarko2 days ago 4 comments

    The original footprint of the keyboard buttons comes in these interlocking C-shapes. New to KiCad I wondered if it would be even possible to generate something like this. Turns out you can create custom shaped footprints like this in the footprint editor. One catch, you have to work around a standard pad and add to it. At first I was drawing the complete shape and had a 2mm x 2mm right in the center.

    I still need to design and replace footprints here and there, but I wanted to see some renders, so I gave everything a fitting part. The USB micro-B is a storage driven choice. Since all this is open source you're free to change it to whatever plug is to your liking! There are copper bits in the drill holes, I need to fix that.

  • progress on the schematic

    davedarko2 days ago 3 comments

    To see what's possible to add to the project, I needed a pinout list. Sadly the datasheet has a single table with all (G) 48pin, (J) 64pin and (N) 100pins in it, so that the L22G pins are all over the place. I printed out the 3 datasheet pages and cut them down and glued them together to a single page. I then marked all the LCD pins, USB and SWD pins and took a look at what was left: 10 pins. With a keyboard matrix of 4x5 pins I would normally have to use 9 pins, but instead I will use charlie-plexing to scan the keyboard. I was told that I can also use the SWD pins for other shenanigans, so I used them for the keyboard matrix and was now left with 7 more pins!

    For communication I thought it would be nice to have an Infrared setup. I might be able to run tv-b-gone on it or even switch channels, ha! The TFBS4711 seems like a good tiny candidate for IR communication, so I chose that to connect to the SERCOM1 pins plus an extra pin for the shutdown pin. It might take a while until I have that functional, as there are other things that I would like to get running first.

    There were two more pins of an USART interface free, so I chose SERCOM5 to be the I2C pins and connected them to a QWIIC connector. Might come in handy for controlling wearables in the future. All these addons including the USB connector mean the case needs to be modified.

    That leaves us with two more pins that will be used for the piezo buzzer and the LCD backlight LED. There's a steep learning curve ahead of me when it comes to the firmware and integrating everything into the Arduino environment.

  • ATSAML22 | hardware choices

    davedarko07/18/2021 at 08:51 0 comments

    There are different versions of the ATSAML22, for this purpose I have set my eyes on the ATSAML22G18A, it has the lowest pin count, meaning it's the smallest, while also having 256kB SRAM for programs. The amount of SRAM is probably not necessary in the end, but for developing it is good to know that you have enough space and can downgrade to reduce BOM cost. The chip has an integrated LCD controller with lots of options and 23 dedicated pins that are highly configurable - perfect amount for the 22pins of the watch LCD.

    Another way of controlling the LCD could have been using the very well supported Holtek HT1621 and a controller of your choice, like maybe an ESP32 or a nordic chip. An Integrated LCD controller can also be found in the Atmega169, but it's an EoL product and the datasheet from 2006 says "Not recommended in new designs".

  • PCB dimensions

    davedarko07/17/2021 at 18:57 0 comments

    To make a replacement PCB you first have to know everything you can about the old PCB. Looking for my scanner I found a different one and used that instead. It was surprisingly easy to just plug it into my computer and scan without installing any ubuntu drivers, nice. After some tweaks in GIMP I was looking at this, the important side of the PCB with SMD pads that connect the LCD and the button matrix.

    The next step for me then was to import the PNG into inkscape, mainly to draw the new shape of the PCB and get all drillholes and button positions, as well as the LCD pads. The pads are spaced 0.9mm from each other. I learned that by measuring 18.9mm from first pin to last pin and dividing that by 21. Nice.

    There are 1.1mm, 1.2mm and something around 1.4mm drill size holes on the PCB, either for screws or mounting poles of the plastic case. After pushing things around and trying to find a center I ended up with this colorful layered image.

    I continued with importing a photo of the case internals, so I can draw a new PCB shape with more real estate, using what I can get. We definitely want to add a side glowing LED and there are some free screw-holes that we can use. To test the PCB dimensions and mounting hole positions, I printed only the contours of all the elements onto a clear overhead projector foil. It helps to have small drill bits around, to probe the hole sizes.

    Looks like the fit checks out :) Now I need to find out how to get that SVG into something that I can convert and work with in KiCad. Did you notice how many open source projects I've listed?

    This is what the PCB now would kinda look like. I might remove the LCD holding tap and close that top opening as it does not really seem to do anything. 


  • Pinout Of The LCD

    davedarko07/17/2021 at 18:21 0 comments

    The blob chip on the PCB is on the other side of the contacts for the LCD of the PCB, so there are 22 vias that I was able to sand and solder to. I've cut the connection of the chip, so I basically ended up with a breakout board for the LCD. Because of it's "capacitive" nature the display showed something just by connecting the positive pin of the power supply to a segment pin (voltage not important as there was no circuit completed). At least I think that's the reason. I guess everyone has taken apart an LCD calculator and was fascinated that it shows something just by you touching the pads or pins of the display. Anyways, thanks to this "trick" I was able to see that the 22 pins of the LCD are 18 pins for groups of four segments and then 4 of course for one of that activated segment. Thee pinout is super straight forward, as the 4 common pins are the last 4 on the right.

    Here's a screenshot of the KiCad symbol I'm working on right now

  • Reverse Engineering the LCD controller

    davedarko07/17/2021 at 16:54 0 comments

    Disclaimer: I have never before done anything with LCDs directly

    There are three things that I've learned, that are essential to drive an LCD segment. For easier understanding just think of one segment with 2 pads or legs that you have access to.

    1. There's a threshold voltage difference to achieve, where displays turn dark. 
      For example the LCD in the watch needs either 3V or -3V and it activates.
       
    2. The bias needs to be at 0V
      When you toggle your segment on one pin between 0V and 3V, the display is held at a bias of 1.5V - something displays don't like. What you want to to is something like this, to hold the bias at 0V:
      PIN1PIN2Voltage
      0V3V3V
      3V0V-3V

    3. You need to oscillate
      Running a single segment correctly means you could use a good old 555 timer, set it up to ring at 60-90Hz (need to check for correct frequencies) and use an inverter for the second pin for the right way to keep your LCD healthy. 

    The Watch LCD

    While I had it open for the first time, I accidentally had the power supply set to 2V and I was greeted with all the digits I can get. This threw me off so much that I thought the display would only run on 1.5V and any voltage above would lead to the display showing everything. So here I thought the SAML22 is out of the question, as it has a minimum voltage for the LCD of 2.4V. But it's a little bit more complicated than that!

    I am one of those privileged humans with an oscilloscope, so I thought I might give it a quick look and see if the display really runs with 1.5V or rather wants something like 3V and the magic blob also does some voltage boosting. So I sanded away the solder stop mask from the vias on the board and soldered on some LED legs to connect the probes to.

    On the screenshot above is the voltage difference shown between one of the common segment pins and battery minus. First let's point out the obvious, this is between 0V and 3V, which is great news for using the SAML22! What you see here though is implicating a 1/4 duty wave with bias steps of 1/2 (what?). 

    The LCD has 4 of those common pins and 18 pins for segment quadruplets. You can probably spot the little indents that separate the long line into 3 areas, those are "timeslots" for the other common pins basically.

    Above now is a screenshot of the voltages between one of the common pins and one of the segment pins. Here you can see Rule 2 being followed by having it oscillate around 0V. All the wavy stuff is really confusing though, just by looking at it, right? The important information for us is that the segment is activated, because we have a peak to peak voltage of 6V, meaning the segment is triggered by the 3V difference we talked about in Rule 1
     

    So what's the wavy stuff all about?

    I don't really now :D but the SAML22 datasheet says that a "bias of 1/3" is preferred for a duty of 1/4. Reading further in the datasheet this means that you generate a step-wave of 1/3, 2/3 and full VLCD to talk to your LCD. The watch controller seems to use a bias of 1/2 for generating a "wave", that's why we see a step at 1.5V in the first scope screenshot. It's somehow necessary for multiplexing and keeping it AC. 

    SOURCES

View all 6 project logs

Enjoy this project?

Share

Discussions

sunny wrote 07/18/2021 at 03:30 point

looks nice

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates