Inventor's Corner

From ideas to reality

I liked technical matters from early ages.
Who knows how many devices like radios, clocks, telephones and others had successfully died in
my 8-years old hands until I've got enough skills to non-destructively disassemble with following
assembly without spare parts left. Those mid-80 years, electronic spare parts were very hard to obtain,
and I often used parts taken from disposed of equipment to perform my childish investigations. I was very
happy joining radio-electronics study group consisting of kids of my ages in 1985, where members were
building oscillator radio sets and transistor amplifiers. As a beginner in this scientific field, I've got
basics of electrical engineering, electronics and radio engineering as well as skills in using soldering tools.

At the fall of 1986 we've got new computer class consisting of 16 Yamaha YIS-503II MSX computers,
and I decided to switch from electronics to computers. In age of 12 I started to learn Microsoft Basic,
specializing on mathematical and computer modeling. Children were allowed to play computer games after studies;
we had been enjoying King's Valley and Knightmare from Konami. It was great luck that I continue my further
education in the school also having MSX personal computers.

My first product retained from that time is a box for 3.5" diskettes. MSX computer class had been
consisting of one teacher's unit with floppy disk drive and 15 pupils' without FDD, diskettes
were in deficit and were considered as luxury. So my first diskettes I've got I was putting in
this case made of lacquered wood.

Yamaha personal computer was one of powerful multimedia computers available for education in many schools in USSR;
it had Zilog Z80 processor, separate video processing unit, and audio processor. What we liked
a lot is playing computer games on these great computers. There was only one little challenge - it did
have audio line out, but no speaker. To enjoy multimedia capabilities, I have developed and built
a set of devices: audio device with 0.5 watt speaker and possibility to install 9v battery inside, and
external multi-purpose power supply with adjustable output voltage level and electronic shortage protection
(~1988). Later, when I've got 9v rechargeable battery, I have brought charger connector out at the
back of the power supply unit.

Another missing multimedia and gaming attribute was a joystick (~1990). There are 2 ports in the
computer, but of course educational ministry did not order even a single device to attach to these ports!
Creation of this device required skills in electronic and mechanical designing - arm had to be
ergonomic, switches inside to be aligned so that when tilting handle between any adjacent pair of
switches they both are closed. Playing shooters like Knightmare required significant speed of hitting
space key and muscle tension and I built auto-fire circuit into the joystick.

Previous audio device had been built using point-to-point wiring, and this new unit (1990) was a printed
circuit board (PCB), having 2 channels. Each channel is 5-transistor-based 0.5 watts line-in amplifier.

This is my first digital device (1990). Chip it is made with is 74LS00, and as soon as it was not used
anywhere it is hard to identify now what is a purpose of this device. It contains 5v voltage stabilizer,
which lacks high capacity electrolytic ripple filter condenser, which I probably was not able to find
available due to electronic components shortage on the consumer market. Having drawn circuit diagram,
I see that this device is having an output to connect power indication LED, and other outputs should be
connected to another 8 LEDs to flash them.

As soon as amplifying circuit in single chip had been released, I have bought it and built a board
to perform quality testing (~1990). It had revealed that this chip requires high capacity electrolytic
condensers tied to it, and these condensers were rarity and hard to obtain. In addition, chip had been
heating badly.

Disk Doctor (similar to Norton Disk Doctor) was one of my system utilities for MSX (April 1991). Source was mixed
C (2,098 lines) and Z80 assembler (1,173 lines) code and was using Kirill's Churukanov's "United C LIBrary" (UCLIB).
Executable can be downloaded from here, no warranties though.

Taking all lessons learnt into account, next analog hardware development was dual chip-based amplifier
(~1991). Chips are having heat sinks attached to them, and there was enough space for condensers on the PCB.
Years later I have replaced all old big electrolytic condensers with ones of the same size, but times more
in capacity.

In 1991 I have entered higher school, MGAPI, and have got an access
to IBM-compatible computer - it was IBM PC based on 8088 Intel CPU. Involved into educational process
and its development, with support of MGAPI's tutor, professor Boris Linev, I developed a set of educational
computer programs on resistance of materials subject, using Borland's Turbo Basic as a source language.
They were extensively used during student practical work for materials resistance modeling
and calculation of various physical values. After practicing students print report, which to be
presented to the tutor for an assessment.

Due to complex network structure and information organization on the storage devices in computer classes
I developed improved version of the shell UI (User Interface), looking like famous Norton Commander
(1991-92). Source language was C. It was not just a work - it was a fun. This software is capable of
opening up to 6 panels, has improved file contents viewer and improved directory tree and file management.

In 1992, my student colleague Sergey Gerasimov had been developing core subroutines for Scream Tracker
Module (.stm) multimedia file playback. He left the project shortly, and I taken over improving these
subroutines and developing additional multimedia features - Signal Spectrum analyzers, signal graph
real-time viewers. Source language was assembler 80x86 (8,760 lines). Output device used is stereo
Covox (using 2 parallel ports) which was
very simple to build and offering good analog signal quality with 8-bit digital signal processing.

The evolution of this digital multimedia passion was a piece of hardware, an Intelligent Audio
Board (1992). The idea was grandiose - board, having Digitizer (DSP) circuit on it to convert
analog signal to 12-bit digital representation, 16-bit double channel Covox output devices, 512Kb
onboard dynamic RAM to keep .stm module during playback, and 27C256 ROM chip containing firmware
keeping a full set of subroutines to play .stm files. Memory had been organized in 2 banks consisting of
8 DRAM chips of 1x256Kbit in size available that time (taken from old 8088 memory boards). Unfortunately, during
troubleshooting I discovered that these memory chips are consuming too much power, socket type
and wiring method I used caused DRAM to have insufficient reliability. I decided that this DRAM-based
memory is unacceptable to use, and de-soldered DSP-processing circuit to use in another project.

This project was a real success (September 1993). Its scope was chosen right, and I used
advanced electronic components. Digitizer circuit was the same, onboard memory was of the same size, but
was made of 2 power saving 8x256Kbit SRAMs, which were much faster than DRAM version.
This board did not contain Covox device. ROM chip was the same; firmware was reused from previous
board with some significant improvements. First of all, firmware had been written using 80386 assembly code
and optimized for performance. Playback subroutines were embedded into the ROM, and end user just needed
to run 2Kb shell executable to start playback or recording. This shell was invoking code from ROM to RAM
(shadowing) and executing it. Another significant advantage was that this code had been running
in protected mode, thus utilizing large extended memory. Onboard SRAM memory had been used for
data "shadowing": during playback or digitizing it was used as primary storage of chunks of data,
and firmware in background was swapping processed data to extended memory freeing space for further
digitizing or fetching required data for playback. If you will carefully look into software picture
to the left you will see it displays some errors - it happens because this picture is of ROM emulation
software with no board installed... It's hard to find a connector to insert ISA board these days.

Another product from 1993 is a signal level meter. It is based on analog comparators taken from
faulty CRT displays.

This device had been heavily used in our lab in 1993-94, where our team of 4 people was performing repairs and
maintenance of EGA displays. Device allowed, using only one PC having one EGA adapter, to connect up to 3
EGA monitors for burn-in testing. This device saved reasonable costs on additional PC hardware
as well as time - 3 monitors were being stressed by burn-in tests at the same time instead of one.

Starting 1993 I had almost never buy electronic components and computer hardware - I was lucky working in computer
services firm, having opportunity to take components from devices intended for scrapping. My
first PC had been built out of scrap, and I bought my first monitor with the discount because I repaired
it. When firm became Intel's authorized service partner, I've got an
opportunity to make one working Intel EtherExpress
adapter out of 2 defective returned for scrap, and make one working Intel modem using second defective one (1995).
Using this lovely 14.4 modem I had an opportunity to work online in FIDOnet community, gaining and sharing
knowledge with my peers. My graduation thesis was about data transmission between modems using secure and
fast protocol (1996).

Sometime back to 1994-1996, when we were doing motherboard repairs, there was a need for measuring bus and other clocks' frequencies.
I have taken one of the components available from old mainframe SM-4 and converted its diagnostic module to the frequency meter.
Original board had 4-digit display and decoding logic, thus device only required addition of reference clocking and comparison modules.
(2010 update: replaced faulty 74LS192 chip, drawn schematic diagram, tested)

Simple but useful device (1996). It was used to power up CD drive in a car to listen to CD music. Device is
based on 7812 and 7805, and is obviously missing smoothing electrolytic capacitors. The most important element
on the board is a fuse.

I had been asked by one my gamer friend to try to recover scratched CD. It was containing a very large data file,
and it seemed there were spots which OS - neither Windows nor DOS nor UNIX - were able to read. I was hoping
that there're not many such spots, and these spots are not large. Task was to do the best recovering bad spots
and save all the readable information of this affected file. For this purpose, I created
Scratched CD disk recovery utility, and after research developed guide for data recovery
using this utility. Research confirmed that about 30% of bad blocks can be read with retries, and there's
a correlation between how much laser drive works, its temperature and error rate. Thus end user can set
number of read retries manually, and stop retries to cool down the drive and then continue with error rate sunk.
CD was successfully recovered, and gamer walked through the game with no problems.

Yet another useful application I and my colleagues used in data management is
Professional File Cutter. It allows cutting data chunks out of the files. You
just need to know the starting position of the chunk and its length. Initial version, named "Professional
File Separator" being developed in 1994, was DOS application, but having windows-based user interfaced
(my additional development I heavily used in different applications that time). Later, in June of 1999,
I ported it to Visual Basic and Delphi, aiming to learn these visual languages. March 2002
I improved it and compiled to its final version. I use it till now when I need to cut file into pieces.

(Oct 13, 2003) This is improvement to the
HP Virtual Array
product. Most of the times end users do not receive training on the product and they do not read any
manuals until problem occurs. This might be not an issue
for personal non-critical system, but if we're talking about mid-range storage targeted for small and
medium business customers, then knowledge is required to maintain it up and running and to act proactively.
Being an expert in storage area, I have developed this reference card for Virtual Array to allow customer's
engineering personnel get basics of how to read status of the unit and what to do in case unit indicates
warning. This reference card should be mounted at the VA chassis side as pull-out card, so that system
administrator could pull this card at any time to see guidelines.

What's about HP business? As a European storage competency center engineer I was looking to ways to improve
quality of service delivery, and decrease the cost of operations. Disk arrays, optical and tape libraries are
relatively complex products, which require special care and precise problem identification and
remediation procedures. Most on-site problems arise because of incorrect or incomplete qualification of the
problem, and as an expert in storage technologies and support processes I targeted this challenge -
and was successful having three web-based applications developed. Their purpose is to provide call qualifiers
a framework for specific product qualification, and provide valuable up-to-date knowledge on best practices.
Developments were targeting HP Virtual Arrays (latest version as of Feb 24, 2003), Optical Jukeboxes
(Feb 15, 2002) and Galactica tape libraries (Mar 1, 2002).
The results of this work, an abstract Qualification Checklists
methodology development: problem resolution time and cost reduction and customer satisfaction
improvement, was sent to annual HP technical scientific conference '2003 (Nov 5, 2002),
but was not chosen to be presented and Russian fellow was not invited to US for this important event.
FC60 disk array, which was a complex stuff and was lacking of reliable diagnostic software, the only
way to gather 100% correct data was its controllers' serial ports. Unfortunately, output was a double Dutch
and field engineers were feeding it to labs for parsing and analysis. The tool, which I named
"FC60 debug log analyzer" (Mar 13, 2003), was parsing debug output and drawing the picture
(not just a text!) of the disk array marking suspicious components and providing preliminary analysis.
Our lab people were contacting me about this tool many years after I left the competency center.

My good friend from France, Francois,
who was taking care about our outsourcing services for one corporate
account, asked me to lead technical implementation and delivery of the call handling process and
so called "pseudo case-exchange" (April-May 2006). Implementation was perfect, but technology, and standard applications
used were having problems and call updates sometimes were lost. Yet another my challenging task business and I
set for me was to find out why problems occur and mitigate the risks joint business was posed to.
Cooperating with engineers - Balazs Czumbel
and Andy Mehlos - and managers of customer company,
problem was identified and fixed -
it was a UNIX script which was behaving wrongly in certain circumstances. To clear backlog of the
updates, using extracts from call handling systems and Excel's Visual Basic capabilities, I wrote the
script intended to analyze backlog, suggest actions and re-process updates automatically. This application
saved lots of my and my colleagues' efforts (excessive costs) and prevented issues at our and
customer company. All this inter-company team-working fostered relationships between not only individuals
working in both companies, but also promoted further intra-organizational cooperation.

Another large corporate client had been suffering financial and operational problems from missing corporate-wide information
on its owned Dell PCs - it was not clear which PC is covered by warranty, what is warranty type (i.e. which service is to
be expected from Dell for this PC). This problem was also affecting HP as a outsourcing service provider. My colleague in US
was given a task to collect warranty information for more than 12,000 PCs around the world. And it seemed that this task had
to be carried out monthly! I have taken a lead to automate the process - we had a list of serial numbers to check for, and I wrote
excel VB script which opens multiple Internet Explorer windows and gathers PC warranty information in automated way. This script
was running for all the list of PCs within 3 days, including troubleshooting of Dell web-site problems and times of its outages :)
Script, in addition to gathering all the warranty info on PCs, was testing statuses against desired service levels and giving
conclusion which PCs are covered by warranty this month and what are discrepancies with status quo. Business outcomes were:
information in client's database got up-to-date, client payments for warranty extensions are in time, and HP as service delivery organization
was enabled to perform much efficiently. At the end, customer business has benefited by decreased downtimes, both organizations
stopped clashing on this matter, thus organizational relationships improved. In financials terms HP has saved $35K. I lack
information on how much our client has financially saved or gained, but it should be much more than HP has.

Another success which amounted about +$300k for HP (February-March 2007) was about finding root cause and fixing serious problem
with PCs. There was escalation going, and HP was ready to replace about 150 PCs because most of them showed symptoms
of "colored screen" - if user does not work on PC for some time, its screen comes up with solid color (blue, black, red etc.)
and reboot is needed. Although my assignment was not technical (but I was responsible for service delivery in this country!)
I taken initiative finding the cause. Properly shaped query in Google, and, voilą, root cause was found in Intel
chipset documentation under heading "Display becomes a Solid Color with Intel® Smart 2D Display Technology
(Intel® S2DDT) Enabled". Unfortunately, it was stating that no workaround available, and Intel® 915GM chip
should be replaced with one of another stepping. In collaboration with PSG team and Intel engineers, solution was found:
driver should have been updated with specific flags in registry. However it was not so easy - first driver version supplied
by Intel was rejected: I found that driver parameters were spelled incorrectly, and if we would implement it as is it would not
solve the problem at all. So after Intel engineers agree with my arguments, they corrected parameters as I proposed and, with
full support of Zvi Rosen and
Aviv Tomer, new driver had been installed and problem
solved.

Becoming people manager responsible for their performance is significant promotion, and it contrasts with job of project
manager, when you are responsible only for limited aspects of the management. One of vital areas is performance tracking
and reporting. No reporting - no measure - no improvement whatever goals are being set! I spot this weakness - out call
handling system only provided very basic measures, and does not provide trend reporting so that I can see progress. I taken
responsibility to improve this aspect of performance management, and my application, using raw data output from call
handling system, provides required trend analysis and provides tips for manager to improve performance. One of extremely
important and useful features is individual
handout, which you can take and discuss performance with engineer and set improvement goals and draft a plan. This trend
analysis allowed my team to significantly improve its performance.

How are you about «haute couture» in IT and electronics? Or being «green» manufacturing
products with recyclable materials from «sustainable» sources? There's always a room for creativity,
innovation and improvement. Driven by my need in creative action (and of course having some spares) I designed
and built up this beautiful keyboard for retro MSX Yamaha YIS805
personal computer (December 2009). Keyboard itself was originally faulty, pretty used and dirty, and first
I completely disassembled, cleaned and repaired it. Then communication cable - I cut it in the place where it
was pinched, and tied pieces back together. The task I most enjoyed was drawing Yamaha logotype, with subsequent
lacquering the image and remaining wooden parts. The most complex task was to make a fretwork holes for keys without
damaging wooden structures. Try this small experiment: take a plastic keyboard, or the one with metallic bottom.
Put it onto your lap - you will feel the cold, that what you have touched is dead. But if you put a wooden
keyboard, feelings will be totally different - wood is not cold, you will feel warmth and will have good
mood and feeling after working with the device.

When it comes to retro-computing, it is fascinating and at the same time challenging. With increased technology
complexity and level of integration, there're not many people left out there who can create logical circuits from
basic elements, and even less people who can make a product out of these diagrams. Another issue is a lack of
retro components, which got obsolete and are not manufactured any more.
That was a case which was a real challenge and required a creative approach. Yamaha's YIS805 keyboard was dead,
troubleshooting with multi-meter and logic probe showed that very rare chip is dead: 74LS31. For those who do not
know - it is precise delay chip, the only in the TTL 74 series. It was impossible to eliminate this chip as it
introduces specific delay into the circuit allowing asynchronous read to/write from keyboard port when scanning
keyboard matrix.
Solution I was looking for should have been simple, quick and cheap. Ordering LS31 appeared to be relatively
expensive, and proposed delivery time was counted in weeks. I asked myself: what are alternative ways to
introduce specific delays? Looking through electronic forums I found answer: passive RC delay circuit (June 2010).
I put ancient K155LA3 Russian chip (7400) into board, it fitted excellently, cut some tracks, soldered some passive
components, and keyboard is alive again! That' really ironic that the Russian chip is dated December 1980,
the date when MSX did not exist yet...

The legendary game Auf Wiedersehen Monty
by Gremlin Graphics was initially released on the tape, and recently was also available on the diskette.
I was asked to make a ROM image so that game can be burned to cartridge, as well as be easily included
into the 1chipMSX game collection (September 2010). Task was an easy one as I am closely familiar with
MSX schematics, Z80, memory and how VDP functions. I wrote ROM loader, implementing very simple data
compression algorithm (as ROM should be 64K, but original code is larger than that). ROM image can be obtained
here. ROM type is ASCII-8K, 4000-BFFF, use in
unexpanded slots 1 or 2.

Those, who are familiar with architecture and programming of MSX computers and other devices based on Texas
Instrument's TMS and Yamaha's V99x8 family video processors, know that while these VDPs provide remarkable
graphics flexibility and capabilities, they are not lack of serious drawbacks which are missing in the models
like Commodore or Spectrum. Those issues include ported VDP access, no option for CPU to access VDP memory
directly, and serious video problems when over-clocking the system (e.g. installing Z80B at 7MHz speed).
I've designed and built prototype of the Direct Video Memory Access (DVMA) board, which allows to map video memory
to the CPU addressable space window, uses hardware synchronization between CPU and VDP (so no "NOP" is required
between VDP access commands), and what's even more important - graphics performs excellently in the
over-clocked system. It holds 128K of video memory based on fast SRAM chips (20 October 2010).
I have taken MSX1 Yamaha YIS503IIR machine, upgraded it to MSX2: soldered some logic on board, upgraded memory
board, modified and programmed MSX2 bios to work without RTC chip. This model is best suitable because it has
CX7 version 1 board with VRAM memory board connector (native YIS503IIIR has main board of version 2 without such
connector).
With this board, CPU command 'LD (HL),A' is enough to draw on the screen.