Saturday, November 30, 2019

Fit-test board fabrication progress

In addition to checking that I have the mechanical dimensions correct on my replacement PCB for the Canon P170-DH calculator, the fit-test board serves another purpose. This is the first time I've ordered a board from JLCPCB, a large Chinese fabrication house based in Hong Kong. This will give me a chance to look at the quality of their work and get a feel for the process and timing of their system.

Tuesday, November 26, 2019

Measure 17 times, fabricate twice

I've been trying to finish the routing on this board, but keep thinking "what if the holes need to be moved? So I decided to send off my current layout as a 2-layer board for fabrication. Since it's missing the inner two layers there are lots of vias that go nowhere, so I specified that it should not be electrically tested.

I decided to splurge and order it with the ENIG finish rather than HASL, even though it would more than double the cost of the board from $14 to $33. I want to try out the keypad and sliding switch contact patterns laid out on the back side of the board, and the only way I'll get a reasonable test is with the ENIG finish.

To facilitate this testing I decided to generate Gerber files with the vias un-tented. This means that there won't be solder mask over the vias, making them easier to access for testing. I should be able to hold ohmmeter probes in the via holes, or tack-solder wires to the vias.

If all goes well I should have the fit-test board in hand in a week or 10 days.

Sunday, November 24, 2019

Test-fitting the P170-DH replacement board, Part 1

I decided the easiest (and cheapest) way to validate the physical layout was to get some heavyweight paper card stock, print the layout on it, and see how well the edge cuts and holes line up. Here's what it looks like:


A couple of the holes (circled in blue pen) still seem to be a fraction of an inch off from where they should be. I'll fix those, but now I'm feeling like I should spend the $32 for a quick 2-layer board to validate the positions before I spend another $90 on a 4-layer board.

One of the things I'd been researching was how to specify the slot in the lower left corner of the original PCB for the board house I'm planning to use; apparently different houses have different ways to specify a slot. Fitting this paper analog I realized that there is no reason for that hole at all, nor the one in the lower right corner. There is nothing on either the upper or lower shell that mates with these holes, nor are they necessary for the keyboard. I'm guessing they serve some manufacturing purpose because they certainly don't serve any purpose that I can see. I'll probably just delete these two holes entirely.

Other than a couple of minor changes this is looking pretty good from a mechanical point of view.

Monday, November 11, 2019

Measure twice, fabricate once. Or twice?

I spent so much time this weekend working on the PCB layout I decided to do something a little different this evening: I printed the board layout on paper in a 1:1 scale and poked holes through the paper to see if they lined up with the holes in the original calculator PCB. Bearing in mind the last time I mis-measured before fabricating a PCB, I'd measured everything quite carefully. I was feeling quite pleased with myself until one of the holes marked on the paper didn't have a hole in the PCB beneath it. It looks like I got the horizontal position correct, but somehow I got the vertical position of that hole off by 2 mm. Oops.

Sunday, November 10, 2019

FPGA Power-On and External Reset

As I whittle down the list of things that need fixing before sending my PCB out for fabrication, I came to the question of how to make sure the FPGA resets cleanly on power-on, and how to force a reset externally.

The Xilinx Spartan 6 avoids many of the requirements for strict power-on sequencing by including an internal power-on reset circuit. This holds the reset of the FPGA circuitry in reset until all three power buses (Vccint, Vccaux, and Vcco2) reach operating levels. However, this requires the power supplies to meet certain ramp timing: the supplies must ramp up monotonically and must reach operating levels in 0.20 to 50.0 milliseconds.

Friday, November 8, 2019

P170-DH replacement PCB progress

As I've said before, I have to be in the right mood to do printed circuit board layout. If I try to force it I'm quite capable of staring at the problem for hours without making any progress. Fortunately, this is a hobby project and no one is looking over my shoulder. Except maybe those who read this blog.

When the proper mood strikes, though, I can make great strides in a short period. This week has been one of those periods.

Sunday, November 3, 2019

Video of the M-32TL printer in action

Here's a video of the M-32TL printer being driven by my Verilog driver module:


It's a hand-held cellphone video, and a bit unsteady. But you get the idea!

Printing using Verilog

After finishing coding and simulating the Verilog printer driver modules, it was time to test it with the real thing:



Even though I'm planning to use a Xilinx Spartan 6 on the replacement PCB in the Canon P170-DH calculator shell, I'm continuing to use the Lattice iCEblink40-HX1K development board for testing. One good reason for this is that I can buy a replacement iCEblink40 board for $40 (US) and have it delivered in a few days, while both of the Digilent reference boards I have are "retired" products and cost several hundreds of dollars each.