Skip to content

GreatFET One

GreatFET One

GreatFET One

Status supported
Source code greatfet
Channels 8/4/2/1
Samplerate 40.8/68/102/204MHz max
Min/max voltage 3.3V
Compression No (packing)
Website greatscottgadgets.com

The GreatFET One is a USB connected versatile tool for USB analysis and other hardware research and also provides a mode of being an 8 channel logic analyser with a 40.8MHz samplerate and no local sample memory. Higher samplerates are available when the number of enabled channels gets reduced (up to 204MHz for 1 channel). Data acquisition employs the SGPIO machinery of the NXP LPC4330 microcontroller. The GreatFET's firmware is also available for other boards which use the same MCU. The device firmware is known for its efficient use of USB communication, streaming capabilities to the host are similar to HackRF One. Transfer rates are a little shy of 42MB/s. The greatfet sigrok driver supports the operation of these devices in logic analyzer mode.

The GreatFET device is exclusively used in continuous mode where sample data gets streamed to the host while the acquisition is executing. With 8 channels enabled, sample rates up to 40.8 MHz are supported. When fewer channels are enabled then these can get sampled at higher rates. The device firmware always captures channel counts that are a power of two. In other words when three channels are enabled, then data is captured for four channels. This is important to keep in mind, as the product of samplerate and channel count must not exceed the USB2.0 bandwidth. The limit is near 336Mbps (depends on the host computer's capabilities). Sample data is "densely packed" but not compressed during USB transmission.

Device firmware can optionally "shift pins" such that sampling e.g. channels 8 through 15 will only transmit one byte per sample from the device to the host, omitting the lower byte in the transfer which would carry no user perceivable data, thus working as efficiently and allowing as high a samplerate as sampling channel 0 through 7 would. Pin shift counts other than 8 are not usefully applicable. The sigrok driver supports this feature by responding to the set of enabled and disabled channels according to users' specs.

Getting more than 8 channels at the same time is currently not supported by the device's firmware due to the MCU's hardware constraints, and was prepared but is untested in the sigrok driver.

"Seemingly odd" samplerates are the result of an unusual (rather: unexpected to users) base clock and integer dividers. Users can specify arbitrary desired samplerates, the device firmware will determine the minimum samplerate which satisfies this user request.

channels count max samplerate comment
16-9 20.4MHz currently unsupported
8-5 40.8 MHz
4-3 68 MHz
2 102 MHz
1 204 MHz

Using more than 8 channels requires coordination of multiple pin banks (and their SGPIO activity) within the device firmware, is said to be under construction, and currently is not supported by sigrok (parts were prepared but are untested, it's assumed that more byte shuffling is involved which is yet to get determined and implemented). If you are aware of requirements for this feature, and a working combination of the involved components, please report them so that the sigrok device driver could get adjusted to support up to 16 channels. It is understood that the use of 9..16 channels will result in a maximum samplerate of 20.4MHz to allow for continuous streaming to the host.

See GreatFET One/Info for more details (USB identification).

Hardware

The GreatFET One is also code named Azalea, and is based on the NXP LPC4330 microcontroller. See the hardware git repo for design documents. It's all open hardware (BSD 3-clause).

"Shields", "HATs", "capes", etc are referred to as neighbours in the GreatFET ecosystem.

  • Foxglove is a level shifting neighbour.
  • Rhododendron sniffs USB (two wires, high samplerates)

Photos

Greatfet Mugshot Greatfet Mugshot