uthc

Experiences

commCommunist Re-Education under harsh Control by Communist Police per failure in failure of Runaway from Evil Communist VN on  7th June1980 till 31st 1984

07 June 1980 to 31 Aug 1984 Hard Labor

5years doing hard labor on Rice field in Evil Communist VN vs 6 yers in hard working on PhD in Australia
As digger in making canal irrigation for rice field
As buffalo in plowing rice field
The socument below say My Re-education per my Runaway to Oversea  started on June 7th 1980 and signed by Nguyen Van Ut Deputy Police Chief Of province Minh Hai on 31st Aug 1984 to release to home home at 2 Dong Tam, phuong 3 Q Tan Binh Ho Cho Minh City

../IMG/LenhTha.jpg

mm


Sr SW Developer [embeded ARM Linux for TI AM3358]

Mission MicrowaveContract May 2016 - Jun 2016 

Santa FE Spring, CA 


Suddendly Ended after Stroke on Free Wway 105 at speed 60+ mph from LAX a/p to workplace at Mission Microwave Santa FE Spring Even just a very short time but I could complete the target product fully operational running on Linux Using TI ARMLinux SDK adap uboot to custom HW based on BeagleBone open HW circuit partition SD card into 3 partition 1) FAT for u-boot +Kernel + Device tree 2] Ext4 for Rd Only Root File SystemRFS[3 Ext4 for RFS bak up TFTP used to update new u-boot and also load kernel + Devive tree for debugging testing NFS used for testing RFS RFS was build from scratch using Build Root 2015 with SSH for access to target from host PC using PuTTY on PC Samba3 for file update using Window Explorer on PC Apache to configure target from browser on host PC to WebSrvr on target I have verified these features fully operational on BeagleBone brd I developped a special IP Sever run on target after boot And an app on PC named IP_Detector on host to find out IP addr set by DHCP to target for network connection But unfortunately unable fully to implement on target However the Root File System passed to my SW partner included them all just used it due to my sudden stoke stoped me in guiding  him how to use them so on the target product  Man propose God dispose though!!Suddendly Ended after Stroke on Free Wway 105 at speed 60+ mph from LAX a/p to workplace at Mission Microwave Santa FE Spring Even just a very short time but I could complete the target product fully operational running on Linux Using TI ARMLinux SDK adap uboot to custom HW based on BeagleBone open HW circuit partition SD card into 3 partition 1) FAT for u-boot +Kernel + Device tree 2] Ext4 for Rd Only Root File SystemRFS[3 Ext4 for RFS back up TFTP used to update new u-boot and also load kernel + Devive tree for debugging testing NFS used for testing RFS RFS was build from scratch using Build Root 2015 with Samba for Window FileAcces via Window Explorer ; SSH for access to target from host PC using PuTTY on PC Samba3 for file update using Window Explorer on PC Apache to configure target from browser on host PC to WebSrvr on target I have verified  these features fully operational on BeagleBone brd I developped a special IP Sever run on target after boot And an app on PC named IP_Detector on host to find out IP addr set by DHCP to target for network connection The  whole Root File System on the target included them all just configured and run them But unfortunately unable fully to demo these features on target due to my sudden stoke stoped me in doing so Man propose God dispose though!!

vvSr R&D Eng FPGA Verilog/ embedded SW bare-metal system using Dual Core TI OMAP-L138=ARM9+DSP

Venture Design Service Contract Mar 2013 - Mar 2015 

Santa Rosa, California, United States

Santa Rosa, California, United States Upgrade Xilinx Virtex FPGA using Verilog with DSP Core for better product quality for sustaining revenue As a embedded SW Developer using C from TI BSP for bootup ARM core and DSP core including USB stack in new product using using TI OMAP-L138 with dual-core ARM9 AM1808 and DSP C6748 with TI Code-Composer Studio v.5 As PC SW Developer using C#with LibUsb DotNet for high speed USB at 12 Mbps 100x faster than 115Kbps in DCDC serial comm mode in flashing new image from PC onto target via USB cableUpgrade Xilinx Virtex FPGA using Verilog with DSP Core for better product quality for sustaining revenue As a embedded SW Developer using C from TI BSP for bootup ARM core and DSP core including USB stack in new product using using TI OMAP-L138 with dual-core ARM9 AM1808 and DSP C6748 with TI Code-Composer Studio v.5 As PC SW Developer using C#with LibUsb DotNet for high speed USB at 12 Mbps 100x faster than 115Kbps in DCDC serial comm mode in flashing new image from PC onto target via USB cable Skills: PID Controller for Oscillator DisciplineSkills: PID Controller for Oscillator Discipline

symmSr R&D Eng FPGA Verilog embeded Linux x86 [Kontron ]+PowerPC MPC 8013/8272]

SYMMETRICOM, LTD.  Full-time Feb 2002 - Feb 2013 

Santa Rosa, California, United States

Handle all technical challenges in theory or in practice at Symm including its division in San Jose and Boulder Colorado beyond my duty and belong to my boss's duty like mentoring 2 Sr HW engs to use Verilog instead of discrete logic gates; solved all tek problems regardless near or far away with biz trip Upgrade all timing products with new HW board/Xilinx FPGA using Verilog for better quality and better profit with new part better quality ang better price Protype Board Bring Up in extreme short time owing to my product architect assuming the prototype not working and some fetures in this scenario added into architect I have to admit I could not do that well without this architect built for debugging As a member in new SW Development team on embedded x86 Linux for time Server using x86 Kontron SBC[Single Board Computer) responsible in FPGA dev and configuring Linux Kernel to Symm brd and attempted bare minimum Root File System with only BusyBox and Bash Life span of X86 is limited to 5 years far below customer expect of 10+yrs As member in new SW Development Team of bedded PowerPC Linux for Time Server using PowerPC MPC8013 responsible in adapting u-boot to new Symmetricom custom HW, FPGA dev and configuring Linux Kernel based on our new HW and attempt with bare minimum Root Filewith only BusyBox and Bash bring up new Protype and testing Embed Linux File System over network using TFTP for kernel new u-boot update and NFS for Root File System testing One of key contributor to the first Symmetricom Grand Master PTP responsible in FPGA design of Time Stamp based on my solid knowledge on Ethernet Frame as one of Developer in Team making the Grand Master PTP v01 in both FPGA and SW and sucessfully updating to PTPv2 at both Santa Rosa/SanJose/Boulder Colorado Symmetricom in both FPGA and embedded SW in Oscilator Disclipline Using my solid knowledge on PID Control and on TCIP Ethernet Frame with PTP packetHandle all technical challenges in theory or in practice at Symm including its division in San Jose and Boulder Colorado beyond my duty and belong to my boss's duty like mentoring Sr HW eng to use Verilog instead of discrete logic gates; solved all tek problems regardless near or far away with biz trip Upgrade all timing products with new HW board/Xilinx FPGA using Verilog for better quality and better profit with new part better quality ang better price Protype Board Bring Up in extreme short time owing to my product architect assuming the prototype not working and some fetures in this scenario added into architect I have to admit I could not do that well without this architect built for debugging As a member in new SW Development team on embedded x86 Linux for time Server using x86 Kontron SBC[Single Board Computer) responsible in FPGA dev and configuring Linux Kernel to Symm brd and attempted bare minimum Root File System with only BusyBox and Bash Life span of X86 is limited to 5 years far below customer expect of 10+yrs As member in new SW Development Team of bedded PowerPC Linux for Time Server using PowerPC MPC8013 responsible in adapting u-boot to new Symmetricom custom HW, FPGA dev and configuring Linux Kernel based on our new HW and attempt with bare minimum Root Filewith only BusyBox and Bash bring up new Protype and testing Embed Linux File System over network using TFTP for kernel new u-boot update and NFS for Root File System testing One of key contributor to the first Symmetricom Grand Master PTP responsible in FPGA design of Time Stamp based on my solid knowledge on Ethernet Frame as one of Developer in Team making the Grand Master PTP v01 in both FPGA and SW and sucessfully updating to PTPv2 at both Santa Rosa/SanJose/Boulder Colorado Symmetricom in both FPGA and embedded SW in Oscilator Disclipline Using my solid knowledge on PID Control and on TCIP Ethernet Frame with PTP packet Skills: PID Controller for Oscillator Discipline  Embedded Software  C (Programming Language)bare metal realtime system embedded Linux  Schematic CaptureSkills: PID Controller for Oscillator Discipline  Embedded Software  C (Programming Language)bare metal realtime system embedded Linux  Schematic Capture
Another my big contribution to Symmetricom was I manage production team to programming product more covenience and professional way
No body was aware of Endianess to guide product team using programmer per  product text image
All product were not operational after programmed and TrueTime/Symetricom had a get-around by send tothem a programmed flash made by debugger tool
They just simply put the programmed flash in the programmer for duplicating/cloning to brand new flash
I was horrified to learn such clumsy production way so I guide the team how to use product image in text send via email and all product were operational upon getting from them

nlc

R&DEngr [HW FPGA Verilog &Low-Level SW Driver for MicroController Motorola 68331 

Next Level Communication start up Full-time Aug 1997 - Nov 2001

Rohnert Park, California, United States

I didn't have enough patience to wait for SW Enineer to bring up  my HW prototype
So my main job was HW but SW job was bonus for NLC, I was a generous Engineer
So I self trained myself to  bringup my HW prototype
Even as a HW engr But I was still able to fix big SW bug in Main Phone Operating SW system as detailed below
I make a boot code based on HW component RAM in particular
I also developed program&procedure to test and programing product binary image onto eeprom for production dept
In particular to use programer properly with product image in txt Srecrord with  cottect Endianess
My boot code had ZERO waitstate
But SW Engineer used boot code from a purchased SW package  for
Motorola 68331 which used SOME waitstate
His job scrued up the Main Phone operating system using 1-sec ISR(Intterupt Sevice Routine) to  monitor calling time on phone billing purpose
I was asked to fixed my HW bcz the ISR could not run some code at bottom of ISR for time phone billingpurpose
I verified the problem with my code but it ran smoothly all the way  to the end
I was forced to fix my HW but I didn't agree and showed my test
The whole NLC was in panic on the problematic Main Phone operating system
So I decide to look at the main System code and found the diff was NON ZERO waistate
that's why ISR run slower could not complete in 1 sec and some code at boottom not executed
I change to ZERO waista state
The  Main Phone operating system worked properly
I was so mad and came to my manager's office and told him IDIOTS
Has any PC ever been opened for fix when SW ill behave
Therefore my name was on the layoff list
But no more new products released
 since my depart and Rohnert Park office was closed down per poor pergformance 3 year after my layoff
I was the most agressive Engr with frequent new product released about twice yearly

My main job were CircuitDesign / Xilinx & Altera FPGA design using Verilog to develop SONET frame for new digital communication system and Voice over IP using micro controller 68331 bring up prototype board using C with boot code and HW driver for MC68331 Develop SW in C used in production test/prgramming image onto EEPROM memory and QA Product testCircuitDesign / Xilinx & Altera FPGA design using Verilog to develop SONET frame for new digital communication system and Voice over IP using micro controller 68331 bring up prototype board using C with boot code and HW driver for MC68331 Develop SW in C used in production test/prgramming image onto EEPROM memory and QA Product test Skills: embedded C for MC68331[ bootcode and EEPROM programming and driver  Schematic CaptureSkills: embedded C for MC68331[ bootcode and EEPROM programming and driver  Schematic Capture

utsUniversityTutor

University Technology Sydney Part-time Part-time Feb 1994 - Aug 1997

Sydney, New South Wales, AustraliaSydney, New South Wales, Australia

Control Lab Assist Final year EE students including Master students in Fuzzy Logic field and praticing Engineer in Control Lab to design both analog/digital and controller for small scale dynamic systems used in Co0ntrol Lab like Ball Beam, Ball Plate, Off shore Crane, Over-Head Crane, Inverted Pendulum, Couple Drive 1] Do System identification=="Use Physic Theory to find Mathematical Model of the target system 2] Do System Validation on the Mathematical model 3] Design Analog Controller using Op-Amp 4] Design Digital Controller using Pascal language run on PC with50mSec DOS system interrupt as sampling time of 20mSec 5] Help student setup PC Env to get them familar with the procedure at early stage 6] Solve their problem in later stage The time session in evening for praticing Engineer to attend occasionally I stayed with them till midnight to work out on their problems There were a lot of fun then This job build up my real experience in control pratice and in especially in Oscilattor Discipline Mentoring Graduation Project Graduation Thesis:: Consulting graduating student in their chalenging/advanced project for Bachelor of Electrical Engineering graduation project in DSP/Fuzzy Logic ControlControl Lab Assist Final year EE students including Master students in Fuzzy Logic field and praticing Engineer in Control Lab to design both analog/digital and controller for small scale dynamic systems used in Co0ntrol Lab like Ball Beam, Ball Plate, Off shore Crane, Over-Head Crane, Inverted Pendulum, Couple Drive 1] Do System identification=="Use Physic Theory to find Mathematical Model of the target system 2] Do System Validation on the Mathematical model 3] Design Analog Controller using Op-Amp 4] Design Digital Controller using Pascal language run on PC with50mSec DOS system interrupt as sampling time of 20mSec 5] Help student setup PC Env to get them familar with the procedure at early stage 6] Solve their problem in later stage The time session in evening for praticing Engineer to attend occasionally I stayed with them till midnight to work out on their problems There were a lot of fun then This job build up my real experience in control pratice and in especially in Oscilattor Discipline Mentoring Graduation Project Thesis:: Consulting graduating student in their chalenging/advanced project for Bachelor of Electrical Engineering graduation project in DSP/Fuzzy Logic Control Skills: Computational Physics  PIDControl  State space Control  Analog Control using OpAmpSkills: Computational Physics  PIDControl  State space Control  Analog Control using OpAmp

utsAI ResearcherAI Researcher

University of Technology Sydney Contract Feb 1995 - Sep 1995 

New South Wales, AustraliaSydney, New South Wales, Australia

Basically AI process employs math optimization to set link-weight in neu-net to get expected output per training data Originally Steepest Descent Optization Method was used as math optimization in AI In my AI R&D at UTS per contract with Medical Center in providing training data from diabetic patient with expected output result as diabetic true value AI neu-net to be found so they apply another patient data to find out potential diabetic patient Unfortunately my AI neu-net gave incorrect result while another R&D party from some somewhere else was correct The reason of Its failure has been hanging over my head since then Recently I probably got the answer Nothing can be done on neu-net except initial random value of link-weight So both parties used more/less the same neu-net with link-weight initially set with random value They could used more number of neuron than I used but probably not much higher due to limit of PCHW then with486 +Math Coprocessor and few hundreds MB RAM Per my experience in setup/hold time with FPGA I did help to solve intermittent performance for a Linux Contract at Symmetricom Colorado and I just use a dump short for loop to slow down his code in write operations and the problem went away I used new advanced Optimization Method namely Conjugate Gadient Method in my AI R&D at UTS the other parry might use method originally employed in AI The original method used fixed learning rate to minimize error The new advanced method uses varying learning rate to minimize error and also maximize error reduction change so it get minimum error and minimum process time as well==> at 20x time faster than the original Optimization Probably I got wrong link-weight due to very fast process violating sretup/hold time where the value of link-weight are not stable during time being updated I found a dilemma in my AI experience at UTS Fast process give wrong result Slow process responds too late for timing event That's why AI chip could be the solutionBasically AI process employs math optimization to set link-weight in neu-net to get expected output per training data Originally Steepest Descent Optization Method was used as math optimization in AI In my AI R&D at UTS per contract with Medical Center in providing training data from diabetic patient with expected output result as diabetic true value AI neu-net to be found so they apply another patient data to find out potential diabetic patient Unfortunately my AI neu-net gave incorrect result while another R&D party from some somewhere else was correct The reason of Its failure has been hanging over my head since then Recently I probably got the answer Nothing can be done on neu-net except initial random value of link-weight So both parties used more/less the same neu-net with link-weight initially set with random value They could used more number of neuron than I used but probably not much higher due to limit of PCHW then with486 +Math Coprocessor and few hundreds MB RAM Per my experience in setup/hold time with FPGA I did help to solve intermittent performance for a Linux Contract at Symmetricom Colorado and I just use a dump short for loop to slow down his code in write operations and the problem went away I used new advanced Optimization Method namely Conjugate Gadient Method in my AI R&D at UTS the other parry might use method originally employed in AI The original method used fixed learning rate to minimize error The new advanced method uses varying learning rate to minimize error and also maximize error reduction change so it get minimum error and minimum process time as well==> at 20x time faster than the original Optimization Probably I got wrong link-weight due to very fast process violating sretup/hold time where the value of link-weight are not stable during time being updated I found a dilemma in my AI experience at UTS Fast process give wrong result Slow process responds too late for timing event That's why AI chip could be the solution Skills: Optimazation Method in MatLab  Artificial Intelligence (AI)