Commit Graph

309 Commits

Author SHA1 Message Date
Jared Boone
f2f7032615 Wideband FM configuration messages from M0. 2016-01-03 13:38:55 -08:00
Jared Boone
7496c2aced Send NBFM configuration message from M0 to M4. 2016-01-03 12:47:22 -08:00
Jared Boone
df593c2f0f Run codec at 1 x baseband sample rate. Do not use CPLD decimator.
Codec performance appears to be unaffected by <8MHz sample rate. Saves a bit of power, eliminates dependency on CPLD decimation feature.
2015-12-29 10:55:55 -08:00
Jared Boone
b38338efc0 Keep MAX2837 in standby so temperature can be read.
I think this won't significantly impact power consumption.
2015-12-17 20:59:21 -08:00
Jared Boone
1146d1fa06 Clean up temperature sensor rendering. 2015-12-17 20:36:58 -08:00
Jared Boone
188f692195 Center temperature graph in view. 2015-12-17 12:18:25 -08:00
Jared Boone
c3116eac63 Use reference to temperature logger, more concise. 2015-12-17 12:16:26 -08:00
Jared Boone
c92138f4b3 Extract calculation of temperature from raw sensor value. 2015-12-17 12:14:28 -08:00
Jared Boone
146a06b0d1 Method to read TemperatureLogger record capacity. 2015-12-17 12:12:22 -08:00
Jared Boone
17d405ccec Weird syntax burp on my part. 2015-12-17 10:30:40 -08:00
Jared Boone
3151100e50 Correct aesthetic typo in MAX2837 register defaults. 2015-12-16 22:37:55 -08:00
Jared Boone
86edf01def Quick and dirty temperature logger, debug view of temp vs. time. 2015-12-16 22:36:51 -08:00
Jared Boone
d34499d920 Remove ui::BasebandBandwidthField. 2015-12-16 22:29:29 -08:00
Jared Boone
7a4604e24e Move code out of ui_spectrum.hpp. 2015-12-16 19:33:30 -08:00
Jared Boone
4ce27f51d4 Add WM8731 registers view. 2015-12-14 12:09:31 -08:00
Jared Boone
ee3a77f32c Center RegistersWidget painting. 2015-12-14 11:47:43 -08:00
Jared Boone
56c3167156 Move RegistersWidget/Views methods to .cpp. 2015-12-14 11:30:24 -08:00
Jared Boone
2ee072aa7b Invert register number column colors in RegistersWidget. 2015-12-14 11:24:48 -08:00
Jared Boone
a340cbb74b Make NavigationView an implicit first argument to any instance pushed onto nav stack. 2015-12-14 11:18:59 -08:00
Jared Boone
0828c66b8a Move default constructor to .hpp. 2015-12-14 11:12:12 -08:00
Jared Boone
969d9bd070 Use std::unique_ptr inside NavigationView. 2015-12-14 11:11:49 -08:00
Jared Boone
18c4672ba2 Clean up navigation stack alloc/delete sequence. 2015-12-14 10:52:08 -08:00
Jared Boone
97f29f8336 Clean up UI navigation push constructor scheme. 2015-12-14 10:22:42 -08:00
Jared Boone
a1aa6ecdbf Eliminate per-device Views and RegisterWidgets, virtual methods.
Nice code size improvement, despite supporting three device register sets instead of just one.
2015-12-13 21:28:39 -08:00
Jared Boone
a0fbfcf6a2 Consolidate code and improve reuse between RegistersWidgets. 2015-12-13 13:22:09 -08:00
Jared Boone
94805285e2 Remove RegisterMap accessors. 2015-12-13 13:20:22 -08:00
Jared Boone
2fe1285c11 Un-inline register read/write functions. 2015-12-13 13:18:37 -08:00
Jared Boone
041e211841 Expose register read functions. 2015-12-13 13:18:05 -08:00
Jared Boone
74aa2112f4 Add Si5351C register view, make more space in all register views. 2015-12-13 12:34:51 -08:00
Jared Boone
5df1665994 Class divider comments. 2015-12-13 11:50:55 -08:00
Jared Boone
32108a8229 Field for register set name was too narrow. 2015-12-13 11:50:31 -08:00
Jared Boone
c7d49eb190 Expose MAX2837 registers, show registers in debug view. 2015-12-13 11:50:06 -08:00
Jared Boone
a6fbd1c5ef Make DebugRFFCView into generic RegistersView. 2015-12-13 11:48:39 -08:00
Jared Boone
b058d609eb Move packet timestamping into baseband.
Now reads the RTC peripheral at the end of each received packet.
TODO: Improve resolution to milliseconds or better.
TODO: Work back from end of packet to compute timestamp for beginning of packet.
TODO: Reuse ChibiOS RTC code, which isn't used now because ChibiOS on M0 core is responsible for RTC configuration, and including ChibiOS RTC API on M4 will also try to initialize/manage the peripheral.
2015-12-12 11:37:30 -08:00
Jared Boone
ca7e0f1e20 Remove #include of ChibiOS test.h.
Would be appropriate if writing a test case project. Someday...
2015-12-10 18:28:19 -08:00
Jared Boone
83bf2a9a36 Tweak BasebandConfiguration constructors to avoid surprise type conversions. 2015-12-10 14:40:48 -08:00
Jared Boone
4d52f73f6a Move Manchester to common/. 2015-12-10 11:28:18 -08:00
Jared Boone
eb1402764e Move ERT packet type to its rightful place.
No longer mixed up with Message types.
2015-12-08 16:19:27 -08:00
Jared Boone
7de187e267 Move ERT, AIS packet code to common/. 2015-12-08 16:08:20 -08:00
Jared Boone
2e81d1f5b7 Separate ERT packet and UI code. 2015-12-08 16:04:48 -08:00
Jared Boone
644d3837ff Consolidate AIS Packet types. 2015-12-08 15:54:35 -08:00
Jared Boone
3e0acc9988 AIS-related namespace cleanup. 2015-12-08 15:53:17 -08:00
Jared Boone
37d7d5b273 Separate AIS packet and formatting code from app code. 2015-12-08 15:49:20 -08:00
Jared Boone
218d81fc60 Rename all the app .cpp/.hpp to have app name first.
Larger refactoring of filenames and namespaces imminent!
2015-12-08 15:28:33 -08:00
Jared Boone
d0d97e92cb Rename ::Packet to baseband::Packet. Remove IPC packet types. 2015-12-08 15:15:51 -08:00
Jared Boone
280acfd227 First commit of AIS data scroller.
It's weird and buggy right now, but I think I can make it work sensibly.
2015-12-08 14:16:36 -08:00
Jared Boone
90a7327cd5 Clean up FieldReader and BitRemap types. 2015-12-08 14:15:15 -08:00
Jared Boone
31fdf026f2 constexpr a bunch of stuff. 2015-12-08 13:47:52 -08:00
Jared Boone
0c1c0da8a5 AIS: More simplifying of packet length/validation code. 2015-12-08 13:38:40 -08:00
Jared Boone
af74daf092 AIS Packet refactor, consolidating duplicate packet length code. 2015-12-08 11:14:00 -08:00
Jared Boone
7cded79b59 Clean up CRC class/interface, make more like boost::crc_basic. 2015-12-08 10:35:54 -08:00
Jared Boone
c38beb70e5 Only show ERT packets that pass CRC check. 2015-12-07 15:35:24 -08:00
Jared Boone
b61ed7dce2 Clean up ERT CRC code, add IDM CRC checking. 2015-12-07 15:32:26 -08:00
Jared Boone
ee1eadce5b Fix incorrect ERT packet length().
Was returning number of symbols before Manchester decoding. Oops.
2015-12-07 15:31:42 -08:00
Jared Boone
f1b45d4e7f Reinstate logging of ERT packets. 2015-12-07 15:31:01 -08:00
Jared Boone
bd33e652ea Abstract packet type/implementation details. 2015-12-07 12:35:05 -08:00
Jared Boone
b9ea7fa786 ERT CRC checking for SCM packets.
IDM coming as soon as I can address packet truncation...
2015-12-07 12:27:09 -08:00
Jared Boone
1c01f54717 Widen ERT baseband filter to 2.5MHz.
It appears this will not negatively impact the noise floor vs. benefit of receiving additional channels (0.2MHz spacing).
2015-12-07 09:59:41 -08:00
Jared Boone
b9643dc988 Clean up ERT packet type notation.
Still not great, but at least repeated code is reduced.
2015-12-06 15:47:04 -08:00
Jared Boone
9e004d4754 Move ERT packet type determination earlier.
It'll eventually move into baseband.
2015-12-06 15:36:23 -08:00
Jared Boone
2a55030d4e Use ert::Packet for basic packet decoding. 2015-12-06 15:32:21 -08:00
Jared Boone
51026609ce ert::Packet parser. 2015-12-06 15:31:17 -08:00
Jared Boone
5cfd44a546 Manchester decoded symbol operator| for accessing bit value. 2015-12-06 15:22:52 -08:00
Jared Boone
85ac3fa4ac Show selected item at bottom of visible list even if it should be off-screen.
Not convinced this is the most intuitive approach, but it's better than before.
2015-12-06 09:50:53 -08:00
Jared Boone
0f23736253 Whoops, don't match selected_key inside draw_entry. 2015-12-05 20:25:05 -08:00
Jared Boone
c4ad2ffe1b Extract AIS RecentEntry painting into separate method.
Small steps in a larger refactor, and better selected-item-scrolls-off-the-bottom behavior.
2015-12-05 20:15:30 -08:00
Jared Boone
8fce9378cc Extract entry list truncation. 2015-12-05 19:52:12 -08:00
Jared Boone
9791d64b50 AISView RecentEntry UI selection by encoder. 2015-12-05 14:24:41 -08:00
Jared Boone
27684069c5 Track when AISView has focus. 2015-12-05 14:23:53 -08:00
Jared Boone
1c191bcd4f Rename AISView::log to on_packet. 2015-12-05 14:22:35 -08:00
Jared Boone
64b9bfa35f Make MMSI-formatting function.
Only render nine digits, left zero pad.
2015-12-03 22:09:06 -08:00
Jared Boone
fbd077e91d Restore receiver mode when View is displayed.
Needs refactor because on_modulation_changed() doesn't change the modulation so much as the "app" or receiver mode.
2015-12-03 20:54:18 -08:00
Jared Boone
2a2e65abad Reserve length of AIS packet text std::string. 2015-12-03 20:34:30 -08:00
Jared Boone
3644bfd983 AISView displays list of most recent packets -- MMSI and name or call sign.
Formerly scrolling console of packets.
2015-12-03 20:34:02 -08:00
Jared Boone
0cad2847f8 LogFile pass references to reduce code size a bit.
Apparently the compiler isn't optimizing away copies in places I thought it would.
2015-12-03 14:08:06 -08:00
Jared Boone
bb3cb6f080 Push packet timestamping earlier in packet handling.
Ideally, it'd get pushed back into baseband, and baseband would correct for the length of the packet (based on preamble/access code match timestamp minus preamble/access code duration) to give the exact time the packet started.
2015-12-03 14:04:20 -08:00
Jared Boone
0909cdb31e AIS: Add MMSI type. 2015-12-02 22:39:05 -08:00
Jared Boone
ad22eab3d2 Fix ERT console lack of CRLF. 2015-12-02 14:12:35 -08:00
Jared Boone
bfcd25d857 LogFile puts timestamp before entry, CRLF after. 2015-12-02 14:05:25 -08:00
Jared Boone
76845c4335 Extract to_string_* functions from ui_widget. 2015-12-02 13:38:17 -08:00
Jared Boone
d8c59e2ce2 Zero pad years < 1000 to four digits. 2015-12-02 13:23:29 -08:00
Jared Boone
b8ee19f8e6 AIS: Large refactor to separate packet decode from UI/log formatting. 2015-12-02 12:16:39 -08:00
Jared Boone
4baf2a06f2 Move ais_baseband code to app_ais. 2015-12-02 09:31:14 -08:00
Jared Boone
57aed55cc7 Extract LogFile, add (dumb) logging to ERT, AIS apps. 2015-12-01 22:39:27 -08:00
Jared Boone
29f2d0e50a Move app_spectrum_analysis.hpp code to .cpp. 2015-12-01 22:07:17 -08:00
Jared Boone
d15afc9f7d Move app_analog_audio.hpp code to .cpp. 2015-12-01 22:04:04 -08:00
Jared Boone
11e8456da0 Move app_ert.hpp code to .cpp. 2015-12-01 21:59:47 -08:00
Jared Boone
4c3b557064 Move app_tpms.hpp code to .cpp. 2015-12-01 21:53:28 -08:00
Jared Boone
61dc25e132 Move more Manchester code from .hpp to .cpp. 2015-12-01 21:47:21 -08:00
Jared Boone
1aa1286ec1 Push app_ais.hpp code into .cpp. 2015-12-01 21:44:13 -08:00
Jared Boone
ac2b62a8a7 Extract "apps". 2015-12-01 21:30:52 -08:00
Jared Boone
519f8cfebc Extract Manchester decoder, formatter. 2015-12-01 21:28:53 -08:00
Jared Boone
9a5655ad0e Removed extra methods. 2015-12-01 21:27:51 -08:00
Jared Boone
eb10532931 Remove SD card statuc handler in ReceiverView.
Wasn't doing anything useful, and probably won't.
2015-12-01 21:27:14 -08:00
Jared Boone
e9bf500bfc Move ReceiverMode enum to receiver_model.hpp 2015-12-01 21:00:31 -08:00
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