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
11 February 2010
einstein, fifth grade
Kid in 5th grade, asked what einstein sez about matter and energy.
What he says is, they're like ice and water, the same thing, with
some constant involved. For m=e/c^2 (what Al published, not the
bs e=mc2) the constant is the speed of light squared. It has to
do with the elasticity of the aether, which doesn't exist.
What he says is, they're like ice and water, the same thing, with
some constant involved. For m=e/c^2 (what Al published, not the
bs e=mc2) the constant is the speed of light squared. It has to
do with the elasticity of the aether, which doesn't exist.
09 February 2010
frame shift
The grandkid of the VP Eng at work is an intern at work.
He said "grandpa" when referring to the VP.
That was a weird frame shift. Like when you see a dog
being operated on: looks like grocery meat; and grandma;
and its a biomed test.
No dogs recently, but pigs. More like people, although more
expensive than dogs, I think. Dogs were for cardiac work
in LA; pigs for my current work.
When we put our 18 year old cat down last year, I was impressed
by the speed of the vacancy of the eyes after injection. My
dad noticed same on his dog euthanasia. For the pigs, its
a pink injection into the ear, and the animal is already
anesthetized. Cat inject was shoulder I think, dog was between
toes, heroin style.
Not a bad way to go. Much prettier than the HST pistol plan.
He said "grandpa" when referring to the VP.
That was a weird frame shift. Like when you see a dog
being operated on: looks like grocery meat; and grandma;
and its a biomed test.
No dogs recently, but pigs. More like people, although more
expensive than dogs, I think. Dogs were for cardiac work
in LA; pigs for my current work.
When we put our 18 year old cat down last year, I was impressed
by the speed of the vacancy of the eyes after injection. My
dad noticed same on his dog euthanasia. For the pigs, its
a pink injection into the ear, and the animal is already
anesthetized. Cat inject was shoulder I think, dog was between
toes, heroin style.
Not a bad way to go. Much prettier than the HST pistol plan.
06 February 2010
21st century rains
My kid controlled a webcam watching a stream via a netbook.
http://ca.water.usgs.gov/webcams/modjeska/webcam-oper.html?
Wow.
http://ca.water.usgs.gov/webcams/modjeska/webcam-oper.html?
Wow.
12 January 2010
Engineering fun
So we get a new-manufacture, new-layout circuit board
with nominally the exact same behavior and topology.
turns out, after two days of debug, that the board I have
has a bad relay. I was wondering why the calib routine
didn't work. Spent at least a day with the VP of engineering
debugging; he kept saying, lets try it on the test fixture.
All the new boards were good; but mine had a bad relay, which
had escaped the ATP for the boards.
Classic. I had to debug by realizing I was seeing open
circuit resistance (shows as 1800 ohms) when I should have
seen 100.0. I was at one point seeing the resistance of the
attached external resistor. That revealed a bug where the
receptacle for the external resistor was switched in.
But with that fixed, I still saw open. Intead of 100.
Eventually i convinced myself it was open, instead of 100,
and the analog guys found a bad relay (one of 25).
with nominally the exact same behavior and topology.
turns out, after two days of debug, that the board I have
has a bad relay. I was wondering why the calib routine
didn't work. Spent at least a day with the VP of engineering
debugging; he kept saying, lets try it on the test fixture.
All the new boards were good; but mine had a bad relay, which
had escaped the ATP for the boards.
Classic. I had to debug by realizing I was seeing open
circuit resistance (shows as 1800 ohms) when I should have
seen 100.0. I was at one point seeing the resistance of the
attached external resistor. That revealed a bug where the
receptacle for the external resistor was switched in.
But with that fixed, I still saw open. Intead of 100.
Eventually i convinced myself it was open, instead of 100,
and the analog guys found a bad relay (one of 25).
28 December 2009
Tar pits
Went to La Brea Tar Pits (Page museum). Bad traffic.
But nice museum. Wall of 400 wolf skulls, and there are 1200 more.
Nice skeletons, including birds. Pointed out large sternum on birds.
On the timeline, its clear that a lot of bigger mammals died out
as humans started taking off. Funny, that.
Best part for me: I found tar seeps outside of the chained in
lake, and figured out that all the seeps are in a line --just like
Hawaiin fumaroles or yellowstone geysers--- along a fault. Also
saw tar-bubbles grow and pop, which was like slow-motion mudpots.
But nice museum. Wall of 400 wolf skulls, and there are 1200 more.
Nice skeletons, including birds. Pointed out large sternum on birds.
On the timeline, its clear that a lot of bigger mammals died out
as humans started taking off. Funny, that.
Best part for me: I found tar seeps outside of the chained in
lake, and figured out that all the seeps are in a line --just like
Hawaiin fumaroles or yellowstone geysers--- along a fault. Also
saw tar-bubbles grow and pop, which was like slow-motion mudpots.
22 December 2009
Friends
Son of a los alamos scientist. Extremely civil engineer.
1400 SAT. Insanely independent cal tech physicist, and crazy
friend thereof. Profs of cs, and other disciplines.. Potassium
channel scientists stricken with MS and then cyanide poisoning..
an interesting life so far.. I appreciate steadiness and lack
of change.
1400 SAT. Insanely independent cal tech physicist, and crazy
friend thereof. Profs of cs, and other disciplines.. Potassium
channel scientists stricken with MS and then cyanide poisoning..
an interesting life so far.. I appreciate steadiness and lack
of change.
Time
thinking about time.
I knew a few profs.
A woman philosophy prof; computational linguistics; and neuroscience.
And a number of guys who are CS profs.
Me, just a practitioner, continual student.
I knew a few profs.
A woman philosophy prof; computational linguistics; and neuroscience.
And a number of guys who are CS profs.
Me, just a practitioner, continual student.
15 December 2009
optometricist
Saw the eye doc today. Need a new script so I can replace my
glasses, which currently are at version 3 of my field improv.
I have a stiff nichrome wire looped around vestigital stubs
of the old nitinol templepieces. This does not provide adequate
constraint of rotation about the horizontal axis. My nose does.
But the loops of nichrome fall off the cm long stubs. So loops of
very flexible soft wire wrap the ends of the stubs as keepers
for the nichrome loops. "Sometimes" they also are wrapped around the
NiCr templepieces. But they break, so my nose is useful for horizontal
axis control. As stops, they seem to work fine --must be how wire
wrap used to work, soft wire around sharp edged pillars.
The eye doc's tech asked to measure my glasses, so I gave her the loop,
after a caveat not to laugh (which she laughed at until she saw my
hack). Then she showed the other receptionist declaring, "he must be
an engineer". I was impressed that she figured that out 8-)
glasses, which currently are at version 3 of my field improv.
I have a stiff nichrome wire looped around vestigital stubs
of the old nitinol templepieces. This does not provide adequate
constraint of rotation about the horizontal axis. My nose does.
But the loops of nichrome fall off the cm long stubs. So loops of
very flexible soft wire wrap the ends of the stubs as keepers
for the nichrome loops. "Sometimes" they also are wrapped around the
NiCr templepieces. But they break, so my nose is useful for horizontal
axis control. As stops, they seem to work fine --must be how wire
wrap used to work, soft wire around sharp edged pillars.
The eye doc's tech asked to measure my glasses, so I gave her the loop,
after a caveat not to laugh (which she laughed at until she saw my
hack). Then she showed the other receptionist declaring, "he must be
an engineer". I was impressed that she figured that out 8-)
14 December 2009
nerd reading
Borrowed the Payload planners guide for the Delta III rocket.
Showed it to my 10 year old (found a good graphics page) but he
didn't care that much.
Pretty interesting reading to me. I'm reading some Asimov right now,
so maybe I'm in a retro scifi mood. Also watched some random Shatner
stuff.
Yep, retro. Or solstice moods.
Showed it to my 10 year old (found a good graphics page) but he
didn't care that much.
Pretty interesting reading to me. I'm reading some Asimov right now,
so maybe I'm in a retro scifi mood. Also watched some random Shatner
stuff.
Yep, retro. Or solstice moods.
ground truth
Graduating MIT in 86 in EECS and cognitive science it was clear I was
into AI. But I had become interested in perception, the grounding of truth
that all the logical / propositional layers were built on.
I went to UCI to study human and machine perception, esp vision.
Nowadays I work in firmware. I scope electrons and control them with
words. The ground truth of software, of information.
into AI. But I had become interested in perception, the grounding of truth
that all the logical / propositional layers were built on.
I went to UCI to study human and machine perception, esp vision.
Nowadays I work in firmware. I scope electrons and control them with
words. The ground truth of software, of information.
02 December 2009
Flying code
So I have found out that soon some complete hackery I wrote a few years
ago is going to fly. The code runs on an NT system that runs an In
Flight Entertainment system. It bypasses NT security to directly access
hardware. It patches a new hardware board (with new video controller)
to display live video, so the flight attendants can see what the passengers
see.
Its a kludge. We couldn't build the original software, which was a mess,
and incomplete. So my kludge looks for a big black box on the screen and
maps live video into that space, if it exists. We do so cleverly so as
not to use too much of the 100 Mhz x86 cpu. The software runs in parallel
with the regular software which no longer controls the video overlay.
And finally, after 3 years, it will fly, and enable the company to sell
the boards that have had enormous amounts of time and effort put into
them.
Please put your trays in their upright position..
ago is going to fly. The code runs on an NT system that runs an In
Flight Entertainment system. It bypasses NT security to directly access
hardware. It patches a new hardware board (with new video controller)
to display live video, so the flight attendants can see what the passengers
see.
Its a kludge. We couldn't build the original software, which was a mess,
and incomplete. So my kludge looks for a big black box on the screen and
maps live video into that space, if it exists. We do so cleverly so as
not to use too much of the 100 Mhz x86 cpu. The software runs in parallel
with the regular software which no longer controls the video overlay.
And finally, after 3 years, it will fly, and enable the company to sell
the boards that have had enormous amounts of time and effort put into
them.
Please put your trays in their upright position..
Flying code
So I have found out that soon some complete hackery I wrote a few years
ago is going to fly. The code runs on an NT system that runs an In
Flight Entertainment system. It bypasses NT security to directly access
hardware. It patches a new hardware board (with new video controller)
ago is going to fly. The code runs on an NT system that runs an In
Flight Entertainment system. It bypasses NT security to directly access
hardware. It patches a new hardware board (with new video controller)
27 November 2009
Fish drought
Went to the end of Sandberg road to a dirt parking lot part of Santiago Hills park.
Found a cracked mud area, with a small amount of water at one end. There were
maybe 2 dozen fish of various sizes gasping in there. I'm going to post
to Craig's list (never have before) telling fish-rescuers about this. Or
fish-eaters.
OTOH we saw what may have been big cat prints in the cracking soft mud,
and the cat may be dining. Still, tragic to see these fish, and no hope
of water (unless it rains this weekend) as the other side of the dam is
dry.
Found a cracked mud area, with a small amount of water at one end. There were
maybe 2 dozen fish of various sizes gasping in there. I'm going to post
to Craig's list (never have before) telling fish-rescuers about this. Or
fish-eaters.
OTOH we saw what may have been big cat prints in the cracking soft mud,
and the cat may be dining. Still, tragic to see these fish, and no hope
of water (unless it rains this weekend) as the other side of the dam is
dry.
Subscribe to:
Posts (Atom)
