From 4c050ed5433db22f5c90c01974444e49d23b05f1 Mon Sep 17 00:00:00 2001 From: Will Code Date: Thu, 27 Sep 2012 15:30:42 -0400 Subject: [PATCH 1/5] Revert "minor capacitor correction for 1V8 regulation" This reverts commit 9c23f65fea2b52ad3146d1fdfcd9ebf10ce4feb4. --- hardware/jawbreaker/baseband.sch | 4 ++-- hardware/jawbreaker/frontend.sch | 4 ++-- hardware/jawbreaker/jawbreaker-cache.lib | 2 +- hardware/jawbreaker/jawbreaker.sch | 4 ++-- hardware/jawbreaker/mcu.sch | 28 ++++++++++++------------ 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/hardware/jawbreaker/baseband.sch b/hardware/jawbreaker/baseband.sch index 57ca0b69..3fa2cb98 100644 --- a/hardware/jawbreaker/baseband.sch +++ b/hardware/jawbreaker/baseband.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sat Sep 22 23:30:21 2012 +EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 3 4 Title "jawbreaker baseband" -Date "23 sep 2012" +Date "19 sep 2012" Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" diff --git a/hardware/jawbreaker/frontend.sch b/hardware/jawbreaker/frontend.sch index 7f22adc9..50516750 100644 --- a/hardware/jawbreaker/frontend.sch +++ b/hardware/jawbreaker/frontend.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sat Sep 22 23:30:21 2012 +EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 2 4 Title "" -Date "23 sep 2012" +Date "19 sep 2012" Rev "" Comp "" Comment1 "" diff --git a/hardware/jawbreaker/jawbreaker-cache.lib b/hardware/jawbreaker/jawbreaker-cache.lib index f92880d0..b6835020 100644 --- a/hardware/jawbreaker/jawbreaker-cache.lib +++ b/hardware/jawbreaker/jawbreaker-cache.lib @@ -1,4 +1,4 @@ -EESchema-LIBRARY Version 2.3 Date: Sat Sep 22 23:30:21 2012 +EESchema-LIBRARY Version 2.3 Date: Wed Sep 19 09:57:14 2012 #encoding utf-8 # # +1.8V diff --git a/hardware/jawbreaker/jawbreaker.sch b/hardware/jawbreaker/jawbreaker.sch index 40f86ae0..605bfdb6 100644 --- a/hardware/jawbreaker/jawbreaker.sch +++ b/hardware/jawbreaker/jawbreaker.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sat Sep 22 23:30:21 2012 +EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 1 4 Title "jawbreaker" -Date "23 sep 2012" +Date "19 sep 2012" Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" diff --git a/hardware/jawbreaker/mcu.sch b/hardware/jawbreaker/mcu.sch index d5150558..3a26c2e2 100644 --- a/hardware/jawbreaker/mcu.sch +++ b/hardware/jawbreaker/mcu.sch @@ -1,4 +1,4 @@ -EESchema Schematic File Version 2 date Sat Sep 22 23:30:21 2012 +EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 LIBS:power LIBS:device LIBS:transistors @@ -37,7 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 4 4 Title "jawbreaker mcu/usb/power" -Date "23 sep 2012" +Date "19 sep 2012" Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" @@ -45,18 +45,6 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr -$Comp -L C C125 -U 1 1 505E9E4C -P 14300 900 -F 0 "C125" H 14350 1000 50 0000 L CNN -F 1 "33pF" H 14350 800 50 0000 L CNN -F 4 "Murata" H 17450 700 60 0001 C CNN "Manufacturer" -F 5 "GRM1555C1H330JZ01D" H 17450 700 60 0001 C CNN "Part Number" -F 6 "CAP CER 33PF 50V 5% NP0 0402" H 17450 700 60 0001 C CNN "Description" - 1 14300 900 - 0 1 1 0 -$EndComp Wire Wire Line 9700 5300 10400 5300 Wire Wire Line @@ -2149,6 +2137,18 @@ F 6 "RES 39 OHM 1/16W 5% 0402 SMD" H 9800 9000 60 0001 C CNN "Description" 0 -1 -1 0 $EndComp $Comp +L C C125 +U 1 1 503F91B4 +P 14300 900 +F 0 "C125" H 14350 1000 50 0000 L CNN +F 1 "22pF" H 14350 800 50 0000 L CNN +F 4 "Murata" H 14300 900 60 0001 C CNN "Manufacturer" +F 5 "GRM1555C1H220JA01D" H 14300 900 60 0001 C CNN "Part Number" +F 6 "CAP CER 22PF 50V 5% NP0 0402" H 14300 900 60 0001 C CNN "Description" + 1 14300 900 + 0 1 1 0 +$EndComp +$Comp L R R46 U 1 1 503F8429 P 13200 650 From 4c9df75d844e9b9bdd93284aa9d012bd454fc30d Mon Sep 17 00:00:00 2001 From: Will Code Date: Sat, 13 Oct 2012 16:27:02 -0400 Subject: [PATCH 2/5] max2837: fix a couple math errors in the def file --- firmware/common/max2837_regs.def | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/common/max2837_regs.def b/firmware/common/max2837_regs.def index 42dbec34..85dd71e6 100644 --- a/firmware/common/max2837_regs.def +++ b/firmware/common/max2837_regs.def @@ -135,7 +135,7 @@ __MREG__(MAX2837_LPF_MODE_SEL,6,9,1) // set to enable mode in reg 2 ModeCtrl __MREG__(MAX2837_LNAgain_SPI_EN,8,0,1) // set to override pin control of LNA __MREG__(MAX2837_VGAgain_SPI_EN,8,1,1) // set to override pin control of VGA __MREG__(MAX2837_EN_Bias_Trim,8,2,1) // route bias current to bondpad -__MREG__(MAX2837_BIAS_TRIM_SPI,8,7,3) // down=00000, up=11111, nom=10000 +__MREG__(MAX2837_BIAS_TRIM_SPI,8,7,5) // down=00000, up=11111, nom=10000 __MREG__(MAX2837_BIAS_TRIM_CNTRL,8,8,1) // enable BIAS_TRIM_SPI value __MREG__(MAX2837_RX_IQERR_SPI_EN,8,9,1) // ??? @@ -388,7 +388,7 @@ __MREG__(MAX2837_TXVGA_GAIN,29,9,6) // 0 = min atten, 63 = max atten /* REG 30 */ __MREG__(MAX2837_TXLO_IQ,30,4,5) -__MREG__(MAX2837_TXLO_IQ_SPI_EN,30,5,5) +__MREG__(MAX2837_TXLO_IQ_SPI_EN,30,5,1) __MREG__(MAX2837_TXLO_BUFF_BIAS,30,7,2) #define MAX2837_TXLO_BUFF_BIAS_1_0mA 0 #define MAX2837_TXLO_BUFF_BIAS_1_5mA 1 From 283715df0c471f3fb16e6f240cacd1e36300b4ab Mon Sep 17 00:00:00 2001 From: Will Code Date: Sat, 13 Oct 2012 20:51:26 -0400 Subject: [PATCH 3/5] Update files that got out of sync somehow. --- hardware/jawbreaker/baseband.sch | 8 -------- hardware/jawbreaker/frontend.sch | 9 --------- hardware/jawbreaker/jawbreaker-cache.lib | 4 ---- hardware/jawbreaker/jawbreaker.sch | 8 -------- hardware/jawbreaker/mcu.sch | 23 ----------------------- 5 files changed, 52 deletions(-) diff --git a/hardware/jawbreaker/baseband.sch b/hardware/jawbreaker/baseband.sch index 7734b22b..208c17c7 100644 --- a/hardware/jawbreaker/baseband.sch +++ b/hardware/jawbreaker/baseband.sch @@ -1,8 +1,4 @@ -<<<<<<< HEAD -EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 -======= EESchema Schematic File Version 2 date Tue Oct 2 15:08:35 2012 ->>>>>>> upstream/master LIBS:power LIBS:device LIBS:transistors @@ -41,11 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 3 4 Title "jawbreaker baseband" -<<<<<<< HEAD -Date "19 sep 2012" -======= Date "2 oct 2012" ->>>>>>> upstream/master Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" diff --git a/hardware/jawbreaker/frontend.sch b/hardware/jawbreaker/frontend.sch index 90ae547c..568a6dc2 100644 --- a/hardware/jawbreaker/frontend.sch +++ b/hardware/jawbreaker/frontend.sch @@ -1,8 +1,4 @@ -<<<<<<< HEAD -EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 -======= EESchema Schematic File Version 2 date Tue Oct 2 15:08:35 2012 ->>>>>>> upstream/master LIBS:power LIBS:device LIBS:transistors @@ -40,13 +36,8 @@ EELAYER END $Descr User 17000 11000 encoding utf-8 Sheet 2 4 -<<<<<<< HEAD -Title "" -Date "19 sep 2012" -======= Title "jawbreaker frontend" Date "2 oct 2012" ->>>>>>> upstream/master Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" diff --git a/hardware/jawbreaker/jawbreaker-cache.lib b/hardware/jawbreaker/jawbreaker-cache.lib index 42bfbf71..fee43e49 100644 --- a/hardware/jawbreaker/jawbreaker-cache.lib +++ b/hardware/jawbreaker/jawbreaker-cache.lib @@ -1,8 +1,4 @@ -<<<<<<< HEAD -EESchema-LIBRARY Version 2.3 Date: Wed Sep 19 09:57:14 2012 -======= EESchema-LIBRARY Version 2.3 Date: Tue Oct 2 15:08:35 2012 ->>>>>>> upstream/master #encoding utf-8 # # +1.8V diff --git a/hardware/jawbreaker/jawbreaker.sch b/hardware/jawbreaker/jawbreaker.sch index 44ed7607..b4f28787 100644 --- a/hardware/jawbreaker/jawbreaker.sch +++ b/hardware/jawbreaker/jawbreaker.sch @@ -1,8 +1,4 @@ -<<<<<<< HEAD -EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 -======= EESchema Schematic File Version 2 date Tue Oct 2 15:08:35 2012 ->>>>>>> upstream/master LIBS:power LIBS:device LIBS:transistors @@ -41,11 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 1 4 Title "jawbreaker" -<<<<<<< HEAD -Date "19 sep 2012" -======= Date "2 oct 2012" ->>>>>>> upstream/master Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" diff --git a/hardware/jawbreaker/mcu.sch b/hardware/jawbreaker/mcu.sch index 81fd81a8..42bdcbb2 100644 --- a/hardware/jawbreaker/mcu.sch +++ b/hardware/jawbreaker/mcu.sch @@ -1,8 +1,4 @@ -<<<<<<< HEAD -EESchema Schematic File Version 2 date Wed Sep 19 09:57:14 2012 -======= EESchema Schematic File Version 2 date Tue Oct 2 15:08:35 2012 ->>>>>>> upstream/master LIBS:power LIBS:device LIBS:transistors @@ -41,11 +37,7 @@ $Descr User 17000 11000 encoding utf-8 Sheet 4 4 Title "jawbreaker mcu/usb/power" -<<<<<<< HEAD -Date "19 sep 2012" -======= Date "2 oct 2012" ->>>>>>> upstream/master Rev "" Comp "Copyright 2012 Michael Ossmann" Comment1 "License: GPL v2" @@ -53,8 +45,6 @@ Comment2 "" Comment3 "" Comment4 "" $EndDescr -<<<<<<< HEAD -======= $Comp L R R65 U 1 1 506B55A7 @@ -92,7 +82,6 @@ F 6 "CAP CER 33PF 50V 5% NP0 0402" H 17450 700 60 0001 C CNN "Description" 1 14300 900 0 1 1 0 $EndComp ->>>>>>> upstream/master Wire Wire Line 9700 5300 10400 5300 Wire Wire Line @@ -2185,18 +2174,6 @@ F 6 "RES 39 OHM 1/16W 5% 0402 SMD" H 9800 9000 60 0001 C CNN "Description" 0 -1 -1 0 $EndComp $Comp -L C C125 -U 1 1 503F91B4 -P 14300 900 -F 0 "C125" H 14350 1000 50 0000 L CNN -F 1 "22pF" H 14350 800 50 0000 L CNN -F 4 "Murata" H 14300 900 60 0001 C CNN "Manufacturer" -F 5 "GRM1555C1H220JA01D" H 14300 900 60 0001 C CNN "Part Number" -F 6 "CAP CER 22PF 50V 5% NP0 0402" H 14300 900 60 0001 C CNN "Description" - 1 14300 900 - 0 1 1 0 -$EndComp -$Comp L R R46 U 1 1 503F8429 P 13200 650 From f64e42dbee452b64da5510c30b4a0221a2f4ebff Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Sat, 13 Oct 2012 21:13:56 -0600 Subject: [PATCH 4/5] updated readme photo from lemondrop/jellybean to jawbreaker --- Readme.md | 5 +++-- doc/jawbreaker.jpeg | Bin 0 -> 444816 bytes 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/jawbreaker.jpeg diff --git a/Readme.md b/Readme.md index ea9e9afe..fa6e199a 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,8 @@ This repository contains hardware designs and software for HackRF, a project to produce a low cost, open source software radio platform. -![Lemondrop and Jellybean](https://github.com/wishi/hackrf/raw/master/doc/lemonAndjelly.jpeg) +![Jawbreaker](https://github.com/wishi/hackrf/raw/master/doc/jawbreaker.jpeg) principal author: Michael Ossmann -source repository: https://github.com/mossmann/hackrf + +http://greatscottgadgets.com/hackrf/ diff --git a/doc/jawbreaker.jpeg b/doc/jawbreaker.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6d3a8e78fe6285524fc06ec4a7e5ea910833af28 GIT binary patch literal 444816 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