micro / minimOSD для NAZA

Kipo

А если пропадала телеметрия совсем, а картинка оставалась, вылечилось перезагрузкой платы - это непропай где-то или перегрев? Платки в термоусадке.

saigo

MAX7456 греется будь здоров, у меня уже сгорел (перепаивал новый), сейчас на всякий случай после заключения платы в термусадку сделал вырез над MAXом + заказал Heatsink Cooling мелкий.

8 days later
огреатырь

Подскажите пжлст, все спаяно верно. Прошивается без проблем. Везде PAL стоит.
Но не пропускает видеосигнал, при подключении через осд - no signal.
Mobius, nazav1

Моя плата не значительно отличается от автора проекта. Но вроде подобные тут рекомендовали

Vlad-1357

Коллеги, а как сделать, чтобы осд отображала два напряжения как у Фёдора (brusse)?

ehs

На любой из семи (кажется их семь) аналоговых пинов можно повесить проводок по которому подавать некую информацию от масштабированую в напряжение 0 - 1,1В. Хоть семь делителей от семи батарей. Код конечно надо править в зависимости на какой пин певешен делитель.

Vlad-1357

Уже повесил, а вот с кодом как разобраться - не знаю.

ehs

На какой пин? (На какую ногу процессора?) Могу вечером написать что в коде вставить.

ehs

Добавляем индикацию второй батареи на ножке 23, пин A0. Новую панель в OSDconfig я незнаю как делать, поэтому в этом варианте я заменяю панельку “Throttle”, по аналогии можно заменить другую неиспользуемую панель.

Жирный текст - вставить, зачеркнутый - удалить.
В файле OSD_Vars.h ->
static uint8_t battv = 0; // Battery warning voltage - units Volt *10
static float osd_vbat_A = 0; // Battery A voltage in milivolt
static float osd_vbat_B = 0; // Battery B voltage
static int16_t osd_curr_A = 0; // Battery A current

FlightBatt.h ->
#define CURRENT_VOLTAGE(x) ((x)*REF_VOLTAGE/1024.0)*(volt_div_ratio/100.0)
#define CURRENT_VOLTAGE_B(x) ((x)*REF_VOLTAGE/1024.0)*(1523.5/100.0) //число “1523.5” подобрать под свой делитель
#define CURRENT_AMPS(x) (((x)*REF_VOLTAGE/1024.0)-(curr_amp_offset/10000.0))*(curr_amp_per_volt/100.0)

FlightBatt.ino ->

static float voltage = LOW_VOLTAGE * 1.05; // battery voltage, initialized above the low voltage threshold to pre-load the filter and prevent low voltage events at startup
static float voltage_B = LOW_VOLTAGE * 1.05; // battery voltage_B, initialized above the low voltage threshold
static float current_amps = 0; // battery instantaneous currrent draw [A]

voltage = CURRENT_VOLTAGE(analogRead(VOLTAGE_PIN)) * .2 + voltage * .8; // reads battery voltage pin
osd_vbat_A = voltage;
voltage_B = CURRENT_VOLTAGE_B(analogRead(0)) * .2 + voltage_B * .8; // reads battery_B voltage pin A0 (23)
osd_vbat_B = voltage_B;

if (curr_amp_per_volt > 0) { // Consider Amp sensor disbled when Amp per Volt ratio is zero
current_amps = CURRENT_AMPS(analogRead(CURRENT_PIN)) * .2 + current_amps * .8; // reads battery sensor current pin

OSD_Panels.ino ->
/******************************************************************/
// Panel : panThr
// Needs : X, Y locations
// Output : Throttle
/******************************************************************/
void panThr(int first_col, int first_line) {
osd.setPanel(first_col, first_line);
osd.openPanel();
osd.printf(“%c%3.0i%c”, 0x87, osd_throttle, 0x25); //эту строку стереть и заменить следующей
osd.printf(“%c%5.2f%c”, 0xE2, (double)osd_vbat_B, 0x8E);
osd.closePanel();
}

В osdconfig.exe включить панель Throttle, разместить где нравится, и записать конфигурацию. Включить и откалибровать показания - число “1523.5” подобрать под свой делитель, там зависимость прямая, во сколько раз отличаются значения, во столько и изменить это число.

Одно “но” - предупреждение о просадке батареи (“BATT LOW” на весь экран) включается по первой батарее.
И последнее, у меня нет второй батареии, поэтому все вышенаписаное должно работать, но не я проверял))

ehs

Пожалуйста.
Напишете, завелось ли…

1orgar

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

c4Faraon
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

А где такие приобрести можно ?

1orgar
c4Faraon:

А где такие приобрести можно ?

Никогда не сталкивался с производством полного цикла. Вот проект на ошпарке oshpark.com/shared_projects/cJspiZ4P

saigo
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

Громоздкая какая-то, ИМХО.

Vlad-1357

У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.

1orgar
Vlad-1357:

У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.

точно, всё разведено на разъемы справа

mozzart
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $11.45 + доставка. ОК, а где взять список деталей? Или это надо все со схемы аккуратно переписать и топать в ЧипДип?

А как вы на нее заливаете прошивку? Я вижу, что слева всего 4 пина, этого же вроде недостаточно, чтобы прошить?

1orgar
mozzart:

Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $11.45 + доставка. ОК, а где взять список деталей? Или это надо все со схемы аккуратно переписать и топать в ЧипДип?

Доставка бесплатная с ошпарка, детали брал в Кварце. Микрухи макс и атмеги беру из китая штук по 10-20, постоянно нужны.

Список:
резы 0805: 75 - 2; 510 - 2; 1k - 3; 4,7k - 3; 10k - 4; 47k - 1; 100k - 1; 200k -1
кондеи 0805: 9p - 2; 16p - 2; 100n - 4
кондеи SMC-C: 47u*16V - 2
кварцы SMD6035: 16Mhz - 1; 27Mhz - 1
кнопка IT-1187 - 1
led 0805 - 2
atmega328p tqfp32
max7456 tssop28
угловые разъемы, мелоч