TylerWilley / flipper-f-com

Flipper Zero Digimon V-Pet connection application
GNU General Public License v3.0
23 stars 3 forks source link

Flipper Zero F-Com

Overview

A Flipper Zero app that allows the flipper to communicate with Digimon V-Pets.

Currently tested devices:

Classic:

Modern:

Color:

Currently tested apps:

Unsupported Apps:

Untested:

Thanks to Joushiikuta for testing the classic devices which I do not have.

Based on:

Youtube Example

Video showing app in action

Flipper Hat Module

You will need to construct a circuit similar to the A-Com circuit described in the dmcomm-project github.

Schematic

Pin C3 - 4k resistor - Pin B2 - 20k resistor - Pin GND

Pin B2 - VPet+

Pin GND - VPet-

The 4k/20k resistor pairing is confirmed to work with the older devices. If you only need modern device support 2k/10k is also compatible, though it will not work with older devices.

Joushiikuta has created an awesome gerber file for a compatible PCB located here (included with permission)

You will also need compatible right angle header pins and SMD resistors.

Installation

The F-Com app is compiled and installed with ufbt

After installing ufbt, checkout the F-Com git repository, connect your flipper (and make sure that qFlipper is not running), and run "ufbt launch" to install.

On windows:

  1. Navigate to the checked out copy of the F-Com git repository. Note: Path should look similar to C:\Users\user\[...]\flipper-f-com
  2. Open command line in the flipper-f-com folder
  3. Run py -m ufbt
  4. Run py -m ufbt launch For macOS and Linux, use python3 in place of py.

It will be installed under the GPIO section.

This repository contains a selection of digiroms in the codes directory. You may copy them to the app_data/fcom directory on your flipper to make them accessible under the "Saved" menu option.

Menu options

Listen

Listen mode is now partially functional. It is difficult to get a good read at the moment although it is possible. I need to re-work the code to use rising/falling edge detection instead of looping though so the flipper GUI does not hang, and we don't have to spend the whole time looping on a GPIO read.

Listen allows you to connect 2 vpets to each other and eavesdrop on the data they send. Both codes will show up on the flipper after communication completes, and you can save either code to the flipper for later use. Leaving this screen will pause dmcomm.

Saved

Saved will open a file picker, allowing you to choose a previously saved digirom code. After selection, the flipper will begin attempting to repeatedly send the code. After the code is sent, the received response will display on the screen, and you can optionally save the response to another file on the flipper. Leaving this screen will pause dmcomm.

Add Manually

Add manually will open a dialog allowing you to enter a digimon manually on the flipper itself. The flipper keyboard does not currently support special characters so ^ and @ characters cannot yet be entered. After entering the code a second text entry screen will display allowing you to enter a file name. After saving, it will return to the main menu. If you wish to send the code you can enter 'Saved' and select it.

USB A-Com

Tested with the Alpha-Wiki Android App.

The flipper will change the USB port from CLI mode into Serial mode and behave as an A-Com. Serial data transferred in both directions will appear in the flipper's text box on screen. Pressing the back button will return the USB port to CLI mode and pause dmcomm.

Other Notes / Future stuff

Dmcomm supports a voltage test. However, the flipper zero firmware does not yet have ADC support implemented. This is still possible as demonstrated by the flipper zero oscilloscope project. At some point I may implement this. A-Com's themselves use analog input in order to support a wider range of devices logic levels. This may limit the flipper app's compatibility for now.