Ever heard the saying, "The cobbler's children go barefoot"?
One of problems with being everybody's go-to guy for home tech problems is that there isn't anyone to call when your own tech develops problems. This morning I woke up to find my main computer and home network was completely locked up. Several frustrating hours later I finally got back to working on the keypad scanner.
The pic shows the iCEblink board with the PmodKYPD keypad plugged in, and my scope probes attached to the column 3 and 4 outputs.
Sunday, March 25, 2018
Matrix keypad experiments, part 1
One of the tasks necessary to converting the Canon P170-DH calculator into a Busicom 141PF replica is to be able to scan the keypad. While I might have enough unused pins on the 144-pin Spartan-6 LX9 FPGA (max 102 I/Os) to connect each key to a pin, that's overkill for this requirement. Instead, I'll lay out the PCB to wire the keypad as a matrix.
Looking at the arrangement of keys, the obvious arrangement is 8 columns of 5 rows. This is different than the 8x4 arrangement of the 141PF, but then the two keypads don't have quite the same layout or keys:
Since making a PCB just to experiment with the keypad is more expensive than I'd like (about $150 US), I thought I'd start small, primarily with the resources at hand.
Looking at the arrangement of keys, the obvious arrangement is 8 columns of 5 rows. This is different than the 8x4 arrangement of the 141PF, but then the two keypads don't have quite the same layout or keys:
|
|
Programming the iCEblink40-HX1K from a Windows VM
Running Linux on your desktop brings with it some challenges. I found I'd installed a number of Lattice packages that might have been able to program the iCEblink, but I don't think I ever got any of them to work. I found a set of Digilent utilities (dadutil, djtagcfg) that will identify the board on the bus but I didn't see a way to program this board.
I found a project called iceBurn on GitHub that claims to be able to do it. This looks promising but I didn't feel like experimenting last night.
Eventually I remembered (or figured out again) how to do it from my VMware Player virtual machine running Windows 7. Here's the majick incantation for that:
Don't forget to flick the tip of your wand at the proper moment. Le-ve-OH-sa!
With this set-up I can run the synthesis, place & route, and generate bitmap files under Linux, then switch over to the Windows VM and program the board.
I found a project called iceBurn on GitHub that claims to be able to do it. This looks promising but I didn't feel like experimenting last night.
Eventually I remembered (or figured out again) how to do it from my VMware Player virtual machine running Windows 7. Here's the majick incantation for that:
- Configure the VM so it has a USB controller. This will allow the VM to claim a USB device on the host.
- Boot the Windows virtual machine.
- Install iCEcube2 2014.08. Later versions lack the programmer needed to program the iCEblink40. Be sure to install the programmer, which may be an installation option.
- Plug the iCEblink40 into the host using a USB-A to MiniUSB-B cable.
- Activate VMware Player's "Virtual Machine" menu and navigate through "Removable Devices" to the "Digilent Adept USB Device" menu. Click on "Connect (Disconnect from host)".
Don't forget to flick the tip of your wand at the proper moment. Le-ve-OH-sa!
With this set-up I can run the synthesis, place & route, and generate bitmap files under Linux, then switch over to the Windows VM and program the board.
Saturday, March 24, 2018
Using the Lattice iCEcube2 Software on Ubuntu 16.04
All you Windoze folk, go have coffee; this isn't for you.
Still here? Okay. This is mostly for me, so I don't have to figure this out anew every time I come back to this project.
Still here? Okay. This is mostly for me, so I don't have to figure this out anew every time I come back to this project.
Thursday, March 15, 2018
Tick... tick... tick...
One of my goals in designing a new PCB for the Canon P170-DH calculator is to add a key-click sound to positively indicate that a valid key-press has been detected. This was more important before I decided to implement the fluorescent display, but I think it's still valid.
Some people have done this by taking a piezo-electric transducer and driving it with a single, narrow pulse. Apparently this gives a sharp "TICK" sound. But I want something longer. And probably louder.
Some people have done this by taking a piezo-electric transducer and driving it with a single, narrow pulse. Apparently this gives a sharp "TICK" sound. But I want something longer. And probably louder.
Sunday, March 4, 2018
The more I think about it
The more I think about treating the rebuilt Canon P170-DH calculator purely as an I/O peripheral with a low-speed serial interface the more I like it. It would require far fewer signals than a parallel interface, while reducing the signal frequency from MHz to KHz. This reduces the risk level in completing the discrete-component i4004 CPU board set, which is far more critical now that the essential BSS83 transistor is no longer available. This will let me progress on the replacement PCB for the P170.
Subscribe to:
Posts (Atom)