Переделка RAMPS 1.4 под Arduino DUE

Подписаться на 3Dtoday
alex_at
Идет загрузка
Загрузка
24 Ноября 2017
600
33
печатает на Prusa i3
Вопросы и Ответы
Переделал RAMPS 1.4 под Arduino DUE для своего Re-D-Bot. Переделывал по инструкции anry777 ссылка https://3deshnik.ru/blogs/anry777/hacked-ramps-1-4-arduino-due-reprapdiscount-smart-controller
После переделки решил заливать прошивку Repetier Firmware вместо ранее использованной Marlin
Вся механика после настройки шагов заработала безукоризненно. Но столкнулся со странной проблемой - не хотят работать термистеры. Под Marlin они были выбраны как EPCOS 100k, но в repetier firmware при выборе epsoc 100k или любого другого температура скачет в широких пределах и не показывает корректную температуру. Причем показания скачут вне зависимости подключен термистер или нет.
Кто может подсказать куда копать?
Ответы на вопрос

Ответы

24 Ноя 21:14
0
Выбор типа термистора в вашем случае не влияет на работоспособность. Тип вы определите экспериментально во время тестирования, когда заработает. В вашем случае необходимо в прошивке правильно выбрать PIN на который подключен термистор или подключить термистор именно на тот PIN, который указан в прошивке. Все это при условии, что сами термисторы исправны.
24 Ноя 22:44
печатает на RepRap
2
Если отключен термистор, а температура прыгает, то таки не тот аналоговый пин выбран. И без подтяжки.
Я такое наблюдал, когда эксперементировал с чтением аналоговых сигналов.
24 Ноя 23:08
0
В конфигураторе прошивки по-умолчанию все верно по пинам термисторов настроено, если не прикладывать шаловливые ручки. :D
24 Ноя 22:11
печатает на Ultimaker Original
0
А PID настроили?
24 Ноя 23:22
печатает на Prusa i3
0
В configuration.h:
#define EXT0_TEMPSENSOR_TYPE 1
#define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
PID не настраивал т.к. нагрев отключается из ошибки термистера
термистер проверял на бутерброде Arduino Mega + RAMPS 1.4 - отлично работает под Marlin с типом термистера 1
24 Ноя 23:48
0
Хорошо... давайте временно отвлечемся от термистора экструдера... скажите, а термистор стола у вас как работает, все нормально?
24 Ноя 23:51
печатает на Prusa i3
0
Термистер стола ведет себя абсолютно аналогично. Температура то +9, то +20, то +30 с скачет без всякой зависимости если начать нагревать термистер
25 Ноя 00:07
0
Прикольно... в таком случае действительно что-то у вас не так с пинами... увы здесь ничем не помогу...
25 Ноя 10:47
печатает на Prusa i3
0
В пинах всё стандартно для DUE:

//Note that in due A0 pins on the board is channel 2 on the ARM chip
#define HEATER_0_PIN 10
// Because analog pin #
#define TEMP_0_PIN 11
#define HEATER_1_PIN 8
// Because analog pin #
#define TEMP_1_PIN 12
#define HEATER_2_PIN 9
// Because analog pin #
#define TEMP_2_PIN 13
25 Ноя 13:26
печатает на Prusa i3
0
Кстати, удивительная распиновка по умолчанию для RAMS 1.4 для Due.
На Arduino Due всего 12 аналоговых портов от А0 до А11, а для TEMP_1_PIN предлагается использовать порт 12
Прозвонил выходы термистеров на переделанной плате, оказалось что они висят на портах А9 и А10
И нигде информации об этом у людей которые переделывали RAMPS для Arduino Due нет
25 Ноя 14:52
0
В пинах всё стандартно для DUE
Для DUE может и стандартно, а вот для переделанного RAMPS может и не стандартно стать ;)
24 Ноя 23:23
печатает на Prusa i3
0
Про подтяжку тоже подумал. Как её включить в прошивке?
25 Ноя 00:13
0
В прошивке ничего не надо включать, там все предусмотрено по-умолчанию верно, подтяжка на аппаратном уровне должна быть, как говорил TTND.
25 Ноя 07:07
0
Залейте прошивку MK4due 4.3.2 - Она ближе к Марлину и на неё есть конфигуратор. С ней не было ни каких проблем с термисторами.
Конфигуратор
http://marlinkimbra.it/configurator/v4_3_2/firmware_configurator.php

Статья как настраивать конфигуратор:
http://3dtoday.ru/blogs/rus5/setting-mk4duo-with-pictures/
25 Ноя 10:45
печатает на Prusa i3
0
Тоже думаю уже про MK4due, но хочется разобраться с глюком термистера.:)
25 Ноя 11:53
печатает на Prusa i3
0
Прошил MK4due. Поведение термистеров не изменилось. Показания также продолжают скакать независимо от того подключен термистер или нет.
25 Ноя 13:25
0
Тогда это не программные глюки - а аппаратные. Ищите проблемы в монтаже. Прозвоните пины RAMPS тестером - вход от термистора -выход пины на DUE .
Но скорее всего вы напутали с перепайкой рамса - внизу РАСПСА с Разъёмом AUX-3 припаивается два проводка-перемычки. У меня тоже были глюки с термисторами - я неправильно один провод припаял - потом лупой рассмотрел и поправил пайку и всё заработало. Но у меня один термистор работал , а другой неправильно показывал температуру. Так что картина немного другая, чем у вас. Ищите в перепайке ощибки.

Посмотрите мою статью про переделку, вдруг поможет. но у меня RAMPS 1.5 но в целом это схожие платы
http://3dtoday.ru/blogs/lenivo/implementation-of-32bit-to-15-ramps-and-arduino-due/
25 Ноя 13:28
печатает на Prusa i3
0
Прозвонил выходы термистеров на переделанной плате, оказалось что они висят на портах А9 и А10
И нигде информации об этом у людей которые переделывали RAMPS для Arduino Due нет
25 Ноя 10:49
печатает на Ultimaker 2+
0
оно у меня виснет наглухо на второй печати подряд, на первой печатает, так что MK4due тоже с приколами
а на девелоперской сломали ось X, так что ждемс 8)
25 Ноя 13:10
1
Проблема с зависанием MK4due 4.3.2. есть - у меня решение такое:
1. Программное
В слайсере надо поставить галочку на работе с программным обеспечением Марлин:
3c14f6f5f477c5fa0f97bb8abe3d992b.JPG


Второе - Плата перезагружается - так и не нашёл из-за чего - но если принтер после включения немного прогреть -минут 5 - то печать идет нормально.

Ну и ещё один глюк - после окончания печати, если хотите запустить на печать еще раз что-то, плату надо сбрасывать - включить и выключить питание, чтобы плата перезагрузилась.

Мне вот это помогает.
25 Ноя 13:18
печатает на Ultimaker 2+
0
Ну и ещё один глюк - после окончания печати, если хотите запустить на печать еще раз что-то, плату надо сбрасывать - включить и выключить питание, чтобы плата перезагрузилась.
ну да, так и есть:)
25 Ноя 13:46
печатает на RepRap
1
Буквально вчера переделал RAMPS 1.4 для DUE.
Именно под FULL GRAPHIC SMART CONTROLLER.
Делал по этой инструкции, там ошибка, 3.3В на дисплей. Не долго думая, вернул обратно разрезанную дорожку, и перерезал другую как по вашей ссылке.
Дисплей заработал как надо. Жаль не увидел сразу этой статьи.
Поменял мосфеты на IRL7833, поглядим как проработают.
У меня правда нагреватель 220В через твердотельное реле, поэтому просто перестраховался.

Все пины соответствуют рампсу при выборе ARDUINO DUE NO BOARD DEFINED в конфигураторе Repetier.
Иначе смотрите косяк в пайке 2х перемычек справа внизу на ADC.

MK4DUE у меня кое-как скомпилировался...... и то только DEV-версия. При включении поддержки SD-карты тормозит безбожно.
А вот Repetier встал влёт, все работает отлично.

Сейчас паяю EEPROM как в этой теме.

А в этой теме есть доработка для того, чтоб контроллер ресетился нормально при подаче питания - резистор 10кОм между ножек транзистора, у меня смд запаян.



Вспомнил еще момент - у меня почему-то не заработали 8825 драйвера, двигатели не крутятся, просто удерживаются.
А вот 4988 и TMC2100 работают отлично при 3.3В.
25 Ноя 14:06
печатает на Prusa i3
0
перемычки для входов АЦП с А9 на А13, и с А10 на А14 прозвонил. Они целые. Они и отвечают за подачу данных с термистера на вход ардуины. В Repetier Firmware у Вас все заработало без переопределения пинов?
25 Ноя 14:23
печатает на RepRap
0
Именно так.
Перебрал все платы в конфигураторе, потом это надоело, заглянул в исходники и понял истину)))

78b2358d16c55e45c638be11edfb6782.jpg


0382bf31f1db6b4deb1da5995f548cb9.jpg


d5ee3d2122f6a45fb9a47d273e834829.jpg
25 Ноя 14:37
печатает на Prusa i3
0
Но в исходниках для платы ARDUINO DUE NO BOARD DEFINED тоже выбраны не те пины - 11 и 12, а не 9 и 10, как ожидается.

// Note that on the Due pin A0 on the board is channel 2 on the ARM chip
#define HEATER_0_PIN 10
// Due analog pin #
#define TEMP_0_PIN 11
#define HEATER_1_PIN 8
// Due analog pin #
#define TEMP_1_PIN 12
#define HEATER_2_PIN 9
// Due analog pin #
#define TEMP_2_PIN 13
25 Ноя 15:04
печатает на RepRap
0
AD11, AD12, AD13

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

ЗЫ: А D8, D9 и D10 это мосфеты.

25 Ноя 17:13
0
В MK4due - чтобы карта работала поживее надо её отформатировать в FAT32 кластер 64 кб , ну и файлов много она не любит.

А Репитер мне не привычен. Я до этого в Марлине печатал и привык к нему. А интерфейс Репитера после Марлина раздражает.
25 Ноя 15:45
печатает на RepRap
0
Вот и EEPROMка заработала

ab468f5e47df20f80aa1bc31f8d74476.jpg
25 Ноя 16:21
печатает на RepRap
1
Драйвера 8825 завелись, надо было вот эту цифирку поставить, как на картинке

8304087435cd4efeaf8219fdf7b6ba2f.jpg
26 Ноя 01:56
печатает на Prusa i3
0
Снял RAMPS с Arduino DUE и подключил термистор напрямую к аналоговым портам ардуинки. Пробовал подключение к разным входам от A0 до A10 - на всех показания скачут.
Подключил для проверки переменный резистор. Тоже скачут.
Есть идею - что это может быть?
26 Ноя 09:45
0
Другие термисторы пробовали?
Купить в магазине любой термистор и попробовать. Или просто сопротивление от 20к до 100к воткнуть, ну или переменное сопротивление на 100 кОм.
26 Ноя 10:21
печатает на Prusa i3
0
Пробовал соединить выход с землей и опрашивать analogwrite(A0)
Код:
int V1,V2,V3;
void setup() {
Serial.begin(9600);
}
void loop() {
analogReadResolution(16);
V1 = analogRead(A0);
V2 = analogRead(A1);
V3 = analogRead(A2);
delay(500);
}
1a54b9946e05f8b30ecb1e083086d8bd.png

А0 притянут к земле, A1 и А2 висят в воздухе.
Как видно уровень на A0 вместо ожидаемого 0 показывает значения близкие к половине максимального.
При контроле напряжения на портах показывает 3-4 mA
29 Ноя 20:56
печатает на Prusa i3
0
Похоже китайская arduino мне досталась c бракованными аналоговыми входами

Для написания комментариев, пожалуйста, авторизуйтесь.