Skip to content

Commit 8d0e336

Browse files
committed
Ver bump, new icon, RX brainstorming
1 parent 156a415 commit 8d0e336

16 files changed

+13
-12
lines changed

README.md

+9-8
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Emulation:
1919
- [ ] Validate arha's bitmap changes, transition over to it fully
2020
- [ ] General code cleanup
2121
- [ ] Reverse track precompute & replay (should be simple with new bitmap approach; just iterate through bytes backwards, bits forwards?)
22-
- [ ] Prefix/between/suffix addition to config menu
2322
- [ ] Parameter tuning, find best defaults, troubleshoot improperly parsed TX
2423
- [ ] Pursue skunkworks TX improvement ideas listed below
2524

@@ -35,15 +34,17 @@ File management:
3534

3635
## Skunkworks ideas
3736
Internal TX improvements:
38-
- [ ] Attempt downstream modulation techniques, in addition to upstream, like the LF RFID worker does when writing, for stronger signal
37+
- [ ] Attempt downstream modulation techniques in addition to upstream, like the LF RFID worker does when writing.
3938
- [ ] Implement using the timer system, rather than direct-writing to pins
4039
- [ ] Use the NFC (HF RFID) coil instead of or in addition to the LF coil (likely unfruitful from initial tests; we can enable/disable the oscillating field, but even with transparent mode to the ST25R3916, it seems we don't get low-enough-level control to pull it high/low correctly)
4140

4241
External RX options:
43-
1. UART-connected mag reader (bulky, but likely easiest to read over GPIO, and means one can read all tracks)
44-
2. Square audio jack mag reader (this may be DOA; seems like newer versions of the Square modules have some form of preprocessing that also modifies the signal, perhaps in an effort to discourage folks using their hardware independent of their software. Thanks [@arha](https://github.com/arha) for your work investigating this)
45-
3. Some read-head directly connected to GPIO, ADC'd, and parsed all on the Flipper. Likely the most compact and cheapest module option, but also would require the most work.
46-
4. USB HID input likely infeasible; seems the FZ cannot act as an HID host.
42+
1. [TTL / PS/2 mag reader connected to UART](https://www.alibaba.com/product-detail/Mini-portable-12-3-tracks-usb_60679900708.html) (bulky, harder to source, but likely easiest to read over GPIO, and means one can read all tracks)
43+
2. Square audio jack mag reader (this may be DOA; seems like newer versions of the Square modules have some form of preprocessing that also modifies the signal, perhaps in an effort to discourage folks using their hardware independent of their software. Thanks [arha](https://github.com/arha) for your work investigating this)
44+
3. Some [read-head](https://www.alibaba.com/product-detail/POS-1-2-3-triple-track_60677205741.html) directly connected to GPIO, ADC'd, and parsed all on the Flipper. Likely the most compact and cheapest module option, but also would require the most work.
45+
4. USB HID input over pre-existing USB C port infeasible; seems the FZ cannot act as an HID host (MCU is the STM32WB55RGV6TR).
46+
5. Custom USB HID host hat based on MAX3421E (USB Host Controller w/ SPI), like the [Arduino USB Host Shield](https://docs.arduino.cc/retired/shields/arduino-usb-host-shield). Would be a large but worthwhile project in its own right, and would let one connect any USB HID reader they desire (or other HID devices for other projects). Suggestion credit to [arha](https://github.com/arha).
47+
6. Implement a software USB host solution over GPIO like [esp32_usb_soft_host](https://github.com/sdima1357/esp32_usb_soft_host). Suggestion credit to [arha](https://github.com/arha). Also a large undertaking, but valuable in and of itself.
4748

4849
## arha todo & notes
4950
Attempting to exploit flipper hardware to some extent
@@ -61,8 +62,8 @@ Attempting to exploit flipper hardware to some extent
6162
This project interpolates work from [Samy Kamkar's original MagSpoof project](https://github.com/samyk/magspoof), [dunaevai135 & AlexYaro's Flipper hackathon project](https://github.com/dunaevai135/flipperzero-firmware), and the Flipper team's [LF RFID](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/main/lfrfid) and [SubGhz](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/main/subghz) apps.
6263

6364
Many thanks to everyone who has helped in addition to those above, most notably:
64-
- [arha](https://github.com/arha) for bitmapping work and skunkworks testing (now a collaborator!)
65-
- [Z4urce](https://github.com/Z4urce) for the provisional app icon
65+
- [arha](https://github.com/arha) for bitmapping work, skunkworks testing, and inumerable suggestions/ideas/feedback (now a collaborator!)
66+
- [Z4urce](https://github.com/Z4urce) for an earlier app icon
6667
- [antirez](https://github.com/antirez) for bitmapping suggestions and general C wisdom
6768
- [skotopes](https://github.com/skotopes) for RFID consultation
6869
- [NVX](https://github.com/nvx) + dlz for NFC consultation
-2.32 KB
Binary file not shown.
-150 Bytes
Binary file not shown.
-10.1 KB
Binary file not shown.
-10.6 KB
Binary file not shown.
-8.33 KB
Binary file not shown.
-9.56 KB
Binary file not shown.
-9.73 KB
Binary file not shown.
-9.82 KB
Binary file not shown.
-478 Bytes
Binary file not shown.

helpers/mag_types.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#define MAG_VERSION_APP "0.02"
3+
#define MAG_VERSION_APP "0.03"
44
#define MAG_DEVELOPER "Zachary Weiss"
55
#define MAG_GITHUB "github.com/zacharyweiss/magspoof_flipper"
66

icons/mag_10px.png

2.05 KB
Loading

icons/mag_file_10px.png

2.34 KB
Loading

mag_device.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ bool mag_file_select(MagDevice* mag_dev) {
179179
mag_app_folder = furi_string_alloc_set(MAG_APP_FOLDER);
180180

181181
DialogsFileBrowserOptions browser_options;
182-
dialog_file_browser_set_basic_options(&browser_options, MAG_APP_EXTENSION, &I_mag_10px);
182+
dialog_file_browser_set_basic_options(&browser_options, MAG_APP_EXTENSION, &I_mag_file_10px);
183183
browser_options.base_path = MAG_APP_FOLDER;
184184

185185
bool res = dialog_file_browser_show(

scenes/mag_scene_emulate.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void mag_scene_emulate_on_enter(void* context) {
1313

1414
// TODO: Display other relevant config settings (namely RFID vs GPIO)?
1515

16-
widget_add_icon_element(widget, 2, 1, &I_mag_10px);
16+
widget_add_icon_element(widget, 2, 1, &I_mag_file_10px);
1717
widget_add_string_element(
1818
widget, 13, 2, AlignLeft, AlignTop, FontPrimary, furi_string_get_cstr(tmp_str));
1919
furi_string_reset(tmp_str);

scenes/mag_scene_saved_info.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ void mag_scene_saved_info_on_enter(void* context) {
1010
// Use strlcpy instead perhaps, to truncate to screen width, then add ellipses if needed?
1111
furi_string_printf(tmp_str, "%s\r\n", mag->mag_dev->dev_name);
1212

13-
widget_add_icon_element(widget, 2, 1, &I_mag_10px);
13+
widget_add_icon_element(widget, 2, 1, &I_mag_file_10px);
1414
widget_add_string_element(
1515
widget, 13, 2, AlignLeft, AlignTop, FontPrimary, furi_string_get_cstr(tmp_str));
1616
furi_string_reset(tmp_str);

0 commit comments

Comments
 (0)