Skip to content

Commit

Permalink
Merge pull request greatscottgadgets#1215 from greatscottgadgets/h1r9
Browse files Browse the repository at this point in the history
HackRF One r9
  • Loading branch information
mossmann authored Feb 1, 2023
2 parents 6f1cee1 + b1d1fd4 commit 1bbab10
Show file tree
Hide file tree
Showing 30 changed files with 147,803 additions and 38,226 deletions.
Binary file added docs/images/block-diagram-r9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4,059 changes: 4,059 additions & 0 deletions docs/images/block-diagram-r9.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/block-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
346 changes: 183 additions & 163 deletions docs/images/block-diagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/source/hackrf_one.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ Features
* resolution: 8 bits
* interface: High Speed USB (with USB Micro-B connector)
* power supply: USB bus power
* software-controlled antenna port power (max 50 mA at 3.3 V)
* software-controlled antenna port power (max 50 mA at 3.0 to 3.3 V)
* SMA female antenna connector (50 ohms)
* SMA female clock input and output for synchronization
* convenient buttons for programming
* pin headers for expansion
* portable
* open source


31 changes: 21 additions & 10 deletions docs/source/hardware_components.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ Hardware Components

Major parts used in HackRF One:

* `MAX2837 2.3 to 2.7 GHz transceiver <https://www.maximintegrated.com/en/products/comms/wireless-rf/MAX2837.html>`__
* `Datasheet <https://datasheets.maximintegrated.com/en/ds/MAX2837.pdf>`__
* There's also a register map document that Mike received directly from Maxim. Send an email to Mike or submit a support request to Maxim if you want a copy.
* `MAX5864 ADC/DAC <http://www.maxim-ic.com/datasheet/index.mvp/id/3946/t/do>`__
* `Datasheet <http://datasheets.maxim-ic.com/en/ds/MAX5864.pdf>`__
* `MAX2837 2.3 to 2.7 GHz transceiver <https://www.analog.com/en/products/max2837.html>`__
* `Datasheet <https://www.analog.com/media/en/technical-documentation/data-sheets/max2837.pdf>`__
* `MAX2839 2.3 to 2.7 GHz transceiver <https://www.analog.com/en/products/max2839.html>`__
* `Datasheet <https://www.analog.com/media/en/technical-documentation/data-sheets/max2839.pdf>`__
* substitution for MAX2837.
* `MAX5864 ADC/DAC <https://www.analog.com/en/products/max5864.html>`__
* `Datasheet <https://www.analog.com/media/en/technical-documentation/data-sheets/MAX5864.pdf>`__
* `Si5351 clock generator <http://www.silabs.com/products/clocksoscillators/clock-generator/Pages/lvcmos-clocks-5-outputs.aspx>`__
* `AN619: Manually Generating an Si5351 Register Map <http://www.silabs.com/Support%20Documents/TechnicalDocs/AN619.pdf>`__
* `Datasheet <http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351.pdf>`__ - this document is a mess of typos, and best used in conjunction with AN619, which has its own typos. Usually, you can reconcile what's true by comparison and a bit of thought.
* `Datasheet <http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351.pdf>`__ - see AN619 for the complete register map.
* `Other Documentation <http://www.silabs.com/products/clocksoscillators/clock-generators-and-buffers/Pages/clock+vcxo.aspx>`__ - includes application notes, user guides, and white papers.
* CoolRunner-II CPLD
* `LPC43xx ARM Cortex-M4 microcontroller <http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-arm-cortex-m-mcus/lpc-dual-core-cortex-m0-m4f/lpc4300:MC_1403790133078>`__
Expand All @@ -26,10 +28,19 @@ Major parts used in HackRF One:
* `W25Q80BV 8M-bit Flash <https://www.winbond.com/resource-files/w25q80bv%20revk%2020151203.pdf>`__


Block Diagrams
~~~~~~~~~~~~~~


Block Diagram
~~~~~~~~~~~~~
HackRF One r1-r8 Block Diagram
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: ../images/block-diagram.png
:align: center
:align: center

|
HackRF One r9 Block Diagram
^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: ../images/block-diagram-r9.png
:align: center
2 changes: 1 addition & 1 deletion docs/source/jawbreaker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -556,5 +556,5 @@ Jawbreaker was the beta platform that preceded HackRF One. HackRF One incorporat
* Real-Time Clock: An RTC is installed on HackRF One.
* LPC4320 microcontroller: Jawbreaker had an LPC4330.
* RF shield footprint: An optional shield may be installed over HackRF One's RF section.
* Antenna port power: HackRF One can supply up to 50 mA at 3.3 V DC on the antenna port for compatibility with powered antennas and other low power amplifiers.
* Antenna port power: HackRF One can supply up to 50 mA at 3.0 to 3.3 V DC on the antenna port for compatibility with powered antennas and other low power amplifiers.
* Enhanced frequency range: The RF performance of HackRF One is better than Jawbreaker, particularly at the high and low ends of the operating frequency range. HackRF One can operate at 1 MHz or even lower.
13 changes: 10 additions & 3 deletions docs/source/list_of_hardware_revisions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,26 @@ This experimental revision has not been manufactured.
HackRF One r6
~~~~~~~~~~~~~

SKY13350 RF switches were replaced by SKY13453 due to component availability. Although the SKY13453 uses simplified control logic, it did not require a firmware modification. Manufacturing year: 2020
SKY13350 RF switches were replaced by SKY13453. Although the SKY13453 uses simplified control logic, it did not require a firmware modification. Hardware revision detection pin straps were added. Manufacturing year: 2020

HackRF One r7
~~~~~~~~~~~~~

SKY13453 RF switches were reverted to SKY13350 due to component availability. USB VBUS detection resistor values were changed to better protect the LPC4320. Manufacturing year: 2021
SKY13453 RF switches were reverted to SKY13350. USB VBUS detection resistor values were updated. Manufacturing year: 2021

HackRF One r8
~~~~~~~~~~~~~

SKY13350 RF switches were replaced by SKY13453 due to component availability. Manufacturing years: 2021–2022
SKY13350 RF switches were replaced by SKY13453. Manufacturing years: 2021–2022

HackRF One r9
~~~~~~~~~~~~~

MAX2837 was replaced by MAX2839. Si5351C was replaced by Si5351A with additional clock distribution. A series diode was added to the antenna port power supply. Manufacturing year: 2023

Hardware Revision Identification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

HackRF Ones manufactured by Great Scott Gadgets have the revision number printed on the PCB top silkscreen layer near the MAX5864 (U18).

Starting with HackRF One r6, hardware revisions are detected by firmware and reported by ``hackrf_info``.
15 changes: 6 additions & 9 deletions docs/source/software_support.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,19 @@ HackRF Tools

In addition to third party tools that support HackRF, we provide some commandline tools for interacting with HackRF. For information on how to use each tool look at the help information provided (e.g. ``hackrf_transfer -h``) or the `manual pages <http://manpages.ubuntu.com/manpages/utopic/man1/hackrf_info.1.html>`__.

The first two tools (``hackrf_info`` and ``hackrf_transfer``) should cover most usage. The remaining tools are provided for debugging and general interest; beware, they have the potential to damage HackRF if used incorrectly.

* **hackrf_info** Read device information from HackRF such as serial number and firmware version.

* **hackrf_transfer** Send and receive signals using HackRF. Input/output can be 8bit signed quadrature files or wav files.

* **hackrf_max2837** Read and write registers in the Maxim 2837 transceiver chip. For most tx/rx purposes hackrf_transfer or other tools will take care of this for you.
* **hackrf_transfer** Send and receive signals using HackRF. Input/output files are 8-bit signed quadrature samples.

* **hackrf_rffc5071** Read and write registers in the RFFC5071 mixer chip. As above, this is for curiosity or debugging only, most tools will take care of these settings automatically.
* **hackrf_sweep**, a command-line spectrum analyzer.

* **hackrf_si5351c** Read and write registers in the Silicon Labs Si5351C clock generator chip. This should also be unnecessary for most operation.
* **hackrf_clock** Read and write clock input and output configuration.

* **hackrf_spiflash** A tool to write new firmware to HackRF. This is mostly used for :ref:`Updating Firmware <updating_firmware>`.
* **hackrf_operacake** Configure Opera Cake antenna switch connected to HackRF.

* **hackrf_cpldjtag** A tool to update the CPLD on HackRF. This is needed only when :ref:`Updating Firmware <updating_firmware>` to a version prior to 2021.03.1.
* **hackrf_spiflash** A tool to write new firmware to HackRF. See: :ref:`Updating Firmware <updating_firmware>`.

* **hackrf_debug** Read and write registers and other low-level configuration for debugging.


Handling HackRF data
Expand Down
46 changes: 37 additions & 9 deletions hardware/.gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,51 @@
# kicad backup files
# # KiCad local project settings
*.kicad_prl

# KiCad backup files
*.000
*.bak
*.bck
$savepcb.*
*.kicad_pcb-bak
*.kicad_sch-bak
*.sch-bak
_autosave*
*.zip
\#auto_saved_files\#

# KiCad cache files
# *-cache.lib not ignored, so schematic can be viewed without libraries
fp-info-cache

# gerber and drill files
# KiCad fabrication outputs
*.drl
*.g2
*.g3
*.gbl
*.gtl
*.gbr
*.gbo
*.gbp
*.gbr
*.gbs
*.gts
*.gbr
*.gbo
*.gm1
*.gtl
*.gto
*.gtp
*.drl
*.gts
*.pos
*.rpt


# other kicad generated files
# other KiCad generated files
*.csv
*.svg
*.pdf
*.cmp
*.dxf
*.net
*.ps
*.plt
*.xml

# KiCad Interactive HTML BOM plugin
*.ini
*.html
2 changes: 1 addition & 1 deletion hardware/gsg-kicad-lib
Submodule gsg-kicad-lib updated 44 files
+128 −0 CODE_OF_CONDUCT.md
+4 −4 gsg-modules.pretty/CUI_PJ-102[AB]H.kicad_mod
+14 −14 gsg-modules.pretty/DIP14.kicad_mod
+28 −0 gsg-modules.pretty/DSN1006-2.kicad_mod
+72 −72 gsg-modules.pretty/GREATFET-PROTO-AREA.kicad_mod
+1 −1 gsg-modules.pretty/HEADER-1x1-TESTPROBE.kicad_mod
+1 −1 gsg-modules.pretty/HEADER-1x1.kicad_mod
+3 −3 gsg-modules.pretty/HEADER-1x2-SHORTED.kicad_mod
+2 −2 gsg-modules.pretty/HEADER-1x2.kicad_mod
+20 −20 gsg-modules.pretty/HEADER-1x20-TESTPROBE.kicad_mod
+20 −20 gsg-modules.pretty/HEADER-1x20.kicad_mod
+3 −3 gsg-modules.pretty/HEADER-1x3.kicad_mod
+4 −4 gsg-modules.pretty/HEADER-1x4.kicad_mod
+5 −5 gsg-modules.pretty/HEADER-1x5.kicad_mod
+6 −6 gsg-modules.pretty/HEADER-1x6.kicad_mod
+7 −7 gsg-modules.pretty/HEADER-1x7.kicad_mod
+8 −8 gsg-modules.pretty/HEADER-1x8.kicad_mod
+20 −20 gsg-modules.pretty/HEADER-2x10.kicad_mod
+22 −22 gsg-modules.pretty/HEADER-2x11.kicad_mod
+24 −24 gsg-modules.pretty/HEADER-2x12.kicad_mod
+26 −26 gsg-modules.pretty/HEADER-2x13.kicad_mod
+32 −32 gsg-modules.pretty/HEADER-2x16.kicad_mod
+4 −4 gsg-modules.pretty/HEADER-2x2.kicad_mod
+40 −40 gsg-modules.pretty/HEADER-2x20-LC.kicad_mod
+40 −40 gsg-modules.pretty/HEADER-2x20-REVERSE.kicad_mod
+40 −40 gsg-modules.pretty/HEADER-2x20-TESTPROBE.kicad_mod
+40 −40 gsg-modules.pretty/HEADER-2x20.kicad_mod
+6 −6 gsg-modules.pretty/HEADER-2x3.kicad_mod
+8 −8 gsg-modules.pretty/HEADER-2x4-TESTPROBE.kicad_mod
+8 −8 gsg-modules.pretty/HEADER-2x4.kicad_mod
+10 −10 gsg-modules.pretty/HEADER-2x5.kicad_mod
+12 −12 gsg-modules.pretty/HEADER-2x6.kicad_mod
+14 −14 gsg-modules.pretty/HEADER-2x7.kicad_mod
+16 −16 gsg-modules.pretty/HEADER-2x8.kicad_mod
+18 −18 gsg-modules.pretty/HEADER-2x9.kicad_mod
+4 −4 gsg-modules.pretty/OH4.kicad_mod
+139 −0 gsg-modules.pretty/QFN-56-1EP_8x8mm_P0.5mm_EP6.5x6.5mm_ThermalVias.kicad_mod
+10 −10 gsg-modules.pretty/RJ45-RJHSE-5380.kicad_mod
+4 −4 gsg-modules.pretty/SKY13322-375LF.kicad_mod
+24 −24 gsg-modules.pretty/SMA-73251-2120.kicad_mod
+5 −5 gsg-modules.pretty/SMA-VERTICAL.kicad_mod
+40 −0 gsg-modules.pretty/XQFN10.kicad_mod
+36 −0 gsg-modules.pretty/XSON6.kicad_mod
+68 −0 gsg-symbols.lib
64 changes: 64 additions & 0 deletions hardware/hackrf-one/74AUP2G58GU.kicad_sym
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
(symbol "74AUP2G58GU" (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "74AUP2G58GU" (id 1) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "74AUP2G58GU_0_1"
(rectangle (start -3.81 6.35) (end 3.81 -6.35)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "74AUP2G58GU_1_1"
(pin input line (at -6.35 1.27 0) (length 2.54)
(name "1B" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -2.54 8.89 270) (length 2.54)
(name "1A" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin input line (at -6.35 -1.27 0) (length 2.54)
(name "1C" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin output line (at -2.54 -8.89 90) (length 2.54)
(name "2Y" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -8.89 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin input line (at 2.54 -8.89 90) (length 2.54)
(name "2A" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at 6.35 -1.27 180) (length 2.54)
(name "2B" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin input line (at 6.35 1.27 180) (length 2.54)
(name "2C" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin output line (at 2.54 8.89 270) (length 2.54)
(name "1Y" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 8.89 270) (length 2.54)
(name "VCC" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)
2 changes: 1 addition & 1 deletion hardware/hackrf-one/LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2012-2020, Great Scott Gadgets <[email protected]>
Copyright (c) 2012-2022, Great Scott Gadgets <[email protected]>

CERN Open Hardware Licence Version 2 - Permissive

Expand Down
46 changes: 13 additions & 33 deletions hardware/hackrf-one/README
Original file line number Diff line number Diff line change
@@ -1,23 +1,3 @@
Copyright 2012, 2013, 2014 Michael Ossmann

These files are part of HackRF.

This is a free hardware design; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

This design is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this design; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
Boston, MA 02110-1301, USA.


HackRF One is a wideband software radio transceiver with a USB interface.

hardware notes:
Expand All @@ -31,18 +11,18 @@ order of copper layers:
Copper 3: C3
Copper 4: C4B (back)

PCB description: 4 layer PCB 0.062 in
Copper 1 0.5 oz foil plated to approximately 0.0017 in
Dielectric 1-2 0.0119 in
Copper 2 1 oz foil (0.0014 in)
Dielectric 2-3 0.0280 in
Copper 3 1 oz foil (0.0014 in)
Dielectric 3-4 0.0119 in
Copper 4 0.5 oz foil plated to approximately 0.0017 in

FR4 or similar substrate with Er=4.5 (+/- 0.1)
required impedance: 50 ohm (+/- 5%) 20 mil microstrip impedance
PCB description: 4 layer PCB 1.6 mm
Copper 1 0.035 mm
Prepreg 1-2 0.2104 mm
Copper 2 0.0152 mm
Core 2-3 1.065 mm
Copper 3 0.0152 mm
Prepreg 3-4 0.2104 mm
Copper 4 0.035 mm

7628 prepreg with Er=4.6 (+/- 0.1)
required impedance: 50 ohm (+/- 5%) 11.55 mil microstrip impedance
double side solder mask green
single side silkscreen white
6 mil min trace width and
6 mil min isolation
5 mil min trace width and
5 mil min isolation
Loading

0 comments on commit 1bbab10

Please sign in to comment.