Commit Graph

464 Commits

Author SHA1 Message Date
Jared Boone
74d6518ea1 Rename AudioModel, AudioView to Analog*. 2015-12-01 20:55:36 -08:00
Jared Boone
c1d59b644d Move baseband configuration to receiver mode classes.
Factor out the terrible switch() and clean up redundant code.
2015-12-01 20:25:57 -08:00
Jared Boone
c0db15f3e5 Replace receiver mode ordinals with enum. 2015-12-01 19:52:48 -08:00
Jared Boone
f15716a06b Move TPMS logging to file into TPMSModel class. 2015-12-01 17:42:52 -08:00
Jared Boone
f49cdfdd99 Refactor digital mode handlers into Model and View classes. 2015-12-01 17:29:54 -08:00
Jared Boone
ec977ccd05 Implement console "\n" -> crlf() behavior. 2015-12-01 17:28:22 -08:00
Jared Boone
32319ddf9f Manchester decoder bounds checking.
Return error symbol if reading past source data.
2015-12-01 16:05:23 -08:00
Jared Boone
8461b0c94e Manchester formatting to next largest length in nibbles.
Prior code insisted on next largest byte, for no good reason.
2015-12-01 15:50:07 -08:00
Jared Boone
c657ee3558 Clean up handling of bool -> int.
C++ standard says false -> 0, true -> 1.
2015-12-01 15:45:59 -08:00
Jared Boone
641b972b3e Type and name clean-up of Manchester formatter. 2015-12-01 15:41:51 -08:00
Jared Boone
7b9ba696e5 Reserve strings length before formatting Manchester data. 2015-12-01 15:36:09 -08:00
Jared Boone
810c65dd9c Return Manchester formatted output in struct. 2015-12-01 15:31:59 -08:00
Jared Boone
d75f601b54 Manchester decoder into separate class.
Now operates directly on data, doesn't make a new pair of data/error bitsets.
2015-12-01 12:05:42 -08:00
Jared Boone
426295b93e Remove unnecessary Manchester decode operation. 2015-12-01 11:50:29 -08:00
Jared Boone
82ff45860e Add basic ERT (OOK) utility meter reception.
Extracted the Manchester formatting function for use in ERT, now also returns an indication of bits in error.
2015-12-01 11:24:48 -08:00
Jared Boone
0c36a74351 Add SD card status view to receiver UI. 2015-12-01 10:45:34 -08:00
Jared Boone
c70d95dcbe Remove SDCardStatusMessage, replace with Signal, extract to separate files. 2015-12-01 10:38:35 -08:00
Jared Boone
600295f0db Add Signal for callbacks within a process (code executing on one core). 2015-12-01 10:27:46 -08:00
Jared Boone
42104d217a Broaden SD card status detail in message. 2015-11-29 15:50:58 -08:00
Jared Boone
5928086fd9 Simplify SD card mount status code. 2015-11-29 15:37:24 -08:00
Jared Boone
77199fb3dd Add sdcDisconnect() to avoid HackRF mode entry crash if SD card is connected. 2015-11-13 10:55:52 -08:00
Jared Boone
6f09cf21f8 Move sdcStop() call to have symmetry with sdcStart(). 2015-11-13 10:55:08 -08:00
Jared Boone
0a9da7a1d3 Store tuned frequency and modulation characteristics in TPMS log. 2015-11-11 11:56:50 -08:00
Jared Boone
8e4e33f74e Don't show TPMS Manchester errors on LCD, truncate data to not wrap. 2015-11-11 11:56:20 -08:00
Jared Boone
19f352fa13 Log TPMS Manchester encoding errors. 2015-11-11 11:19:17 -08:00
Jared Boone
db416fd670 Basic TPMS logging to a SD card file. 2015-11-10 15:31:46 -08:00
Jared Boone
ed585d2c15 Enable FatFs string functions. 2015-11-10 15:30:43 -08:00
Jared Boone
987ea3555d SD card detection and filesystem mounting. 2015-11-10 15:24:42 -08:00
Jared Boone
9f6c495fef Add TPMS initial demodulator implementation.
Right now, 2FSK, 19200 baud, +/-38400Hz deviation. No effort is made to check CRC/checksums or decode packets.
2015-11-10 15:19:56 -08:00
Jared Boone
791b2a9762 Remove now-unused FSKConfiguration message. 2015-11-10 15:07:20 -08:00
Jared Boone
981c2fbfbd Complete FSKProcessor's trip to being AISProcessor. 2015-11-10 15:04:38 -08:00
Jared Boone
47a3ffb15a Insulate ui::Context a bit from its clients.
Add accessor methods.
2015-11-09 11:56:40 -08:00
Jared Boone
9e694ce836 AIS decoding and really bad UI.
The decoder needs a serious refactoring/decoupling.
The UI just dumps bits of the received packets into a console window, whcih scrolls too quickly in an AIS-dense area with a good antenna.
2015-11-06 13:53:04 -08:00
Jared Boone
be94c9fa9b Switching between waterfall and console mode.
Also remove an unused Console constructor.
2015-11-06 09:40:03 -08:00
Jared Boone
d0f35cf89d Rework spectrum/console UI clearing and resetting. 2015-11-06 09:40:03 -08:00
Jared Boone
f82fd1f8d7 Tease apart utility.hpp, other header dependencies.
Trying to get a host-testable FSK demodulator, and finding a lot of M4- and ChibiOS-specific code is getting included. Boo.
2015-11-06 09:40:03 -08:00
Jared Boone
57db6a6367 Ignore more initial bits of AIS training sequence. 2015-11-06 09:40:01 -08:00
Jared Boone
37b1d7cf2f Remove payload_length from PacketBuilder, etc. 2015-11-06 09:40:01 -08:00
Jared Boone
6499de39bf Shorten AIS packet to expected data + FCS length. 2015-11-06 09:40:00 -08:00
Jared Boone
bd76f0e13b Note to try different -mcpu= for LPC43xx Cortex-M0. 2015-11-06 09:40:00 -08:00
Jared Boone
e9f28f9ef3 Provide configuration of symbol unstuffing. 2015-11-06 09:40:00 -08:00
Jared Boone
31ff13f1c0 Un-const Message in message handler interfaces.
I want to modify in place the messages that are received. Naughty, but oh well.
2015-11-06 09:39:59 -08:00
Jared Boone
5469a3a31d Get ui::Console to a working state. 2015-11-06 09:39:59 -08:00
Jared Boone
8f7e26b5c1 Break out BasebandStatsView, add main, RSSI threads. 2015-10-14 10:59:32 -07:00
Jared Boone
aa733b1b61 Remove FSK from receiver menu. It doesn't do anything (yet). 2015-09-02 18:55:00 -07:00
Jared Boone
f91f17b9fb Increase touch sensitivity a bit. 2015-09-02 18:48:51 -07:00
Jared Boone
9a3454d695 Touch code cleanup, stop scanning when no touch.
No need to change voltages on touch panel when no touch is detected. This should reduce noise a bit.
2015-09-02 18:48:38 -07:00
Jared Boone
f1ca3fe5bb Switch RFFC5072, MAX2837 back to 40MHz reference.
Turns out the MAX2837 can't tune the necessary range when given a 50MHz reference. Oops.
2015-09-02 17:45:19 -07:00
Jared Boone
687e627dae Mechanism to clear waterfall when switching modulations. 2015-09-01 21:04:27 -07:00
Jared Boone
d4c85bd786 Move receiver "back" button to separate row. 2015-09-01 20:38:59 -07:00
Jared Boone
24e398ca62 Add HackRF mode explanation text. 2015-09-01 20:23:11 -07:00
Jared Boone
b13081696d Simplify MessageQueue pop() usage. 2015-08-27 14:35:17 -07:00
Jared Boone
d8b3b4cb6b Check queue empty only once when reading messages.
There was a second is_empty() call hidden in the pop() call, so the while(condition) was redundant.
2015-08-27 14:27:29 -07:00
Jared Boone
5d9079f87f Stop streaming when changing baseband configuration.
Without, the baseband would get confused.
2015-08-27 14:07:15 -07:00
Jared Boone
e751e10e45 Add wideband spectrum processor. 2015-08-27 13:57:31 -07:00
Jared Boone
4974774f82 Simplify PLL math when correcting for PPM. 2015-08-25 17:56:03 -07:00
Jared Boone
98773cb62a Make GIT_REVISION value available within code.
Addresses issue #59.
No idea what it'll do if the commit is also tagged as a release...
2015-08-25 16:33:52 -07:00
Jared Boone
8f326e2d8e Use PPB correction to adjust clock generator XTAL PLLA frequency.
Addresses issue #40.
2015-08-24 12:11:33 -07:00
Jared Boone
fe7dcdc613 Function to adjust clock generator XTAL PLL frequency.
Needed to switch PLLA to operate in fractional mode.
2015-08-24 12:09:11 -07:00
Jared Boone
11561659b4 Reset the M0 after the M4 is running HackRF firmware. 2015-08-20 20:26:36 -07:00
Jared Boone
690c3c98db Add Shutdown message, plumbing to send and handle. 2015-08-20 18:03:49 -07:00
Jared Boone
2efbd337bd Provide a way to exit application event loop. 2015-08-20 17:56:47 -07:00
Jared Boone
1c3e45917c Rework to make use of declared memory map regions. 2015-08-20 17:11:08 -07:00
Jared Boone
4126f1ab1f Change IPC to exchange data, not pointers. 2015-08-20 13:13:12 -07:00
Jared Boone
f99016d78f Tweak cast to C++ style. 2015-08-15 15:40:55 -07:00
Clayton Smith
25c2e612c0 Fix a narrowing conversion warning. 2015-08-15 17:56:30 -04:00
Jared Boone
f2cabadf60 Review application initialization order.
Group related things together.
2015-08-14 22:28:28 -07:00
Jared Boone
49b91d9c5d Move event loop into EventDispatcher. 2015-08-14 22:01:20 -07:00
Jared Boone
d5ebb9ef1e Remove more dead code and comments. 2015-08-14 21:58:54 -07:00
Jared Boone
aa801ada60 Move code comments to project Wiki. 2015-08-14 21:54:03 -07:00
Jared Boone
b1a4418f06 Push more widget painting code into ui::Painter
Hide knowledge of damage tracking strategy.
2015-08-14 21:36:51 -07:00
Jared Boone
2ebb41c0e6 Remove dead, commented code. 2015-08-14 21:35:48 -07:00
Jared Boone
872c998ff1 Move widget tree painting to ui::Painter.
Still doesn't seem like the right place, but better than the event dispatcher!
2015-08-14 21:27:46 -07:00
Jared Boone
a9bb7c96e5 Move UI dirty tracking out of application main.cpp. 2015-08-14 21:17:23 -07:00
Jared Boone
fa465c14c4 Extract RTC interrupt handler into separate files. 2015-08-14 20:57:40 -07:00
Jared Boone
32312a6cfb Can't use context() in ui::Widget constructor, move use elsewhere.
TODO: Seems like a design flaw to me... Either eliminate need for context(), or pass into constructors.
2015-08-14 17:52:29 -07:00
Jared Boone
a7226820d0 Hide implementation of MessageHandlerMap. 2015-08-14 17:31:23 -07:00
Jared Boone
2aa8ae0d1f Move FSKPacket message handler to ReceiverView. 2015-08-14 16:46:32 -07:00
Jared Boone
c44357a16a Remove dead, commented-out code. 2015-08-14 16:38:10 -07:00
Jared Boone
02aab9b4e2 Application main() refactoring to group relevant bits. 2015-08-14 15:52:11 -07:00
Jared Boone
1713c82841 Move ChibiOS init comments into Wiki. 2015-08-14 12:23:49 -07:00
Jared Boone
d855336985 Persist tuned frequency.
w00t!
2015-08-04 10:31:03 -07:00
Jared Boone
45d26abf10 Use correct memory region for persistent storage.
Turns out 0x10088000 - 0x10089fff is not the right place. It's 0x40041000, and is only 256 bytes!
Move PPM to correct place, change representation to PPB for finer control.
Reset PPB value to initial value if read value out of bounds.
Clip PPB value on write to permitted bounds.
Contributes to resolution of issue #11.
2015-08-04 10:03:18 -07:00
Jared Boone
985cbb874c Change default receiver frequency.
Remove comments.
2015-08-02 09:38:49 -07:00
Jared Boone
ddcb705a1e Default LNA to off. 2015-08-02 09:37:42 -07:00
Jared Boone
b70f1d9506 Move RSSI/baseband/audio bars to receiver mode.
Addresses issue #38.
Side effects: more room in receiver for fields and data. More room for global status indications in full bar of SystemStatusView.
2015-08-01 18:07:09 -07:00
Jared Boone
30d249df26 Remove dead code. 2015-08-01 15:20:44 -07:00
Jared Boone
e6a3cba14e Move HackRF firmware launch out of portapack::shutdown 2015-08-01 14:43:48 -07:00
Jared Boone
96babc3e84 Shut down LCD during PortaPack shutdown. 2015-08-01 14:40:05 -07:00
Jared Boone
b5802aadda Clean up HackRF firmware mode message. 2015-08-01 14:32:22 -07:00
Jared Boone
65d5f68bfb Move LCD display object to portapack namespace.
Globals are bad... Except in embedded development!
2015-08-01 14:31:51 -07:00
Jared Boone
fecbb7205e Menu item to launch HackRF firmware. 2015-08-01 13:46:15 -07:00
Jared Boone
8797aa9758 Stop audio PLL if shutting down GP_CLKIN clock source. 2015-08-01 13:45:52 -07:00
Jared Boone
bfc73a6675 Move update_peripheral_clocks
Incorrect order of operations would hang execution if switching to IRC.
2015-08-01 13:44:52 -07:00
Jared Boone
c025a2bba2 Code to shut down ClockManager-controlled devices. 2015-08-01 13:43:58 -07:00
Jared Boone
1d16cd8aac Consolidate peripheral declarations. 2015-08-01 13:42:27 -07:00
Jared Boone
b32f5e2239 Generalize method for executing SPI flash image in M4 RAM. 2015-07-30 09:41:33 -07:00
Jared Boone
d4c43044e0 Shuffle binaries in SPI flash image to insert HackRF firmware binary.
Bootstrap is now 64k @ 0x00000.
HackRF image is 64k @ 0x10000.
Baseband image is 128k @ 0x20000.
Application image is remainder of SPI flash, @ 0x40000.
2015-07-29 22:30:16 -07:00
Jared Boone
accf934a45 Remove vregmode debug field in receiver.
Resolves issue #37.
2015-07-29 16:19:18 -07:00
Jared Boone
67976b73ba UI plumbing for PPM adjust in receiver frequency options. 2015-07-29 16:09:00 -07:00
Jared Boone
9db54276c1 Expose reference PPM correction property on receiver model. 2015-07-29 15:59:05 -07:00
Clayton Smith
fd9bb13157 Add frequency correction to receiver screen (WIP). 2015-07-29 14:26:40 -07:00
Clayton Smith
3874c82d57 Store PPM in shared memory for now. 2015-07-29 14:26:40 -07:00
Clayton Smith
9dd41ed48d Add frequency correction (WIP). 2015-07-29 14:26:39 -07:00
Jared Boone
9a8552eaeb Draw spectrum frequency axis tick marks and labels.
Also removed horizontal separator bar, narrowed filter range band.
2015-07-20 21:55:51 -07:00
Jared Boone
6f2cbd1ac5 Partial refactor of channel filter frequency code.
Move channel filter frequency determination to baseband side, where the filtering is determined and performed.
Add useful accessor methods to BlockDecimator.
2015-07-18 16:49:40 -07:00
Jared Boone
ffc50785b7 specan: cleared up terminology, accounted for decimation.
Channel spectrum decimation now accounted for when computing filter frequencies.
Renamed a bunch of variables relating to channel spectrum bandwidth and filter frequencies.
2015-07-18 16:48:19 -07:00
Jared Boone
98bd9c54e4 Rework how spectrum and filter bandwidth is represented to UI.
Issue #13.
2015-07-18 16:46:59 -07:00
Jared Boone
e571ca7f1c Change reference initializations errors in GCC 4.8
Resolves issue #12.
2015-07-17 12:07:38 -07:00
Jared Boone
92ba4d7fea Fix line endings.
Addresses #21.
2015-07-17 10:55:54 -07:00
Jared Boone
154b40d3c9 Extract baseband stats into separate widget
Also removed baseband saturation indication on red (TX) LED. A saturation indicator needs to live somewhere else, and be thought out a bit more...
2015-07-09 11:53:10 -07:00
Jared Boone
7c9fc62f5e Move halt indication code to common place. 2015-07-08 16:28:57 -07:00
Jared Boone
f360c01ff3 Unify duplicated code between touch_adc.cpp and rssi.cpp.
Also remove comments and dead code.
2015-07-08 16:00:18 -07:00
Jared Boone
dc6fee8370 Initial firmware commit. 2015-07-08 08:39:24 -07:00