Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
translations translations
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Welcome to the Rockbox Technical Forums!

+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  New Ports
| | |-+  TempoTec V3
« previous next »
  • Print
Pages: [1]

Author Topic: TempoTec V3  (Read 4313 times)

Offline vitt13

  • Member
  • *
  • Posts: 96
TempoTec V3
« on: May 19, 2024, 04:16:51 AM »
Another one Ingenic X1000E SoC based DAP that I have is TempoTec V3. It's hardware close to HiBy R3Pro so I've collect the information too.
TempoTec V3

SoC:       X1000E    1.0GHz MIPS XBurst with 64MB of SIP LPDDR RAM
NAND:       25N01GVZEIG  Winbond 1 Gbit SPI NAND flash
      https://datasheetspdf.com/pdf-down/2/5/N/25N01GVSFIG-Winbond.pdf
DAC:       Two AK4493SEQ https://www.audiosciencereview.com/forum/index.php?attachments/ak4493seq-en-datasheet-myakm-pdf.219097/   
FPGA:       GOWIN Semiconductor GW1NZ-LV1 Series FPGA https://cdn.gowinsemi.com.cn/DS841E.pdf as original marked GW1NZ-LV1
Switch with Pop and Click Suppression (SwitchPro Family High Fidelity Stereo SPDT) mark code: A80Q
       WSP6580Q   http://www.wecorp.com.cn/UploadFile/201612120130099809.pdf
PMU:       AXP2101 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/K128%20CoreS3/AXP2101_Datasheet_V1.0_en.pdf   
Fuel gauge:       CW2015 http://www.cellwise-semi.com/Public/assests/menu/20230302/6400076806706.pdf   
USB Type-C controller: TCS1421
                edit: datasheet can be easily requested from CHSEMI by E-mail
                general info and pinout
                http://www.chsemi.com/pdf/USB_Type-C_Reference_Design_hw.pdf
                http://www.chsemi.com/pdf/USB_Type-C_Reference_Design_phone.pdf

LCD  ???unknown
        *** lcd res: 320*480
pixel_clock = 4608000

Touch controller:    GT911 used driver GT9XX-TS
      https://www.lcd-module.de/fileadmin/eng/pdf/zubehoer/GT911%20Programming%20Guide_20140804_Rev00.pdf

RGB LED status indicator:     SGM31324   https://www.sg-micro.com/rect/assets/e4f8f3b0-7c5c-4f74-abe3-490ae681f4e8/SGM31324.pdf

Bluetooth/WiFi:    AW-NM372SM combo (fw AW_NM372SM_Generic_BCM43438A1_UART_26MHz)   
Battery    3500 mAh 3.85V 13.475Wh
« Last Edit: June 13, 2024, 02:45:31 PM by vitt13 »
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #1 on: May 19, 2024, 04:41:47 AM »
Original firmware 1.0 v3_analog.upt
https://drive.google.com/file/d/1WBrnaLQhZ0UbG-ZKsrr4AMwBNOvCzDBy/view
Internal photo
https://www.mediafire.com/file/xwimwku06u6aorh/Internal_photo.zip/file

To get USB boot mode hold two buttons (in powered off state): 'Power' and 'Forward' (>>) (status LED will blink with blue color)
To get original recovery hold two buttons (in powered off state): 'Power' and 'Backward' (<<)

Looking in boot log you may notice that TempoTec V3 bootloader is based on HiBy R3II original one
Code: [Select]
Board: R3II (Ingenic XBurst X1000 SoC)OTA firmware file is also managed by HiBy server.

Here is DAC/Audio related part of boot log.
You may note that board has physically GW1NZ-LV1 device but log is reffered to HBC3000/HBC2500. That is why I suggest HBC3000 is remarked GW1NZ-LV1.
Code: [Select]
[    1.552872]  gpio_request GPIO 46 , name JTAG_GPIO_PORT_TDI
[    1.558788]  gpio_request GPIO 44 , name JTAG_GPIO_PORT_TDO
[    1.564622]  gpio_request GPIO 45 , name JTAG_GPIO_PORT_TMS
[    1.570476]  gpio_request GPIO 47 , name JTAG_GPIO_PORT_TCK
[    1.576330]  gpio_request GPIO 41 , name GPIO_HBC3000_JTAG_SEL
[    1.582433]  gpio_request GPIO 43 , name HBC2500_PWR

[    1.610174] sa_spdif sa_spdif.0:  spdif dump dai <-> jz-asoc-aic-spdif mapping ok
[    1.618970]  gpio_request GPIO 37 , name headphone
[    1.624108]  gpio_request GPIO 38 , name balance
[    1.629218]  gpio_request GPIO 53 , name digital_dt2
[    1.634501] SWITCH: init OK
[    1.647178] ingenic-v3_analog ingenic-v3_analog:  ak4493-hifi <-> jz-asoc-aic-i2s mapping ok
[    1.656325] dma dma0chan2: Channel 2 have been requested.(phy id 5,type 0x20 desc a211a000)
[    1.673895] ingenic-v3_analog ingenic-v3_analog:  ak4493-hifi <-> jz-asoc-pcm mapping ok
[    1.683344]  gpio_request GPIO 18 , name DCDC_EN
[    1.688272]  gpio_request GPIO 39 , name DAC_PDN
[    1.693122]  gpio_request GPIO 40 , name DAC_MUTE
[    1.698080]  gpio_request GPIO 59 , name PO_MUTE

Boot log in attachment. boot_log.txt is on stock firmware 0.0.4 with a lot of bugs and new_boot_log.txt is on latest firmware 1.0.

* boot_log.txt (28.93 kB - downloaded 220 times.)
* new_boot_log.txt (37.83 kB - downloaded 221 times.)
« Last Edit: June 05, 2024, 02:34:28 AM by vitt13 »
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #2 on: June 05, 2024, 02:59:25 AM »
I also found that original firmware contains bootloader part UBOOT.BIN but it never flashed to device since the config file UPDATE.TXT does not have specific section. The additional section has to be like
Code: [Select]
bootloader={
        name=uboot
        file_path=autoupdate/uboot.bin
        md5=e1b0c012da7094b8a9686f15c9132ce1
}
but it missing.
That discovery leads me to get dump of bootloader from the working device, compared to "new" one, and tested to flash 'new' bootloader.
So, 'new' bootloader does not work correctly (like odd LCD flash noised image on boot animation) and overwrite boot buttons combinations. It also has "Board: smsl_dp5 (Ingenic XBurst X1000 SoC)" in boot log so I do not think that is really bootloader update file for the TempoTec V3 device.
Here is original bootloader (mtd0 dump without OOB) that I got from the device (rename mtd0.zip.txt to mtd0.zip)
* mtd0.zip.txt (161.95 kB - downloaded 217 times.)
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #3 on: June 05, 2024, 09:15:40 AM »
Mounting debugfs with
Code: [Select]
mount -t debugfs debugfs /sys/kernel/debugI was able to get some useful info.

GPIO
Code: [Select]
# cat /sys/kernel/debug/gpio
GPIOs 0-31, GPIO A:
 gpio-16  (lcd rst             ) out lo
 gpio-17  (usb-insert-detect   ) in  lo
 gpio-18  (DCDC_EN             ) out lo

GPIOs 32-63, GPIO B:
 gpio-32  (volume down key     ) in  hi
 gpio-35  (volume up key       ) in  hi
 gpio-37  (headphone           ) in  lo
 gpio-38  (balance             ) in  lo
 gpio-39  (DAC_PDN             ) out lo
 gpio-40  (DAC_MUTE            ) out lo
 gpio-41  (GPIO_HBC3000_JTAG_SE) out lo
 gpio-42  (GTP_RST_PORT        ) in  hi
 gpio-43  (HBC2500_PWR         ) out lo
 gpio-44  (JTAG_GPIO_PORT_TDO  ) in  lo
 gpio-45  (JTAG_GPIO_PORT_TMS  ) out lo
 gpio-46  (JTAG_GPIO_PORT_TDI  ) out lo
 gpio-47  (JTAG_GPIO_PORT_TCK  ) out lo
 gpio-48  (lcd rd              ) out lo
 gpio-51  (lcd vsync           ) in  lo
 gpio-53  (digital_dt2         ) in  lo
 gpio-57  (drvvbus_pin         ) out lo
 gpio-58  (rtc32k              ) in  lo
 gpio-59  (PO_MUTE             ) out lo
 gpio-60  (previous song key   ) in  hi
 gpio-61  (USB_TCS1421_CFG0    ) out hi
 gpio-62  (USB_TCS1421_CFG1    ) out hi
 gpio-63  (power key           ) in  hi

GPIOs 64-95, GPIO C:
 gpio-72  (GPIO_EARPODS_KEY_POW) out hi
 gpio-80  (oob irq             ) in  lo
 gpio-81  (wifi_reset          ) out lo
 gpio-82  (bt_reg_on           ) out hi
 gpio-83  (host_wake_bt        ) out hi
 gpio-84  (bt_wake_host        ) in  lo
 gpio-85  (axp_irq             ) in  hi
 gpio-86  (mmc_detect          ) in  lo
 gpio-87  (GTP_INT_IRQ         ) in  lo
 gpio-88  (next song key       ) in  hi
 gpio-89  (BL PWR              ) in  lo

GPIOs 96-101, GPIO D:
 gpio-98  (otg-id-detect       ) in  hi
 gpio-99  (play key            ) in  hi
 gpio-100 (sgm31324_enable     ) out hi
#

mmc0
Code: [Select]
# cat /sys/kernel/debug/mmc0/ios
clock:          48000000 Hz
vdd:            20 (3.2 ~ 3.3 V)
bus mode:       2 (push-pull)
chip select:    0 (don't care)
power mode:     2 (on)
bus width:      2 (4 bits)
timing spec:    2 (sd high-speed)
signal voltage: 0 (3.30 V)

USB devices
Code: [Select]
# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 3.10
S:  Manufacturer=Linux 3.10.14 dwc2-hcd
S:  Product=DesignWare USB2.0 High-Speed Host Controller
S:  SerialNumber=dwc2
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

I2C devices
Code: [Select]
# cat /sys/class/i2c-adapter/i2c-0/0-005d/name
GT9XX-TS

# cat /sys/class/i2c-adapter/i2c-1/1-0010/name
ak4493

# cat /sys/class/i2c-adapter/i2c-1/1-003d/name
sau

# cat /sys/class/i2c-adapter/i2c-2/2-0030/name
sgm31324

# cat /sys/class/i2c-adapter/i2c-2/2-0034/name
axp2101_mfd

# cat /sys/class/i2c-adapter/i2c-2/2-0062/name
cw201x

Power supply map
Code: [Select]
# cat /sys/kernel/debug/regulator/supply_map
LDO11 -> (null).axp_cpusldo
LDO10 -> (null).axp_dldo2
LDO9 -> (null).axp_dldo1
LDO8 -> (null).axp_bldo2
LDO7 -> (null).axp_bldo1
LDO6 -> (null).axp_aldo4
LDO5 -> (null).axp_aldo3
LDO4 -> (null).axp_aldo2
LDO3 -> (null).axp_aldo1
LDO2 -> (null).axp_rtcldo1
LDO1 -> (null).axp_rtcldo
DCDC5 -> (null).axp_dcdc5
DCDC4 -> (null).axp_dcdc4
DCDC3 -> (null).axp_dcdc3
DCDC2 -> (null).axp_dcdc2
DCDC1 -> (null).axp_dcdc1

AXP battery configuration
Code: [Select]
# cat /sys/class/power_supply/axp_battery/voltage_max_design
4350000

# cat /sys/class/power_supply/axp_battery/voltage_min_design
3400000

# cat /sys/class/power_supply/axp_battery/uevent
POWER_SUPPLY_NAME=axp_battery
POWER_SUPPLY_MODEL_NAME=axp_battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4350000
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=3400000
POWER_SUPPLY_VOLTAGE_NOW=3888000
POWER_SUPPLY_CURRENT_NOW=200000
POWER_SUPPLY_ENERGY_FULL_DESIGN=1600
POWER_SUPPLY_CAPACITY=0
POWER_SUPPLY_TEMP=0
POWER_SUPPLY_CAPACITY_ALERT_MIN=160
POWER_SUPPLY_TEMP_ALERT_MIN=85
POWER_SUPPLY_TIME_TO_EMPTY_NOW=3540
POWER_SUPPLY_TIME_TO_FULL_NOW=1500
POWER_SUPPLY_MANUFACTURER=X-POWERS
POWER_SUPPLY_CAPACITY_LEVEL=Low

AXP registers
Code: [Select]
# cat /sys/kernel/debug/regmap/2-0034/
access        cache_dirty   name          rbtree
cache_bypass  cache_only    range         registers
# cat /sys/kernel/debug/regmap/2-0034/name
axp20x-i2c
# cat /sys/kernel/debug/regmap/2-0034/range
0-ff
# cat /sys/kernel/debug/regmap/2-0034/registers
00: 18
01: 55
02: 00
03: 4a
04: 00
05: 00
06: 00
07: 00
08: 0c
09: 00
0a: 00
0b: 00
0c: 00
0d: 00
0e: 00
0f: 00
10: 34
11: 00
12: 00
13: 03
14: 65
15: 06
16: 01
17: 00
18: 0a
19: 06
1a: a0
1b: 00
1c: 00
1d: 00
1e: 09
1f: 00
20: 01
21: 01
22: 06
23: 3f
24: 00
25: 18
26: 08
27: 07
28: 00
29: 00
2a: 00
2b: 00
2c: 00
2d: 00
2e: 00
2f: 00
30: 03
31: 00
32: 00
33: 00
34: 0f
35: 34
36: bf
37: f3
38: 00
39: 00
3a: 00
3b: 00
3c: 00
3d: 00
3e: 00
3f: 00
40: 00
41: 00
42: 00
43: 00
44: 00
45: 00
46: 00
47: 00
48: 50
49: 6f
4a: 28
4b: 00
4c: 00
4d: 00
4e: 00
4f: 00
50: 10
51: 00
52: 02
53: 01
54: 29
55: 58
56: 3e
57: 4c
58: 00
59: 14
5a: 37
5b: 1e
5c: 02
5d: 58
5e: 00
5f: 00
60: 02
61: 04
62: 0d
63: 12
64: 04
65: 02
66: 01
67: e6
68: 01
69: 00
6a: 03
6b: 00
6c: 00
6d: 00
6e: 00
6f: 00
70: 00
71: 00
72: 00
73: 00
74: 00
75: 00
76: 00
77: 00
78: 00
79: 00
7a: 00
7b: 00
7c: 00
7d: 00
7e: 00
7f: 00
80: 0b
81: 00
82: 12
83: 46
84: 64
85: 64
86: 00
87: 00
88: 00
89: 00
8a: 00
8b: 00
8c: 00
8d: 00
8e: 00
8f: 00
90: 3f
91: 00
92: 14
93: 1c
94: 1c
95: 1c
96: 19
97: 0d
98: 00
99: 1c
9a: 0f
9b: 00
9c: 00
9d: 00
9e: 00
9f: 00
a0: 00
a1: 58
a2: 10
a3: ea
a4: 00
a5: 00
a6: 00
a7: 3b
a8: 00
a9: 18
aa: 00
ab: 03
ac: 00
ad: 00
ae: 00
af: 00
b0: 00
b1: 00
b2: 00
b3: 00
b4: 00
b5: 00
b6: 00
b7: 00
b8: 00
b9: 00
ba: 00
bb: 00
bc: 00
bd: 00
be: 00
bf: 00
c0: 00
c1: 00
c2: 00
c3: 00
c4: 00
c5: 00
c6: 00
c7: 00
c8: 00
c9: 00
ca: 00
cb: 00
cc: 00
cd: 00
ce: 00
cf: 00
d0: 00
d1: 00
d2: 00
d3: 00
d4: 00
d5: 00
d6: 00
d7: 00
d8: 00
d9: 00
da: 00
db: 00
dc: 00
dd: 00
de: 00
df: 00
e0: 00
e1: 00
e2: 00
e3: 00
e4: 00
e5: 00
e6: 00
e7: 00
e8: 00
e9: 00
ea: 00
eb: 00
ec: 00
ed: 00
ee: 00
ef: 00
f0: 00
f1: 00
f2: 00
f3: 00
f4: 00
f5: 00
f6: 00
f7: 00
f8: 00
f9: 00
fa: 00
fb: 00
fc: 00
fd: 00
fe: 00
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #4 on: June 06, 2024, 10:00:33 AM »
There are 3 input devices. All physical buttons are on GPIO.
Here is some info
Code: [Select]
  cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0002 Version=0100
N: Name="earpods_wire"
P: Phys=earpods-wire/input0
S: Sysfs=/devices/platform/earpods_wire/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=3
B: KEY=10000 138 0 0 0 0 0

I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/platform/gpio-keys/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=38 0 1c0000 0 0 0

I: Bus=0018 Vendor=dead Product=beef Version=28bb
N: Name="GT9XX-TS"
P: Phys=(Ze▒0▒▒(Ze▒0▒▒
S: Sysfs=/devices/virtual/input/input2
U: Uniq=main_ts
H: Handlers=kbd event2
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0 40000800 100040 0 0 0
B: ABS=2650000 0

Here is output info I got from evtest utility.
It was odd to see that 'Next song' and 'Previous song' are swapped places.
Input device name: "gpio-keys"
Code: [Select]
Available devices:
/dev/input/event0:      earpods_wire
/dev/input/event1:      gpio-keys
/dev/input/event2:      GT9XX-TS
Select the device event number [0-2]: 1
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
Properties:
Testing ... (interrupt to exit)
Event: time 1717570680.918068, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 1 (actually previous song)
Event: time 1717570680.918068, -------------- SYN_REPORT ------------
Event: time 1717570681.119691, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 0
Event: time 1717570681.119691, -------------- SYN_REPORT ------------
Event: time 1717570695.967716, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 1 (actually next song)
Event: time 1717570695.967716, -------------- SYN_REPORT ------------
Event: time 1717570696.168842, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 0
Event: time 1717570696.168842, -------------- SYN_REPORT ------------
Event: time 1717570699.756916, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1717570699.756916, -------------- SYN_REPORT ------------
Event: time 1717570699.960686, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1717570699.960686, -------------- SYN_REPORT ------------
Event: time 1717570844.496105, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
Event: time 1717570844.496105, -------------- SYN_REPORT ------------
Event: time 1717570844.670567, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0
Event: time 1717570844.670567, -------------- SYN_REPORT ------------
Event: time 1717570860.589790, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1717570860.589790, -------------- SYN_REPORT ------------
Event: time 1717570860.747305, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0
Event: time 1717570860.747305, -------------- SYN_REPORT ------------
Event: time 1717570877.352349, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 1717570877.352349, -------------- SYN_REPORT ------------
Event: time 1717570877.530388, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1717570877.530388, -------------- SYN_REPORT ------------
Input device name: "GT9XX-TS"
Code: [Select]
Select the device event number [0-2]: 2
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0xdead product 0xbeef version 0x28bb
Input device name: "GT9XX-TS"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 102 (KEY_HOME)
    Event code 116 (KEY_POWER)
    Event code 139 (KEY_MENU)
    Event code 158 (KEY_BACK)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      320
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      480
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max      255
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)

single tap on middle display area
Event: time 1717570956.659841, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1717570956.659841, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 187
Event: time 1717570956.659841, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 143
Event: time 1717570956.659841, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 37
Event: time 1717570956.659841, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 37
Event: time 1717570956.659841, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1717570956.659841, ++++++++++++++ SYN_MT_REPORT ++++++++++++
<same listings repeats by 3 times>
Event: time 1717570956.719840, -------------- SYN_REPORT ------------
Event: time 1717570956.749832, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1717570956.749832, -------------- SYN_REPORT ------------

single tap on top left corner
Event: time 1717571075.199841, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1717571075.199841, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 25
Event: time 1717571075.199841, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 16
Event: time 1717571075.199841, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 23
Event: time 1717571075.199841, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 23
Event: time 1717571075.199841, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1717571075.199841, ++++++++++++++ SYN_MT_REPORT ++++++++++++
<same listings repeats by 3 times>
Event: time 1717571075.289862, -------------- SYN_REPORT ------------
Event: time 1717571075.319833, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1717571075.319833, -------------- SYN_REPORT ------------

single tap on top right corner
Event: time 1717571177.629918, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1717571177.629918, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 300
Event: time 1717571177.629918, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20
Event: time 1717571177.629918, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 28
Event: time 1717571177.629918, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 28
Event: time 1717571177.629918, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1717571177.629918, ++++++++++++++ SYN_MT_REPORT ++++++++++++
<same listings repeats by 3 times>
Event: time 1717571177.689843, -------------- SYN_REPORT ------------
Event: time 1717571177.719948, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1717571177.719948, -------------- SYN_REPORT ------------

single tap on bottom left corner
Event: time 1717571224.259862, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1717571224.259862, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 12
Event: time 1717571224.259862, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 472
Event: time 1717571224.259862, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 15
Event: time 1717571224.259862, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 15
Event: time 1717571224.259862, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1717571224.259862, ++++++++++++++ SYN_MT_REPORT ++++++++++++
<same listings repeats by 3 times>
Event: time 1717571224.289848, -------------- SYN_REPORT ------------
Event: time 1717571224.319834, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1717571224.319834, -------------- SYN_REPORT ------------

single tap on bottom right corner
Event: time 1717571269.959849, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1717571269.959849, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 302
Event: time 1717571269.959849, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 472
Event: time 1717571269.959849, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 1717571269.959849, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 12
Event: time 1717571269.959849, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1717571269.959849, ++++++++++++++ SYN_MT_REPORT ++++++++++++
<same listings repeats by 3 times>
Event: time 1717571270.079836, -------------- SYN_REPORT ------------
Event: time 1717571270.109840, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1717571270.109840, -------------- SYN_REPORT ------------
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #5 on: April 08, 2025, 11:08:48 AM »
Tempotec is released updated version of V3 (named V3 Blaze), and it based on X1600E SoC. It seems that is only major hardware update (and output OPA as well) and looking inside firmware I see promising *.ko files that are effortless dissemble in Ghidra (not much hard as whole kernel with build-in modules on X1000E).
At least I may try to understand what they deal with dual DACs and FPGA.
https://oss.hiby.com/TempoTec%20V3_ANALOG25/en-us/1.0/v3_analog_2025.upt
Code: [Select]
axp2101.ko
codec_ak4493_dual.ko
cw2015.ko
cywdhd.ko
gt9xx_touch.ko
i2c_gpio_add.ko
keyboard_adc.ko
keyboard_gpio_add.ko
lcd_st77903_8bit.ko
leds_sgm31324_add.ko
pwm_backlight.ko
rmem_manager.ko
sa_config_module.ko
sa_hgl_dma.ko
sa_sound_hbc3000.ko
sa_sound_switch.ko
soc_adc.ko
soc_aic.ko
soc_efuse.ko
soc_fb.ko
soc_gpio.ko
soc_i2c.ko
soc_msc.ko
soc_pwm.ko
soc_utils.ko
tcs1421_add.ko
utils.ko
x1600_tempotec_v3a_sound_card.ko
« Last Edit: April 08, 2025, 11:11:43 AM by vitt13 »
Logged

Offline Flipp3rix

  • Member
  • *
  • Posts: 4
Re: TempoTec V3
« Reply #6 on: June 07, 2025, 09:46:39 AM »
If needed i'm an embedded programmer, tell me where to start and i can give it a try
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #7 on: June 08, 2025, 01:24:16 AM »
Quote from: Flipp3rix on June 07, 2025, 09:46:39 AM
If needed i'm an embedded programmer, tell me where to start and i can give it a try
This post is common https://forums.rockbox.org/index.php/topic,54867.msg255834.html#msg255834
I guess also Surfans F28 https://forums.rockbox.org/index.php/topic,54692.msg256086.html#msg256086 is close to start hosted port.
Logged

Offline 7o9

  • Member
  • *
  • Posts: 173
Re: TempoTec V3
« Reply #8 on: June 08, 2025, 05:00:16 AM »
The Blaze firmware looks identical to the Hiby R1, except for the hardware-specific drivers of course.

Any idea if the Blaze shows any ALSA devices ?
Logged

Offline Flipp3rix

  • Member
  • *
  • Posts: 4
Re: TempoTec V3
« Reply #9 on: June 08, 2025, 04:36:11 PM »
Quote from: vitt13 on June 08, 2025, 01:24:16 AM
This post is common https://forums.rockbox.org/index.php/topic,54867.msg255834.html#msg255834
Unfortunately in the schematic HW part I still have small gaps, especially with the FPGA issue...

But I understand that it is relatively simple, also because I imagine that the sequence of steps to get to the porting is something like:
  • Extract the original firmware (which apparently is already possible to do)
  • Understand how the various FPGAs behave
  • Understand how the DACs and the various drivers work (which in theory you should already know based on the CPU and the DACs)
  • Insert the general values ​​on a simple rockbox codebase
  • Compile with the right compilers for the CPU
  • Repeat the whole thing until you get to something stable

From what I've seen in this thread the first and third points should be partly well explored. After all, everything should run on an embedded Linux 3.10.14 (basically the same version that we find on some modems/routers with openWRT, good!)

We would have to understand the GW1NZ-1 fpga, which I believe is programmed via SRAM and not via flash (?) I will try to get help from ChatGPT

Quote from: vitt13 on June 08, 2025, 01:24:16 AM
I guess also Surfans F28 https://forums.rockbox.org/index.php/topic,54692.msg256086.html#msg256086 is close to start hosted port.

Wait, do you mean that the Surfans F28 also shares some things with the V3-A or that it too is on its way?
Logged

Offline 7o9

  • Member
  • *
  • Posts: 173
Re: TempoTec V3
« Reply #10 on: June 09, 2025, 03:21:42 AM »
If you are looking at a hosted port (Rockbox app on top of Linux) the other hosted ports are good for inspiration. Surfans F28 is the most recent.

Also, if you are looking at a hosted port, any FPGA stuff might not be relevant as the existing Linux firmware has drivers for all hardware. If you are looking at a native port, it will probably be very relevant.

Tempotec v3 Blaze run Linux-4.4.94+, which seems the platform for the X1600E HiBy firmware devices.
Logged

Offline Flipp3rix

  • Member
  • *
  • Posts: 4
Re: TempoTec V3
« Reply #11 on: June 09, 2025, 05:36:06 AM »
Quote from: 7o9 on June 09, 2025, 03:21:42 AM
If you are looking at a hosted port (Rockbox app on top of Linux) the other hosted ports are good for inspiration. Surfans F28 is the most recent.

Also, if you are looking at a hosted port, any FPGA stuff might not be relevant as the existing Linux firmware has drivers for all hardware. If you are looking at a native port, it will probably be very relevant.

Tempotec v3 Blaze run Linux-4.4.94+, which seems the platform for the X1600E HiBy firmware devices.

I'm talking about native porting, also because I don't think there's a way to run the rockbox applet on the tempotec right now. Also, does it make sense to talk about the V3 Blaze here? I understand that it's a revision of the original V3-A, but I think we have to get there step by step (keeping in mind that many people on headfi were unhappy with it). Then, if there are elements like the aforementioned *.ko files that can help with the development of the V3-A too, that's another matter :D
Logged

Offline vitt13

  • Member
  • *
  • Posts: 96
Re: TempoTec V3
« Reply #12 on: June 15, 2025, 03:11:07 PM »
Quote from: Flipp3rix on June 08, 2025, 04:36:11 PM
But I understand that it is relatively simple, also because I imagine that the sequence of steps to get to the porting is something like:
I think those will be last steps.
I'm not good in programming but I watched for developing FiiO M3K native port steps because I own this DAP.
amachronic done a lot of work to allow use the general code in future X1000/E based ports.
* it needs to port bootloader
* it needs to know about key mapping, LCD driver and GPIO. There is guide howto find out that from RE kernel image https://forums.rockbox.org/index.php/topic,53896.0.html (it starts here https://forums.rockbox.org/index.php/topic,53601.msg248763.html#msg248763 )
My guess about useful *.ko from V3 Blaze fw was just guess to simplify this step of RE kernel image. And may be irrelevant if hardware is different in real.
V3-A has not enough hardware keys to control Rockbox without touchscreen so it will be hard to do everything touch-controlled.
Even Surfans F28 hosted port has struggled with touchscreen use
Quote from: speachy on May 06, 2025, 10:07:33 AM
Quote from: speachy on May 05, 2025, 10:12:58 PM
(Audio works but is quite distorted, rotary wheel isn't working yet, very crude keymap, touchscreen hooked up but not being utilized, no plugins enabled, etc etc etc..)

The rotary wheel now works, audio quality (and volume control) fixed.  Given that I have no desire to use a touchscreen-based player like the F28 myself, I don't have the patience to rework the very crude global keymap to incorporate the touch screen, implement keymaps for the bajillion plugins, and tweak the default theme to be less ... BIG.

And what about hosted port there is the answer
Quote from: speachy on April 08, 2025, 09:39:54 PM
All of the non-Android Hiby devices (and many more from other manufacturers) are built on the same underlying software framework ("hibyos"), with the messy details nearly entirely handled by custom, per-device kernel drivers and existing platform daemons+scripts.

Rockbox has already been ported to multiple hibyos devices.  To port it to another one just needs to handle:

 * Display properties
 * Button layout
 * Audio output switcher and mixer names
 * Power management properties (battery and charging device names, plus discharge curves)
Quote from: speachy on April 09, 2025, 06:46:36 PM
Quote from: 7o9 on April 09, 2025, 10:34:08 AM
The information in the list you provide would be enough for a hosted port?

The AGPTek Rocker was the first port to hibyos, and the X3II, X20, and hosted ErosQ/K ports were relatively minor tweaks from there.

You only need to build enough to get the "bootloader" (ie a glorified boot menu) to build, for this you need to have the basic display stuff (eg dimensions, resolution) and how to map the various buttons (ie /dev/input*) into something useful.  Next you'll need to figure out power management and how to talk to the audio hardware, and from there you should be able to do a plugin-less build.  Getting the plugins building will require creating keymaps for many (if not most) of them.  It's still a bit of work, but far, far less than a native port would be.

Quote from: 7o9 on April 09, 2025, 10:34:08 AM
I am sure I can provide most of that for the R1 based on disassembly of the firmware/driver .ko’s. All drivers are provided as modules and decompile very well.

To create a new native port, you need to effectively reverse-engineer the hardware schematic to figure out how things are connected.  Disassembly of the original firmware can help with that, and of course it should hopefully be able to tell you how to talk to some of the custom hardware.  FWIW it's possible (if not likely) that the FPGA stuff is handled by the bootloader before Linux ever starts.

( See https://www.rockbox.org/wiki/NewPort )
Logged

  • Print
Pages: [1]
« previous next »
+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  New Ports
| | |-+  TempoTec V3
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.093 seconds with 17 queries.