Bloomfield Design Labs Home Page
|WHO WE ARE
Bloomfield Design Labs is an electrical engineering firm specializing in the design and development of Video, Audio, and RF products for broadcast, industrial and consumer applications. At this point in time, Bloomfield Designs Labs is really me, Ralph Williams, working as a hardware/FPGA/firmware/Visual programmer engineering consultant. I have many years of design experience and have developed technology for companies such as High Country Tek, Monolithic Power Systems, Adesto Technologies, Grass Valley Group, Ensemble Designs, Folsom Research, Sierra Video Systems, TDK Semiconductor and Watkins-Johnson,.
Most of my design experience is focused on developing Video, Audio and RF products used in the television broadcast and medical imaging fields. Specific areas that I have extensive design experience in are as follows:
Recent Projects that I have worked on.
My COMMITMENT TO YOU
Bloomfield Design Labs is committed to getting your project done as quickly and as efficiently as possible. My goal is to develop a partnership with you where my design and development skills serve you and your customers. Feel free to contact me about your design project. I can do a fixed bid or work on an hourly basis. To help you speed your product to market, I have affiliations with firms that specialize in Industrial Design, PCB design, Mechanical packaging, EMI testing and software development.
TO CONTACT ME
Bloomfield Design Labs
Contact: Ralph Williams
Email: ralphw a t bloomfieldlabs d o t c o m (delete the blank spaces)
132 Lincoln Way, Auburn CA 95603
Phone: (530) 277-4236
Useful Electronics Engineering Links
Projects that I Have Worked on recently:
I worked on a system that uses the Espressif ESP8266 microcontroller/WIFI module for a mesh style network to pass measured temperature, voltage and current data and other parameters from any module to any other module on the same WIFI hub. I wrote and tested the ESP8266 C/C++ code using the Arduino environment for code development.
At HCT I developed a programmable electronic controller for mobile hydraulic machinery. The design uses the ARM Cortex-M7 microprocessor and the Keil uVision IDE to develop the firmware. The controller is running the ARM CMSIS-RTOS. HAL drivers are used for talking to external peripherals. Peripherals include USB-OTG, FRAM, MMC-Memory, Real-Time-Clock, CAN 2.0b, UART, ADC, and Input Capture Compare. We used Tortoise Git for version control.
At Adesto, I worked on a Visual Basic GUI and associated Xilinx Spartan 3 FPGA system that would cycle test the NVRAM chips to see where failures would typically occur first. I was also involved in doing statistical analysis of the test data and putting together detailed reports. The test data processing was typically handled using an R program to convert the data over to a CSV file compatible with a high-end software visualization tool called Spotfire.
At MPS, I worked on the design and development of a Class D digital audio amplifier. The work involved converting a DSP Xilinx design that included a FIR half-band filter and delta sigma converter over to verilog, Simulating the code, with ModelSim simulators. Prototyping the design with an Altera Cyclone II DE2 Audio/Video test board, and then working with the layout vendor on place and route. I also designed a test board for the first silicon. The first silicon digital section worked as expected.
At Sierra Video, I designed an Intel CPU board for their Ponderosa line of RGB and SDI/HD-SDI routers. The technology consisted of an Intel Xscale processor, Altera Cylone FPGA, DDR memory and a USB interface. The Intel IXP4xx Xscale processor was very powerful and had network processing engine cores that would handle the details of creating and digesting the ethernet data overhead.
At Folsom Research, I worked on the design of a combined analog/digital 8 x 2 audio mixer. I used an Altera 1K100 FPGA to emulate a microcontroller and interpret commands received from an RS-232 interface. The FPGA also performed FIFO control for digital audio delay and a digital crossfade between two serial digital audio sources.
At Folsom Research, I worked on the design of two separate video routers that route 5 wire computer video. One was a 16 x 16 router for the Screen Pro Plus product line, and the other was an 8 x 2 router used on the Screen Pro product line. These routers have microprocessor control and ultra wide analog bandwidth of up to 300 MHz.
At TDK Semiconductor, I worked on an FPGA based test fixture that was used to verify Verilog code and provide a test bed for microcontroller code development. I was responsible for taking two Verilog designs and implementing them into Altera 10K50A FPGA's. I used Synopsis FPGA Express to compile the Verilog designs into an EDIF design file and then used Altera's MaxPlusII to create the programming files that were downloaded into serial EEPROM's.
Folsom Research Digital Vector Generator
At Folsom Research, I worked on the development of digital circuitry for a digital vector generator. This product uses a Motorola 68K processor, and two rather large Altera 10K100 FPGA's. All the logic was developed with the Altera Max PlusII tool using AHDL and graphical design entry in a hierarchical fashion. The DVG takes in radar data and adds range rings, azimuth marks and sectors marks to the data and then sends it on to a radar scan converter and then onto a visual display.
At Grass Valley Group, I worked on the development of digital circuitry for the Kalypso production switcher control panel. On this project we used Microchip PIC micro-controllers, and Altera and Xilinx PLD's. Some of the PLD logic was synthesized using Verilog code and a really cool tool called Synplify. Synplify creates a design file which can then be imported into the Altera or Xilinx tool for device-specific compilation.
At Scitex Digital Video which is now Accom, I worked on the design of the audio/video I/O cards for the Affinity non-linear editing system. These cards supported just about every I/O standard for audio and video west of the Mississippi. Analog composite/component, digital component, as well as analog and digital audio. At Accom, I did systems engineering, as well as circuit design.
At Grass Valley Group, I worked on an Interpolator board used in the Krystal digital video effects system. The board took in digital video data and performed 3-dimensional interpolation to synthesize new pixel values when a video image was shrunk or expanded. The board used Altera 10K10 FPGA's, 12 nsec fast static memory and digital filtering ASIC's. This project was a cost reduction of the Krystal DVE.
I have always enjoyed working on phase-locked loops. Many years ago, I worked for a company called Watkins-Johnson designing microwave receivers used for electronic intelligence gathering. Phase-noise was a big concern on these receivers as it affected the ability of the receiver to decode phase-encoded data. I learned a lot about designing low-noise loops there. I have used this knowledge at other places I have worked such as Eigen Video and Grass Valley Group. One of the best books written on PLL's is called Digital PLL Frequency Synthesizers, Theory and Design by Ulrich Rohde. Rohde is one of the founders of Rohde and Swartz. Unfortunately this book is out of print although I noticed that Rohde has written a new book called Microwave and Wireless Synthesizer Design.
I have been designing video filters for many years. I have learned a great deal about things like inductor Q and parasitics and their impact on the filter's performance. To design a filter with a reasonable amount of accuracy, one needs a really good simulation tool. I have found the Eagleware filter design tools by to be particularly effective at this task. They are also very affordable. Eagleware also makes a simulation tool that can simulate two-port networks and optimize them for frequency response, group delay or return loss. My favorite theoretical book on filter design is called "Electronic Filter Design Handbook" by Arthur Williams and Fred Taylor. This book covers passive filters, active filters, and delay equalizers as well. A practical book on HF filter design is HF Filter Design and Computer Simulation by Randall Rhea.
I have worked from the analog front-end through the digital video processing to the analog back end. In the past, designs involved dedicated ASIC's for digital video processing, but now nearly all signal processing is done inside an FPGA. A good book on digital video design is called Video Demystified by Keith Jack. I have also worked on serial video I/O circuitry that would take parallel data and encode it over into 270 Mbit/sec data and send it over a coaxial cable up to 300 meters in length. This is really challenging work which utilizes a lot of the high frequency design experience that I gained while working at Watkins-Johnson. TI (National Semi) and Semtech are some of the IC manufacturer's providing solutions for serial digital video design.
At Scitex Digital Video which was bought by Accom, I worked on an I/O card that would take in analog and digital audio and multiplex it into a serial bit stream to send to an Analog Devices SHARC chip. This design used Crystal Semiconductor A/D and D/A converters, Altera 6K FPGA's and some Cypress clock frequency synthesizer chips. These Cypress synthesizer chips are way cool. You give Cypress the value of your reference frequency and the desired synthesized frequencies and they create a custom part. The parts are only a few dollars each as well. I also worked on a Class D digital amplifier for Monolithic Power Systems. The amplifier had a built in FIR half-band filter, and delta sigma converter. As for digital audio information, I have found the Crystal Semiconductor web site to be very useful for getting information on the AES audio standards. I also like the book The Art of Digital Audio by John Watkinson. In my opinion, John's a pretty good writer and he is able to take fairly complicated technical topics and distill them down to something that is reasonable to understand.
Most of my FPGA design experience is with Altera FPGA's and EPLD's. There are many ways of doing these kinds of designs. I have extensive experience in writing Verilog HDL code and then compiling using Altera's Quartus II tool or Xilinx ISE tool. The biggest FPGA that I have worked with is an Altera Cyclone II which is roughly equivalent to 240K gates. The fastest design I have worked on had a 98 MHz data rate. An excellent resource on the topic of FPGA design is a book called Advanced FPGA Design by Steve Kilts.
I have done a number of microprocessor/microcontroller based designs. I have experience with ARM Cortex-M7, Intel Xscale, Motorola 680X0, 68349, Philips 89C51, 8032, Express ESP8266, and Microchip PIC processors. These designs involved serial communications, interrupt handling, DDR, USB, SRAM, EPROM, FLASH memory, and serial EEPROMs, as well as interfacing to and downloading code into FPGAs. I also have some experience with single board computers and PC processor design.
I've worked on a couple of chip designs where I wrote HDL code in Verilog, simulated the code with ModelSim and worked with the layout vendor on timing issues involved in place and route. One chip was a class D digital amplifier with digital filters and a delta-sigma converter. When the first silicon of that chip came back for testing, the digital section that I wrote the code for worked just fine. Also at Adesto, I was involved with writing test vectors and doing verification for their family of NVRAM chips using a rather complicated testbench and ModelSim/QuestaSim HDL simulators.
At Adesto I was involved with doing cycle testing of the NVRAM chips and evaluating the resulting test data. I would typically convert the raw data from its standard format to a CSV file and input it into a very power statistical data visualization tool called Spotfire. Then I would look for fault patterns and trends that could indicate where the vulnerabilities in the memory array are located. I found this work to be incredibly satisfying. Spotfire is really amazing software tool that I highly recommend.
When I was at Watkins-Johnson I worked on several high frequency designs. One in particular was a low-noise downconverter module that had both a 320/640 MHz clock and a 410 MHz clock. One of the most important things to doing RF design well is to create a low impedance path to ground for all the devices in the design. If this isn't done properly, the devices can oscillate or resonate at unwanted frequencies. The other thing is to fully characterize all the major building blocks of a design. Typically the reason there are problems with an RF design, is that there are anomalies in the components that had not been considered. For example excessive gain outside the active passband of an amplifer, or non-monotonic frequency versus voltage for a VCO. If the components are fully characterized, then it makes design and troulbleshooting a whole lot simpler. Also since all components have a specified frequency range that they function well at, its important to consider what they will do at higher or lower frequencies. For example inductors becoming capacitive and resistors becoming inductive at higher freuqencies. All this data needs to be taken into consideration and modelled with CAD programs like Eagleware's Genesys or EESof's Touchstone.
While working at Watkins-Johnson, I learned a great deal about designing communications and intelligence gathering receivers. One of the projects that I worked on was an Instantaneous Frequency Measurement (IFM) receiver. I wrote an article on it that was published in Microwave Journal. The article was entitled "Theory and Application of a 0.5 to 18 Ghz Tunable IFM Receiver". I received an Outstanding Editorial Achievement Award from WJ for this article. In any case, I thoroughly enjoyed doing system design and talking about all the issues that can affect a receivers performance. I was continually fascinated with issues such as phase-noise, and noise power ratio, and group delay.
Over the years, I've had the opportunity to work independently and collaboratively to solve some really difficult technical problems. I feel as though I've been fairly successful at solving many of these really tenacious technical issues. There are some key concepts I've used to find the solutions. One is to write down all the facts. The next is come up with some theories and the likelihood of each theory. Third is to do some testing to support or debunk the most likely theories. Part of the testing involves using the right piece of equipment to get a full and accurate understanding of the signals involved. One of the problems I solved was a cross-point switch problem at GVG and by using the TEK2467 400MHz Bandwidth analog scope. By doing that I was able to prove to myself and others, that there was an extra glitch on one of the control lines going to the cross-point switch.
While I have not done any project management as a consultant, I've certainly done my share of it as an employee at Grass Valley Group and at Watkins-Johnson. I do enjoy working with people and coordinating events so they take place at the right time. I have taken several classes in project management and my favorite class was from Integrated Project Systems. They taught everything from setting priorities to putting together a realistic schedule. Well worth the price of admission. I have also been very interested in the subject of management and strategic planning. On project management I recommend a book called The Seven Habits of Highly Effective People by Steven Covey. Covey sets out 7 principles to build a business around. They're very simple and logical he does an excellent job of explaining his thinking. I also recommend a book called The Customer Driven Company by Richard Whiteley on the subject of running a successful business. Whiteley says quite simply that inside an organization, we are all customers to someone else and we should be getting feedback from them to improve the performance of our business.
Since around 2011, I've been working actively on developing my skills as a software engineer. At Adesto I worked on changes to a test chip system GUI that was programmed in Visual Basic. I also learned how to create scripts for statistical data using the R programming language. At HCT, I supported the software engineer by doing research on hardware abstraction layer drivers and ways of integrating our software into the Keil uVision development environment. At a small start-up I worked on a C program using the Arduino IDE for an Espressif ESP8266 WIFI module that measured voltage, temperature and current which was passed over WIFI to other modules in a mesh network. I've taken classes at Sierra College in C++, Java (1&2), Visual Basic (1&2), SQL, Mobile Device Programming using Lua and Corona Labs, Linux and Web Page Design. I'm on schedule for receiving a Computer Science degree in December of 2018. I've taken a R Programming and RTOS class online from Coursera/Johns-Hopkins and a C# course online from edx. I've believe that I've discovered just how much I enjoy being a programmer and learning new ways of programming. I can't really say that I have a favorite language, but I certainly enjoy SQL, C#, Lua, and C/C++ a great deal.
When I worked at Grass Valley Group as an employee, I was involved with testing the software for the Model 200/250 family of production switchers. I learned a great deal about regression testing and the importance of a thorough test. In my readings over the years, I have gotten interested in the subject of how to manage a successful software project. There were a couple of books I came across that were pretty interesting. One was called Peopleware, Software Productivity and Teams by DeMarco and Lister. It was mostly a book on engineering productivity in a high tech environment. The other book was called Constantine on Peopleware by Larry Constantine. This was a series of articles that Constantine had written for a couple of different software engineering magazines on managing successful software projects. Both of these books talked extensively about the human factors in running a successful software project.