Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: new module/serial API #3055

Merged
merged 72 commits into from
Feb 9, 2023
Merged

chore: new module/serial API #3055

merged 72 commits into from
Feb 9, 2023

Conversation

raphaelcoeffic
Copy link
Member

@raphaelcoeffic raphaelcoeffic commented Jan 17, 2023

New interfaces

  • hal/module_port.h:

    • handles module hardware definitions and so called module ports. A module port
      is a pin or group of pin that delivers either a serial or timer interface)
    • this is now the primary interface to use and access module connections.
    • module protocol drivers use only this interface to find a suitable driver to communicate
      with the module.
    • allows run-time discovery of available modules / ports.
  • hal/timer_driver.h:

    • handles PWM output.
    • might support PWM input as well in future.

New generic drivers

We have 3 completly new generic drivers for the STM32 platform in targets/common/arm/stm32:

  • stm32_serial_driver: STM32SerialDriver implements a generic serial driver (etx_serial_driver_t).

  • stm32_softserial_driver:

    • STM32SoftSerialTxDriver implements a generic serial transmitter that using a DMA timer
      channel to generate a chain of either PWM (PXX1 encoding) or TOGGLE events.
    • STM32SoftSerialRxDriver implements a generic serial receiver based on a EXTI (start bit
      detection) and a timer IRQ to sample the bits.
  • module_timer_driver: simple API defining a PWM sender.

Eventually, we should have a number of drivers that are not dependent on specific hardware
but only on a platform, and probably later some drivers that do not even depend on a
specific platform. That should allow to implement feature on top that are much more portable.

Boards

To offer something between a specific target (ex: TX16S) and a platform (STM32), boards
have been introduced. Boards offer hardware definitions linked to a suitable driver
in a way support by the ETX HAL.

The generic_stm32 board offers some definitions for hardware used all over EdgeTX and should
be understood as some sort of Board Support Package (BSP).

Cleanup

A lot of cleanup has been done as part of this PR:

  • pulses/: The biggest chunk is of course the module protocol implementations
    that now all make use of module ports. This allows for removing hardware
    dependent #idefs, and thus use a more generic code.

  • telemetry: telemetry data are now directly linked to the module protocol driver
    and processed by a method provided as part of the API, so that we should soon be able
    to remove the global telemetryProtocol.

  • countless small things related to the previous 2 all over the place...

TODOs

  • error counters on serial API.
  • upstream telemetry (FrSky's S.PORT polling from PXX and MPM modules).

Follow-up ideas

  • serial pass-through support for external modules (incl. MPM / STM32-based ELRS upgrade Python script).
  • better communication channel from the modules to the UI (using reusableBuffer ATM).

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

@gagarinlg Yes, I think this TRACE should be disabled or have it's own define. What do you think?

@ParkerEde
Copy link
Contributor

ParkerEde commented Mar 12, 2023

just -DDEBUG_EXT_MODULE_FLASH, no "=YES"

then I get :
CMake Error: Parse error in command line argument: DEBUG_EXT_MODULE_FLASH
Should be: VAR:type=value

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

Maybe a leftover Cmake doesn't know any more. Just for testing remove -DDEBUG_EXT_MODULE_FLASH again and just add

#define DEBUG_EXT_MODULE_FLASH as first line of code in multi_firmware_update.cpp line 22:


#define DEBUG_EXT_MODULE_FLASH

#if !defined(DISABLE_MULTI_UPDATE)
...

@ParkerEde
Copy link
Contributor

here the result:

31.28s: {0,255,176,271}
31.31s: {0,255,176,271}
31.31s: {303,255,479,271}
31.40s: {0,0,479,44}
31.40s: {303,255,479,271}
31.44s: {0,255,176,271}
31.44s: {303,255,479,271}
31.52s: {0,0,479,44}
31.56s: {0,255,176,271}
31.56s: {303,255,479,271}
31.64s: {0,0,479,44}
31.64s: {303,255,479,271}
31.68s: {463,48,479,224}
31.77s: {0,0,479,44}
31.77s: {463,48,479,224}
31.80s: {303,255,479,271}
31.89s: {0,0,479,44}
31.89s: {303,255,479,271}
31.93s: {0,255,176,271}
32.01s: {0,0,479,44}
32.01s: {303,255,479,271}
32.05s: {303,255,479,271}
32.14s: {0,0,479,44}
32.14s: {0,255,176,271}
32.15s: {303,255,479,271}
32.18s: {303,255,479,271}
32.27s: {0,0,479,44}
32.27s: {303,255,479,271}
32.39s: {0,0,479,44}
32.51s: {0,0,479,44}
32.63s: {0,0,479,44}
32.63s: {0,255,176,271}
32.67s: {0,255,176,271}
32.76s: {0,0,479,44}
32.76s: {0,255,176,271}
32.88s: {0,0,479,44}
32.92s: {0,255,176,271}
33.00s: {0,0,479,44}
33.05s: {0,255,176,271}
33.13s: {0,0,479,44}
33.13s: {0,255,176,271}
33.26s: {0,0,479,44}
33.38s: {0,0,479,44}
33.50s: {0,0,479,44}
33.63s: {0,0,479,44}
33.75s: {0,0,479,44}
33.87s: {0,0,479,44}
34.00s: {0,0,479,44}
34.00s: {0,255,176,271}
34.09s: {0,0,479,44}
34.09s: {0,255,176,271}
34.22s: {0,0,479,44}
34.22s: {0,255,176,271}
34.30s: {0,0,479,44}
34.30s: {0,255,176,271}
34.31s: {303,255,479,271}
34.34s: {303,255,479,271}
34.43s: {0,0,479,44}
34.56s: {0,0,479,44}
34.56s: {303,255,479,271}
34.64s: {0,0,479,44}
34.67s: {303,255,479,271}
34.76s: {0,0,479,44}
34.80s: {0,255,176,271}
34.88s: {0,0,479,44}
34.92s: {0,255,176,271}
35.00s: {0,0,479,44}
35.14s: {0,0,479,44}
35.26s: {0,0,479,44}
35.39s: {0,0,479,44}
35.39s: {0,255,176,271}
35.47s: {0,0,479,44}
35.47s: {0,255,176,271}
35.61s: {0,0,479,44}
35.61s: {0,255,176,271}
35.69s: {0,0,479,44}
35.69s: {0,255,176,271}
35.82s: {0,0,479,44}
35.91s: {0,0,479,44}
35.91s: {463,48,479,224}
35.95s: {463,48,479,224}
36.05s: {0,0,479,44}
36.05s: {0,255,176,271}
36.14s: {0,0,479,44}
36.14s: {463,48,479,224}
36.17s: {463,48,479,224}
36.27s: {0,0,479,44}
36.31s: {0,255,176,271}
36.40s: {0,0,479,44}
36.44s: {0,255,176,271}
36.53s: {0,0,479,44}
36.53s: {0,255,176,271}
36.66s: {0,0,479,44}
36.75s: {0,0,479,44}
36.75s: {0,255,176,271}
36.88s: {0,0,479,44}
36.88s: {0,255,176,271}
36.97s: {0,0,479,44}
37.10s: {0,0,479,44}
37.10s: {303,255,479,271}
37.14s: {303,255,479,271}
37.23s: {0,0,479,44}
37.36s: {0,0,479,44}
37.36s: {0,255,176,271}
37.45s: {0,0,479,44}
37.48s: {463,48,479,224}
37.58s: {0,0,479,44}
37.58s: {463,48,479,224}
37.58s: {0,255,176,271}
37.63s: {463,48,479,224}
37.63s: {0,255,176,271}
37.71s: {0,0,479,44}
37.71s: {0,255,176,271}
37.75s: {463,48,479,224}
37.84s: {0,0,479,44}
37.98s: {0,0,479,44}
38.06s: {0,0,479,44}
38.19s: {0,0,479,44}
38.19s: {463,48,479,224}
38.28s: {0,0,479,44}
38.28s: {463,48,479,224}
38.28s: {0,255,176,271}
38.33s: {0,255,176,271}
38.53s: {0,0,479,44}
39.11s: {0,0,479,44}
39.46s: tab time: 87 ms
39.59s: {0,0,479,271}
39.59s: SCROLL[x=0;y=-85;top=85;bottom=7]
39.59s: SCROLL[x=0;y=-7;top=92;bottom=0]
39.62s: SCROLL[x=0;y=85;top=7;bottom=-172]
39.62s: SCROLL[x=0;y=7;top=0;bottom=-165]
39.80s: {0,69,479,271}
39.80s: {0,0,479,68}
40.60s: SCROLL[x=0;y=-85;top=85;bottom=7]
40.60s: SCROLL[x=0;y=-7;top=92;bottom=0]
40.62s: SCROLL[x=0;y=92;top=0;bottom=-203]
40.64s: tab time: 22 ms
40.67s: {0,0,479,271}
42.21s: {0,69,287,271}
42.45s: {0,69,287,271}
42.83s: {0,69,287,271}
42.83s: {288,69,479,271}
42.88s: {0,69,287,271}
42.88s: {288,69,479,271}
42.95s: SCROLL[x=0;y=-2;top=2;bottom=742]
42.99s: {0,69,287,271}
42.99s: {288,69,479,271}
43.00s: SCROLL[x=0;y=-41;top=43;bottom=701]
43.03s: {0,69,287,271}
43.03s: {288,69,479,271}
43.05s: SCROLL[x=0;y=-41;top=84;bottom=660]
43.08s: {0,69,287,271}
43.08s: {288,69,479,271}
43.10s: SCROLL[x=0;y=-62;top=146;bottom=598]
43.14s: {0,69,287,271}
43.14s: {288,69,479,271}
43.15s: SCROLL[x=0;y=-62;top=208;bottom=536]
43.18s: {0,69,287,271}
43.18s: {288,69,479,271}
43.20s: SCROLL[x=0;y=-62;top=270;bottom=474]
43.24s: {0,69,287,271}
43.24s: {288,69,479,271}
43.25s: SCROLL[x=0;y=-62;top=332;bottom=412]
43.29s: {0,69,287,271}
43.29s: {288,69,479,271}
43.30s: SCROLL[x=0;y=-62;top=394;bottom=350]
43.34s: {0,69,287,271}
43.34s: {288,69,479,271}
43.35s: SCROLL[x=0;y=-62;top=456;bottom=288]
43.35s: SCROLL[x=0;y=-62;top=518;bottom=226]
43.39s: {0,69,287,271}
43.39s: {288,69,479,271}
43.45s: SCROLL[x=0;y=-62;top=580;bottom=164]
43.49s: {0,69,287,271}
43.49s: {288,69,479,271}
43.50s: SCROLL[x=0;y=-62;top=642;bottom=102]
43.54s: {0,69,287,271}
43.54s: {288,69,479,271}
43.85s: SCROLL[x=0;y=-62;top=704;bottom=40]
43.85s: SCROLL[x=0;y=-40;top=744;bottom=0]
43.89s: {0,69,287,271}
43.89s: {288,69,479,271}
44.76s: {0,0,479,68}
45.59s: {0,0,479,271}
46.66s: {140,54,339,216}
46.85s: flashing '/FIRMWARE/multi-v1.3.3.20.bin'
46.85s: stop_intmodule_heartbeat
46.85s: Module #0 de-init succeeded
46.93s: {0,0,479,271}
54.93s: [Wait for Sync]
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.03s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.04s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.05s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.06s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.07s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.08s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.09s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.10s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.11s: [RX] 0xFF
55.30s: {0,0,479,271}
61.27s: init_intmodule_heartbeat
61.27s: Module #0 init succeeded
61.31s: {0,0,479,271}
61.33s: {0,0,479,68}
64.26s: CANCEL[0xd0286918]
64.36s: {0,0,479,271}
64.60s: SD card write labels
64.64s: eeprom write model
64.64s: YAML model writer
64.65s: disk_write bad alignment (0x10008290)
64.66s: disk_write bad alignment (0x10008290)
64.66s: disk_write bad alignment (0x10008290)
64.66s: disk_write bad alignment (0x10008290)
64.66s: disk_write bad alignment (0x10008290)
64.67s: disk_write bad alignment (0x10008290)
64.67s: disk_write bad alignment (0x10008290)
64.67s: disk_write bad alignment (0x10008290)
64.67s: disk_write bad alignment (0x10008290)
64.68s: disk_write bad alignment (0x10008290)
64.68s: disk_write bad alignment (0x10008290)
64.68s: disk_write bad alignment (0x10008290)
64.68s: disk_write bad alignment (0x10008290)
64.69s: disk_write bad alignment (0x10008290)
64.69s: disk_write bad alignment (0x10008290)
64.69s: disk_write bad alignment (0x10008290)
64.69s: disk_write bad alignment (0x10008290)
64.70s: disk_write bad alignment (0x10008290)
64.70s: disk_write bad alignment (0x10008290)
64.70s: disk_write bad alignment (0x10008290)
64.71s: disk_write bad alignment (0x10008290)
64.71s: disk_write bad alignment (0x10008290)
64.71s: disk_write bad alignment (0x10008290)
64.71s: disk_write bad alignment (0x10008290)
64.72s: disk_write bad alignment (0x10008290)
64.72s: disk_write bad alignment (0x10008290)
64.72s: disk_write bad alignment (0x10008290)
64.72s: disk_write bad alignment (0x10008290)
64.73s: disk_write bad alignment (0x10008290)
64.73s: disk_write bad alignment (0x10008290)
64.73s: disk_write bad alignment (0x10008290)
64.73s: disk_write bad alignment (0x10008290)
64.74s: disk_write bad alignment (0x10008290)
64.74s: disk_write bad alignment (0x10008290)
64.74s: disk_write bad alignment (0x10008290)
64.74s: disk_write bad alignment (0x10008290)
64.75s: disk_write bad alignment (0x10008290)
64.75s: disk_write bad alignment (0x10008290)
64.75s: disk_write bad alignment (0x10008290)
64.75s: disk_write bad alignment (0x10008290)
64.76s: disk_write bad alignment (0x10008290)
64.76s: disk_write bad alignment (0x10008290)
64.76s: disk_write bad alignment (0x10008290)
64.76s: disk_write bad alignment (0x10008290)
64.76s: disk_write bad alignment (0x10008290)
64.77s: disk_write bad alignment (0x10008290)
64.77s: disk_write bad alignment (0x10008290)
64.77s: disk_write bad alignment (0x10008290)
64.77s: disk_write bad alignment (0x10008290)
64.78s: disk_write bad alignment (0x10008290)
64.78s: disk_write bad alignment (0x10008290)
64.78s: disk_write bad alignment (0x10008290)
64.78s: disk_write bad alignment (0x10008290)
64.79s: disk_write bad alignment (0x10008290)
64.79s: disk_write bad alignment (0x10008290)
64.79s: disk_write bad alignment (0x10008290)
64.79s: disk_write bad alignment (0x10008290)
64.79s: disk_write bad alignment (0x10008290)
64.80s: disk_write bad alignment (0x10008290)
64.80s: disk_write bad alignment (0x10008290)
64.80s: <09 TC TigerMoth/0> : 3,0,9
64.80s: <09 TC TigerMoth/1> : 0,0,0
65.00s: {0,0,479,44}
65.00s: {303,255,479,271}
65.15s: {0,0,479,44}
65.15s: {303,255,479,271}
65.23s: {0,0,479,44}
65.34s: {303,255,479,271}
65.60s: {0,0,479,44}
65.60s: {303,255,479,271}
65.64s: {0,0,479,44}
65.64s: {303,255,479,271}
65.78s: {0,0,479,44}
65.88s: {0,0,479,44}
65.88s: {303,255,479,271}
65.92s: {303,255,479,271}
65.99s: {0,0,479,44}
65.99s: {303,255,479,271}
66.02s: {303,255,479,271}
66.06s: {303,255,479,271}
66.14s: {0,0,479,44}
66.17s: {303,255,479,271}
66.23s: {0,0,479,44}
66.23s: {303,255,479,271}
66.27s: {303,255,479,271}
66.34s: {0,0,479,44}
66.49s: {0,0,479,44}
66.49s: {303,255,479,271}
66.58s: {0,0,479,44}
66.69s: {0,0,479,44}
66.79s: {0,0,479,44}
66.82s: {303,255,479,271}
66.88s: {0,0,479,44}
66.88s: {303,255,479,271}
66.92s: {303,255,479,271}
66.99s: {0,0,479,44}
66.99s: {303,255,479,271}
67.06s: {303,255,479,271}
67.14s: {0,0,479,44}
67.14s: {303,255,479,271}
67.17s: {303,255,479,271}
67.23s: {0,0,479,44}
67.32s: {303,255,479,271}
67.38s: {0,0,479,44}
67.54s: {0,0,479,44}
67.64s: {0,0,479,44}
67.67s: {303,255,479,271}
67.73s: {0,0,479,44}
67.82s: {303,255,479,271}
67.88s: {0,0,479,44}
67.92s: {303,255,479,271}
67.99s: {0,0,479,44}
68.02s: {303,255,479,271}
68.14s: {0,0,479,44}
68.23s: {0,0,479,44}
68.27s: {303,255,479,271}
68.34s: {0,0,479,44}
68.34s: {303,255,479,271}
68.49s: {0,0,479,44}
68.49s: {303,255,479,271}
68.58s: {0,0,479,44}
68.62s: {303,255,479,271}
68.69s: {0,0,479,44}
68.84s: {0,0,479,44}

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

This is where it is failing in const char * MultiFirmwareUpdateDriver::waitForInitialSync():

  do {

    // Send sync request
    sendByte(STK_GET_SYNC);
    sendByte(CRC_EOP);

    getRxByte(byte);
    WDG_RESET();

  } while ((byte != STK_INSYNC) && --retries);

It is waiting for a STK_INSYNC (0x14) but receives a permanent 0xff response. It looks like the serial driver is not initialized properly. The old driver switched polarity at this point and tried again.

Here's wild guess 2: serial driver initialized with wrong polarity. If you want to give it a try comment the last line in this snippet:

bool MultiFirmwareUpdateDriver::init()
{
  if (type == MULTI_TYPE_MULTIMODULE && module == INTERNAL_MODULE) {
    // duplex internal USART
    mod_st = modulePortInitSerial(INTERNAL_MODULE, ETX_MOD_PORT_UART, &serialInitParams);
  } else if (type == MULTI_TYPE_MULTIMODULE && module == EXTERNAL_MODULE) {
    // TX on PPM (inverted softserial)
    etx_serial_init params(serialInitParams);
    params.direction = ETX_Dir_TX;
    //params.polarity = ETX_Pol_Inverted;               <-- comment this line
...

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

wait a sec, not enough

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

bool MultiFirmwareUpdateDriver::init()
{
  if (type == MULTI_TYPE_MULTIMODULE && module == INTERNAL_MODULE) {
    // duplex internal USART
    mod_st = modulePortInitSerial(INTERNAL_MODULE, ETX_MOD_PORT_UART, &serialInitParams);
  } else if (type == MULTI_TYPE_MULTIMODULE && module == EXTERNAL_MODULE) {
    // TX on PPM (inverted softserial)
    etx_serial_init params(serialInitParams);
    params.direction = ETX_Dir_TX;
--> comment    //params.polarity = ETX_Pol_Inverted;
    mod_st = modulePortInitSerial(EXTERNAL_MODULE, ETX_MOD_PORT_UART, &params);
    if (!mod_st) {
--> comment      //params.polarity = ETX_Pol_Normal;
      mod_st = modulePortInitSerial(EXTERNAL_MODULE, ETX_MOD_PORT_SOFT_INV, &params);
      if (!mod_st) return false;
    }
    // RX on S.PORT (inverted softserial)
    params.direction = ETX_Dir_RX;
--> comment    //params.polarity = ETX_Pol_Inverted;

@ParkerEde
Copy link
Contributor

no success:

13.86s: {463,48,479,224}
8,479,224}
21.29s: {463,48,479,224}
21.37s: {0,0,479,44}
21.37s: {0,255,176,271}
21.40s: {463,48,479,224}
21.40s: {0,255,176,271}
21.48s: {0,0,479,44}
21.48s: {463,48,479,224}
21.48s: {303,255,479,271}
21.51s: {303,255,479,271}
21.59s: {0,0,479,44}
21.61s: {0,255,176,271}
21.69s: {0,0,479,44}
21.72s: {303,255,479,271}
21.80s: {0,0,479,44}
21.80s: {0,255,176,271}
21.80s: {303,255,479,271}
21.83s: {0,255,176,271}
21.83s: {303,255,479,271}
21.91s: {0,0,479,44}
21.94s: {303,255,479,271}
22.02s: {0,0,479,44}
22.02s: {0,255,176,271}
22.12s: {0,0,479,44}
22.23s: {0,0,479,44}
22.26s: {303,255,479,271}
22.33s: {0,0,479,44}
22.36s: {0,255,176,271}
22.36s: {303,255,479,271}
22.44s: {0,0,479,44}
22.44s: {0,255,176,271}
22.51s: {463,48,479,224}
22.60s: {0,0,479,44}
22.71s: {0,0,479,44}
22.71s: {0,255,176,271}
22.74s: {463,48,479,224}
22.74s: {0,255,176,271}
22.82s: {0,0,479,44}
22.82s: {463,48,479,224}
22.85s: {463,48,479,224}
22.85s: {0,255,176,271}
22.94s: {0,0,479,44}
22.94s: {0,255,176,271}
22.96s: {463,48,479,224}
23.05s: {0,0,479,44}
23.05s: {463,48,479,224}
23.15s: {0,0,479,44}
23.26s: {0,0,479,44}
23.36s: {0,0,479,44}
23.39s: {463,48,479,224}
23.46s: {0,0,479,44}
23.49s: {463,48,479,224}
23.58s: {0,0,479,44}
23.69s: {0,0,479,44}
23.79s: {0,0,479,44}
23.91s: {0,0,479,44}
23.91s: {0,255,176,271}
23.94s: {0,255,176,271}
23.94s: {303,255,479,271}
24.03s: {0,0,479,44}
24.03s: {463,48,479,224}
24.03s: {0,255,176,271}
24.03s: {303,255,479,271}
24.07s: {463,48,479,224}
24.07s: {0,255,176,271}
24.14s: {0,0,479,44}
24.22s: {0,255,176,271}
24.30s: {0,0,479,44}
24.30s: {0,255,176,271}
24.42s: {0,0,479,44}
24.53s: {0,0,479,44}
24.56s: {463,48,479,224}
24.64s: {0,0,479,44}
24.64s: {463,48,479,224}
24.67s: {0,255,176,271}
24.76s: {0,0,479,44}
24.76s: {0,255,176,271}
24.87s: {0,0,479,44}
24.98s: {0,0,479,44}
25.10s: {0,0,479,44}
25.10s: {303,255,479,271}
25.13s: {0,255,176,271}
25.13s: {303,255,479,271}
25.21s: {0,0,479,44}
25.21s: {0,255,176,271}
25.37s: {0,0,479,44}
25.48s: {0,0,479,44}
25.60s: {0,0,479,44}
25.60s: {0,255,176,271}
25.60s: {303,255,479,271}
25.63s: {0,255,176,271}
25.63s: {303,255,479,271}
25.71s: {0,0,479,44}
25.71s: {303,255,479,271}
25.75s: {0,255,176,271}
25.75s: {303,255,479,271}
25.89s: tab time: 104 ms
26.03s: {0,0,479,271}
26.04s: SCROLL[x=0;y=-85;top=85;bottom=7]
26.04s: SCROLL[x=0;y=-7;top=92;bottom=0]
26.07s: SCROLL[x=0;y=85;top=7;bottom=-172]
26.07s: SCROLL[x=0;y=7;top=0;bottom=-165]
26.27s: {0,69,479,271}
26.27s: {0,0,479,68}
26.83s: SCROLL[x=0;y=-85;top=85;bottom=7]
26.83s: SCROLL[x=0;y=-7;top=92;bottom=0]
26.84s: SCROLL[x=0;y=92;top=0;bottom=-203]
26.87s: tab time: 30 ms
26.91s: {0,0,479,271}
27.64s: {0,69,287,271}
27.87s: {0,69,287,271}
28.26s: {0,69,287,271}
28.26s: {288,69,479,271}
28.30s: {0,69,287,271}
28.30s: {288,69,479,271}
28.32s: SCROLL[x=0;y=-2;top=2;bottom=370]
28.35s: {0,69,287,271}
28.35s: {288,69,479,271}
28.37s: SCROLL[x=0;y=-41;top=43;bottom=329]
28.37s: SCROLL[x=0;y=-41;top=84;bottom=288]
28.41s: {0,69,287,271}
28.41s: {288,69,479,271}
28.42s: SCROLL[x=0;y=-62;top=146;bottom=226]
28.46s: {0,69,287,271}
28.46s: {288,69,479,271}
28.47s: SCROLL[x=0;y=-62;top=208;bottom=164]
28.51s: {0,69,287,271}
28.51s: {288,69,479,271}
28.52s: SCROLL[x=0;y=-62;top=270;bottom=102]
28.56s: {0,69,287,271}
28.56s: {288,69,479,271}
28.62s: SCROLL[x=0;y=-62;top=332;bottom=40]
28.66s: {0,69,287,271}
28.66s: {288,69,479,271}
28.67s: SCROLL[x=0;y=-40;top=372;bottom=0]
28.71s: {0,69,287,271}
28.71s: {288,69,479,271}
30.07s: {0,0,479,271}
30.69s: {140,54,339,216}
30.88s: flashing '/FIRMWARE/multi-v1.3.3.20.bin'
30.88s: stop_intmodule_heartbeat
30.88s: Module #0 de-init succeeded
30.96s: {0,0,479,271}
38.96s: [Wait for Sync]
41.66s: {0,0,479,271}
48.97s: init_intmodule_heartbeat
48.97s: Module #0 init succeeded
49.02s: {0,0,479,271}
49.04s: {0,0,479,68}
51.28s: CANCEL[0xd02a7820]
51.38s: {0,0,479,271}
51.42s: SD card write labels
51.46s: eeprom write model
51.46s: YAML model writer
51.47s: disk_write bad alignment (0x10008290)
51.48s: disk_write bad alignment (0x10008290)
51.48s: disk_write bad alignment (0x10008290)
51.48s: disk_write bad alignment (0x10008290)
51.48s: disk_write bad alignment (0x10008290)
51.49s: disk_write bad alignment (0x10008290)
51.49s: disk_write bad alignment (0x10008290)
51.49s: disk_write bad alignment (0x10008290)
51.49s: disk_write bad alignment (0x10008290)
51.50s: disk_write bad alignment (0x10008290)
51.50s: disk_write bad alignment (0x10008290)
51.50s: disk_write bad alignment (0x10008290)
51.50s: disk_write bad alignment (0x10008290)
51.51s: disk_write bad alignment (0x10008290)
51.51s: disk_write bad alignment (0x10008290)
51.51s: disk_write bad alignment (0x10008290)
51.52s: disk_write bad alignment (0x10008290)
51.52s: disk_write bad alignment (0x10008290)
51.52s: disk_write bad alignment (0x10008290)
51.52s: disk_write bad alignment (0x10008290)
51.53s: disk_write bad alignment (0x10008290)
51.53s: disk_write bad alignment (0x10008290)
51.53s: disk_write bad alignment (0x10008290)
51.54s: disk_write bad alignment (0x10008290)
51.54s: disk_write bad alignment (0x10008290)
51.54s: disk_write bad alignment (0x10008290)
51.54s: disk_write bad alignment (0x10008290)
51.55s: disk_write bad alignment (0x10008290)
51.55s: disk_write bad alignment (0x10008290)
51.55s: disk_write bad alignment (0x10008290)
51.55s: disk_write bad alignment (0x10008290)
51.56s: disk_write bad alignment (0x10008290)
51.56s: disk_write bad alignment (0x10008290)
51.56s: disk_write bad alignment (0x10008290)
51.56s: disk_write bad alignment (0x10008290)
51.56s: disk_write bad alignment (0x10008290)
51.57s: disk_write bad alignment (0x10008290)
51.57s: disk_write bad alignment (0x10008290)
51.57s: disk_write bad alignment (0x10008290)
51.57s: disk_write bad alignment (0x10008290)
51.58s: disk_write bad alignment (0x10008290)
51.58s: disk_write bad alignment (0x10008290)
51.58s: disk_write bad alignment (0x10008290)
51.58s: disk_write bad alignment (0x10008290)
51.59s: disk_write bad alignment (0x10008290)
51.59s: disk_write bad alignment (0x10008290)
51.59s: disk_write bad alignment (0x10008290)
51.59s: disk_write bad alignment (0x10008290)
51.60s: disk_write bad alignment (0x10008290)
51.60s: disk_write bad alignment (0x10008290)
51.60s: disk_write bad alignment (0x10008290)
51.60s: disk_write bad alignment (0x10008290)
51.60s: disk_write bad alignment (0x10008290)
51.61s: disk_write bad alignment (0x10008290)
51.61s: disk_write bad alignment (0x10008290)
51.61s: disk_write bad alignment (0x10008290)
51.61s: disk_write bad alignment (0x10008290)
51.62s: disk_write bad alignment (0x10008290)
51.62s: disk_write bad alignment (0x10008290)
51.62s: disk_write bad alignment (0x10008290)
51.63s: <09 TC TigerMoth/0> : 3,0,9
51.63s: <09 TC TigerMoth/1> : 0,0,0
51.67s: {0,0,479,44}
51.73s: {0,0,479,44}
51.73s: {0,255,176,271}
51.77s: {463,48,479,224}
51.77s: {0,255,176,271}
51.85s: {0,0,479,44}
51.85s: {463,48,479,224}
51.86s: {0,255,176,271}
51.97s: {0,0,479,44}
51.97s: {0,255,176,271}
52.08s: {0,0,479,44}
52.11s: {0,255,176,271}
52.19s: {0,0,479,44}
52.22s: {0,255,176,271}
52.31s: {0,0,479,44}
52.34s: {0,255,176,271}
52.42s: {0,0,479,44}
52.42s: {0,255,176,271}
52.53s: {0,0,479,44}
52.53s: {0,255,176,271}
52.65s: {0,0,479,44}
52.65s: {0,255,176,271}
52.68s: {463,48,479,224}
52.68s: {0,255,176,271}
52.76s: {0,0,479,44}
52.76s: {0,255,176,271}
52.80s: {463,48,479,224}
52.80s: {0,255,176,271}
52.87s: {0,0,479,44}
52.87s: {0,255,176,271}
52.90s: {303,255,479,271}
53.00s: {0,0,479,44}
53.00s: {0,255,176,271}
53.00s: {303,255,479,271}
53.03s: {0,255,176,271}
53.12s: {0,0,479,44}
53.23s: {0,0,479,44}
53.23s: {0,255,176,271}
53.27s: {0,255,176,271}
53.34s: {0,0,479,44}
53.46s: {0,0,479,44}
53.46s: {0,255,176,271}
53.50s: {0,255,176,271}
53.57s: {0,0,479,44}
53.57s: {0,255,176,271}
53.61s: {463,48,479,224}
53.61s: {0,255,176,271}
53.69s: {0,0,479,44}
53.69s: {463,48,479,224}
53.73s: {463,48,479,224}
53.81s: {0,0,479,44}
53.84s: {463,48,479,224}
53.93s: {0,0,479,44}
53.93s: {463,48,479,224}
53.97s: {463,48,479,224}
54.05s: {0,0,479,44}
54.05s: {463,48,479,224}
54.09s: {463,48,479,224}
54.17s: {0,0,479,44}
54.28s: {0,0,479,44}
54.39s: {0,0,479,44}
54.43s: {463,48,479,224}

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

Ok, thanks for trying.

We now know there is something wrong with the serial communication between radio and module. At this point I'd check the voltage on the VCC pin just after the flash is initiated and then fire up my logic analyzer to see what's going out and if the module is responding, what's going in, the serial parameters and levels (active high or low). Unfortunately I don't have an external MPM, so I have to call timeout.

@ParkerEde
Copy link
Contributor

we can communicate via discord?

@ParkerEde
Copy link
Contributor

i have tested all the time with an active model where the ext. MPM is not active at all. Then flashing does not seem to work anyway. Now I have activated a model in which the MPM is active, with the version of 8.2. checked that it is really flashable and then took the last DEBUG variant. The MPM could not be flashed again, but now comes another message:

00s: {463,48,479,224}
23.00s: {0,255,176,271}
23.11s: {0,0,479,44}
23.22s: {0,0,479,44}
23.22s: {0,255,176,271}
23.25s: {0,255,176,271}
23.32s: {0,0,479,44}
23.40s: {463,48,479,224}
23.40s: {0,255,176,271}
23.48s: {0,0,479,44}
23.48s: {463,48,479,224}
23.48s: {0,255,176,271}
23.59s: {0,0,479,44}
23.70s: {0,0,479,44}
23.70s: {0,255,176,271}
23.73s: {463,48,479,224}
23.73s: {0,255,176,271}
23.80s: {0,0,479,44}
23.83s: {463,48,479,224}
23.91s: {0,0,479,44}
23.94s: {463,48,479,224}
24.02s: {0,0,479,44}
24.05s: {463,48,479,224}
24.13s: {0,0,479,44}
24.24s: {0,0,479,44}
24.34s: {0,0,479,44}
24.45s: {0,0,479,44}
24.56s: {0,0,479,44}
24.56s: {0,255,176,271}
24.59s: {0,255,176,271}
24.66s: {0,0,479,44}
24.74s: {0,255,176,271}
24.82s: {0,0,479,44}
24.82s: {0,255,176,271}
24.93s: {0,0,479,44}
25.04s: {0,0,479,44}
25.15s: {0,0,479,44}
25.27s: {0,0,479,44}
25.29s: {463,48,479,224}
25.38s: {0,0,479,44}
25.38s: {463,48,479,224}
25.49s: {0,0,479,44}
25.52s: {463,48,479,224}
25.61s: {0,0,479,44}
25.61s: {463,48,479,224}
25.61s: {0,255,176,271}
25.64s: {463,48,479,224}
25.64s: {0,255,176,271}
25.72s: {0,0,479,44}
25.72s: {463,48,479,224}
25.88s: {0,0,479,44}
25.99s: {0,0,479,44}
25.99s: {0,255,176,271}
26.03s: {0,255,176,271}
26.11s: {0,0,479,44}
26.28s: {0,0,479,44}
26.28s: {463,48,479,224}
26.28s: {0,255,176,271}
26.31s: {463,48,479,224}
26.31s: {0,255,176,271}
26.39s: {0,0,479,44}
26.42s: {463,48,479,224}
26.50s: {0,0,479,44}
26.53s: {463,48,479,224}
26.62s: {0,0,479,44}
26.73s: {0,0,479,44}
26.84s: {0,0,479,44}
26.84s: {0,255,176,271}
26.87s: {0,255,176,271}
26.95s: {0,0,479,44}
26.95s: {463,48,479,224}
26.98s: {463,48,479,224}
27.07s: {0,0,479,44}
27.10s: {0,255,176,271}
27.18s: {0,0,479,44}
27.18s: {0,255,176,271}
27.29s: {0,0,479,44}
27.41s: {0,0,479,44}
27.52s: {0,0,479,44}
27.63s: {0,0,479,44}
27.75s: {0,0,479,44}
27.86s: {0,0,479,44}
27.97s: {0,0,479,44}
28.09s: {0,0,479,44}
28.09s: {0,255,176,271}
28.12s: {0,255,176,271}
28.20s: {0,0,479,44}
28.23s: {0,255,176,271}
28.31s: {0,0,479,44}
28.31s: {0,255,176,271}
28.35s: {463,48,479,224}
28.35s: {0,255,176,271}
28.43s: {0,0,479,44}
28.43s: {0,255,176,271}
28.46s: {463,48,479,224}
28.54s: {0,0,479,44}
28.54s: {463,48,479,224}
28.57s: {463,48,479,224}
28.65s: {0,0,479,44}
28.77s: {0,0,479,44}
28.79s: {463,48,479,224}
28.89s: {0,0,479,44}
28.89s: {463,48,479,224}
28.89s: {0,255,176,271}
28.93s: {0,255,176,271}
29.00s: {0,0,479,44}
29.17s: tab time: 126 ms
29.31s: {0,0,479,271}
29.33s: {0,0,479,68}
30.12s: SCROLL[x=0;y=-85;top=85;bottom=7]
30.12s: SCROLL[x=0;y=-7;top=92;bottom=0]
30.14s: SCROLL[x=0;y=92;top=0;bottom=-203]
30.17s: tab time: 34 ms
30.21s: {0,0,479,271}
30.91s: {0,69,287,271}
30.91s: {288,69,479,271}
31.06s: {0,69,287,271}
31.06s: {288,69,479,271}
31.16s: {0,69,287,271}
31.16s: {288,69,479,271}
31.18s: SCROLL[x=0;y=-2;top=2;bottom=327]
31.21s: {0,69,287,271}
31.21s: {288,69,479,271}
31.46s: {0,69,287,271}
31.46s: {288,69,479,271}
31.61s: {0,69,287,271}
31.61s: {288,69,479,271}
31.76s: {0,69,287,271}
31.76s: {288,69,479,271}
31.88s: SCROLL[x=0;y=2;top=0;bottom=329]
31.91s: {0,69,287,271}
31.91s: {288,69,479,271}
32.75s: {0,69,287,271}
32.97s: {0,69,287,271}
33.47s: {0,69,287,271}
33.47s: {288,69,479,271}
33.51s: {0,69,287,271}
33.51s: {288,69,479,271}
33.56s: {0,69,287,271}
33.56s: {288,69,479,271}
33.58s: SCROLL[x=0;y=-2;top=2;bottom=370]
33.61s: {0,69,287,271}
33.61s: {288,69,479,271}
33.63s: SCROLL[x=0;y=-41;top=43;bottom=329]
33.66s: {0,69,287,271}
33.66s: {288,69,479,271}
33.68s: SCROLL[x=0;y=-41;top=84;bottom=288]
33.71s: {0,69,287,271}
33.71s: {288,69,479,271}
33.78s: SCROLL[x=0;y=-62;top=146;bottom=226]
33.81s: {0,69,287,271}
33.81s: {288,69,479,271}
33.83s: SCROLL[x=0;y=-62;top=208;bottom=164]
33.86s: {0,69,287,271}
33.86s: {288,69,479,271}
33.88s: SCROLL[x=0;y=-62;top=270;bottom=102]
33.92s: {0,69,287,271}
33.92s: {288,69,479,271}
33.93s: SCROLL[x=0;y=-62;top=332;bottom=40]
33.97s: {0,69,287,271}
33.97s: {288,69,479,271}
34.08s: SCROLL[x=0;y=-40;top=372;bottom=0]
34.12s: {0,69,287,271}
34.12s: {288,69,479,271}
34.39s: {0,0,479,68}
35.58s: {0,0,479,271}
36.45s: {140,54,339,216}
36.64s: flashing '/FIRMWARE/multi-v1.3.3.20.bin'
36.64s: Module #1 de-init succeeded
36.72s: {0,0,479,271}
44.72s: [Wait for Sync]
47.42s: {0,0,479,271}
54.14s: enablePulsesInternalModule(): trigger scan
54.14s: Module #1 init succeeded
54.15s: scan [255]
54.16s: scan [255]
54.16s: scan [255]
54.17s: scan [255]
54.18s: scan [255]
54.18s: scan [255]
54.19s: scan [255]
54.19s: {0,0,479,271}
54.20s: scan [255]
54.20s: scan [255]
54.21s: scan [255]
54.21s: {0,0,479,68}
54.22s: scan [255]
54.23s: scan [255]
54.23s: scan [255]
54.24s: scan [255]
54.25s: scan [255]
54.25s: scan [255]
54.26s: scan [255]
59.28s: {0,0,479,68}
60.51s: CANCEL[0xd02b36c0]
60.61s: {0,0,479,271}
60.64s: SD card write labels
60.69s: eeprom write model
60.69s: YAML model writer
60.70s: disk_write bad alignment (0x10008290)
60.70s: disk_write bad alignment (0x10008290)
60.71s: disk_write bad alignment (0x10008290)
60.71s: disk_write bad alignment (0x10008290)
60.71s: disk_write bad alignment (0x10008290)
60.71s: disk_write bad alignment (0x10008290)
60.72s: disk_write bad alignment (0x10008290)
60.72s: disk_write bad alignment (0x10008290)
60.72s: disk_write bad alignment (0x10008290)
60.72s: disk_write bad alignment (0x10008290)
60.73s: disk_write bad alignment (0x10008290)
60.73s: disk_write bad alignment (0x10008290)
60.73s: disk_write bad alignment (0x10008290)
60.73s: disk_write bad alignment (0x10008290)
60.74s: disk_write bad alignment (0x10008290)
60.74s: disk_write bad alignment (0x10008290)
60.74s: disk_write bad alignment (0x10008290)
60.74s: disk_write bad alignment (0x10008290)
60.75s: disk_write bad alignment (0x10008290)
60.75s: disk_write bad alignment (0x10008290)
60.75s: disk_write bad alignment (0x10008290)
60.76s: disk_write bad alignment (0x10008290)
60.76s: disk_write bad alignment (0x10008290)
60.76s: disk_write bad alignment (0x10008290)
60.76s: disk_write bad alignment (0x10008290)
60.77s: disk_write bad alignment (0x10008290)
60.77s: disk_write bad alignment (0x10008290)
60.77s: disk_write bad alignment (0x10008290)
60.77s: disk_write bad alignment (0x10008290)
60.78s: disk_write bad alignment (0x10008290)
60.78s: disk_write bad alignment (0x10008290)
60.78s: disk_write bad alignment (0x10008290)
60.78s: disk_write bad alignment (0x10008290)
60.79s: disk_write bad alignment (0x10008290)
60.79s: disk_write bad alignment (0x10008290)
60.79s: disk_write bad alignment (0x10008290)
60.79s: disk_write bad alignment (0x10008290)
60.80s: disk_write bad alignment (0x10008290)
60.80s: disk_write bad alignment (0x10008290)
60.80s: disk_write bad alignment (0x10008290)
60.80s: disk_write bad alignment (0x10008290)
60.80s: disk_write bad alignment (0x10008290)
60.81s: disk_write bad alignment (0x10008290)
60.81s: disk_write bad alignment (0x10008290)
60.81s: disk_write bad alignment (0x10008290)
60.81s: disk_write bad alignment (0x10008290)
60.82s: disk_write bad alignment (0x10008290)
60.82s: disk_write bad alignment (0x10008290)
60.82s: disk_write bad alignment (0x10008290)
60.82s: disk_write bad alignment (0x10008290)
60.83s: disk_write bad alignment (0x10008290)
60.83s: disk_write bad alignment (0x10008290)
60.83s: disk_write bad alignment (0x10008290)
60.83s: disk_write bad alignment (0x10008290)
60.83s: disk_write bad alignment (0x10008290)
60.84s: disk_write bad alignment (0x10008290)
60.84s: disk_write bad alignment (0x10008290)
60.84s: disk_write bad alignment (0x10008290)
60.85s: <63 Test Ext Tx/0> : 0,0,0
60.85s: <63 Test Ext Tx/1> : 6,2,0
60.89s: {0,0,479,44}
60.96s: {0,0,479,44}
60.99s: {0,255,176,271}
61.04s: {0,255,176,271}
61.12s: {0,0,479,44}
61.15s: {463,48,479,224}
61.24s: {0,0,479,44}
61.24s: {463,48,479,224}
61.24s: {0,255,176,271}
61.28s: {0,255,176,271}
61.36s: {0,0,479,44}
61.47s: {0,0,479,44}
61.50s: {0,255,176,271}
61.58s: {0,0,479,44}
61.61s: {0,255,176,271}
61.69s: {0,0,479,44}
61.82s: {0,0,479,44}
61.82s: {463,48,479,224}
61.86s: {463,48,479,224}
61.93s: {0,0,479,44}
61.97s: {463,48,479,224}
62.05s: {0,0,479,44}
62.05s: {463,48,479,224}
62.18s: {0,0,479,44}
62.18s: {0,255,176,271}
62.21s: {463,48,479,224}
62.21s: {0,255,176,271}
62.30s: {0,0,479,44}
62.30s: {463,48,479,224}
62.30s: {0,255,176,271}
62.34s: {0,255,176,271}
62.41s: {0,0,479,44}
62.53s: {0,0,479,44}
62.56s: {0,255,176,271}
62.65s: {0,0,479,44}
62.65s: {0,255,176,271}
62.69s: {0,255,176,271}
62.77s: {0,0,479,44}
62.77s: {0,255,176,271}
62.77s: {0,255,176,271}
63.01s: {0,0,479,44}
63.01s: {0,255,176,271}
63.04s: {0,255,176,271}
63.14s: {0,0,479,44}
63.14s: {0,255,176,271}
63.18s: {0,255,176,271}
63.26s: {0,0,479,44}
63.38s: {0,0,479,44}
63.51s: {0,0,479,44}
63.51s: {0,255,176,271}
63.54s: {463,48,479,224}
63.54s: {0,255,176,271}
63.54s: {303,255,479,271}
63.63s: {0,0,479,44}
63.63s: {303,255,479,271}
63.67s: {463,48,479,224}
63.75s: {0,0,479,44}
63.79s: {303,255,479,271}
63.87s: {0,0,479,44}
63.87s: {303,255,479,271}
63.91s: {463,48,479,224}
64.00s: {0,0,479,44}
64.00s: {463,48,479,224}

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023 via email

@ParkerEde
Copy link
Contributor

I have already done. But there comes again "[RX] 0xFF". So nothing changes in the final result, only that now the lines with the "scan [255]" appear.

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

"scan [255]" is the radio polling MPM protocols after the flash failed as part of the new initialization

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

btw "disk_write bad alignment" points to a sd card problem. insert the SD card on your PC, try open a windows cmd shell and do chkdsk /f

@ParkerEde
Copy link
Contributor

I have done it. No errors were found. The SD card and its contents are okay.

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

The you might have found some other bug too

TX16s 2.9: I just flashed my internal multi successful. I wonder if what you see is some side effect of disabling the heartbeat port.

@mha1
Copy link
Contributor

mha1 commented Mar 12, 2023

do you have your internal module off?

@ParkerEde
Copy link
Contributor

yes

@ParkerEde
Copy link
Contributor

I also noticed that with the Horus X10 Express, the selection "Flash external Device" is no longer available when I want to flash a "frsk" or a "frk" file with ENTER via SDCard Browser.

@DM4DS
Copy link

DM4DS commented Mar 24, 2023

Same Bluetooth problem on TX16S and T18 with internal Bluetooth mod - works perfect under 2.8 (selfbuild 30.11.2022) but no adresse on 2.9 selfbuild from master today.

@ParkerEde
Copy link
Contributor

Hi @DM4DS thank you for your information.
I have opened a separate issue for the BT problem. I think it would be good if you could share your experience with us here.
#3376
best regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants