Self-proclaimed schemer, hacker, inventor, entrepreneur, modern-day Renaissance man. I enjoy making things and breaking things. If I break something, I fix it better. Talk is cheap, but conversation is priceless. Ideas are a dime a dozen, but execution is rare - good execution even more so.
The HashFast “Evo” bitcoin miner board showcased the industry’s most powerful bitcoin ASIC, the “Golden Nonce.” The board was completely controlled by an onboard AVR32 microcontroller, which communicated with the ASIC via serial. The microcontroller also controlled the ATX power supply to the board and the phase-voltage controller. At peak performance the ASIC could draw 600W at the wall. The microcontroller also communicated with mining software on a host computer over USB.
The microcontroller implemented the concept of a “Global Work Queue” which took jobs from the host and managed the timing and distribution of jobs on the ASIC. Each ASIC had 4 die each with 96 cores. Each core could cover the entire 2^32-bit nonce space in just over 1 second. This would equate to thousands of packets a second being exchanged between the ASIC and microcontroller and between the microcontroller and the host.
As a firmware engineer at HashFast I was tasked with building out and maintaining all functionalities associated with our mining products. Memory-management and critical-path timing were essential to this firmware implementation. I also worked with our system engineer to recommend the best parts to control and maintain. I was also responsible for building testing and diagnostic tools on the host computer, which communicated over USB bulk and USB control channel. These tools were quite extensive and provided insight into how our product was operating under load, inflight jobs, temperatures, debug streams, on-the-fly voltage control and others.
This device is a personal project with some friends in medical school. We are developing a portable device, which takes vital measurements (EMG, EEG, EKG) and transmits them to the user’s mobile phone.
I am the only hardware engineer and have designed the signal amplification and signal processing components, as well as written the firmware for the device. Again the device is designed to be ultra low power all why taking constant measurements, storing them, and later delivering them back to the user’s cell phone via BLE.
The eMote is, to my knowledge, one of the first “Internet of Things” devices. I helped bring this device to production back in 2010. It would take temperature, moisture, radar and other sensor readings and relay them back to a base station. The device runs Microsoft’s .NET MicroFramework, a stripped down version of .NET. This allowed developers to easily develop on our platform in C#. Although our platform developers worked in C#, my work during the porting process and the underlying .NET interpreter were all running on bare metal and written in Assembly and C/C++. The device was originally developed under a DARPA contract and was later sold to academics and hobbyists.
I was one of two firmware engineers on the project. We ported the .NET Microframework to an ARM Cortex-M3 processor. This involved writing HAL (USB, USART, SPI, I2C, ADC, etc.) and PAL (Radio Stack, Mesh Networking, Power Management, Log File System) drivers.
ONE is a social application for iOS and Android that introduces you to people around you. ONE relies on hyperlocation services – that is being able to determine a person’s location to a specific room within a building.
As lead hardware engineer I designed the circuitry, picked parts, used EagleCAD to layout the board, and had the board fabbed. I used a TI CC2540, which had an onboard Bluetooth Low Energy (BLE) radio. The firmware for this product needed to be energy efficient and ultra low power. The board was designed to run for 2 years on a coincell battery. An understanding of the chip’s various power states and the BLE protocol timing guidelines allowed me to achieve this.
I reverse-engineered Apple’s iBeacon protocol in order to interact with our iOS application and also ported the iBeacon protocol to our Android application. I also implemented OTA firmware updated capabilities for the devices and a separate control interface for admin devices to configure and monitor the device.