#OSD works on UART2 but does not work on the same pin set as softserial

1 messages · Page 1 of 1 (latest)

tawdry totem
#
  1. dump attached
  2. status:

status

MCU F411 Clock=108MHz (PLLP-HSI), Vref=3.29V, Core temp=35degC
Stack size: 2048, Stack address: 0x2001fff0
Configuration: CONFIGURED, size: 3505, max available: 16384
Devices detected: SPI:1, I2C:0
Gyros detected: gyro 1 locked dma
GYRO=MPU6000, ACC=MPU6000
OSD: MSP (30 x 13)
BUILD KEY: 8239d829d20852d94723e4ea7145330e (4.4.2)
System Uptime: 38 seconds, Current Time: 2023-09-25T14:53:12.630+00:00
CPU:78%, cycle time: 133, GYRO rate: 7518, RX rate: 251, System rate: 9
Voltage: 754 * 0.01V (2S battery - OK)
I2C Errors: 0
Arming disable flags: CLI

dma show:

dma show

Currently active DMA:

DMA1 Stream 0: MOTOR 3
DMA1 Stream 1: FREE
DMA1 Stream 2: FREE
DMA1 Stream 3: MOTOR 4
DMA1 Stream 4: MOTOR 2
DMA1 Stream 5: FREE
DMA1 Stream 6: MOTOR 1
DMA1 Stream 7: FREE
DMA2 Stream 0: SPI_MISO 1
DMA2 Stream 1: FREE
DMA2 Stream 2: FREE
DMA2 Stream 3: SPI_MOSI 1
DMA2 Stream 4: ADC 1
DMA2 Stream 5: FREE
DMA2 Stream 6: FREE
DMA2 Stream 7: FREE

#

@supple haven Here is the post as you requested. I can't take the photo of the wiring now but it is confirmed that it's valid because OSD worked in native UART mode (VTX can receive data) and record on arm works (VTX can receive and transmit data)

supple haven
#

Move the wire from the PPM pad to the LED_STRIP pad

tawdry totem
supple haven
#

I haven't looked yet

#

Yeah, hardware UART isn't possible without soldering directly to the MCU

#

Move the wire as above, and enter this in the CLI:

resource SERIAL_RX 11 A08
save```
#

Also consider overclocking to 120MHz:
set cpu_overclock = 120MHZ

tawdry totem
#

Thank you!

#

@supple haven moved the wire to the LED pad, ran the commands you provided and the issue persists: on arm recording works, no OSD. Turned off softserial, assigned A08 to Serial RX2 - same issue, now I have OSD but on arm recording doesn't work

supple haven
#

You can't assign A08 to RX2

tawdry totem
#

It almost feels like I should have 2 separate ports: UART 2 for OSD and UART 11 for arming

#

but the VTX probably won't like that

supple haven
#

When not using Softserial, how do you have your ports tab setup?

#

Again, Softserial is not recommended for something like this

tawdry totem
#

No softserial

supple haven
#

MSP should be sufficient for the arm command, and the VTX(MSP+DisplayPort) should give you OSD

#

A full UART is required for Betaflight to communicate with the VTX to send the OSD info, so it makes sense the OSD is only working with Softserial when you have a working RX

#

But I'm not sure why recording isn't working

tawdry totem
#

OSD is not working with softserial

supple haven
#

That's weird

#

I assume the Walksnail MSP DisplayPort works the same as DJI, but maybe not

#

Show the ports tab for Softserial

#

Try disabling bidirectional DShot temporarily

#

Did you overclock to 120MHz?

tawdry totem
#

did not overclock

#

let me try that

supple haven
#

Overclock and disable bidirectional dshot to see if it's a resource issue

tawdry totem
#

did that, everything is exactly the same

supple haven
#

Lower PID loop rate to 2k

#

CPU:79%, cycle time: 132, GYRO rate: 7575, RX rate: 62, System rate: 9

tawdry totem
#

CPU utilization is at 35%

#

can this still be a resoutce issue?

supple haven
#

With softserial?

#

In your dump before it was 79%

tawdry totem
#

Yes, with softserial but no bidirectional dshot

#

I tried keeping TX on TX2 and setting up LED as RX11. I have OSD this way but no recording on arm

supple haven
#

That won't work, you can't spilt a UART like that

tawdry totem
#

I did set RX11 as MSP only, not MSP+VTX

#

Reduced softserial to 19200 bps, still no OSD

supple haven
#

The VTX won't work with MSP at 19200

#

Options:
Solder RX to Pin 103 on the MCU
Get a different FC

tawdry totem
#

Ok. It's just strange that both functions work separately but don't work in combination. Doesn't seem like a hardware issue

tawdry totem
#

I'm wondering why does simple remapping of the LED pin not work

supple haven
#

It should work, but in that case you're using softserial which does not work well for something like this

tawdry totem
#

But if I don't use softserial and do simple resource remapping where RX2 is A08 it still doesn't work

supple haven
#

Because A08 can't be RX2

tawdry totem
supple haven
#

Yes, I know. You can use LED_STRIP for softserial

#

You can't arbitrarily remap it to a hardware UART (eg RX2)

#

These are the things A08 can be mapped to

#

Since it can be mapped to a timer, it can be used for softserial

#

But it cannot be mapped to a hardware UART

#

The only pin on that MCU that can be mapped to RX2 is A03

tawdry totem
#

but it has no pad on the board?

supple haven
#

#1155880229093507172 message

tawdry totem
#

I think I solved it

#

at least on 4.3

#

Flashing back to 4.4

#

Nope, only works on 4.3

#

I can live with that

supple haven
#

With softserial or only TX2 hooked up?

tawdry totem
#

with softserial

#

the issue is that serial tx is 11 but in ports it's set up as 30

#

in BF 4.3 I can set msp_displayport_device as 30 and it works

#

but in 4.4 it's tied to UART number

#

maybe if I set softserial UART to 30 it will work

#

nope, won't let me

supple haven
#

The MSP DisplayPort code changed in 4.4

tawdry totem
#

feels like it was intentionally left out, OSD on softserial is pretty slow