Jared Boone
a97cd642ac
Multiple AM modes selection in application API.
2016-01-30 19:03:32 -08:00
Jared Boone
a1e1677b8b
Rename AM modulation mode "DSB".
2016-01-30 18:17:29 -08:00
Jared Boone
e778be6472
Selection of AM/SSB from application side.
2016-01-30 18:02:28 -08:00
Jared Boone
f2dff16820
Use complex channel filter taps for AM/SSB.
2016-01-30 17:30:54 -08:00
Jared Boone
ad4d7a2e8a
Add SSB demodulator, switch between AM and SSB.
2016-01-30 17:30:03 -08:00
Jared Boone
1915ff980f
Add AM processor decim_2.
2016-01-30 17:28:11 -08:00
Jared Boone
279e5c775d
Add LSB filter taps.
2016-01-30 17:23:04 -08:00
Jared Boone
69deaafd1c
Clean up formatting of USB FIR filter taps.
2016-01-30 17:22:38 -08:00
Jared Boone
b029bacd8c
Remove channel decimation from AMConfigureMessage.
2016-01-30 17:21:48 -08:00
Jared Boone
f82a22dd2c
USB channel filter.
2016-01-29 22:29:52 -08:00
Jared Boone
b9c2ba4053
Add fir_taps_complex structure.
2016-01-29 22:29:23 -08:00
Jared Boone
220b7b0a6a
Add SSB demodulator.
2016-01-29 22:27:18 -08:00
Jared Boone
2fd8b1c4d4
Bodge in preset control of NBFM bandwidth/deviation.
2016-01-29 21:05:43 -08:00
Jared Boone
a558565886
Further template BlockDecimator by element type, use for audio buffer.
...
Appropriating for use as a buffer accumulator that will save up enough audio samples to put into an audio DMA buffer.
2016-01-29 19:25:08 -08:00
Jared Boone
aead1d8798
Change NBFM audio fs->24k, AM ->12k.
...
Send channel decimation factor from application to baseband.
2016-01-29 19:23:30 -08:00
Jared Boone
65d224be14
Add IIR configs for fs=24kHz NBFM and fs=12kHz AM.
2016-01-29 18:31:03 -08:00
Jared Boone
28e5b7e4af
Remove some filter constructors, reset Z on configure().
2016-01-29 17:06:22 -08:00
Jared Boone
d984532190
Converging AM, NBFM processors for eventual merging.
2016-01-29 16:18:03 -08:00
Jared Boone
7c65a2d650
Clean up baseband processor statics.
2016-01-29 16:11:00 -08:00
Jared Boone
96898f82b2
Pass IIR configs from application to baseband.
2016-01-29 15:57:20 -08:00
Jared Boone
01e14ecbcf
Move IIR struct and configs to common/.
2016-01-29 15:43:39 -08:00
Jared Boone
db642cac8d
Change audio sampling rates on NBFM, AM modes.
2016-01-29 15:33:01 -08:00
Jared Boone
0e436ded14
Add IIR configs for lower audio sampling rates.
2016-01-29 15:32:32 -08:00
Jared Boone
a2a169352c
Rename existing IIR configs to reflect fs=48k design.
2016-01-29 15:24:31 -08:00
Jared Boone
0cf839bc93
Expose instance clock_manager in portapack.hpp.
2016-01-29 15:21:33 -08:00
Jared Boone
a03a72474d
Insert IDIVC into audio MCLK path, so it can be divided.
2016-01-29 15:17:05 -08:00
Jared Boone
275b644edd
Fix flickering freq/gain options views.
...
Was caused by invalidating ALL of the parent view, when only the overlapping views would need to be repainted.
2016-01-27 21:47:10 -08:00
Jared Boone
b801366e4e
Recover from display sleep, use LCD sleep function.
2016-01-27 21:05:28 -08:00
Jared Boone
894d4b955c
Unclever first attempt at display sleep.
2016-01-27 20:33:54 -08:00
Jared Boone
1caf6952d8
Remove GCC-isms interfering with host-based testing.
2016-01-27 20:20:34 -08:00
Jared Boone
10f6554a1b
Remove extra #include.
2016-01-27 20:17:35 -08:00
Jared Boone
234ac5c50b
Additional audio receiver step sizes.
...
Requested in issue #52 , pull request #56 . Added with qualifications the smaller step sizes, and a couple of more VHF-/UHF-y step sizes.
2016-01-27 16:04:23 -08:00
Jared Boone
7876eb0877
Remove PPM "Corr." label.
2016-01-27 15:26:39 -08:00
Jared Boone
87dc5a055b
More application of range_t methods.
2016-01-27 14:55:03 -08:00
Jared Boone
7519b83379
Make better use of range_t methods.
2016-01-27 14:46:45 -08:00
Jared Boone
ca3b1a2c5a
Remove more commented code.
2016-01-27 14:25:08 -08:00
Jared Boone
3b7bec542c
Move and adjust variable controlling size of audio RX waterfall.
...
Closes recently-opened gap between control UI and waterfall.
2016-01-27 14:20:15 -08:00
Jared Boone
6917a38106
Improve clipping of RSSI, baseband, audio bar graphs.
2016-01-27 12:50:33 -08:00
Jared Boone
018b54c711
Extract range_t to utility header.
2016-01-27 12:09:36 -08:00
Jared Boone
c761d3aaa8
Fix RSSI meter scaling, clean up limits code.
2016-01-27 11:48:22 -08:00
Jared Boone
87a6f931c9
Remove commented and unused code.
2016-01-27 11:03:37 -08:00
Jared Boone
34434c088c
Clean up audio receiver UI fields layout.
2016-01-27 11:01:50 -08:00
Jared Boone
60778c5591
Another tweak to sane-ify transponder apps initial focus.
2016-01-27 10:49:17 -08:00
Jared Boone
07b8c6c661
Fix initial focus on ERT, TPMS apps.
2016-01-27 10:18:44 -08:00
Jared Boone
cb403160b3
Really dumb list view columns structures.
2016-01-27 09:02:17 -08:00
Jared Boone
cac9f02c48
Add simple column headers to recents list views.
2016-01-26 17:25:51 -08:00
Jared Boone
bd829d7d85
Add titles for transponder apps.
2016-01-26 13:08:46 -08:00
Jared Boone
7fe8288737
Set Navigation title with View.title() if not empty.
2016-01-26 13:04:44 -08:00
Jared Boone
dc42525dcb
Oops, removed line that should've been in prior commit.
2016-01-26 13:04:19 -08:00
Jared Boone
0efe2ea0ae
Add virtual title() to View class.
2016-01-26 13:01:16 -08:00
Jared Boone
a13e19a907
Paint background of Text object before string.
2016-01-26 13:00:36 -08:00
Jared Boone
c1f7f23367
Add AIS channel control.
2016-01-25 11:47:59 -08:00
Jared Boone
8b0e6e65c8
Configure radio in AIS, ERT, TPMS apps.
2016-01-25 11:22:39 -08:00
Jared Boone
15800eea33
Move nav back button outside of ReceiverView.
2016-01-25 11:13:19 -08:00
Jared Boone
029a44e24c
Missing header.
2016-01-24 22:38:45 -08:00
Jared Boone
5ecc6d0330
Add Receiver sub-menu, Transponders item and sub-menu.
2016-01-24 22:38:36 -08:00
Jared Boone
e04e72abe7
Remove unused ReceiverView() receiver_model arg.
2016-01-24 22:12:16 -08:00
Jared Boone
db2f78f0f8
ERTAppView, recent entries tracking and display.
2016-01-23 22:24:48 -08:00
Jared Boone
56218565c1
Use TPMS declared invalid_key as default initializer values.
2016-01-23 21:52:42 -08:00
Jared Boone
fedecbeca5
Extract ERT formatting code to free functions.
2016-01-23 21:46:41 -08:00
Jared Boone
d888c77661
Remove TPMS commented code.
2016-01-23 21:38:43 -08:00
Jared Boone
4d5697cda7
Simplify TPMS units static_casts.
2016-01-23 21:38:33 -08:00
Jared Boone
798b5eb972
Extract Temperature, Pressure into units header.
2016-01-23 21:37:22 -08:00
Jared Boone
45a8759d7b
Remove silly types on Temperature/Pressure getters.
2016-01-23 21:29:27 -08:00
Jared Boone
45ae222ab5
Extract Optional to own header.
2016-01-23 21:26:06 -08:00
Jared Boone
cca8c6dc06
ERTModel -> ERTLogger, now ERTApp does setup.
2016-01-23 21:17:04 -08:00
Jared Boone
e4f5539407
Remove unused variables.
2016-01-23 17:53:33 -08:00
Jared Boone
14f18d5cf7
Reduce use of unsigned integers when signed will do fine.
2016-01-23 17:53:16 -08:00
Jared Boone
ce481c0b5a
Clean up UI type static_casts.
...
So disgusting, but not entirely gone yet...
2016-01-23 17:02:16 -08:00
Jared Boone
60b8b38652
UI to turn on antenna bias voltage.
2016-01-23 11:32:10 -08:00
Jared Boone
25fac90d4f
Improve radio state management re: antenna bias voltage.
...
Responsibility for radio state is still rather muddy...
2016-01-23 11:31:50 -08:00
Jared Boone
10d4172d5c
RF antenna bias voltage control API.
2016-01-23 11:30:00 -08:00
Jared Boone
02b3e891f7
TPMS RecentEntriesView and related stuff.
...
Replaces Console listing of raw records.
2016-01-22 15:00:25 -08:00
Jared Boone
13c0999c3c
Move Optional outside tpms namespace.
2016-01-22 13:41:01 -08:00
Jared Boone
54fb85a9d0
Un-const Optional class members.
2016-01-22 13:40:15 -08:00
Jared Boone
b70138ad58
Introduce TPMS measurement types, change formatting.
2016-01-22 10:59:41 -08:00
Jared Boone
bd0ec913f5
Invert TPMS Manchester decoding, fix dependent CRC/checksums.
2016-01-20 09:02:25 -08:00
Jared Boone
5e6a76dfe7
Use a proper enum for TPMS signal type.
2016-01-18 22:28:33 -08:00
Jared Boone
9a41961aeb
Store TPMS "packet type".
...
For now, completely dumb CRC-OK packet length, since I only handle three packet types, which differ in length.
2016-01-18 22:18:49 -08:00
Jared Boone
7ad9ad2596
TPMS packets to IDs and values.
2016-01-18 21:42:26 -08:00
Jared Boone
dbea30b9e4
Check TPMS CRCs for packets I know, don't display the rest.
2016-01-18 20:43:54 -08:00
Jared Boone
fbcf784959
Make tpms::Packet into real type.
2016-01-18 14:34:30 -08:00
Jared Boone
feec99ac6a
Move TPMS packet handling to TPMSAppView.
...
Also rename TPMSModel to TPMSLogger, considering that's what it was *really* doing.
2016-01-18 14:21:24 -08:00
Jared Boone
32818ee9ab
Introduce tpms::Packet type.
2016-01-18 13:54:07 -08:00
Jared Boone
be328c5f38
Rearrange TPMS app/UI code.
2016-01-18 13:41:19 -08:00
Jared Boone
1a280149e2
Rename TPMSView -> TPMSAppView.
2016-01-18 13:29:11 -08:00
Jared Boone
6e5e48cc7c
Clear region below RecentEntries list.
2016-01-17 21:56:06 -08:00
Jared Boone
05d7e0222f
Extract RecentEntries stuff to separate files.
2016-01-17 21:42:15 -08:00
Jared Boone
df3ce07c5c
Template AISRecentEntriesView.
...
More teasing apart, not sure where this will end...
2016-01-17 20:49:41 -08:00
Jared Boone
eda6e6a5be
Move AIS recent items list draw function back into class.
2016-01-17 19:08:08 -08:00
Jared Boone
fb8e5b21df
Use AIS MMSI string formatter, remove right-justification.
2016-01-17 18:07:39 -08:00
Jared Boone
3ee6fd3d87
Generalize AISRecentEntries -> templated RecentEntries.
...
Also access Entry unique key via key().
2016-01-17 18:06:31 -08:00
Jared Boone
5a864d8d44
Generalize RecentEntries find() method name.
2016-01-17 15:56:29 -08:00
Jared Boone
fc7a7d753d
Extract general File class from LogFile.
2016-01-17 14:20:02 -08:00
Jared Boone
1aa391bac8
Whoops. Revert to baseband -O3 compiler flag.
...
Was running out of CPU in ERT mode.
2016-01-17 14:08:49 -08:00
Jared Boone
8d2a86a499
Change baseband optimization from -O3 to -O2
...
Significant size benefit with negligable performance effect.
2016-01-16 14:10:22 -08:00
Jared Boone
58e6d26910
Move AudioOutput back to inside audio processor classes.
...
Was wasting precious RAM making it static. I lose 400 bytes of .text, not sure why, but I think the trade is worth it.
2016-01-16 13:56:23 -08:00
Jared Boone
1d0de2240d
Protect/private some ThreadBase implementation details.
2016-01-15 20:25:29 -08:00
Jared Boone
be44c21172
Move AIS received packet count to bottom of details view.
2016-01-15 18:15:50 -08:00
Jared Boone
93aea59847
Add AIS last position timestamp to details view.
2016-01-15 18:15:34 -08:00
Jared Boone
6ead63d02d
Extract timestamp formatting to string_format.
2016-01-15 18:15:05 -08:00
Jared Boone
de98dfe10b
AUS consolidated lat/lon formatting.
2016-01-15 17:59:02 -08:00
Jared Boone
b5ac76afc4
Tiny code clean-up.
2016-01-15 17:58:27 -08:00
Jared Boone
8fd8815e95
Remove irrelevant comments.
2016-01-15 16:00:21 -08:00
Jared Boone
cb5f563b92
Push more common AIS lat/lon formatting into common function.
2016-01-15 15:59:04 -08:00
Jared Boone
8fa8a26298
Read SD card status in SDCardStatusView constructor.
...
View was not showing correct status if card was present at boot.
2016-01-15 15:31:32 -08:00
Jared Boone
5ddb99237e
Move AIS entry details "done" button down a bit.
2016-01-15 15:26:04 -08:00
Jared Boone
f3989050e8
Clean up AIS lat/lon types and formatting.
2016-01-15 15:25:32 -08:00
Jared Boone
1e92d416c7
More AIS position report detail.
2016-01-15 15:21:45 -08:00
Jared Boone
70d349e1a7
Change default AIS navigational status to "unknown".
2016-01-15 13:39:40 -08:00
Jared Boone
8603c567ca
Unjustify AIS RX packet count.
2016-01-15 13:25:17 -08:00
Jared Boone
f292d5038a
Set AISRecentEntryDetailView dirty when entry changes.
2016-01-15 11:39:39 -08:00
Jared Boone
e163ed7463
Update recent entry detail when recent entry changes.
...
This doesn't feel like the right implementation, but I'm feeling impatient today...
2016-01-15 11:38:49 -08:00
Jared Boone
c4f7d9bf54
Return updated AIS RecentEntry.
2016-01-15 11:38:09 -08:00
Jared Boone
19e3b273ad
Expose current RecentEntry from detail view.
2016-01-15 11:37:37 -08:00
Jared Boone
089ef25df9
Draw AIS entry details.
2016-01-15 11:23:28 -08:00
Jared Boone
aa249cbad4
Add AIS detail view.
2016-01-14 22:39:58 -08:00
Jared Boone
b1707298b7
Extract weird range-of-entries algorithm out of view.
2016-01-14 11:49:19 -08:00
Jared Boone
f8d9cb318d
Prevent AISAppView painting.
...
View is always filled with children, no need to clear background before painting children.
2016-01-14 09:56:06 -08:00
Jared Boone
9fd93b0af6
Remove redundant focus tracking code.
2016-01-14 09:45:29 -08:00
Jared Boone
6e0aa79d44
Move app-level config to new AISAppView class.
2016-01-14 09:41:58 -08:00
Jared Boone
1f2b28b2b8
Add AISAppView.
2016-01-14 09:30:23 -08:00
Jared Boone
fc16bc7867
Rename AISView to AISRecentEntriesView.
...
Coming soon, top-layer AISAppView.
2016-01-14 09:19:16 -08:00
Jared Boone
bd07e4e7e5
Modify LogFile to open/close file on SD card status.
...
Previously, would only open on construction, which was only when the receiver mode changed, which wasn't all that useful.
2016-01-13 23:11:19 -08:00
Jared Boone
30ca545b52
Expose current SD card status.
2016-01-13 23:08:22 -08:00
Jared Boone
8a30003ab6
Move entry update code into AISRecentEntry.
2016-01-13 22:27:30 -08:00
Jared Boone
8efeb049ca
Use std::begin(), std::end() where appropriate.
2016-01-13 18:06:45 -08:00
Jared Boone
af8630a6f3
Dedupe code, call AISRecentEntries::find_by_mmsi().
2016-01-13 18:04:50 -08:00
Jared Boone
3df003a678
Rename AISRecentEntries::find -> find_by_mmsi.
2016-01-13 18:04:04 -08:00
Jared Boone
2888257167
Extract AISRecentEntries from AISView.
2016-01-13 18:01:38 -08:00
Jared Boone
01741f3c7c
Rename AISModel to AISLogger.
...
That's really what it is. Also move receiver initialization to AISView. It'll eventually move further out to an AISApp, once I figure out what an App looks like...
2016-01-13 17:05:19 -08:00
Jared Boone
8c34e116af
Remove Signal use, register message handler in View.
...
Changed my mind from earlier commit...
2016-01-13 17:00:53 -08:00
Jared Boone
94b73d7825
AISView constructors out of header.
2016-01-13 16:44:01 -08:00
Jared Boone
f8a063312c
AISModel receive packets from baseband, notifies AISView.
...
Use Signal class to distribute packets to multiple listeners.
2016-01-13 16:32:56 -08:00
Jared Boone
9cab3c9978
Remove message_map from Context.
...
It doesn't belong in a display/rendering context object, it has much broader significance, mostly distributing messages via the M4->M0 IPC mechanism.
2016-01-13 15:46:04 -08:00
Jared Boone
d380ffe52b
Extract AIS record renderer from AISView.
2016-01-13 11:56:23 -08:00
Jared Boone
a29b76ac38
Pull AIS record types out of AISView.
2016-01-13 11:52:39 -08:00
Jared Boone
4b2157a938
Push AIS list item draw style into render method.
2016-01-13 11:43:21 -08:00
Jared Boone
f06d5989db
Move EventDispatcher code out of .hpp.
2016-01-12 22:20:13 -08:00
Jared Boone
731cea1b96
Move event.* code into event_m[04].*.
...
Slightly more duplication of code now. Need a base class...
2016-01-12 22:00:42 -08:00
Jared Boone
e73a9f98a1
Move EventDispatcher code into event_*.hpp.
...
More code redistribution coming shortly...
2016-01-12 21:49:29 -08:00
Jared Boone
b993e3d73e
Consolidate spectrum collector message handling.
2016-01-12 10:32:00 -08:00
Jared Boone
a577bc9664
Refactor naughty static variable hiding in WidebandSpectrum.
2016-01-11 17:18:24 -08:00
Jared Boone
1f3c182b7f
Add missing message handler for wideband spectrum.
...
Spectrum processing was not enabled, and hence wideband spectrum was not being displayed.
2016-01-11 16:31:49 -08:00
Jared Boone
55e3a70fde
Change baseband audio processing pipeline to all floats.
2016-01-11 16:15:42 -08:00
Jared Boone
b9f124850b
Add buffer_t<float> type alias.
2016-01-11 16:10:48 -08:00
Jared Boone
5e917ebb2c
Cache IIR filter state because compiler *sometimes* doesn't want to.
2016-01-11 15:44:42 -08:00
Jared Boone
e169a46367
Un-static squelch history.
2016-01-11 11:38:33 -08:00
Jared Boone
64966d4539
Fix NaNs coming out of angle_approx_0deg27().
...
Used in FM demodulator, was causing downstream problems when using the floating point values directly.
2016-01-11 11:17:54 -08:00
Jared Boone
5a532f34a7
Remove extra buffer structs/copies.
2016-01-11 09:35:58 -08:00
Jared Boone
877a66ca78
Create AudioOutput singleton, from extracted BasebandProcessor code.
2016-01-10 20:25:24 -08:00
Jared Boone
364217a2b5
Rename IIR filter config variables.
2016-01-10 20:20:07 -08:00
Jared Boone
13d260f936
Add IIR passthrough filter config.
2016-01-10 20:18:12 -08:00
Jared Boone
5dac0bbe49
Squelch special case when threshold == 0, do not squelch.
2016-01-10 20:16:21 -08:00
Jared Boone
01df79641c
Rename squelch algorithm variable for clarity.
...
Helps to understand meaning of threshold.
2016-01-10 20:14:26 -08:00
Jared Boone
6f00687d88
Add configure() for IIR filter.
2016-01-10 20:11:27 -08:00
Jared Boone
497adda390
IIR default constructor passes no audio.
...
Debugging mechanism -- filter must be configured to pass audio.
2016-01-10 20:11:05 -08:00
Jared Boone
172a6da36c
Unconst IIR configuration and filter.
2016-01-10 20:06:58 -08:00
Jared Boone
eb5b2d7d30
Fix broken audio stats when audio is muted.
2016-01-10 11:34:06 -08:00
Jared Boone
4ea84301c6
For non-audio modes, don't bother muting audio.
...
It's assumed base class will start with audio muted.
2016-01-10 11:33:44 -08:00
Jared Boone
d6f797540d
Remove baseband message from queue after it is processed.
...
Application code can now wait on queue empty and know the baseband's state.
2016-01-10 11:15:37 -08:00
Jared Boone
146caaab6f
Consolidate baseband disable code.
2016-01-10 11:10:13 -08:00
Jared Boone
d9bfaaf805
Stop baseband streaming when switching radio configuration.
...
Probably unnecessary, but feeling paranoid about changing sample rates while there's a processor actively handling samples, and potentially maxing out the M4 core.
2016-01-10 11:01:54 -08:00
Jared Boone
136ba895ef
Clear spectrum FIFO when streaming is stopped.
2016-01-10 11:00:09 -08:00
Jared Boone
62e5ec1dbb
Postpone clearing channel_spectrum_request_update until finished with data in array.
...
There was potential for new samples to be copied into array as the FFT and post-processing were occuring.
2016-01-10 10:45:22 -08:00
Jared Boone
d821afc60d
Spectrum streaming control, spectrum attributes back in each frame.
...
TODO: This feels kinda complex, and there's some repeated Processor code that needs to be refactored into a base class.
2016-01-10 10:42:20 -08:00
Jared Boone
0647f26707
Move SGPIO configuration and control to baseband firmware.
...
Addresses long-standing and annoying bug where SGPIO DMA channel would not disable -- and not configure cleanly next time it was needed. My theory is that the DMA channel couldn't disable until it got a request from the peripheral, and sometimes the peripheral was disabled before that last request.
Anyway, the baseband firmware should control the SGPIO, methinks, despite the impact on baseband code size.
2016-01-10 10:23:39 -08:00
Jared Boone
8fde4972b4
Methods to peek and skip messages in queue.
...
Allows receiver to not consume a message until after it's handled. And that enables the transmitter to block until the queue is empty, knowing that when unblocked, all messages in queue have been handled.
2016-01-10 10:15:25 -08:00
Jared Boone
c75c167c25
Rename GPDMA channel disable_force() to disable().
...
There was nothing particularly forceful about the disable_force() code. Whether it's a "forced" operation depends on what happens before and after (HALT and ACTIVE flags are involved in a smooth disabling of the channel).
2016-01-10 10:11:16 -08:00
Jared Boone
43d6098c48
Move baseband_sgpio.* to common/.
...
It'll soon be used by M4 code, not M0. SGPIO baseband streaming needs to be tightly controlled by... the baseband!
2016-01-09 17:57:37 -08:00
Jared Boone
365c2ef946
Handle baseband::dma::wait_for_rx_buffer() returning empty buffer.
...
Was technically OK before, because sample count was zero. But seems silly (and vaguely dangerous) to call all that code with a nullptr.
2016-01-09 12:20:57 -08:00
Jared Boone
c3167ac27c
Missing #includes.
2016-01-09 12:17:17 -08:00
Jared Boone
8fba47b7d8
FIFO in and out indices should be volatile.
...
Later code revealed that the receiving core never notices (reads anew) the _in member variable when waiting for the FIFO to be empty (_in == _out).
2016-01-07 10:53:27 -08:00
Jared Boone
7710b2d1fa
ChannelSpectrumConfig message subsumes FIFONotify.
...
Separate channel spectrum config from spectrum data. This will permit sending config info only when necessary.
Use type information of ChannelSpectrum to statically define number of FFT bins elsewhere.
TODO: Posting configuration message way too often. Fixing that is the next step.
2016-01-06 12:10:30 -08:00
Jared Boone
ba33cc737d
Transmit DisplayFrameSync message, handle in WaterfallSpectrum.
...
More kludginess, especially around initialization and timing. But it addresses the flickering lines of pixels at the bottom of the waterfall scroll area!
2016-01-06 11:36:57 -08:00
Jared Boone
aaa1bc3a09
Transmit ChannelSpectrum data through separate FIFO.
...
Allows handling of data during LCD "vertical retrace", independent of other baseband->application messages. A bit kludgy still...
2016-01-06 11:34:41 -08:00
Jared Boone
2cd28fcc0c
Make FIFO::in() more consistent with other functions.
2016-01-06 11:04:25 -08:00
Jared Boone
4059e9cebe
Reintroduce FIFO in/out for templated FIFO element type.
2016-01-06 11:01:02 -08:00
Jared Boone
b05923eab6
Change FIFO is_full() to make more sense.
2016-01-06 10:58:42 -08:00
Jared Boone
dcb2c46c57
Add wideband FM spectrum waterfall.
2016-01-04 17:27:18 -08:00
Jared Boone
36021689f9
Remove commented, dead code.
2016-01-04 15:42:19 -08:00
Jared Boone
73671ca5f6
Update sample rate and buffer size comments in execute() methods.
2016-01-04 15:41:49 -08:00
Jared Boone
c1e5577669
Eliminate duplicate code between event_m4.hpp, event.hpp.
...
event.* is common code, _m0 and _m4 contain specific event mask definitions.
2016-01-04 12:54:05 -08:00
Jared Boone
229c1e9a3c
Move M4 MAPP IRQ handler to be with the event handler class.
...
event.[ch]pp and event_m4.[ch]pp are looking almost the same now...
2016-01-04 12:44:28 -08:00
Jared Boone
0fe5409357
Move M4TXEVENT interrupt control into event handler run().
2016-01-04 12:15:35 -08:00
Jared Boone
69b258cc2b
Consolidate event handler code, including IRQ.
2016-01-04 12:15:10 -08:00
Jared Boone
b058c0fe00
Consolidate M0-specific code.
2016-01-04 12:07:30 -08:00
Jared Boone
a27489eb21
Consolidating M4-specific saturation flag code.
2016-01-04 12:00:52 -08:00
Jared Boone
b42d3cc9d5
Move BasebandStatsCollector code into .cpp, as much as possible.
...
Still have template for callback, but hopefully will mitigate bloat when BasebandStatsCollector is used in multiple places.
2016-01-04 11:49:39 -08:00
Jared Boone
6d3cdb9bbf
Separate template/callback code from method code.
...
...for more small reductions in code size.
2016-01-04 11:45:33 -08:00
Jared Boone
cd3a5afdb1
More templating elimination (MatchedFilter), some #include clean-up.
...
592 bytes!
2016-01-04 11:32:47 -08:00
Jared Boone
e6f69c90f2
Reduce inlining of FIR configuration due to templating.
...
80 bytes!
2016-01-04 11:20:28 -08:00
Jared Boone
359fb6f3c6
...and more pass-by-reference.
...
Another 176 bytes!
2016-01-04 11:04:28 -08:00
Jared Boone
05a1c22426
More tweaks to pass buffers by reference.
...
144 bytes less code!
2016-01-04 11:00:17 -08:00
Jared Boone
778e2d2381
A little code consolidation -- M0APP IRQ.
2016-01-04 10:12:18 -08:00
Jared Boone
cd17f414b7
ChannelDecimator now unused, remove from Makefile, remove commented code.
2016-01-04 09:49:48 -08:00
Jared Boone
168bd02dea
Move AudioStatsCollector code into .cpp.
2016-01-04 09:25:43 -08:00
Jared Boone
c5b234d9f6
Remove BasebandProcessor virtual method replaced by message.
2016-01-04 09:13:17 -08:00
Jared Boone
222b878629
Use BasebandProcessor::mute_audio(), remove I2S #include dependencies.
2016-01-04 09:07:07 -08:00
Jared Boone
ef6ae8ed94
Add mute_audio() function to baseband processor.
2016-01-04 09:06:17 -08:00
Jared Boone
8fb3ffaedc
Reorder squelch code to group things a bit more logically.
2016-01-04 09:01:51 -08:00
Jared Boone
b0855b3c4d
Pass buffers by reference to save significant text section code size.
...
752 bytes!
2016-01-03 23:09:06 -08:00
Jared Boone
b03da8d693
Fix calculation of work_audio_buffer item count.
2016-01-03 22:42:40 -08:00
Jared Boone
d9017530c6
Moved baseband temporary buffers back into class member variables.
...
Significant performance hit when declaring on stack. C++ wants to initialize std::array or even raw array with element constructors, was resulting in ~7% CPU utilization, for a buffer that was immediately written over anyway.
2016-01-03 22:31:44 -08:00
Jared Boone
5547782f5a
Improve FFT twiddle factor precisions using Python SymPy.
...
Python math, numpy, scipy produce values with significant rounding errors.
2016-01-03 21:02:44 -08:00
Jared Boone
963b6e257a
FFT twiddles can be used for all K <= table length.
...
Change assert to allow FFTs < 8.
2016-01-03 20:25:31 -08:00
Jared Boone
54e59cc224
Hard-code K=8 FFT twiddle constants for now.
...
So low on baseband RAM! This eliminates the sin_f32() function and table, which is only used in the FFT, for the moment.
2016-01-03 20:08:26 -08:00
Jared Boone
65dd385c94
Little FFT loop indexing tweak.
2016-01-03 17:47:08 -08:00
Jared Boone
78992c2f8d
Adjust default FM squelch threshold.
2016-01-03 17:05:00 -08:00
Jared Boone
8adaddac5f
Make FM squelch runtime-configurable.
2016-01-03 17:03:16 -08:00
Jared Boone
86cf967464
Simplify FM demodulator class. Remove duplicate code.
2016-01-03 16:58:36 -08:00
Jared Boone
10bce4b845
Clean up #includes.
2016-01-03 16:58:08 -08:00
Jared Boone
28be223ace
Fix for merge-breakage. Argh.
2016-01-03 16:37:47 -08:00
Jared Boone
3f299c74c6
More old GCC fussiness fixes.
2016-01-03 16:32:45 -08:00
Jared Boone
62ee26e763
OK... Nuke list initializations.
2016-01-03 16:28:09 -08:00
Jared Boone
422f6c6960
Don't pass by reference in message constructors.
2016-01-03 16:21:17 -08:00
Jared Boone
b5aa2b205f
Implement AMConfigureMessage from M0 to M4.
2016-01-03 14:31:39 -08:00
Jared Boone
f2f7032615
Wideband FM configuration messages from M0.
2016-01-03 13:38:55 -08:00
Jared Boone
317ec53638
Handle NBFM configuration message on M4 processor side.
2016-01-03 12:49:00 -08:00
Jared Boone
7496c2aced
Send NBFM configuration message from M0 to M4.
2016-01-03 12:47:22 -08:00
Jared Boone
0497dbf62f
NBFM configuration message.
...
Allows changing NBFM filter configurations from M0.
2016-01-03 12:46:21 -08:00
Jared Boone
a5012427d8
Remove little bit of dead code.
2016-01-03 12:45:34 -08:00
Jared Boone
c179b9e1cd
Move FIR filter configs to common/, so M0 can use it.
...
Planning to pass from M0 to M4 so M4 doesn't need to keep all these different filter configs in text section.
2016-01-03 12:45:15 -08:00
Jared Boone
39ca6fec62
Transform update spectrum event into message.
2016-01-03 12:05:47 -08:00
Jared Boone
c9f9d97d07
Move BasebandConfiguration message handling into baseband thread.
2016-01-03 11:49:01 -08:00
Jared Boone
fd612dc207
Baseband: Pass unhandled messages to baseband thread, processor.
2016-01-02 22:59:31 -08:00
Jared Boone
07cd99d85d
Removing baseband MessageHandlerMap.
...
It's a bit heavy (362 bytes smaller with switch/case implementation), hard to access to add/remove handlers, doesn't bubble events like I'd like. (I'm going to bubble events to the baseband processor shortly.)
2016-01-02 22:54:09 -08:00
Jared Boone
fea5dd536f
Move baseband working buffers from member variables to stack.
...
It's temporary, after all...
2016-01-02 12:08:21 -08:00
Jared Boone
e7be7c5121
Comments about IFIR filter taps design parameters.
2016-01-02 10:49:37 -08:00
Jared Boone
410d4d7fc3
Use IFIR decimator for TPMS.
2016-01-02 10:42:40 -08:00
Jared Boone
e720bfb054
Use IFIR decimation for broadcast FM receiver.
2016-01-02 10:35:23 -08:00
Jared Boone
a02bfe55d0
Decimators for wider IFIR output bandwidth.
2016-01-02 10:34:17 -08:00
Jared Boone
096ebe47d8
Turn almost-zeros in TPMS matched filter to actual zeros.
2016-01-02 10:24:49 -08:00
Jared Boone
0e04939439
Broadcast FM de-emphasis using 75us time constant.
2016-01-01 20:56:30 -08:00
Jared Boone
2e90edbf39
Add 30Hz high-pass IIR filter for wideband FM.
2016-01-01 20:55:00 -08:00
Jared Boone
9a0fb2cab7
Rename IIR filter for 300Hz high-pass.
2016-01-01 20:53:11 -08:00
Jared Boone
ff05833b02
Use new decimation filters in AIS processor.
2016-01-01 13:20:02 -08:00
Jared Boone
316d5d433b
Move IIR code into .cpp file.
...
A few hundred more text section bytes saved.
2015-12-31 10:52:28 -08:00
Jared Boone
9fb22dfd1f
Reduce type size for int16_t squared values.
2015-12-31 10:09:42 -08:00
Jared Boone
ef37bbd851
Small FM squelch simplification.
2015-12-31 10:08:41 -08:00
Jared Boone
0962343190
Use decimation variable, not hard-coded value.
...
Break in form from NBFM code.
2015-12-30 12:20:25 -08:00
Jared Boone
7de80edcd3
Move baseband FIR filter defs to common file.
...
They will likely be shared with multiple decimators/demodulators.
Also added normalized filter pass/stop values to each set of taps.
2015-12-30 12:19:42 -08:00
Jared Boone
3db0820b54
Remove LOCATE_IN_RAM from DMA IRQ handler
...
Not needed for M4, was causing code to be located in data RAM, and veneers to jump between code and data RAM. Reclaimed a few hundred bytes of code RAM.
2015-12-29 11:24:23 -08:00
Jared Boone
bbfcca8ec0
Rebake of AM, NFM demodulators -- more flexible filtering/configuration.
...
Also make SpectrumCollector dynamically configurable.
Add deemphasis filter to NFM.
2015-12-29 11:02:07 -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
549e5b9ddc
Unrolled FIR filters for more flexible baseband filtering (using IFIR technique).
2015-12-29 10:48:29 -08:00
Jared Boone
87c9772128
More M4 instruction wrappers, with vector typed arguments.
2015-12-28 16:52:10 -08:00
Jared Boone
f74e6690cb
Utilize class types for member variables -- slightly more generic.
2015-12-28 16:51:34 -08:00
Jared Boone
9505d367c3
Add SMMULR "intrinsic".
2015-12-28 16:50:01 -08:00
Jared Boone
90cd2a6794
Improve argument and retval types for my M4 SIMD intrinsics.
2015-12-28 16:49:31 -08:00