Thursday, March 30, 2017

Adventures in cheap tools

Sometimes there's a reason something is cheap. And "cheap" isn't always just inexpensive.

Monday, March 27, 2017

Cracking open the second calculator

I decided there was too much uncertainty in the filament drive requirements, so I reluctantly cracked open my second P170-DH calculator to confirm exactly what voltages I should be putting out. The only thing I've done to this one is pop the bottom cover off to expose the bottom of the PCB.

Friday, March 24, 2017

New VFD Filament Driver

I gave some serious thought to using the original transformer and duplicating the original power supply circuit to power my redesign of the P170-DH calculator's guts, but I decided it involved too many compromises. I don't need a +5V supply; the FPGA needs +3.3V and +1.2V. Since the filament and VFD drive supplies are derived from taps on the same transformer, adjusting the output voltage down from 5V to 3.3V would also reduce those outputs proportionately, and I have no idea what current it could supply. I gave some thought to using it solely to power the VFD while implementing separate +3.3V and +1.2V supplies, but that just seemed silly.

Monday, March 20, 2017

More VFD characteristics

I've pretty much settled on using the 12-digit vacuum fluorescent display (VFD) that came with the P170-DH calculator. Trying to squeeze a 2-line, 20-character VFD in its place is more work than I want to undertake. Besides, I'm having too much fun figuring out how to drive the original tube.

Tuesday, March 14, 2017

Canon P170-DH Teardown, part 2

Continuing with the teardown of the Canon P170-DH printing calculator, I'll look in more detail at the power supply.


As I mentioned before, the AC mains go through a 60Hz power transformer that brings the voltage down to 8 VAC (RMS). This then goes through a full-wave bridge rectifier made up from four discrete diodes and filtered with a large electrolytic capacitor. This results in an output voltage of 7.85 VDC under load, as measured on an intact calculator. This much was obvious; to learn more I really had to dig in.

Monday, March 13, 2017

Blocking Oscillator operation basics

I've reverse-engineered enough of the calculator's power supply to identify it as a blocking oscillator. Any electrical engineer would recognize this from intoductory classes, but I'm not a EE and had to poke around the 'net a bit to learn about its operation.

I often start with Wikipedia, but in this case the wiki article is terrible. It goes into great detail without first giving a basic overview of the circuit operation. Looking elsewhere I found a pretty decent description on the Integrated Publishing website starting here. The good stuff start several pages in, but I'll summarize below.

Saturday, March 11, 2017

Floppy failure

I continued my analysis of the power section of my Canon P170-DH calculator today, and recorded a series of oscilloscope screen-shots on floppy disk to document it. But when I tried to read the floppy, my USB floppy reader said the disk was corrupt. Bummer.

So I slid a new, unused floppy into the 'scope. It said the floppy was unformatted. What the...? Ok, format it! Format failure. I then tried to format another new one in my USB floppy reader, which refused. I even tried installing a real floppy drive in my Windoze machine, and that refused. Suddenly none of my floppy drives will read or write ANY of my floppy disks.

Has there been a global floppy disk failure? Sheesh!

What to do... what to do...

Wednesday, March 8, 2017

Canon P170-DH Teardown, part 1

I decided to start really tearing down my Canon P170-DH calculator. Here's the main board with the vacuum fluorescent display detached:



Sunday, March 5, 2017

P170-DH Vacuum Fluorescent Display characteristics

I've been pondering how to handle the display on the Canon P170-DH calculator I'm cannibalizing to provide keyboard input and printer output for my replica Busicom 141-PF. The Busicom calculator didn't have a display, of course; when you pressed an operation key the appropriate value was printed. The easiest thing then would be to dispense with the VFD entirely.

On the other hand, it might be nice to have the display to show what you're entering as you enter it. In a previous post here I gave thought to replacing the 12-digit VFD with a 2-line, 20-character VFD module from Noritake-Itron, which would let me display a lot of status information. However, though the height and width of the active display areas are compatible, the VFD module is much thicker than the tube of the built-in display. It's also heavier than I expected, so it'd need some structural support to keep it in place. Now I'm thinking it's more trouble than it's worth.

Another option would be to keep the existing 12-digit VFD and drive it from the same Spartan-6 FPGA that will emulate all the logic other than the CPU. This would require characterizing the existing vacuum fluorescent display tube before I remove it from the Canon calculator's electronics board. It carries a Samsung SSVD part number of INB-13SM36T but my attempts to come up with any sort of datasheet came up empty.

Saturday, March 4, 2017

KiCad stupidity

As I work on the layout of my nRF24LE1 programmer board I'm discovering all sorts of stupidity in KiCad:
  • The X coordinates increase as you move left-to-right, but the Y coordinates increase as you move from top-to-bottom. Anyone who ever took a mechanical drafting class would know that no one creates drawings that way. Drawings always start with the (0,0) coordinate in the lower left, not the upper left.
  • The PCB is drawn inside a frame that is sized to the paper you may print on (A4, US Letter, etc.). If your board doesn't fit in a US Letter (8.5" x 11.0" frame you have to select a different paper size
  • The coordinates displayed at the bottom of the window are relative to the upper left corner of the paper you might print on. Although you can set a relative origin by tapping the space bar, when placing components using the edit dialog box you can only specify relative to the upper left corner of the paper page.
  • There is a "Move Footprint Exactly" dialog box. However, this moves it relative to its current position, not to an absolute position. There is a proposed patch for this, but it will no doubt be relative to the paper origin.
  • There is a "Set Grid Origin" option. It affects only the manufacturing output but has no effect on the layout display.
  • If you draw a "graphic line or polygon", to delineate the board outline for example, you can't edit it. You can move it only by doing a rectangular area select, but if you want to change its length you can't; you have to delete the line and re-draw it.
  • There is no way to create a via other than as part of switching layers while routing a signal.
Many of these issues could be because the KiCad developers are programmers and not engineers. I say that as someone who is a programmer by education, training, and profession. In the begining, raster graphics plotted from upper left to lower right because that's the way CRT-based TVs were scanned. But I had a mechanical drafting class in 8th or 9th grade (mid 1970s), and understand that computer programs are used mostly by non-programmers.

None of this is made better by the sycophants who bleat about how KiCad is the one true way and how everyone else in the world does things wrong and we all must adapt to their broken way of doing things.

Friday, March 3, 2017

Maximum M-32TL printer width

Over my lunch break I extended my printer test program to make it easier to specify the width of the printing. It prints a sequence of numbers that make it easy to tell how many characters have been printed:


Everything works fine through 17 numeric characters (20 characters total, including the three symbol characters on the far right edge). When it attempts to print 18 numeric characters the last (left-most) two characters over-print. Attempting 19 numeric characters causes the three left-most characters to over-print. This doesn't seem to cause any mechanical problems, but I'm not planning on stress-testing this.

Clearly the limit for the Epson M-32TL printer is a total of 20 characters, composed of up to 17 numeric characters and three symbols on the right edge.


A few more printer tests

I hate leaving questions dangling, so I ran just a few more tests.


The M-32TL printer works!

It took a couple evenings of work, but I have the M-32TL printer working!


I've only done some basic testing, but as you can see from the photo above it prints the intended test output (from right-to-left: delta, multiply, black space, decimal, zero).

Wednesday, March 1, 2017

New M-32TL printer testbed

I decided I'd learned enough about the M-32TL printer in my Canon P-170DH calculator, and it was time for surgery.

There are no screws holding the printer in the calculator shell, just careful design of the shell itself. So all that remained was disconnecting the wiring. For ease of assembly these wires are glued to a small piece of plastic which holds the wires at the proper (0.1" or 2.54mm) spacing. Unfortunately this had come loose during my handling. To make it easier to connect these wires to my solderless breadboard I assembled a plug of sorts from a small piece of pad-per-hole perf-board and an 8-position pin header.