Arduino Mega Pro Mini - светодиод на пине D13

Вопрос - возможно ли ПРОГРАММНЫМ путём запретить “мигание” светодиода на D13 во время заливки прошивки?

если сможешь “программно изнасиловать” загрузчик, то видимо да.

первый раз слышу шоб мигал встроенный диод при загрузке, в ожидание загрузки, да видал.

но я старый, может подзабыл чего)

Если есть исходники загрузчика, там гляньте.
Вот, что-то вроде этого, может быть про мигание)). Хотя не факт, что всё так просто

/* toggle LED */
				if(ch == 't') {
					if(bit_is_set(LED_PIN,LED)) {
						LED_PORT &= ~_BV(LED);
						putch('1');
					} else {
						LED_PORT |= _BV(LED);
						putch('0');
					}
				} 
void flash_led(uint8_t count)
{
	while (count--) {
		LED_PORT |= _BV(LED);
		_delay_ms(100);
		LED_PORT &= ~_BV(LED);
		_delay_ms(100);
	}
}

Но, согласен с @xDriver -ом, что , скорее, мигает до загрузки

P.S. Код выше - из файла ATmegaBOOT_168.c, (из папки bootloaders\atmega), привёл просто для примера. Какой у вас загрузчик - понятия не имею.

Да откуда ж им быть? Нет конечно.

В том-то и дело, что “во время” всей загрузки прошивки в такт проходящим байтам.
Я бы и не заметил этого, если бы не особенности схемы, в которой D13 используется для включения мелкого реле управления входом НЧ сигнала.
И зачем вообще это сделано, не пойму. Загрузку прекрасно “видно” по светодиодам RX/TX.

Почему нет? Исходный код оптибут лежит на гитхабе

давно игрался, когда занимался разгоном, собрать загрузчик с нужными тебе параметрами и залить, как то так:

make atmega328 AVR_FREQ=16000000L BAUD_RATE=115200 LED=B5 LED_START_FLASHES=0 UART=0

LED=B5 это оно, пин 13, LED_START_FLASHES=0 - отключить
Не проверял, в миникоре без LED загрузчика нет, в крайнем случае переопредели на другой пин (неиспользуемый)

Оказалось среда всё ещё настроена - попробуй:

:107E000001C0C8C0112484B7882361F0982F9A70EC
:107E1000923041F081FF02C097EF94BF282E80E09E
:107E2000A4D0EEC082E08093C00088E18093C100BE
:107E300086E08093C20080E18093C4008EE095D0FC
:107E400093E0E92EDD24D39425E0C22E31E1B32E58
:107E500080D0813451F47DD0182F8DD0113811F09D
:107E600083E001C088E06ED06AC0823411F484E1FE
:107E700003C0853419F485E086D061C0853539F4B6
:107E800068D0C82F66D0D82FCC0FDD1F57C08635DD
:107E900021F484E078D080E0E6CF843609F02DC06C
:107EA00058D057D0F82E55D0A82E00E011E051D070
:107EB000F80181938F01FE12FACF5DD0F5E4AF1285
:107EC00001C0FFCFFE01E7BEE89507B600FCFDCF7D
:107ED000A0E0B1E0FE018D919D910C01D7BEE89527
:107EE00011243296FA12F7CFFE01C7BEE89507B605
:107EF00000FCFDCFB7BEE89522C0843791F429D0AD
:107F000028D0F82E26D0182F36D0153409F4FFCFFC
:107F10008E01F80185918F0115D0FA94F110F9CFF7
:107F20000EC0853739F427D08EE10CD085E90AD010
:107F30008FE099CF813511F488E017D01CD080E113
:107F400001D086CF9091C00095FFFCCF8093C600F2
:107F500008958091C00087FFFCCF8091C00084FD10
:107F600001C0A8958091C6000895E0E6F0E098E190
:107F7000908380830895EDDF803219F088E0F5DF8B
:107F8000FFCF84E1DFCFCF93C82FE3DFC150E9F704
:107F9000CF91F1CFFC010A0167BFE895112407B624
:107FA00000FCFDCF667029F0452B19F481E187BFF5
:047FB000E8950895B3
:027FFE00030876
:0400000300007E007B
:00000001FF

еще раз убеждаюсь, то все твои проблемы из за того, что ты сначала катушку включаешь говоришь, а потом думаешь.

давно на Меге PB5 стал D13?

Долго искать не пришлось

Из коментов в исходнике

/* LED_DATA_FLASH:                                        */
/* Flash LED when transferring data. For boards without   */
/* TX or RX LEDs, or for people who like blinky lights.   */
``

Вон оно что, Михалыч! Запасной вариант для плат, где нет светодиодов RX/TX.
Мда.. А мне эта фича подкинула сюрприз из стрекочущего как АК реле..

P.S. Ну лан, мне тут ИванИваныч подкинул решение - залить бутлоадер ядра MegaCore.
Говорит, что там эта фича по дефолту отсутствует.
Попробую как программатор будет под руками. Пока нет времени..
Отпишу по результату..

по этой дирректории hardware\arduino\avr\bootloaders\stk500v2
в файле stk500boot.c закомментировать строку

вроде программно…

а у меня еще вопрос, скинутый загрузчик пойдет на меге ?)))

врёт он, оптибут там обычный, а вот urboot не знаю

optiboot_flash_atmega2560_UART0_115200_16000000L_B7_BIGBOOT.hex

а я знаю))

а вы знаете можно ли накатить пароль на перепрошивку ?)))
сработает или нет ?

// Инициализация UART
UART_BAUD_RATE_LOW = UART_BAUD_SELECT(BAUDRATE, F_CPU);
UART_CONTROL_REG = (1 << UART_ENABLE_RECEIVER) | (1 << UART_ENABLE_TRANSMITTER);

// ============ ВСТАВИТЬ ЗДЕСЬ ============
#define PASSWORD_ENABLED
#define MAX_ATTEMPTS 3

#ifdef PASSWORD_ENABLED
const char password[] PROGMEM = "1234";  // пароль хранится во flash
char entered[5];
uint8_t attempts = 0;
uint8_t authorized = 0;

// Отправить приглашение
sendchar('P');
sendchar('a');
sendchar('s');
sendchar('s');
sendchar('w');
sendchar('o');
sendchar('r');
sendchar('d');
sendchar(':');
sendchar(' ');

// Ждать пароль
uint8_t i = 0;
while (i < 4)  // 4 символа
{
    if (Serial_Available())
    {
        char c = UART_DATA_REG;
        sendchar('*');  // вместо ввода показываем звёздочки
        entered[i++] = c;
    }
}
entered[4] = 0;  // завершить строку
sendchar('\r');
sendchar('\n');

// Проверить пароль
uint8_t password_ok = 1;
for (i = 0; i < 4; i++)
{
    char pwd_char;
    #if (FLASHEND > 0x10000)
        pwd_char = pgm_read_byte_far((uint16_t)&password[i]);
    #else
        pwd_char = pgm_read_byte_near((uint16_t)&password[i]);
    #endif
    if (entered[i] != pwd_char)
    {
        password_ok = 0;
        break;
    }
}

if (!password_ok)
{
    sendchar('E');
    sendchar('r');
    sendchar('r');
    sendchar('o');
    sendchar('r');
    sendchar('!');
    sendchar('\r');
    sendchar('\n');
    _delay_ms(1000);
    // Запустить основную программу
    boot_rww_enable();
    asm volatile("clr r30 \n\t clr r31 \n\t ijmp");
    // Сюда никогда не дойдёт
}

// Пароль правильный
sendchar('O');
sendchar('K');
sendchar('\r');
sendchar('\n');
#endif
// ============ КОНЕЦ ВСТАВКИ ============

а что можно еще делать и как изменить боотлоадер ?

если это только будет запрашивать пароль при перезагрузки платы, то как реализовать пароль для смены боотлоадера ?))) и это вообще реально ?

не знаю.

а если мы только пароль будем спрашивать при перезагрузке платы, или при повторной загрузке скетча, можно ли как то на этом поднять бабла ?))) или лучше состояние))) хотя бы по 1 рублю за 1 пароль… но это фиксится будет перепрошивкой боотлоадера…
а пароли одноразовые продавать оптом можно… а как поднять бабла знаете ?)))

по одной монетке… биткойничку

сатоши или акатоши их называют вроде… не помню сколько там 0 после 0.xxxx(вот их как то так называют) наверное дорого… но как заставить нуждаться в покупке паролей ?)))

Какой Данила, какой пароль…
Avr слишком дешманский контроллер и защищать его нет смысла. Тысяча евро стоит прожечь фьюз.
Даже стм32 руткит есть по сливу прошивки из закрытого камня.
Опять вы херней занимаетесь)))

у меня других идей нет)))
после того как у меня выскочило окошко, где на хх ру надо было указать желаемый уровень зп, и я написал что все что у них есть, и я подумаю, а затем дальше одними простыми вопросами о их работе, указал им на их место, мне отказали, и как поднять еще бабла не знаю)))

Перекинуть реле на другой пин, не?