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
0789d50fdf
Rework BitHistory, BitPattern, PacketBuilder.
...
Templatize PacketBuilder to optionally bit unstuff, and have flexible packet termination behavior.
2015-11-09 14:38:09 -08:00
Jared Boone
0b522abbc1
Rename AIS packet handler variables for consistency with spec.
2015-11-09 14:35:06 -08:00
Jared Boone
850c847bbf
Trap attempts to register more than one message handler at a time.
2015-11-09 11:57: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
85383e488b
std::fma not necessary with proper compiler options.
...
std::fma isn't available on Ubuntu 15.04 arm-gcc, apparently. Hence my reviewing this code...
2015-11-08 16:33:32 -08:00
Jared Boone
5dcca89172
FSKProcessor: remove separate channel filter.
...
RRC filter alone will do the trick!
2015-11-07 14:10:44 -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
a366b3ac4f
CRC class.
...
Has some more efficient code, commented out because I was having trouble getting it to work. However, it may have been due to the particular data I was trying to decode and CRC-validate.
2015-11-06 13:49:59 -08:00
Jared Boone
5236a858d0
Change Field.read to const.
2015-11-06 09:40:04 -08:00
Jared Boone
a33aa26bf5
Change header guard name.
2015-11-06 09:40:04 -08:00
Jared Boone
51df92a05a
Rename baseband_ais -> ais_baseband.
...
So that ais_baseband and ais_application filenames can be sorted near each other.
2015-11-06 09:40:04 -08:00
Jared Boone
015e5516d5
Update/consolidate AIS RRC matched filter taps.
2015-11-06 09:40:04 -08:00
Jared Boone
dc30911e0f
Check for widget != nullptr before add/remove child.
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
0a7ac153a7
AIS RRC taps updated, more precision, corrected frequency shift.
2015-11-06 09:40:03 -08:00
Jared Boone
338983e7ae
Remove unused negative-shifted RRC filters.
2015-11-06 09:40:03 -08:00
Jared Boone
3e9f0971e1
Assert that FSKConfiguration size is the same between application and baseband binaries.
2015-11-06 09:40:02 -08:00
Jared Boone
aff7865c61
Move (some) AIS bits to a separate file.
2015-11-06 09:40:02 -08:00
Jared Boone
7a5100baf1
Enlarge packet payload size 256 -> 1024 bits.
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
142617ad94
Silence Clang warning.
2015-11-06 09:40:01 -08:00
Jared Boone
36689f5c45
Refactor bit pattern matching.
...
Remove AccessCodeCorrelator, Unstuff classes.
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
b41ff962f4
Replace std::sin() with interpolated LUT.
2015-10-14 11:10:24 -07:00
Jared Boone
882fbbef31
Add more fft_swap bit reversal functions.
2015-10-14 11:10:24 -07:00
Jared Boone
7f46f0d071
Add tick tracking for all baseband threads.
2015-10-14 10:44:20 -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
293337b647
Init radio in RX mode, not TX mode.
2015-09-02 17:30:16 -07:00
Jared Boone
75d9aa9c73
Remove extra CPLD code internal signals.
2015-08-27 16:54:38 -07:00
Jared Boone
19764ce693
Swap function of P2_8, P2_4 in schematic, firmware, CPLD.
...
gpio_unused: P2_4 -> P2_8
gpio_lcd_rd: P2_8 -> P2_4
P2_8 is a very long line, shared with DFU button.
Revise schematic to match CPLD signal names.
2015-08-27 16:54:38 -07:00
Jared Boone
b13081696d
Simplify MessageQueue pop() usage.
2015-08-27 14:35:17 -07:00
Jared Boone
035ec84f04
Wrap MessageQueue.push() with mutex.
...
This addresses issue #61 , occasional FIFO/data corruption. With the mutex, any thread on one core can write to the FIFO. But still, only one thread on one core should read from the FIFO.
2015-08-26 14:18:03 -07:00
Jared Boone
7937ea7327
Enable DMB instruction at end of FIFO data copy.
...
Can't hurt to make sure FIFO and buffer state are flushed before returning to caller...
2015-08-26 14:13:51 -07:00
Jared Boone
4fe145b61d
Remove application kludge to strip DFU of header.
...
Strip the header in in the Python SPI image generator, instead.
2015-08-25 15:11:22 -07:00
Jared Boone
690c3c98db
Add Shutdown message, plumbing to send and handle.
2015-08-20 18:03:49 -07:00
Jared Boone
bd791a8512
Remove code replaced by memory_map.hpp.
2015-08-20 17:50:20 -07:00
Jared Boone
4b7780f5c6
Move _KiB and _MiB user-defined literals to utility.hpp.
...
Where I put all the stuff I don't know where to put.
2015-08-20 17:15:51 -07:00
Jared Boone
1c3e45917c
Rework to make use of declared memory map regions.
2015-08-20 17:11:08 -07:00
Jared Boone
05690b20ed
Created memory_map header.
...
Knowledge of memory map will be consolidated here.
2015-08-20 17:09:11 -07:00
Jared Boone
52e8093618
Generalize FIFO to specify FIFO size as 2^K.
...
Configure baseband queue to be larger (4K) than application queue (2K).
2015-08-20 15:59:25 -07:00
Jared Boone
4126f1ab1f
Change IPC to exchange data, not pointers.
2015-08-20 13:13:12 -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
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
a7226820d0
Hide implementation of MessageHandlerMap.
2015-08-14 17:31:23 -07:00
Jared Boone
76df4f0369
Extract magnitude_squared to utility.
2015-08-04 14:08:15 -07:00
Jared Boone
efaf13d2d1
Extract complex16_mag_squared_to_dbv_norm to utility.
2015-08-04 12:03:10 -07:00
Jared Boone
d855336985
Persist tuned frequency.
...
w00t!
2015-08-04 10:31:03 -07:00
Jared Boone
4870f0015b
Extract PPB reset value to a constant.
...
Group with related constants.
2015-08-04 10:29:54 -07:00
Jared Boone
52ba9af1c7
Make persistent memory data_t types explicit.
...
I want the storage types to be reliable, separate from the interface types.
2015-08-04 10:29:10 -07:00
Jared Boone
11c786c4fb
Change set_correction_ppb argument to const.
2015-08-04 10:28:23 -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
98a1eb5c1c
Add LCD shutdown method.
...
Resets LCD controller, turns off backlight.
2015-08-01 14:36:27 -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
8af8941687
Use from-RAM DFU image, proper HackRF firmware padding.
2015-07-30 10:02:05 -07:00
Jared Boone
b32f5e2239
Generalize method for executing SPI flash image in M4 RAM.
2015-07-30 09:41:33 -07:00
Clayton Smith
3874c82d57
Store PPM in shared memory for now.
2015-07-29 14:26:40 -07:00
Jared Boone
0ed607b6dd
Short-term focus navigation fix
...
Addresses argilo's immediate problem navigating between fields in a row, issue #32 .
2015-07-29 14:00:59 -07:00
Jared Boone
4aa1c8fb65
String functions now default to length = 0, no padding.
2015-07-20 21:53:12 -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
e571ca7f1c
Change reference initializations errors in GCC 4.8
...
Resolves issue #12 .
2015-07-17 12:07:38 -07:00
Jared Boone
7c9fc62f5e
Move halt indication code to common place.
2015-07-08 16:28:57 -07:00
Jared Boone
dc6fee8370
Initial firmware commit.
2015-07-08 08:39:24 -07:00