[General Discussion] QF001 (ROCO K706) Head Units with UIS 7862s (not FYT based) [read first post first]

Search This thread

jbo1

Member
Nov 21, 2009
5
24
colorado springs
Thats very interesting. I was actually doing the same last night and managed to open some popups saying some chineese.
The only that concerns me when i do random codes is that we might enable or disable something in a Chinese menu...and with the support we have from the resellers not even God can help us...
Off course if we don't try we do nothing here..
Dont know i am very sceptical on that..
I think the ones that popup Chinese just export some log file. At least the ones I posted. Not sure if yours was different.
 

lefterisa3

Senior Member
Jul 20, 2017
101
58
No... everything seems good for now.
In other platforms (FYT) there is some codes that if you enter deletes a file and the device pops up a red notification and doesn't boot..
 

lacrimosa2k2

Member
Nov 23, 2007
35
19
Short question,
Have anyone a Mazda3 2004-2009?
I have the little Problem that in the Steering wheel the next / previus Buttons are swaped and the Mode Button that i must hold Long for switching the head Display information make a mute by Long press but i have a mute Button extra.
 

blue_one

Senior Member
Dec 10, 2006
200
157
Huawei Mate 9
Xiaomi Mi 10T / 10T Pro
Short question,
Have anyone a Mazda3 2004-2009?
I have the little Problem that in the Steuerung wheel the next / previus Buttons are swaped and the Mode Button that i must hold Long for switching the head Display information make a mute by Long press but i have a mute Button extra.
You can change the steering wheel buttons inside the factory menu.
 

Meteordust

Senior Member
Feb 3, 2014
289
128
Zurich
Can you Show me the way? I only found the Menü to Set the Touch buttons
Assume you bought this unit that matches your car, then just use the CarApp, SWC (steering wheel control).
If CarApp shows no SWC and only some text with no Canbus, then you need to set it right first.

What unit you actually have?

Learning touch buttons in factory settings is for the physical buttons on your unit.
 
Last edited:

lefterisa3

Senior Member
Jul 20, 2017
101
58
Me too...
Trying everything.
I saw Google app didnt have all the system permissions on (show on top of other apps...ect) did that too.. no luck so far. And a finding ..The dsp rear speaker surround adjustment bar is not working
 

Meteordust

Senior Member
Feb 3, 2014
289
128
Zurich
Regarding the Google assistant problem I've deleted toppal voice and service app but that did not solve the problem. The voice match feature is still greyed out.
As you probably know in trying to crack the nut.

Here and there in configuration files and Voiceapp.ini, Toppal is set as the main VA...so Google VA needs to be set as the main Voice app, but also not a developer of firmware.

Hope you not brick your device in trying by trial and error :rolleyes:

Appreciate your efforts, personally believe that you need to set the default voice assistant by coding changing Toppal to GA and have the services that GA needs.
 
Last edited:

Clyde72

Senior Member
Dec 3, 2022
588
207
Samsung Galaxy A70
Lenovo P11
Regarding the Google assistant problem I've deleted toppal voice and service app but that did not solve the problem. The voice match feature is still greyed out.
Toppal depends on TXZ Service which runs in the background for voice match. Google Assistant would need Speech Service for Google in stead running in the background for voice match to work. So there is the conflict.

Toppal gets automatically reinstalled when updating firmware btw. Found that when I did the 1216 fw update.
 
Last edited:

Dezik

Member
Jan 29, 2023
8
0
When the car is connected, should the Canbus be visible in the Car app or do I have to select the car model by myself in the 8888 menu?
 

Attachments

  • received_485225623803428.jpeg
    received_485225623803428.jpeg
    23.7 KB · Views: 126

blue_one

Senior Member
Dec 10, 2006
200
157
Huawei Mate 9
Xiaomi Mi 10T / 10T Pro
I've managed to deactivate the internal microphone without desoldering it which I did not want. I've used ultra thin isolation tape on pin 1 and 2 of this ribbon cable connector. (You could also just cut through the two wires of the cable. A new one costs almost nothing.) Works perfectly. The external microphone becomes louder and clearer.
As always: do it on your own risk.
IMG_20230130_162822.jpg
 

Clyde72

Senior Member
Dec 3, 2022
588
207
Samsung Galaxy A70
Lenovo P11
And what should you do if the exact model is not listed?? i drive a citroen c4 picasso, but that one is not listed in the factory menu car settings..?
Tom, try a similar model or the model before. If I remember well I could also select 2003-2007 Golf in stead of the actial 2008-2012 Golf, both worked but possibly Golf Plus or Golf Sportsvan would also work. Citroen C4 also has several versions but should basically be the same base model. Just try...
 
Last edited:

fefferico

Senior Member
Dec 14, 2012
100
16
Do you guys know if it's possible to downgrade the firmware?
Dunno if it's just me but mine (v1.4-221216.1830) seems to reset many options I keep enabling.
 

fefferico

Senior Member
Dec 14, 2012
100
16
Try to upgrade to the latest firmware (20230104) and check if solves the issues
Thanks I thought mine was the latest, just saw it in the firmware thread. Thanks mate, I'll try asap

edit: nope, tried even latest version but the problem is still there
Video proof https://streamable.com/d82n3n
I know the version shown in the video it's different but it behaves the same as the new one
 
Last edited:

Top Liked Posts

  • 1
    How do you turn on the radio again?
    all that's left is to reset
  • 6
    New firmware update available:
    Firmware: https://transfer.pcloud.com/download.html?code=5Z2cH40ZEFf9NIE9NO4ZwRnAZwnYEe7bVzKHPcox4AUEtduBHeTay
    MCU: https://we.tl/t-2JqtkekSCN

    Firmware changelog:
    2024-03-09 (v3.03) update record:
    1. Solve the problem of low music sound on the 37534 board
    2. Add the function to select the video output of a single APP

    According to 4PDA forums, Hizpo seller said that the 4G is fixed too

    Finally we got MCU changelog too:
    QF05.V02.03.20240106.002121:
    1. Optimize the bootloader to prevent data overlapping during upgrade.
    2. Modify the BD37534 power amplifier volume control fader attenuation to vol attenuation to improve the waveform distortion problem.
    3. Solve the problem that the ACC will enter the recovery state 15 seconds after turning off the power and then turning on the ACC again.

    QF05.V02.02.20231228.002121:
    1. Solve the pop sound in the radio when beep is turned on.
    2. Increase the sound size gradient when the volume changes suddenly.
    3. For all projects, change MCU_IO+3_3V power-off to pull PBINT and then execute according to the sleep status.

    QF05.V02.02.20231220.002121:
    1. Reduce the amplifier volume.

    QF05.V02.01.20231122.002121:
    1. Add MCU pin 45 to output VCOM PWM pulse.
    2. Change the radio reset control pin to be output from MCU pin 33.

    QF05.V02.01.20231111.002121:
    1. Add compatible square control keys with pull-down LEDs.

    QF03.V01.06.20230814.001121:
    1. Added the forced burning function on compatible new PCB boards.
    2. Reduce the delay of can forwarding to the upper layer.
    3. Adjust the volume of each MPU.

    QF03.V01.05.20230617.002121:
    1. Modify the screen power off time point to ensure that any operation will have a certain interval between the screen powering off/powering on again.

    QF03.V01.04.20230615.002121:
    1. Solve the problem of the built-in music being played silently for the first time when the 7708 radio is powered on after TA is turned on.

    QF03.V01.03.20230614.002121:
    1. Modify the Japanese radio FM band range to 76-95MHz.
    2. Reduce the level 2 volume.
    3. Delay the power off of the screen to adapt to the integrated LCD and touch module (sharing a set of power supplies).

    QF03.V01.01.20230315.002121:
    1. Adapt the hardware modification (delete R182/R183), adjust the low-frequency frequency response and sound field balance, and solve the 20HZ audio problem.
    2. Reduce the volume by one level.

    QF01.V01.73.20230207.002121:
    Fixed the POP sound when exiting the radio.

    QF01.V01.72.20230204.002121:
    Try to solve the problem that the square control keys of some models cannot be learned after waking up from sleep.
    Compatible with recovery detection when the square control key has a smaller pull-down resistor.
    Modify the mixing ratio and set it to 0% to play the navigation sound and completely turn off the main channel sound.

    QF01.V01.72.20230114.002121:
    According to the new PCBA hardware, change the recovery control level polarity.
    QF01.V01.72.20230106.002121:
    Solve the problems of navigation silence, noise, unbalanced proportion and other problems in optical fiber output.
    According to the new PCBA hardware, change to digital mix input and play the main channel sound at a low level.
    Incorporate the code to flexibly set MCU pin 41 to different functions (beep and LED) into the project.

    QF01.V01.71.20230103.002121:
    Press new PCBA hardware, change mix from IIS channel input.

    QF01.V01.70.20221216.002121:
    Modify the RDS scanning characteristics when pressing TP/PTY on the radio.
    Added BU32107 bass control.
    Adjust the BD37534 subwoofer control to the new protocol.

    QF01.V01.69.20221205.002121:
    Added battery voltage indication function.

    QF01.V01.68.20221125.002121:
    Added BD37534 bass control.
    QF01.V01.68.20221124.002121:
    Fixed dual-channel analog key detection.
    QF01.V01.68.20221123.002121:
    Added control of optical fiber coaxial signal output.
    Added external amplifier options.
    QF01.V01.68.20221118.002121:
    Added monitoring of sleep indicator pin when powered on.
    Added sleep power-off control.

    QF01.V01.67.20221109.002121:
    Add code to support RDS RT function.

    QF01.V01.66.002121_20221031:
    Solve the problem that the TDA7708 radio cannot initially search for radio stations in the FM2 frequency band in Eastern Europe.

    QF01.V01.66.002121_20221029:
    Fixed radio Eastern Europe locale issue.
    Fixed the issue where the radio would not search if the regional settings were changed while AM radio was being played.
    Solve the problem of radio flashing when turning on the radio for the first time.

    QF01.V01.65.002121_20221026:
    Modified low voltage reset from 6V to 8.3V.
    Restart the transition state between entering the high and low voltage thresholds and returning to the normal voltage range (to solve the black screen problem during upgrades or power-on).
    Modify the module work detection pin in the bootloader from MCU pin 3 to pin 35.

    QF01.V01.65.002121_20221024:
    Modify the power-on initialization process of si4745 radio.
    Change the PB11 pin to adapt to the recovery mode.
    Corrected the reverse protocol reporting packet.

    QF01.V01.64.002121_20221019:
    Add PS character filtering.

    QF01.V01.64.002121_20221018:
    Try to solve the problem that some machines display a black screen when starting up (change the order of 200ms delay to solve the problem of blurry screen).
    Supports more comprehensive radio station information saving.

    QF01.V01.62.002121_20221014:
    Solve the problem of saving new channels when searching for RDS AF.

    QF01.V01.61.002121_20221012:
    Solve the problem of screen distortion on some machines (AVDD voltage fails to oscillate).
    Modify radio RDS search, power-off station saving and other functions - new system software is required.

    QF01.V01.60.002121_20220929:
    Adjust the MPU volume level, and the equalization/mix size between the radio and the channel.
    Delay detection for 4 seconds when turning off the headlights (solve the problem of the screen flickering when the headlights are turned on in Focus).

    QF01.V01.57.002121_20220919:
    The sleep detection is changed to power off when more than 30% failure occurs.

    QF01.V01.55.002121_20220915:
    Adjust the EQ and input gain. It must adapt to the core module and change it to 900mv balanced output, and at the same time cancel the last knob rotation direction.

    QF01.V01.51.002121_20220913:
    Adjust the partial pressure value of the knob.

    QF01.V01.50.002121_20220912:
    Adjust DSP32107 EQ across the entire frequency band.

    QF01.V01.49.002121_20220912:
    Modify the EQ and improve the low-frequency components.

    QF01.V01.47._20220830:
    Added Lingyun technology project, supporting 2-way lanterns + 2 encoding keys + 2-way keys, supporting encoding key resistance value 47K and 10K||20K divided pressure.

    QF01.V01.46.002121_20220819:
    Fine-tune the rotary encoding key to improve the detection rate.

    QF01.V01.45.002121_20220818:
    PB12 is powered off together with PB3 in advance to improve the hibernation failure problem.

    QF01.V01.44.002121_20220817:
    Solve the problem of suddenly turning off ACC and making a POP sound when searching for channels on the radio, and making Bluetooth calls while the radio is on.
    At the same time, turn off the screen/turn off ACC, and then turn on ACC radio. There is no sound problem.

    QF01.V01.44.011021_20220817:
    Solve the problem of suddenly turning off ACC and making a POP sound when searching for channels on the radio, and making Bluetooth calls while the radio is on.
    At the same time, turn off the screen/turn off ACC, and then turn on ACC radio. There is no sound problem.

    QF01.V01.43.002121_20220814:
    Solve the problem of regular sleep wake-up.

    QF01.V01.43.011021_20220814:
    Solve the problem of regular sleep wake-up.

    QF01.V01.42.011021_20220813:
    Change the pulse width of PBINT during sleep to 400ms, which will improve the sleep failure of the new version of PCBA, and change it to sleep for 5 minutes.
    If any awakening is detected, the power will be turned off immediately.

    QF01.V01.41.011021_20220812:
    Solve the problem of invalid panel buttons after setting lanterns.

    QF01.V01.39.011121_20220808:
    Solve the problem that the radio is sometimes silent after waking up from sleep in AM mode.

    QF01.V01.38.20220805:
    When the radio is searching, if a zone switch is received, the interrupt will not be executed (to avoid the automatic search being accidentally terminated after power off).

    QF01.V01.37.20220804:
    The radio uses Si473x and the audio IC uses BD37534.

    QF01.V01.36.20220803:
    The radio uses TDA7708 and the audio IC uses BD37534.

    QF01.V01.35.20220802:
    Initial test of radio TDA7708, audio IC uses BU32107.

    QF01.V01.34.20220719:
    Solve the problem that sometimes the right speaker is silent.

    QF01.V01.33.20220712:
    The square control key adds a long press function and adaptive pull-down matching resistor.

    QF01.V01.32.20220705:
    Change the external square control key to work in scanning different impedance modes.

    QF01.V01.31.20220619:
    Modify the default radio station for Southeast Asia radio.

    QF01.V01.30.20220609:
    Lower the radio channel search threshold.

    QF01.V01.29.20220602:
    Solve the problem that when the 1KHz test signal is played, a pop sound occurs when the volume is adjusted.

    QF01.V01.28.20220519:
    Adjust MPU volume power.

    QF01.V01.27.20220511:
    Changed to be able to switch the analog/digital input channel of the DSP in real time.

    QF01.V01.26.20220507:
    Releases the minimum AVDD PWM lock value.
    Adjust the timer clock of ST MCU to be consistent with MM.

    QF01.V01.25.20220506:
    Increase the amplifier mute time when waking up to 6 seconds.

    QF01.V01.24.20220505:
    Solve the problem of hibernating pop sound when turning on key sound.
    Solve the problem of silent radio navigation under IIS.
    Increase the amplifier mute time when waking up to 4 seconds.

    QF01.V01.23.20220423:
    Shield the recover pulse.
    Locked minimum AVDD PWM value is 84.

    QF01.V01.22.20220419:
    Added 6V low power reset function.

    QF01.V01.21.20220415:
    Adjust the radio module power-on parameters and mute time on the PCBA.

    QF01.V01.20.20220413:
    Solve the problem of abnormal radio jump when switching from radio status to built-in music playback.

    QF01.V01.19.20220409:
    After successfully waking up from the sleep state, it is detected that the ARM is not working properly before being forced to reset.

    QF01.V01.18.20220408:
    Forced reset when detecting that ARM is not working properly.
    Solve the problem of POP sound when turning on/off the power amplifier power during certain operations.

    QF01.V01.17.20220406:
    Increase the time interval from waking up to pulling PBINT again.

    QF01.V01.16.20220402:
    Add one bit to indicate the version description of the external hardware type.

    QF01.V01.15.20220329:
    Solve the problem of BU32107 being silent after switching ACC.

    QF01.V01.14.20220328:
    Solve the problem of silence after waking up from sleep with ACC turned on.

    QF01.V01.13.20220326:
    Added hardware detection CODEC function.

    QF01.V01.12.20220323:
    Solve the noise problem during BD37534 setup.
    Solve the problem of black screen when ACC ON is pulled when PBINT is not pulled.

    QF01.V01.11.20220318:
    Added automatic silent restart function when sleep fails.

    QF01.V01.10.20220311:
    Changed to delay 6 seconds after receiving the sleep notification before powering off and pulling PBINT.

    QF01.V01.09.20220310:
    Set the DSP audio to analog input, and add a 3-second delay after receiving the sleep notification before powering off and pulling PBINT.

    QF01.V01.08.20220302:
    Set DSP audio as IIS input.

    QF01.V01.07.20220302:
    Shorten the mute turn-on time after quickly switching ACC OFF/ON.
    Fixed the problem of the radio being silent after quickly switching ACC OFF/ON in radio mode.

    QF01.V01.06.20220228:
    Do not turn off the ARM power supply under any circumstances, and the action ACC will always be triggered by PBINT.

    QF01.V01.06.20220225:
    Set DSP audio as IIS input and turn off forced power off.

    QF01.V01.05.20220221:
    Set the DSP to analog audio input and enable normal forced power-off.

    QF01.V01.03.20220214:
    Solve the problem that the band switch does not jump to the first valid station.
    Turn off the forced power-off of the ARM when the heartbeat is abnormal to test whether it causes the ARM to restart.

    QF01.V01.02.20220211:
    Solve the problem of noise when pressing the volume keys when searching for channels when the key tone is turned on.

    QF01.V01.02.20220125:
    The first official release for road testing during the Spring Festival.

    P.S.: Clean Install recommended otherwise Launcher themes will not be available!
    5
    Aloha friends. Things are becoming quite cluttered concerning the k706 [qf001] device. I've spent weeks to "dive" into the device and discovered many useful things that are usefull for operating the device efficiently and stably in a self-created environment. This environment is relatively simple to set up and requires minimal intervention since I've already made many things available here for you. I've essentially deconstructed the entire os and identified all the "crucial non-typical Android elements" in the device, adding my own elements. The issue with the k706 is that many hardware components are prioritized but somehow communicate with Android. I've extracted many these "intent/action" interactions and making them available here. I've also found [from an other User] a reasonable root solution without making significant modifications inn the bootloder/etc. > that reducing the chance to bricking the device. Here's some preliminary information, but I'll make another post to organize the elements properly. Please note, all actions are at your own risk and without warranty!!!!!

    These instructions are for adv. users, they know what they do!!!

    Codes for the factory settings menu(copied from the beginning of, but for the further infos important):

    8888 - access to advanced settings

    114477 - activates developer mode (than you have to do the usual procedere: touch the build number on the system info screen several times until it says that you are developer now.)

    22558800 factory reset

    996633 - Exports some config file > userfull to modify systemvariables ore READOUT THE steering learning codes (when you used buttons with resistors ory rotary knob for volume control).....

    ROOTING
    =======
    ROOT-access is not neccessary but it´s very usefull to use some soft like titaniumbackup, rootexplorer, TASKER (with the root options, TASKER can run also w/om root).

    ROOTING via ADB
    attention: ONLY tested on QF001.20240119.125814xxxxxxxx / QF05.V02.03.20240106.002121


    Device must be in stock mode with shown version and factory reset (can try w/o restet but SAVE YOUR DATA!!!). NORMALY(!) it´s not possible to brick the unit, because you don´t modify MCU,etc..This root-method based on the already existing root on ADB!
    the HU must be in develop. mode with ´USB-Debugging´ active.


    - rooting with WINDOWS10/11 (download -std. adb-dev.plattform-tools-). pls. run CMD as
    admin

    - needed files: boot-patched.img, vbmeta-patched.img, magisk-manager-27-0.apk
    (put the first 2 files in your ADB dir directly)

    - rooting via wireless adb (HU must be in same network)

    - adb connect [ip] on port 9876 example > adb connect 192.168.1.101:9876
    -when successfull connected:


    1.) copy files to device:
    adb push boot-patched.img /sdcard
    adb push vbmeta-patched.img /sdcard

    2.) "inject" uploaded files > when done don´t leave the adb shell... you need adb shell in step 3. too!

    adb shell
    dd bs=1024 count=35840 if=/sdcard/boot-patched.img of=/dev/block/mmcblk0p34
    dd bs=1024 count=1024 if=/sdcard/vbmeta-patched.img of=/dev/block/mmcblk0p40
    dd bs=1024 count=1024 if=/sdcard/vbmeta-patched.img of=/dev/block/mmcblk0p41

    3.) rename the "stock/old" su, because magisk don´t work when the an existing other su

    mount -o rw,remount /
    cd /system/xbin
    mv ./su /.su_old
    mount -o ro,remount /
    exit
    adb disconnect

    4.) restart device install magisk. magisk will make the rest mods.... ROOTING DONE!

    >>>i made this several times, it works perfectly!<<<

    SOME OTHER USEFULL INFORMATIONS for adv. Users (i sorted these when i done my K706-project)

    ====================================================

    com.qf.action ACTIONS (for use in TASKER,etc.)
    ------------------------------------------------------
    2 OF THE MOST IMPORTANT ACTIONS

    com.qf.action.ACC_ON > broadcast IGNITION ON

    com.qf.action.ACC_OFF > broadcast IGNITION OFF (11 seconds time to sent other
    command after the ignition is off (screen goes off) to the HU (via for example TASKER).
    After that, the device is in sleep mode.

    com.qf.action.BT_STATE
    com.qf.action.MUTE_EQ
    com.qf.action.READY_GO_SLEEP_PRE
    com.qf.action.STARTUP_RECENT
    com.qf.action.VOLUME_CHANGED
    com.qf.action.bt.battery
    com.qf.action.bt.pan.change
    com.qf.action.car_backlight_changed
    com.qf.action.car_backlight_control
    com.qf.action.car_screen_close
    com.qf.action.car_volume_changed
    com.qf.action.car_volume_control
    com.qf.action.update_battery_power

    com.qf.intent Actions:
    ------------------------
    com.qf.intent.ACTION_AUDIOSTART
    com.qf.intent.ACTION_AUDIOSTOP



    ROTARY VOLUME KNOB
    -------------__------------

    i also wrote a "rotary knob box" IDE sketch to user an rotary knob for volume control (mute, an screen off)

    Rotary-Encode is KY-040, Arduino is NANO, pins seen in code. Arduino powered over ACC and the simulated resistor wire is connecte to the wire "KEY1". i used supermicro-relais connnect directly to the arduino pins to isolate the "resistor-section" 100% from the arduino. This ist for more adv. Users tu make this "arduino rotary knob box". >don´t forget to use the relais with diodes (parallel connect to the relais-coils) to protect the arduino controller fpr overcorrent, typical prodoced by the relay self when release contacts!

    example script:


    // version 1.03
    // Rotary Encoder with integrated push-button function to emulate resistance values for the K706 (or other Android car radio control)
    // Different actions simulate different resistances (you can use other Resistors like in my Sketch, but with a min. dif. of 500Ohm):
    // - Turning up the volume: Simulates a resistance of 1.8 kOhm
    // - Turning down the volume: Simulates a resistance of 2.7 kOhm
    // - Single button press: Simulates a resistance of 4.52 kOhm
    // - Double button press: Simulates a resistance of 870 Ohm
    // The learning mode of the Rotary Box allows for the control to be programmed to the radio. In this mode, the actions
    // (Volume up, Volume down, Button press, Double button press) are held by the box for 3 seconds to allow the radio to recognize the resistances.
    // This is necessary because, in normal operation mode, the simulated resistances cannot be correctly detected by the radio
    // due to the short duration of the action.
    //
    // Activating learning mode:
    // - To enter learning mode, the button must be pressed and held before turning on the box/radio,
    // turn on the box/radio and release after 5 seconds.
    //
    // Exiting learning mode:
    // - The learning mode automatically ends if the box (depending on the connection method) is powered down by turning off
    // the radio/ignition/etc. for 10 seconds. Subsequently, the box restarts in normal mode.

    // Pin definitions
    #define CLK_PIN 7
    #define DT_PIN 6
    #define BUTTON_PIN 5
    #define RELAY_LOUDER 9
    #define RELAY_QUIETER 10
    #define BUTTON_FUNCTION_PIN 11

    // Time constants
    const unsigned long POST_ROTATION_BLOCK_TIME = 1;
    int RELAY_ON_DELAY = 30; // Dynamically based on mode
    int RELAY_OFF_DELAY = 30;
    const unsigned long DEBOUNCE_TIME = 20;
    const unsigned long DOUBLE_CLICK_TIME = 300;
    int BUTTON_HOLD_TIME = 190; // Dynamically based on mode
    const unsigned long LEARNING_MODE_TIMEOUT = 20000; // 20 seconds for restart in learning mode

    // State variables and timestamps
    int lastCLKState;
    int currentCLKState;
    unsigned long lastRotationDetectedTime = 0;
    unsigned long lastRelayActivationTime = 0;
    bool rotaryEnabled = true;
    unsigned long lastInputTime = 0; // Time of the last input

    // Variables for button logic
    unsigned long lastButtonPressTime = 0;
    bool buttonPressed = false;
    int buttonPressCounter = 0;

    // Learning mode variable
    bool learningMode = false;

    void setup() {
    pinMode(CLK_PIN, INPUT);
    pinMode(DT_PIN, INPUT);
    pinMode(BUTTON_PIN, INPUT_PULLUP);

    pinMode(RELAY_LOUDER, OUTPUT);
    pinMode(RELAY_QUIETER, OUTPUT);
    pinMode(BUTTON_FUNCTION_PIN, OUTPUT);

    lastCLKState = digitalRead(CLK_PIN);

    // Direct activation of learning mode if the button is pressed at startup
    if (digitalRead(BUTTON_PIN) == LOW) {
    learningMode = true; // Activate learning mode immediately
    BUTTON_HOLD_TIME = 3000; // Set time variables for learning mode
    RELAY_ON_DELAY = 3000;
    }

    lastInputTime = millis(); // Initialize the timer for the last input
    }

    void loop() {
    handleButton();

    if(rotaryEnabled) {
    handleRotary();
    }

    // Check if 20 seconds have passed without input (only in learning mode)
    if (learningMode && millis() - lastInputTime > LEARNING_MODE_TIMEOUT) {
    setup(); // Perform a "soft reset"
    }
    }

    void handleRotary() {
    currentCLKState = digitalRead(CLK_PIN);
    if (currentCLKState != lastCLKState) {
    if ((millis() - lastRelayActivationTime) >= POST_ROTATION_BLOCK_TIME) {
    if (digitalRead(DT_PIN) != currentCLKState) {
    activateRelay(RELAY_LOUDER);
    lastRotationDetectedTime = millis();
    } else {
    activateRelay(RELAY_QUIETER);
    lastRotationDetectedTime = millis();
    }
    lastRelayActivationTime = millis();
    }
    lastCLKState = currentCLKState;
    lastInputTime = millis(); // Update the timer for the last input
    }
    }

    void handleButton() {
    bool currentButtonState = digitalRead(BUTTON_PIN) == LOW;

    if (currentButtonState && !buttonPressed && (millis() - lastButtonPressTime) > DEBOUNCE_TIME) {
    buttonPressed = true;
    lastButtonPressTime = millis();
    buttonPressCounter++;
    lastInputTime = millis(); // Update



    -------------------------------------------------------------



    other infos in my next/complete post. regards, chris.
    5
    Hello, I wanted to share my experience with Hizpo Europe Store.

    I bought an S8 in May 2023. In November 2023, the screen went black. The radio could be heard, and I could feel that the touchscreen was responding, but I couldn't see where I was touching because the icons were not visible.

    I contacted the seller, who first asked me to reset the device and provide a video. Uploading the video to AliExpress was impossible; the store couldn't download it from my Google Drive. Eventually, they provided me with an email and instructed me to upload the file to WeTransfer. The seller also asked about the SIM card, but I never had one.

    The seller requested data from the radio that should be displayed on the screen, but this was impossible because the screen wasn't visible. We went back and forth with several messages until they seemed to understand the problem, but it took me a month and a half to make them understand that I couldn't provide the data. I had to upload the video to WeTransfer again.

    I asked for another way to provide the data. They instructed me to open the radio unit and show the inside. Then they asked me to measure the voltage at the screen power connection, a connector with two cables (black and white). When I performed the tests and responded, it was already January 26, 2024, and the voltage measurement of that connector was 0 volts.

    lVwNalM.jpg


    On January 29, 2024, they sent me a message with the address to which I should send my faulty radio. It was an address in Germany.

    I had to take photos of the radio and the package I was going to send, as well as photos of the shipping receipt. It had to be sent with a tracking number; in my case, I used certified mail.

    At the end of February, they informed me that there was no stock of S8 in Europe. They offered to send it from China, with the risk of customs issues. I accepted and had to place an order for €0.01 on a link they provided.

    On March 9, I was able to install the new radio.

    The radio I sent had a number on the back, S9008F. The radio I received was S9008P, and the color of the new radio was silver all over the back, unlike the faulty radio, which was black.

    My current System version is: QF001.20240119.125814_v2.95_02
    My current MCU version is: QF05.V02.03.20240106.002121
    Android: 13
    DPI: 1280 x 720(9)
    DSP: BU32107
    Radio: TDA7708
    Bluetooth: 5.0
    UUID: 1032310111902836

    The faulty radio had these data:

    System version: QF001.20230304.121526_v3.48_02
    MCU version: QF03.V01.01.20230315.002121
    Android: 12
    DPI: 1280 x 720
    DSP: BU32107
    Radio: TDA7708
    Bluetooth: 5.0
    UUID: 1032302151607670

    The whole process lasted 4 months, but in the end, Hizpo Europe Store took care of sending a new radio. However, I had to pay the shipping cost from Spain to Germany (€18.15) and €0.01 for shipping from China to my address in Spain. Additionally, I had to go through customs, but luckily, I wasn't asked for any money. I had to send an email to Cacesa with this information:

    If your detained order is a replacement or compensation for a defective initial product or something similar, you must send the following documentation:

    • Image capture of the initial item and the replacement item, showing the item and the price of the item
    • Image capture of the bank receipt for both the initial and replacement items. * Without personal or confidential data.
    • Conversation with the seller about replacing the damaged product, warranty, or compensation, etc.

    I hope this post helps someone. As you can see, the whole process took a long time due to language barriers, the Spring Festival holidays, and other details.

    Please note that the text was originally written in Spanish and has been translated using Chatgpt. My apologies for any errors.
    3
    No foreign code will work for you. You either need to purchase the AI Voice software from your unit dealer or contact them for a new code for free.
    Bez názvu.jpg
    2
    Hello, I wanted to share my experience with Hizpo Europe Store.

    I bought an S8 in May 2023. In November 2023, the screen went black. The radio could be heard, and I could feel that the touchscreen was responding, but I couldn't see where I was touching because the icons were not visible.

    I contacted the seller, who first asked me to reset the device and provide a video. Uploading the video to AliExpress was impossible; the store couldn't download it from my Google Drive. Eventually, they provided me with an email and instructed me to upload the file to WeTransfer. The seller also asked about the SIM card, but I never had one.

    The seller requested data from the radio that should be displayed on the screen, but this was impossible because the screen wasn't visible. We went back and forth with several messages until they seemed to understand the problem, but it took me a month and a half to make them understand that I couldn't provide the data. I had to upload the video to WeTransfer again.

    I asked for another way to provide the data. They instructed me to open the radio unit and show the inside. Then they asked me to measure the voltage at the screen power connection, a connector with two cables (black and white). When I performed the tests and responded, it was already January 26, 2024, and the voltage measurement of that connector was 0 volts.

    lVwNalM.jpg


    On January 29, 2024, they sent me a message with the address to which I should send my faulty radio. It was an address in Germany.

    I had to take photos of the radio and the package I was going to send, as well as photos of the shipping receipt. It had to be sent with a tracking number; in my case, I used certified mail.

    At the end of February, they informed me that there was no stock of S8 in Europe. They offered to send it from China, with the risk of customs issues. I accepted and had to place an order for €0.01 on a link they provided.

    On March 9, I was able to install the new radio.

    The radio I sent had a number on the back, S9008F. The radio I received was S9008P, and the color of the new radio was silver all over the back, unlike the faulty radio, which was black.

    My current System version is: QF001.20240119.125814_v2.95_02
    My current MCU version is: QF05.V02.03.20240106.002121
    Android: 13
    DPI: 1280 x 720(9)
    DSP: BU32107
    Radio: TDA7708
    Bluetooth: 5.0
    UUID: 1032310111902836

    The faulty radio had these data:

    System version: QF001.20230304.121526_v3.48_02
    MCU version: QF03.V01.01.20230315.002121
    Android: 12
    DPI: 1280 x 720
    DSP: BU32107
    Radio: TDA7708
    Bluetooth: 5.0
    UUID: 1032302151607670

    The whole process lasted 4 months, but in the end, Hizpo Europe Store took care of sending a new radio. However, I had to pay the shipping cost from Spain to Germany (€18.15) and €0.01 for shipping from China to my address in Spain. Additionally, I had to go through customs, but luckily, I wasn't asked for any money. I had to send an email to Cacesa with this information:

    If your detained order is a replacement or compensation for a defective initial product or something similar, you must send the following documentation:

    • Image capture of the initial item and the replacement item, showing the item and the price of the item
    • Image capture of the bank receipt for both the initial and replacement items. * Without personal or confidential data.
    • Conversation with the seller about replacing the damaged product, warranty, or compensation, etc.

    I hope this post helps someone. As you can see, the whole process took a long time due to language barriers, the Spring Festival holidays, and other details.

    Please note that the text was originally written in Spanish and has been translated using Chatgpt. My apologies for any errors.
    Thank you for reporting your experience.
    Now: does the new unit work well?
    Another thing: Photos of that silver screen or report

    PS: Yes, I'm also from Spain :p
  • 36
    Hello all,

    it seems that there are some QF001 owners out there but not much informations. So i will try to collect everything and put it at one place.

    The original manufactor is shenzhen jitu technology co. ltd.

    These units are sold from Ossuret, Hizpo and other brands. This are the sellers specs:
    specs.JPG


    The Android 12 is fake which is Android 10 in reality.

    I have the 8/128GB Version myself:
    Screenshot_20221129-085346.png


    Codes for the factory settings menu:

    Different firmware versions are inside this thread. Take care of the right MCU file and beware that clear user data is enabled by default on update. There is also a dedicated firmware thread: https://xdaforums.com/t/firmware-qf...s-with-uis-7862a-7862s-not-fyt-based.4541261/

    Dedicated thread for gaining recovery access: https://xdaforums.com/t/recovery-ac...uret-s4-s8-uis-7862-headunits-no-fyt.4538107/

    Beside the faked Android 12 Version the head unit seems to be a good bang for the buck. I´ve paid around 230 Euros including VAT and shipping. The unit runs stable and powerful so far. Everything works as expected. The Android is a bit downcutted by the manufactor. There are no text notifications in the statusbar e.g. But i can compensate that with widgets.

    Against the description android auto works wireless with my Xiaomi Mi10t pro. So that's also nice to have.

    Tweaks, mods and others:
    - my wire harness was labeled wrong. Key 2 and Key GND were swapped. So better check the cables before connecting. For me the correct wire names/functions were in the printed manual.

    - replacement fan that fits my model: Sunon MF35101V21000UA99

    - there's a sleep whitelist in the factory settings menu that prevents apps from being killed in standby mode (ignition off). That's very useful. I've whitelisted Google maps e.g. and don't lose my programmed route anymore if i turn off the engine for a short stop.

    - tasker trigger for warm boot: detect any USB device connected. (You have to plug in something into the usb port, dashcam or pendrive e.g.)

    - the status bar only shows a few symbols and no text notifications. Therefore I use a notification widget in combination with nova launcher. This way I can see all notifications in a widget which would be at the status bar originally.

    - wireless ADB is enabled by default with root user. 🎉 The port is 9876. ( I've found that inside the build.prop)

    - if you want to have a look inside the firmware you can use a rom kitchen tool like CBR

    - how to change the boot logo:
    1. If your player is 1280*720 screen, you need to rotate the picture 90 degree, and cut it into 720*1280 size, transform the picture to .BMP format.
    2. If your player is 1024*600 screen, you need to cut the picture to 1024*600 size, transform the picture to .BMP format.
    3. copy the picture into your Udisk root path, and then connect Udisk to the player. follow the steps settings-factory-8888-Logo set-then you can see your picture and select it- click update logo.
    - how to change boot animation: https://xdaforums.com/t/general-dis...uis-7862s-not-fyt-based.4525675/post-88086835

    - enhance the microphone and call quality by using the external microphone and disable the internal microphone by masking two pins of a ribbon cable. It's explained inside this thread (link to post will follow)

    - GPS tweak: https://xdaforums.com/t/general-dis...uis-7862s-not-fyt-based.4525675/post-88112693

    Known issues:
    - "hey Google" (activate the assistant by hotword) doesn't work
    - no car speed dependent volume control (manufacturer says it would be implemented later)
    - the firmware is a debug release which is a serious security risk (every app or malware can get root access through ADB shell). On the upside you can also get root access through ADB and do everything you want

    To be continued...

    Cheers
    blue_one
    13
    For whom that's interested and is annoyed that display time is out of sync with atomic network clock time.

    Myself don't use 4G network, but WIFI hotspot from phone.

    Each time when I opened the GPS test app, time changed and was out of sync by 2 to 4 minutes, also when I forgot to put hotspot on my phone on, after that it was taken the GPS time sync by default after startup,
    So first taken my right hotspot network time and changed 30 seconds later to the out of sync GPS time, it was also out of sync with my OEM Opel board computer display.
    With some hassle I could changed that back but needed to be sure that hotspot was always on before starting the car.

    Think I found a solution.

    Note, I don't use sleep mode, always have a fresh cold start, unit starts up with firmware date and time, 09-01-2023, 12:05:54.

    After going in the factory 5544 GPS setting, changed on first tab screen "agps" the server SUPL host to supl.google.com, changed port to 7276 (seems secure port), but you also can leave it on 7275, then tab screen "information", on the bottom page changed the satellites to GPS, Glonass, Galileo, my problem disappeared.

    My unit correctly shows the time now, after a start-up it is in sync within 1 second compared to atomic clock, with or without hotspot, mean also without network connection it syncs with GPS satellites the time correct.
    The AGPS SUPL was using the Chinese host (supl.qxwz.com) and preferred what it looks some Chinese satellites for Glonass and Galileo and somehow the Chinese GPS time is inaccurate.

    Rather Google then the Chinese that follows me ;)
    12
    Hi all, if anybody would like to test a very early alpha version of NavRadio(basic), they can find it here:
    Download NavRadio BASIC for QF01

    it's incomplete, full of bugs, it surely crash here and there but still usable.
    I have enabled Google Crashlytics to help me debug all the crash and ANR so more people use it and more i'll fix it.

    The full version will come when the free version will run smootly.
    Enjoy;)


    NOTES:

    - Autoscan is done by MCU and it's fixed to 18 stations. Anyway you can use Autoseek function to find more stations or add new ones to the existing ones.
    - The first frequency at startup need to be fixed.
    - Sometimes you can hear the sound muting for a second, it's because the ROCO service think that navradio is a player and not a radio. I'll look for a fix later on..
    11
    And now a few more!

    1122 / 2211 - both popup a bubble with chinese text. I thought they were the same at first but they have different characters. (They both have the word “log” in it)

    6655 - opens up a screen that appears to be the same as 555666 but these are also in Chinese so I don’t know if there are differences. Notably when you enter this menu with either code it will record a snippet of audio from the mic and play it back.

    4455 - engineer mode (lots of stuff in here to explore, includes adb shell)

    5544 - gps stuff

    1212 - notification that says “slog copied to unkown”

    2121 - seems to just take you home

    45645600 - download mcu file
    10
    How did you discover the codes?
    Just by trying a bunch of different codes and looking for patterns. Starting by looking at the codes we already knew I discovered they are all a repeating sequence of digits that are adjacent to each other on the keypad. Once you find a pattern there’s usually another code that uses the same pattern somewhere else on the keypad. If you actually type in the codes and look at the physical pattern they make you’ll see what I mean. For example 114477 is just the digits in the left column of the keypad going down. 336699 is the same pattern in the right column. And then some codes are just variations on top of that, like doing a code in reverse (which we already knew) as well as adding 00 to the end of some. This is how I discovered all the codes. Once I’d find one code Id try that same pattern in all places and variations. Simple as that! I’m sure there’s more patterns yet to be discovered so try different ideas out and see what you can find. With many people using these strategies I’m sure we can discover more! I may have even missed a few using the patterns of ones I found.