This describes my medical device experience at HDA Technology
2007-2010.
This demonstrates a number of my strengths, including wide-ranging
system knowledge from bare metal to GUIs; problem analysis, solution
design, implementation, test, documentation; debug; working well with
EEs; communications protocols.
The medical device was a power supply for surgical tools, and I was
team lead. In fact, there was one other programmer helping part-time.
The surgical tools had multiple configurable electrodes under computer
control. Tools carried disposable EEPROMs and Atmel Cryptomemory
chips in their connectors. These held tool instructions, parameters,
and authentication and expiration information. The device had an LCD
display and some membrane switches; footpedals could also be plugged
in in addition to handswitches on the surgical tools.
This is a slow time-constant, soft real-time system. We did not use
an RTOS and we worked in C, which were imposed choices. We used an
ARM9 System on a Chip. We ripped our own fonts and made our own
graphics system. The executable was about 500KB binary.
I originally prototyped this system using a laptop and some ADC and DAC
modules. I used Java for the GUI, wrote a JNI layer to talk to the
third-party C library. This was very well received by the client and
led to refinements in their design.
I invented a scripting language used to control the surgical
tools.
Much communication internal to the device used I2C or SPI protocols.
Additionally, for isolation reasons, four 8-bit PIC microcontrollers
talked to the surgical tools, and the ARM CPU communicated with the
slave PICs over an isolated RS-485 bus. There were two FPGAs and a
handful of ADC and DAC channels. I occasionally used an oscilloscope
to debug.
I specified, designed, and built Acceptance Test Procedure software as
PC boards came in. These were also used to re-verify after board
revisions. I worked with EEs when they needed software. I also
requested electrical mods or monitors as needed.
I designed and built the cryptomemory subsystem used for
authentication (as genuine) and expiration. I also built separate
tools to program the cryptomemory chips.
I contributed to GUI requirements and documentation including end-user
manuals.
20 November 2010
19 November 2010
Feedback in extreme weather
A few months ago I figured out how hurricanes work. Yeah, warm water warms the air, it rises, condenses, inflow, coriolis, blah blah.
What really matters is the positive feedback: a storm whips the ocean, causing MORE transfer of ocean heat to air. Voila, a storm that builds over warm water.
What I very recently understood is the Fujita model of rear flank downdrafts feeding into the angular momentum of tornadoes. That is how they spin up: the rising air cools and falls and the falling behind the updraft creates angular momentum that is spun up by the vacuum. Dynamic pipe effect: the vacuum can't suck in air that is circling it, because of centrifugal 'forces'.
When the air gets hostile, its very very cool, and very weird.
What really matters is the positive feedback: a storm whips the ocean, causing MORE transfer of ocean heat to air. Voila, a storm that builds over warm water.
What I very recently understood is the Fujita model of rear flank downdrafts feeding into the angular momentum of tornadoes. That is how they spin up: the rising air cools and falls and the falling behind the updraft creates angular momentum that is spun up by the vacuum. Dynamic pipe effect: the vacuum can't suck in air that is circling it, because of centrifugal 'forces'.
When the air gets hostile, its very very cool, and very weird.
Elvis
When I worked for the dept of medical physics at Cedars-Sinai medical center, I worked with a $50,000 box that could record digital video. 8-bit Greyscale, 512x512, up to 30 frames a second.
It broke, and since the company that made it was in Irvine, I drove it there. However, it was during the Rodney King riots, and we were told to leave early, so here I am exiting LA in a huge traffic jam, car overheating, with something worth 5x the value of my car in the back seat. Made it though. Saw some rioters steal from a store but no violence.
I also programmed a digital device that took cineangiograms. I managed to get a picture of Elvis (I needed a test picture, this was early 90s) wedged onto the research system, such that GE had to remove it. I always wondered what the tech thought about finding Elvis on a medical imaging system.
It broke, and since the company that made it was in Irvine, I drove it there. However, it was during the Rodney King riots, and we were told to leave early, so here I am exiting LA in a huge traffic jam, car overheating, with something worth 5x the value of my car in the back seat. Made it though. Saw some rioters steal from a store but no violence.
I also programmed a digital device that took cineangiograms. I managed to get a picture of Elvis (I needed a test picture, this was early 90s) wedged onto the research system, such that GE had to remove it. I always wondered what the tech thought about finding Elvis on a medical imaging system.
Defibrillator filters
At the defibrillator company I was seated where I'd overhear conversations among other engineering groups. One day I heard one analog guy arguing with a DSP PhD about some filtering issue.
Since I knew what signal they were talking about, and was able to program the LCD display, I turned the defib into an oscilloscope and showed them the response to a step input. Lots of ripple. That answered their question.
Five minutes unplanned work to solve a problem that would have taken them days.
Since I knew what signal they were talking about, and was able to program the LCD display, I turned the defib into an oscilloscope and showed them the response to a step input. Lots of ripple. That answered their question.
Five minutes unplanned work to solve a problem that would have taken them days.
GDSII Viewer
Back when I was building an X11 / Unix front end for a VLSI system, I got interested in how it worked, what it was doing. It took netlists and generated GDSII which is a file format describing layers of polygonal shapes. Corresponding to doping, metallization, polysilicon deposition masks.
I found a hardware text and read it. In the back there was a description of the GDSII file format.
I saw that this other huge software was being used to review the GDSII output, and it was quite slow. So over a weekend I wrote a fast dedicated viewer. It because quite popular in the company, I was told.
This is why its important to be interested in what you're doing, you'll see opportunities to be extra useful.
I found a hardware text and read it. In the back there was a description of the GDSII file format.
I saw that this other huge software was being used to review the GDSII output, and it was quite slow. So over a weekend I wrote a fast dedicated viewer. It because quite popular in the company, I was told.
This is why its important to be interested in what you're doing, you'll see opportunities to be extra useful.
Looking for work, Fall 2010
Got laid off upon returning from vacation, 1 Sept. Getting back pay at least.
Then the client seems to be hiring my old position, but in talking to them they don't seem to have a clue that hiring the person who built the thing is probably a good idea. The ramp-up time will be substantial: 11 boards, 36 cables. Probably 100 C 'classes', 500KB of ARM7 code compiled. Two years of development (with other related projects, including PIC 16F programming, test fixtures, acceptance test procedure coding, documentation, etc.)
The project still has work to be done, I was being pushed to add features to hit milestones. The project was originally fixed bid but massively underestimated; perhaps the CEO who can code thought he could contribute more time than he could.
Business wise, its interesting to recognize classic problems. Expanding and moving to expensive space. Underestimating complexity. Fixed bid. Client had never built electronics of any kind, much less for FDA approval, much less with 5 CPUs in it.
Nine of ten startups fail.
It used to bug me more, getting laid off. I got laid off in '02 for the first time in my life, my employer IDT sold to Cisco and the Net bubble burst. At Cardiac Science, the company was acquired by Burdick and laid off most of the software staff on our project. (Amusingly, being a Washington state co, they had to publish a list of the laid-off folks' ages, from which I was able to figure out everyone's age. An obvious privacy violation forced by another state's law.) At Zetera, they ran out of Venture Capital and folded. And my most recent employer had payroll problems, as they did last year, when there was a period of nonpayment and then laying off everyone (then rehiring). They renegotiated the building and the major project (to include time and materials now). But now they have tax problems. Thank you, California.
Anyway, good engineers work on bleeding edge problems, and business entities solving them often fail.
I'm just looking for stability, a place to work on interesting problems, with smart people. Let others find the jobs, buffer the work and salaries, schmooz.
I should read some Dilbert, which I haven't in a while.
Then the client seems to be hiring my old position, but in talking to them they don't seem to have a clue that hiring the person who built the thing is probably a good idea. The ramp-up time will be substantial: 11 boards, 36 cables. Probably 100 C 'classes', 500KB of ARM7 code compiled. Two years of development (with other related projects, including PIC 16F programming, test fixtures, acceptance test procedure coding, documentation, etc.)
The project still has work to be done, I was being pushed to add features to hit milestones. The project was originally fixed bid but massively underestimated; perhaps the CEO who can code thought he could contribute more time than he could.
Business wise, its interesting to recognize classic problems. Expanding and moving to expensive space. Underestimating complexity. Fixed bid. Client had never built electronics of any kind, much less for FDA approval, much less with 5 CPUs in it.
Nine of ten startups fail.
It used to bug me more, getting laid off. I got laid off in '02 for the first time in my life, my employer IDT sold to Cisco and the Net bubble burst. At Cardiac Science, the company was acquired by Burdick and laid off most of the software staff on our project. (Amusingly, being a Washington state co, they had to publish a list of the laid-off folks' ages, from which I was able to figure out everyone's age. An obvious privacy violation forced by another state's law.) At Zetera, they ran out of Venture Capital and folded. And my most recent employer had payroll problems, as they did last year, when there was a period of nonpayment and then laying off everyone (then rehiring). They renegotiated the building and the major project (to include time and materials now). But now they have tax problems. Thank you, California.
Anyway, good engineers work on bleeding edge problems, and business entities solving them often fail.
I'm just looking for stability, a place to work on interesting problems, with smart people. Let others find the jobs, buffer the work and salaries, schmooz.
I should read some Dilbert, which I haven't in a while.
17 February 2010
Subscribe to:
Posts (Atom)