32-bit своими руками, шилд RABPS

3dmaniack
Идет загрузка
Загрузка
23.12.2018
26631
290
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

135
Добрый день.

Предлагаю простой вариант сборки 32-битной платы управления, на базе Blue Pill (STM32F103C8T6)
  • Ядро ARM Cortex-M3
  • Частота ядра 72МГц
  • Flash-память 128 кБайт
  • RAM-память 20 кБайт



Это продолжение предыдущей статьи.

Проект на базе проекта Morpheus-STM32. Я его немного улучшил.

Учтены почти все недочеты, добавлены разъемы EXP1, EXP2 для подключения штатных дисплеев для 3D-принтера.

Добавлен разъем USB-B, для подключения к компьютеру.

Добавлены емкости 0,1 и 100mf в цепи питания 3,3в, 5в, так как в исходном варианте идут помехи, просадки по питанию, и сбой во время работы принтера.

Размер платы 100х80мм.

Исходный файл .PCB можно скачать здесь Назовем этот вариант: RABPS v1.0 (Reprap Arm Blue Pill Shield)
Итак:

Перечень железа.

Blue Pill STM32F103C8T6, программатор ST Link V2 для прошивки, собственно сама плата, линейки коннекторов, транзисторы, конденсаторы, резисторы. Всё по схеме проекта.

Схема платы RABPS
1. Подготовка синей таблетки и конфигурация прошивки.
Подготовка и разблокировка Blue Pill

для прошивки описана в предыдущей статье.

Прошивка Marlin 2.0 на GitHub
После скачивания и распаковки прошивки, в ней нужно подменить пару файлов,

Конфигурационный файл platformio.ini скачать от сюда и подменить в папке Marlin-bugfix-2.0.x.

Файл с распиновкой pins_MORPHEUS.h скачать здесь и подменить в папке Marlin-bugfix-2.0.xMarlinsrcpins

Включение платы в Configuration.h:

#define MOTHERBOARD 1806

Это плата Morpheus, в дальнейшем в Marlin возможно будет добавлена и RABPS со своим кодом.

Чтобы ШИМ на вентилятор работал и работал выход на нагреватели:

В файле Marlin-bugfix-2.0.xMarlinsrc/HALHAL_STM32F1HAL_timers_Stm32f1.h

нужно заменить заменить

#define TEMP_TIMER_NUM 2 // index of timer to use for temperature

на

#define TEMP_TIMER_NUM 1

Пины PB3, PB4, PA15 управляют драйверами, но по умолчанию заняты JTAGом, поэтому JTAG нужно отключить, чтобы задействовать эти пины для управления драйвером ШД.

Для этого в файле

C:Users\.platformiopackagesframework-arduinoststm32STM32F1variantsgeneric_stm32f103coard.cpp

исправить #ifndef на #ifdef

в строке:

#ifndef CONFIG_MAPLE_MINI_NO_DISABLE_DEBUG

а в файле

C:Users\.platformiopackagesframework-arduinoststm32STM32F1systemlibmaplestm32f1includeseriesgpio.h

заменить строку:

AFIO_DEBUG_NONE = AFIO_MAPR_SWJ_CFG_NO_JTAG_NO_SW

на:

AFIO_DEBUG_NONE = AFIO_MAPR_SWJ_CFG_NO_JTAG_SW

Памяти 128кб для всех опций может не хватить, поэтому

в Configuration_adv.h отключим поддержку G2/G3 Arc Support

закомментировав строку:

#define ARC_SUPPORT
2. Конфигурация дисплея
Для использования дисплея раскомментировать соответствующие строки в Configuration.h и в pins_MORPHEUS.h

Дисплей MKS MINI 12864 подключается шлейфами в разъемы EXP1, EXP2.

Configuration.h:

#define SDSUPPORT

#define MKS_MINI_12864

pins_MORPHEUS.h:

#define DOGLCD_CS PA3

#define DOGLCD_A0 PB10



Дисплей RepRapDiscount Smart Controller
подключается шлейфами в разъемы EXP1, EXP2.

Configuration.h:

#define SDSUPPORT

#define REPRAP_DISCOUNT_SMART_CONTROLLER

pins_MORPHEUS.h:

#define LCD_PINS_RS PB12

#define LCD_PINS_ENABLE PB13

#define LCD_PINS_D4 PB14

#define LCD_PINS_D5 PA3

#define LCD_PINS_D6 PB10

#define LCD_PINS_D7 PB11

Дисплей OLED SSD1306 подключается к SCL2/SDA2/GND/+5V разъема EXP1, см. схему.

Для активации SCL2/SDA2, в последней строке в файле Wire.cpp

C:Users\.platformiopackagesframework-arduinoststm32STM32F1librariesWire

заменить 'TwoWire Wire(1);'

на 'TwoWire Wire(2);'

Configuration.h:

#define SDSUPPORT

#define ULTIPANEL

#define U8GLIB_SSD1306

Дисплей MKS TFT подключается к RX3/TX3/GND/+5V разъема EXP1. При этом в Configuration.h активировать выход USART3:

#define SERIAL_PORT_2 3

#define NUM_SERIAL 2

Для MKS TFT желательно отдельное питание 5в.

После этого откомпилировать в Platformio и прошить с помощью STM32 ST-LINK Utility.
3. Компиляция и прошивка
Компилировать прошивку в Platformio.
Прошивать с помощью STM32 ST-LINK Utility.

Файл firmware.bin для прошивки, после компиляции лежит в Marlin-bugfix-2.0.x.pioenvsluepill

выбираем файл firmware.bin

коннектим к таблетке
стереть память
прошить
Синяя таблетка с прошивкой готова.

4. Изготовление платы


Фоторезистивный метод нанесения рисунка дорожек печатной платы. Можно и ЛУТ методом.

Файлы для изготовления платы можно скачать по ссылке
Травление платы в хлорном железе.
Удаляем фоторезист ацетоном.
Далее наносим синюю или зеленую паяльную маску, на нижнюю и верхнюю стороны.

Я использовал однокомпонентную маску.



Текст наносил белой двухкомпонентной маской.

Далее сверлим много отверстий разными сверлами, 0,8мм и 1,0мм.

И обрезаем лишний технологический текстолит.
3. Пайка платы
Припаиваем резисторы, перемычки, коннекторы:
Припаиваем остальные компоненты:
Проверяем прозваниваем все соединения, промываем плату спиртом.

Я использовал водосмываемый флюс, поэтому сначала промыл плату в теплой воде для удаления флюса, а затем в спирте для удаления остатков воды.



Устанавливаем на шилд плату Blue Pill и драйверы.

Плата готова!

Можно устанавливать в принтер и подключать.
На этом все.

Надеюсь ничего не забыл.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

135
Комментарии к статье

Комментарии

23.12.2018 в 18:07
3

Крутяк. Я вспомнил свои попытки делать маску на коленке, и мне стало очень грустно.

23.12.2018 в 18:08
4

Класс! Респект!!! Расскажите подробно, как маски накладывали

23.12.2018 в 18:26
4

Маску делал вот по этой методике

23.12.2018 в 19:03
0

Это все круто, но на меге в 128К я не смог впихнуть одновременно и UBL+linear advance + sd card даже с экраном reprap discount. А на сколько я понмю из-за RISC и 32бит код на ARM еще более раздутый. Что туда впихнуть то можно?

23.12.2018 в 19:08
0

берите камушек пожирнее и вуаля

23.12.2018 в 19:41
0

Планируете ещё какие-нибудь доработки и дополнения или уже можно китайцам заказывать плату?

23.12.2018 в 20:36
2

Нет, тут в принципе все что можно, доработано.
В работе проверено, печатает.
Все варианты дисплеев работают.

23.12.2018 в 22:09
0

.

24.12.2018 в 14:53
0

ТМС2130 в SPI режиме? Что бы не было 'лишних' проводов. И sensorless режим для них же.

24.12.2018 в 15:18
0

Для SPI режима нужно по дополнительной ноге микроконтроллера на каждый драйвер, а со свободными ногами есть некоторые сложности.
Сама библиотека для поддержки TMC2130 под STM32 собирается, хотя это и не гарантирует ее работоспособности.

07.01.2019 в 15:25
0

можно ли на z ось ставить два мотора

07.01.2019 в 16:53
0

конечно можно

07.01.2019 в 17:41
0

у меня вопрос тогда как это сделать . дайте совет

23.12.2018 в 20:13
0

---

23.12.2018 в 20:31
4

ЭЭЭХ вот всё смотрю и облизываюсь - я читай в программирование токо вникаю, но не могу до сих пор понять почему никто не сделал прошивку именно под stm32 и желательно 4й серии - ибо даже F1 имеет огромную производительность и кучу встроенной периферии. Ибо скажем по максимуму разумного F4 серии хватит возможно не на одно десятилетие(а есть ещё и F7)
Автору огромный плюс что двигает прогресс в правильном ИМХО направлении

24.12.2018 в 03:03
0

писал уже в предыдущей серии: под F4 есть открытая прошивка на сайте STM. собственно, Marlin 2.0 - это реплика как раз оригинала от STM

24.12.2018 в 07:27
0

Открытая прошивка от STM - это заброшенный порт Marlin 1.1 под плату STEVAL-3DP001V1.
К Marlin 2.0 он не имеет никакого отношения.

jmz
24.12.2018 в 12:32
0

а вы сравнивали? я сравнивал. да, конечно, развитие есть. однако база всё же - именно прошивка от STM.

24.12.2018 в 13:46
1

Мне не очень понятно, о какой базе вы говорите.

Порт от STM использует библиотеки CubeMX (HAL) для имитации Arduino окружения.
Код самого Marlin при этом используется от версии 1.1.0 практически без изменений
https://github.com/St3dPrinter/Marlin4ST/tree/master/stm32_cube/Marlin
В частности в этой ветке в принципе нет математики, рассчитанной на 32-х разрядные процессора.

Marlin-2.0.x начался без поддержки STM32 вообще.
HAL_STM32F1 был написан VictorPV и xC000005 в июле 2017-го года.
https://www.stm32duino.com/viewtopic.php?t=2262
Написан он под stm32duino и CubeMX там не используется никак.

jmz
24.12.2018 в 14:03
0

мне вам нечего возразить ))
особенно - после эпической фразы

Порт от STM использует библиотеки CubeMX (HAL) для имитации Arduino окружения.
становится всё ясно. не читайте на ночь интернет. успехов.

24.12.2018 в 14:36
0

https://github.com/St3dPrinter/Marlin4ST/blob/master/stm32_cube/Marlin/Marlin_export.h
В частности

#define LOW   GPIO_PIN_RESET
#define HIGH  GPIO_PIN_SET
//Delay in ms
#define _delay_ms(x) HAL_Delay(x)  
#define delay(x) HAL_Delay(x)  
#define millis(x)    HAL_GetTick(x)
#define WRITE(x,y) HAL_GPIO_WritePin(gArrayGpioPort[x],gArrayGpioPin[x],(GPIO_PinState)y)
#define READ(x) HAL_GPIO_ReadPin(gArrayGpioPort[x],gArrayGpioPin[x])
#define INPUT   (0)
#define OUTPUT  (1)
#define pinMode(x,y)    {}    //not handled
#define OUT_WRITE(IO, v) { SET_OUTPUT(IO); WRITE(IO, v); }

#define digitalWrite(x,y) ((x) > (-1))?(HAL_GPIO_WritePin(gArrayGpioPort[x],gArrayGpioPin[x],(GPIO_PinState)y)):(HAL_GPIO_WritePin(0,0,(GPIO_PinState)y))//will generate an assert
#define digitalRead(x) ((x) > (-1))?(HAL_GPIO_ReadPin(gArrayGpioPort[x], gArrayGpioPin[x])):0
Это переопределение стандартных вызовов Marlin (которые очень даже Arduino) под реалии STM32 HAL.

jmz
26.12.2018 в 09:13
0

1. Что за бред? При чем тут #define и arduino?
После Ваших изречений видно что Вы нахватались верхушек и понятия не имеете о программировании. Это не Ваше.
2. STM32F103C8T6 имеет 64к флеш-памяти.
3. Лично сейчас изучаю работу Marlin 2.x.x на камешке STM32F103RET6. У него 512к флеш-памяти. 
Что и рекомендую для экспериментов.

26.12.2018 в 09:32
1

2. STM32F103C8T6 имеет 64к флеш-памяти.
STM32F103C8T6 и STM32F103CBT6 по железу абсолютно одинаковые, из одной бочки производятся на одной линии, и оба на на 128кб, просто у них прошиты разные идентификаторы.

Это т.н. дешевый способ расширения линейки продукта. :)

26.12.2018 в 10:28
0

Вот шайзе! Ну как доберусь то посмотрю лично st-link tool

26.12.2018 в 11:14
0

На мой взгляд вы излишне поспешны в своих суждениях.

Быстродействие кода никогда не было сильной стороной Arduino. В частности функции digitalWrite() и digitalRead() работают намного медленнее прямого доступа в периферии, а прошивка 3D принтера делает очень много манипуляций с GPIO. Для решения этой проблемы в Marlin вместо вызовов digitalWrite() и digitalRead() используются платформозависимые макросы WRITE и READ. Сторонние библиотеки, используемые Marlin для работы с перифериеей используют digitalWrite() и digitalRead(), но доля медленных вызовов из сторонних библиотеках достаточно мала.

В приведенном выше куске кода макросы WRITE и READ, а так же функции digitalWrite() и digitalRead() определены через стандартные вызовы STM32 HAL, что позволяет использовать код написанный под Arduino на STM32.
Функция pinMode() и макросы SET_OUTPUT() и SET_INPUT() эффективно отключены (все так же, через #define), так как STM в своей прошивке сделали жесткую привязку к конкретной плате и вся периферия инициализируется вне кода Marlin.

25.12.2018 в 15:13
0

ММММ а разве марлин не с ардуины ростёт? я говорю именно не про порт а про свою, родную под железо а то на меге в 16Мгц и 16/32кб всё работает а на ф103 с 128кб флеша не влазит, помнится у стм32 столько переферии что при правильном использовании он только и будет делать что спать.
Да возможно код будет несколько объёмнее(ну не в разы же), но помнится у стм и ассортимент весьма не плох, тем более совместимость в одном классе читай 100%Вот вспоминаю характеристики и помнится что xMega разве что младшие серии стм превосходит, так что ИМХО эффективная прошивка нужна - а не порты со сплошными HAL

25.12.2018 в 15:31
0

там другая архитектура процессора, соответственно - совсем другие наборы ассемблерных команд, другой подход.
грубо говоря: вы не командуете 'пойди направо на три шага', а выдаёте последовательность - 'повернись направо'; 'сделай шаг'; 'сделай шаг'; 'сделай шаг'. но команды выполняются быстрей (при прочих равных). при этом команды оптимизированы именно для управления перефирией. любая обработка  - это ещё бОльшая последовательность команд. так что спать он будет если ему надо 'принять воздействие и подрыгать ножками в ответ'. как-то так ))

ну, а насчёт HAL... есть разные мнения - от однозначного неприятия, до однозначного 'только HAL'.
на самом деле - истина где-то посредине и выбор, в основном, зависит от решаемых задач, привычек и ещё множества вводных.
HAL - это в терминах ОС - драйвер устройства (кстати, драйвер процессора в Windows прямо так и называется: HAL). никто не пишет ОС напрямую обращаясь к железу, всё взаимодействие идёт через драйвер.
когда вам надо подрыгать ножками - без HAL обойтись несложно. но, например, даже правильно инициировать сложную переферию - проще и быстрей отдать эту задачу HAL - там отлаженный и однозначно рабочий код. вполне возможно, написав эту процедуру вручную вы съэкономите 2% быстродействия и 2% кода. но затратите на это несоизмеримо больше времени. причём, 'своя процедура' чаще всего - это выдранные из того же HAL куски кода. овчинка стоит выделки?

25.12.2018 в 22:23
0

Про HAL да спору нет, главное не переусердствовать, а то выйдет как раз как в ПК - куча кода, бешеные требования к ресурсам только что б работала.
А вот архитектура это другое - понятно что на асме писать такой код это только если решить прям вот вообще мегасупернавека написать, но хотя бы си, бин я когда только приноровлялся к мк сразу попытался запилить болеменее реальный проект, посчитал и понял что те же атмеги а тем более с наборами либ это диодомигалка - у меня просто не влазило ни в какие 8Мгц, там и 20Мгц было мало, уже позжа немного разобравшись в вопросе понял что можно было в 2-3 раза ускорить быстродействие но это уже прям на амсе только. Посему не могу понять когда боле менее понимая вопрос для боле менее серьёзного проекта берут ардуину и её бибиотек(хотя без таких библиотек вполне не плохая вещь)
ЗЫ я конечно не компетентен написать прошивку на принтер(ну совсем мало я знаю, хоть и понимаю хоть что то) но знаю достаточно и считать умею что бы понять - отвязав ПО от железа получаем сильный проигрыш в коде и быстродействии. Про порт с другой архетектуры я вообще молчу 

25.12.2018 в 23:20
0

знаю достаточно и считать умею что бы понять - отвязав ПО от железа получаем сильный проигрыш в коде и быстродействии
Вот только является ли производительность узким местом, что оптимизировать надо именно её?
А цена такой оптимизации - многократное увеличение стоимости разработки.

26.12.2018 в 01:18
0

вот как раз здесь потери небольшие. STM продемонстрировала грамотный подход портирования: из оригинального марлина изменено несколько файлов. причём не исправлено, а дописано. т.е. взяв прошивку от STM и прописав туда ардуиновскую плату с процессором получим вполне рабочий код. доработки с гита я внимательно не изучал, но бегло просмотрел некоторые - увы, там так уже не получится...

26.12.2018 в 09:26
3

Не согласен!
HAL использую для работы с USB только.
Все остальное 'вручную'.
И знаете, прекрасно получается. Легко и без тормозов!
А в HAL есть глюки. Лично убедился в SPI. А в I2C и говорить не хочу.
И работает медленно. А код раздувается в 2.5 раза!!!
Проверено лично мной. Работаю в Keil.

26.12.2018 в 12:24
0

с чем несогласны-то?
я:

например, даже правильно инициировать сложную переферию - проще и быстрей отдать эту задачу HAL
вы:
HAL использую для работы с USB
для I2C когда-то писал процедуру на Бейсике - буквально пара десятков строк кода. назвать сложной переферией - рука не поднимется ))

ну, а IDE - это дело вкуса и привычки. кстати, разные компиляторы выдают разный код, что, в принципе, ожидаемо ;)

26.12.2018 в 13:04
1

Не согласен что просто в HAL писать а 'ручками ' сложно.
Я имел ввиду что когда пишешь 'руками' то видишь все как на ладони. Ты полностью контролируешь код свой.
Это намного упрощает понимание что пишешь и написание того что подразумеваешь :)
А HAL по сути 'чёрный ящик'.
Да, побыстрячку написать что-то конечно он поможет. Это очень удобно.
Но серьёзное, такое как управление 3д принтером, я ему не доверяю. 
Ещё раз подчеркнуть: это сугубо моё личное мнение а не рекомендации.

26.12.2018 в 13:31
0

вы, видимо, не все мои посты здесь прочитали. я именно это и говорил: простое - руками, сложное - готовым процедурам. а как они называются - дело пятое. у каждого, кто пишет много - есть заготовки процедур, которые он просто вставляет в проект. по сути - это тот же 'чёрный ящик', как и HAL - подали что-то на 'вход' - получили заведомо известное на 'выходе'. и в чём разница? разве что только в том, что HAL обычно избыточен, т.к. рассчитан на множество ситуаций, а ваш личный 'чёрный ящик' может быть рассчитан только на одну. но и в этом есть свои плюсы и минусы: когда вам понадобится обработать другую ситуацию - придётся искать и добавлять процедуру.

Это очень удобно.
заметьте, не я это сказал )) но это - ключевое. удобно и быстро. когда изучаешь - действительно лучше досконально разобраться, пройдя по всем граблям. а когда изучил и разобрался - опыт сам подскажет - чем воспользоваться в данном конкретном случае ;)
я не агитирую, просто объясняю: HAL - это не матюк и ничего в нём страшного нет. это просто инструмент, который можно и нужно использовать там и для того, для чего он предназначен и удобен.
Но серьёзное, такое как управление 3д принтером, я ему не доверяю.
странно. ардуино-либам доверяете, а ведь по сути - это тот же HAL. неувязочка )))

26.12.2018 в 23:25
0

Вот опять странность - простое как раз можно отдать и HAL(оно уже на верняка обкатано и оптимизированно и не критично) а сложное ручкам и вдумчиво, ибо сложное и так реализовтаь сложно а если ещё глюки добавить чужие то копать код потом можно долго.
ЗЫ не ну это не серьёзно - кто сказал что 32х битный код хранится ака 1 комадка - 4 байта, можнож и 2 и 4 запихнуть.....и да, так же аппаратная поддержка USB и расширение памяти(тьфу термин забыл) которая почти даром даёт возможность писать на карту и выводить на экран в несколько строк и вообще без нагрузки на ядро ИМХО уже дорогого стоит.
ЗЗЫ А теперь давайте вспомним все ХОЧУ - там будут и более одного экструдера и большая точность(шаги на мм) и большая скорость и возможно сложные вычисления ака дельта и сенсорный экранчик с тачем и энкодер не плохо бы(средняя атмега наверно ан 2м энкодере уже повесится а стм вообще переферии это отдаст) а то и по энкодеру на двигатель каждый и автоуровни и зональный стол и микрошаг 1/256 и и и .... думаю много кто чего добавит. И вот где на все хочу(даже те хочу которые нужны для печати а не управление подсветкой) взять производительность, память, ноги?
ЗЗЗЫ вот специально залез на тот же ебей и посмотрел - дискавери первая попавшаяся с stm32f407 стоит 1600(думаю если поискать то и дешевле), есть платы дискавери с таким же камнем за 600-700 это уже с меньшим количеством элементов на плете(нам же лучше) а сам камень stm32f407 стоит 250-300, вот какой МК за сопостовимые деньги имеет сопоставимые характеристики??? а переферию? а совместимость?
Ну я как бы призываю слезть с игрушечных AVR на что то более серьёзное а то как то печать и так как хобби часто позиционируется, ну и верно если сделано из игрушечных частей

28.12.2018 в 07:09
0

мда... теория, фантазии, итд.
давайте по пунктам. ПДП (по-русски) - прямой доступ к памяти. да, сам вывод - минуя ядро. но сформировать правильно и настроить что выводить - на совести программиста. и зачастую - проще выводить не используя ПДП. всё равно проц не занят чем-то полезным.

кто сказал что 32х битный код хранится ака 1 комадка - 4 байта, можнож и 2 и 4 запихнуть
речь не про 32-битный код. речь - про другую архитектуру процессора, подразумевающую 'больше кода' для вычислений и меньше -для 'дрыганья ножками'

'более одного экструдера' - у вас они одновременно работают? нет? тогда в чём проблема?
'сенсорный экранчик с тачем' по-хорошему имеет свой персональный проц и связан с матплатой по СОМ, SPI или I2C. энкодер - по I2C. кто где должен повеситься - я хз. всё это - отосительно низкоскоростные шины.
микрошаг - им 'заведует' драйвер. и 1/256 вы ему не объясните...
вот и получается, что кроме дельта-математики на больших скоростях - обычной меги хватает.
можно, конечно, возить вязанку дров в КАМАЗе. если сам КАМАЗ и соляра - на шару.
я НЕ призываю не пользоваться STM. как раз - наоборот. в нашем случае и КАМАЗ и соляра дешовые...

25.12.2018 в 23:14
0

У Mega 2560 256KB флеш памяти, а Marlin 1.1.8 с текстовым экраном под нее занимает больше 100КБ.
На ATmega328P Marlin не помещается ни в каком виде.

Новая прошивка должна решать какую-то проблему, иначе это будет очередной мертвый проект.
Само по себе недостаточно эффективное использование ресурсов STM32 в существующих прошивках такой проблемой не является.
Никого не волнует экономия доли ватта на оптимизации кода, когда принтер потребляет сотни ватт.

jmz
27.12.2018 в 10:32
0

Вот как по мне это и есть причина создания с 0 под железо - и размер кода меньше и производительность выше.

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

ЗЫ ну естественно 0,1-0,2Вт на фоне потребления стола/экструдера/двигателей мелочь я больше за функционал ратую

27.12.2018 в 14:08
0

Пойдем простым логическим путем.
Предположим, что кто-то с нуля разработает плату и напишет прошивку под ваш список 'хочу'.
Что это кто-то получит в качестве компенсации за потраченное время?
Кто будет поддерживать и развивать этот проект и что он будет получать за это?

Даже в среднесрочной перспективе оpen source на голом энтузиазме не работает, от рутины выгорают.
Или человек бесплатно делает интересную работу или работа рутинная и за нее надо платить.
А если человек бесплатно делате рутинную работу, то после его ухода проект умирает.
В сети достатосно примеров мертвых прошивок под STM32.

И самое главное - какую проблему вы хотите решить?
Проблема дельты на 8-ми битах с графическим экраном не стоит написания новой прошивки. Все желающие уже давно переехали на 32 бита или klipper.

jmz
27.12.2018 в 20:46
1

ХМ а мтат же марлин разве платен?
Ну скажем если грамотно написать, предусмотреть возможности расширения т проект сам собой сможет прожить весьма долго
И почему сразу компенсация? ну можно сделать типо 'пожертвования' будет много конечно проект пойдёт в гору, не будет ну тут уже как написать основу - её может хватить и на 20 лет
ММММ как по мне OPEN SOURCE может и прожить на энтузиазме, правда при условии большого количества заинтересованных
ХМ спасибо за наводку - как то с такого направления не искал по сети проектов под stm
ЭЭЭЭ как бы это сказать ну вообщем самое главное уйти от игрушечных мег(хотя б к Xmega) с прошивкой под железо и возможностью модульного дополнения, а то один вариант 'основной' прошивки универсаализирован и естественно неэффективен, потому с сторону stm и толкаю мысли - там приемственность прошивок если не ошибаюсь весьма не плоха
ЗЫ вообще я как раз встречал описания случаев(хоть и не часто) что сочетании графического дисплея и прямоугольной кинематики достаточно для фризов чуть ли не 20Мгц меге
ЗЗЫ вот можно встречный вопрос - а сколько лет такому камню как mega128/328? вопрос просто о моральном устаревании(тем более что 8 бит всего) Нет я согласен что она может выполнять функции...но есть поговорка 'не стрелять из пушки по воробьям' а теперь представьте что не пушка а зенитка которая чуть дороже ружья точнее и сразу целую стаю в перья разносит, и цена выстрела по сути дешевле?

27.12.2018 в 22:14
1

ЗЗЫ вот можно встречный вопрос - а сколько лет такому камню как mega128/328? вопрос просто о моральном устаревании(тем более что 8 бит всего)
Микроконтроллеры - не потребительская электроника, термин 'моральное старение' тут не применим.
8-ми битный Intel 8051 был выпушен в 1980 году. Микроконтроллеры с этим ядром сейчас производят порядка 20ти компаний. У меня в автомагнитоле такой стоит, производства STM. Вопрос исключительно в решаемых задачах, а не в возрасте архитектуры.
ЭЭЭЭ как бы это сказать ну вообщем самое главное уйти от игрушечных мег(хотя б к Xmega) с прошивкой под железо и возможностью модульного дополнения, а то один вариант 'основной' прошивки универсаализирован и естественно неэффективен, потому с сторону
Так никто ж не заставляет пользоваться игрушечной 8-ми битной мегой.
BIGTREETECH SKR 1.1 стоит 18 долларов, поддерживается Smoothieware и Marlin.
Клон DuetWifi стоит 32 доллара, поддерживается изначально 32-х битной RepRap firmware и Marlin.
Если вы хотите модульность - есть ArduinoDue с шилдом на выбор, есть klipper, к которому можно платы пачками цеплять, в том числе и дешевые 8-ми битные.

О (не)эффективности можно говорить только в приложении к конкретной задаче, где есть измеряемые количественные характеристики.
Вот вам лично для какой задачи не хватает функциональности вышеперечисленных плат?

P.S. Я очень люблю STM32, но в возможность разработки отдельной некоммерческой прошивки не верю. А в возможность эволюционного развития - верю даже очень. Добавить новую функциональность в существующую прошивку проще и быстрее, чем писать прошивку с нуля.

jmz
28.12.2018 в 09:49
0

Ну скажем устаревание можно определить как соотношение цена/эффект/размер/поддержка современных аспектов. А бытовая техника как раз по 20-30 и более лет может служить и не устаревать.

ПРо решаемые задачи соглашусь и не соглашусь - понятно что может быть избыточность ресурсов но если цена при этом сопоставима то как бы 'а почему бы и нет?'

Ну да как бы есть по серьёзней платы но что то они все на Marlin(а если я правельно понимаю марлин это по сути прошивка для мег которую 'расширили' для всего и портируют куда не поподя со всеми вытекающими(видимо мой перфекционист лютуе)

Если так то мне не хватает полноценного Ethernet, полноценного дисплея и манипуляторов, памяти для хранения прям в принтере(микросд нужно постоянно вынимать), разъёма под флешку, вайфай можно(но думаю многим нужно), больше 3-4х нагреветелей, не менее 5 моторов, ну и что бы при этом тянул не менее 200-300 шагов на мм с приличной скоростью а не 30-50мм/сек, ну и плюшки как автолевел.

Проблема не в том что в старую проще - а в том что в старой куча косяков может быть и мы добавляем новые и получаем полный синергизм, расплачиваясь обычно объёмом кода который перестаёт влазить и замедлением работа

ЗЫ мой опыт программирования(пусть и не большой) говорит о том что писать нужно изначально так что бы потом было легко корректировать а то и вносить серьёзные изменения и более того учитывать железо на котором будет работать иначе все эти 'проще дописать' сразу становятся 'проще сделать с 0 и как надо'

Так что тут делемма - использовать то что есть но не сильно хорошее или делать с 0 затрачивая больше сил и результат не гарантирован но получить что то куда лучше чем было

28.12.2018 в 12:06
0

Ну да как бы есть по серьёзней платы но что то они все на Marlin
Я же специально привел варианты альтернативных прошивок в том числе и изначально 32-х битной RepRap firmware. То, что Marlin поддерживает все эти платы, не обязывает вас использовать именно Marlin.
если я правельно понимаю марлин это по сути прошивка для мег которую 'расширили' для всего
Слишком общие слова. В чем залючается ''суть прошивки для мег', которая вызывает такое отторжение? В опросе энкодера не через аппаратный таймер? Да, это не самое эффективное решение, но оно позволяет подключать энкодер к любым GPIO, а не только к тем, где есть неиспользуемый таймер. Это более гибкое решение и оно накладывает меньше ограничений на схемотехнику.
в старой куча косяков может быть и мы добавляем новые
В новой прошивке куча косяков будет больше, просто потому, что в старой эту кучу уже проредили, а в новой косяки еще только предстоит написать.
И опять же - слишком общие слова, без контретики. Можете назвать три самых больших косяка в существующих прошивках, которые мешают вам жить?
Если так то мне не хватает полноценного Ethernet, полноценного дисплея и манипуляторов, памяти для хранения прям в принтере(микросд нужно постоянно вынимать), разъёма под флешку, вайфай можно(но думаю многим нужно), больше 3-4х нагреветелей, не менее 5 моторов, ну и что бы при этом тянул не менее 200-300 шагов на мм с приличной скоростью а не 30-50мм/сек, ну и плюшки как автолевел.
Если под манипуляторами вы подразумеваете сервоприводы, то все это уже есть, причем в идеально модульном виде. И с управлением с планшета/телефона, со слайсером прямо в принтере и со съёмкой видео.
Малинка + klipper + octoprint + платы по вкусу. На 8-ми битной меге клиппер выдает на шаговые двигатели больше 100 тысяч шагов в секунду (на одну плату), с 32-х битными платами можно получить 500 тысяч шагов в секунду (опять же - на одну плату).
Так что тут делемма - использовать то что есть но не сильно хорошее или делать с 0 затрачивая больше сил и результат не гарантирован но получить что то куда лучше чем было
Пока нет измеряемого критерия оценки, вы не можете получить 'лучше', вы получите 'другое'.

jmz
28.12.2018 в 14:54
0

Вроде упоминал - в подробностях прошивок разбираюсь поверхтностно

В опросе энкодера не через аппаратный таймер? Да, это не самое эффективное решение, но оно позволяет подключать энкодер к любым GPIO
ну как минимум, в альтернативе ограничевая универсальность GPIO мы получаем в ответ производительность и компактность кода
В новой прошивке куча косяков будет больше
не спорю, но правельное построение основы поможет избавиться от кучи косяков сразу и нивилировать часть, а так же даст 'инструмент' для последующего лёгкого быстрогои безболезненного отлавливания и выпиливания
Можете назвать три самых больших косяка в существующих прошивках, которые мешают вам жить?
На 8-ми битной меге клиппер выдает на шаговые двигатели больше 100 тысяч шагов в секунду
Ну это единственный косяк который я точно знаю - какая должна быть частота ядра что бы вытянуть все считывания, расчёты, и проверки для разумного дёрганья ножками с частотой 100кГц - это как раз и есть то из-за чего я не стал изучать AVR - мне надо было делать операции как раз с 100кГц подсчёт показал что всё плохо ибо вход в прерывание занимает если не ошибаюсь 30 тактов, а там ещё считать данные, обработать АЦП, обсчитать полученные данные, дёрнуть ножками, записать переменные в таймеры - я уже молчу что в принтере ещё бы и отобразить показания температуры на экране не плохо бы так что как по ИМХО 100кГц это то как часто может дёргать, а управлять с такой частотой он врят ли сможет. Встречный вопрос - с какой частотой сможет 16МГц мега обрабатывать прерывания с минимальныой нагрузкой?
ЗЫ допустим - 100кГц пусть 100.000 шагов по 256(нравится мне число) шагов на мм имеем вроде как 4000мм/с, как бы и очень много но это явно не микрошаг на 1/256, а с ним уже до вполне реальных возможностей движков не далеко. И в догонку - 100.000 раз в секунду считать кусок кода явно не на 2-3 байта это уже скорость считывания несколько МБайт/с мммм тяжко представить как оное реализовано
ЗЗЫ недавна попадалась 'статья' что на 8бит частоту прерываний для управления шаговиками сложно сделать больше 10кГц, что ИМХО вполне разумно 
Пока нет измеряемого критерия оценки, вы не можете получить 'лучше', вы получите 'другое'.
Понимаю что не по этикету возвращать вопрос НО а по каким критериям(и измеряемым) вы судите о нецелесообразности перехода на более совершенные камни?
Как по мне критерием является относительно не большая цена железа(может и дороже чем ныне у большинства но не на много), производительность(больше производительность можно код оптимизировать на размер или доп функции накидать), переферия(больше можно функций повесить на переферию а то и вообще больше функций), сложность написания и развития прошивки(среды разработки, языки, оптимизация, компиляторы, поддержка производителя, документация), имеющиеся возможность(прошивки, платы), перспективы(что ещё могут добавить со временем из функционала, как изменется требования к камню/прошивке, какие доп ресурсы потребуются), совместимость(возможность общаться с устройствами - протоколы/напряжения/частоты/протускные способности/функции)

ЗЗЗЫ и опять немного не этикетный вопрос, но ответ на него может вас заставить сменить точку зрения или наоборот утвердиться - а по каким причинам не стоит использовать более новые/мощные/функциональные МК и не писать прошивки к ним? Для себя я на подобные вопросы ответил до того как начал писать комментарии, так что я вполне убеждён в своей точке зрения и пока только вижу альтернативы но не поводы отказаться от развития.

28.12.2018 в 16:24
1

Вам стоит почитать про klipper и его архитектуру, это снимет многие вопросы по производительности и расширяемости.
10 КГц - это нижняя граница для Marlin, начиная с которой он начинает совмещать шаги. К klipper это никак не относится в силу другой архитектуры. Результаты тестов производительности в конце станицы [url]https://github.com/KevinOConnor/klipper/blob/master/docs/Features.md

по каким критериям(и измеряемым) вы судите о нецелесообразности перехода на более совершенные камни?
Я целиком и полностью поддерживаю переход на 32-х разрядные системы. Нецелесообразным я считаю написание прошивки с нуля, вместо использования и доработки уже существующих. Критерий - временные затраты на реализацию желаемого функционала и на последующую поддержку.
по каким причинам не стоит использовать более новые/мощные/функциональные МК и не писать прошивки к ним
Использовать новые микроконтроллеры стоит, возможностей 8-ми битных систем уже недостаточно под современное железо. Но, это не означает, что нужно выкидывать существующие прошивки, просто потому, что они умеют (с ограничениями) работать и на старых микроконтроллерах.
Я пока не вижу проблем в том же Marlin, которые нельзя было бы решить эволючионным путем.
Соответственно не вижу и основания для отказа от достаточно хорошо работающей прошивки.

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

jmz
29.12.2018 в 00:31
0

10 КГц - это нижняя граница для Marlin, начиная с которой он начинает совмещать шаги. К klipper это никак не относится в силу другой архитектуры. Результаты тестов производительности в конце станицы
Вот это наверно один из основных(известных мне ныне) принципиальных недостатков - смешивание шагов это как бы не хорошо(шаговый двигатель+инерция=пропуски) и рано или поздно эти проблемы вылезут(при соответствующей скорости). За ссылку спасибо, надо поизучать внимательно а то я в плане ассортимента начинаю подозревать отстаю.
Я целиком и полностью поддерживаю переход на 32-х разрядные системы. Нецелесообразным я считаю написание прошивки с нуля, вместо использования и доработки уже существующих
Использовать новые микроконтроллеры стоит, возможностей 8-ми битных систем уже недостаточно под современное железо. Но, это не означает, что нужно выкидывать существующие прошивки, просто потому, что они умеют (с ограничениями) работать и на старых микроконтроллерах.
Тут проблема принципиальная - нельзя эволюционно перейти с 8 на 32 бита, это как лампы и транзисторы - много схожего но при переходе нужно 'ломать' многое иначе это не то(по сути прошивка для 8 бит на 32 бит контроллере работает просто с частотой контроллера и больше ничего - типо сели в навороченный автомобиль но ни навигатором ни фарами не пользуемся а только газ/тормоз/руль), хотя можно постепенно переписать модули прошивки, но вот что будет с совместимостью модулей не ведаю это как 3в и 5в логика они могут работать вместе но нужны костыли и будут ограничения
Написание новой прошивки потребует существенных инвестиций времени, а перспективы этой прошивки довольно сомнительны. Сомнительны, потому что вам нужно будет на свою прошивку переманить большое количество пользователей
вот тут боюсь вы правы черезчур - люди скорее всего не захотят переходить на другие мк/прошивку ибо 'и так работает' ' меня и это устраивает' 'мне/на мой век хватит', и вот здесь может помочь либо ниже цена(что как бы возможно но не уверен) либо большое сообщество(а оно как раза будет только у 'старых' вещей', либо наличие подробной и исчерпывающей информации, а скорее всего несколько из этого и возможно что то ещё

ЗЫ и это ещё меня называют ретроградом!!!

jmz
29.12.2018 в 10:18
0

За мысль с клипером спасибо, многие проблемы пусть и не решит но невилирует, что то раньше не думал с такой стороны
ЗЫ но писать нормальный код нужно всё равно.

26.12.2018 в 10:41
0

Тут дело в том, что длина команд и операндов в 8 и 32 разрядных мк разные. 32=8*4
Вот и получается что один и тот же код программы на С будет занимать памяти в 4 раза больше на stm32 чем на atmega и подобных 8ми разрядных.
Ну это примерно я привёл.
Пример: 
в AVR загружаемых 8ми разрядный счётчик константой = команда + байт константы.
В stm32 все счётчики 32х разрядные
Получается - команда (32 разряда) + 4 байта константы!
Вот и увеличение кода :)
Это я привёл приблизительно, для понимания.

26.12.2018 в 11:06
1

Получается - команда (32 разряда) + 4 байта константы!
В ядре Cortex-M3 не совсем так это будет выглядеть.

В режиме Thumb там на команду 16 бит. Константа максимум 8 бит может быть.

26.12.2018 в 12:05
0

Читать умеешь? Я сказал это пример!
Покажи как ты загрузишь в 32х битный таймер константу длинной в 8 бит.
Или у кортекса есть телепатия???

26.12.2018 в 12:24
0

Покажи как ты загрузишь в 32х битный таймер константу длинной в 8 бит.
Всё зависит от константы. И как её загрузить решает компилятор - без телепатии. Просто оптимизация.

26.12.2018 в 12:31
0

Слушай, вопрос был о размере кода на разных мк. Человек не спрашивает про оптимизацию и работу компиляторов.
Понятно??? Читать умеешь???
Здесь не обсуждаются вопросы компиляторов и линкеров!!!
Понятно???
Найди себе другой форум по своей теме и бравируй там своими познаниями!

26.12.2018 в 12:43
1

Вам SergeyR7 совершенно правильно написал про thumb режим, причем именно в аспекте размера кода.
Практический результат его использования, применительно к Marlin, такой, что размеры прошивки для Mega2560 и STM32F103 отличаются всего-то на 10-15 процентов.

26.12.2018 в 12:46
0

Вы написали:

Вот и получается что один и тот же код программы на С будет занимать памяти в 4 раза больше на stm32 чем на atmega
Почему в 4 раза? Весь код только и загружает 32х битный таймер константами? Больше ничего он не делает?
Найди себе другой форум по своей теме
Я нашёл форум - и я здесь. Не Вам мне указывать, куда мне идти. Правила форума я не нарушаю.

26.12.2018 в 13:17
0

1. Не по теме. тут не обсуждают вопросы компиляторов и оптимизации.
2. Прочти о чем человек спросил. Или ты будешь тут писать статью по ядру кортекс и про оптимизацию кода??? Человеку задавшему простой вопрос и нахрен ненадо это все!

26.12.2018 в 13:54
0

1. Ответ был на Ваш комментарий, следовательно, по теме.
2. Читал, поэтому и ответил на Ваш комментарий, чтобы не вводить человека в заблуждение о сильном увеличении кода на 32х битных контроллерах.

27.12.2018 в 10:44
0

мммм а где так часто используются константы и переменные бе более 8 бит?
И я привелу приблизительный код - нужно вам энкодер обработать - на той же меге нужно городить прерывание в которое нужно постоянно входить, нужно обрабатывать каждое изменение да и в 8 бит это всё не влезет - в итоге и кода не мало и нагрузка то же, а stm просто висит на счётчике энкодер и считает при это флаг при изменении поднимает и когда камень не нагружен/не приоритеные функции выполняет он может обработать без прерываний данные из счётчика причём никаких проблем с переменными нет ибо 32 бита нет кучи кода учитывающего скажем приоритеты, не нужно заморачиваться с критичностью - вот влезет прерывание в момент отдачи команд двигателям или считывания данных из флешки и будут глюки
ЗЫ ну и часто ссылаются на вопрос цены - ответ а сколько стоит мега скажем с 256/512кб флеша? сравнить что можно из армов за оные деньги купить и думаю вопрос объёма кода станет не актуален

23.12.2018 в 21:11
0

Огромное спасибо. Схемка не открывается. Может только у меня? Пара вопросов
1.  Посмотреть не смог, поддержки 24В нет? 
2.  Почему используете что в первом и втором посте 8825, это чисто для отладки-спалил не жалко?

23.12.2018 в 21:18
0

1. На стол можно отдельно подать 24в. Там отдельный разъем питания.
2. Это для отладки. А там что поставите то и будет.

23.12.2018 в 21:27
1

Стол для меня не столь важен. Вот питание шаговиков, ну и хотенда (хотя ради такого дела и 12В воткну), а с движками 12В не хочется. Спасибо за ответы.

24.12.2018 в 18:32
1

Ну если уж делать плату самому, то и не проблема подключить питание моторами отдельно на 24в, если есть такая необходимость.

К тому же исходник чертежа я предоставил.

24.12.2018 в 03:29
1

Для клиппера лучше просто не придумаешь. На Распберри 4 готовых usb. Можно подключить 4 таких платы, а на сами платы напаять только то, что нужно, мосфеты или драйверы, а может и то и другое для смены 4 голов. Сам блюпил 150 рублев.

24.12.2018 в 03:45
2

Травление платы в хлорном железе.
А чем лимонка с перекисью не устраивают? И быстрее и без хлора

24.12.2018 в 04:48
0

Перекись проблематично купить в нужном объеме.

24.12.2018 в 06:39
2

В 100 мл аптечной 3% перекиси водорода растворяется 30 г лимонной кислоты и 5 г поваренной соли. Этого раствора должно хватить для травления 100 см2 меди, толщиной 35мкм.
100мл аптечной перекиси у нас в каждой аптеке за 10-15р продают, иль чуть дороже гидропирит по 25-30р. 
Лимонную кислоту сложней достать, но её легко можно заменить уксусной. 
По объемам... ну даже литр в аптеке вопросов не вызовет, наркотики вроде с неё не делают..
Вот хлорное железо точно проблематично достать в нужных объемах не в столицах.

24.12.2018 в 07:10
0

Маленький пузырёк можно купить. 100мл уже нет. Хлорное железо купить проще, быстрее и дешевле.

24.12.2018 в 07:32
2

Странно. Вот у меня аптеки в шаговой доступности

А вот хлорного железа, ни дешевого, ни дорогого, рядом нет. 
Если же съездить в город, то+60р на проезд, разделим на 4 (раствор 1/3)=48р/100гр раствора.
Не вижу ни проще, ни быстрее, ни дешевле.

24.12.2018 в 13:02
0

Так то да.. самый простой и безвредный это лимонка с перекисью...
а есть еще регенерируемый продувкой воздуха раствор..щелочной медно-хлоридный...

25.12.2018 в 18:08
0

соляная кислота и пучек гвоздей решают вопрос.
кислоту покупал по месту производства https://chem-ex.ru/catalog/khimiya/kisloty/solyanaya_kislota_khch/

25.12.2018 в 23:28
1

Какой вопрос они решают? Производства хлорного железа? И зачем? Соляная кислота в смеси с перекисью (которая в канистрах тоже значительно дешевле гвоздей) позволяет травить непосредственно, без участия ржавчины, и в 3 раза быстрее чем в ХЖ.
В чем преимущество применения ХЖ, а тем более изготовление ХЖ в домашних условиях? Что дышим ядовитым хлором? Единственный 'недостаток' лимонки в том, что она хлора не выделяет. А так травит в 4 раза быстрей, подогрева не требует, раствор прозрачный, процесс контролируемый, унитаз и одежда без ржавчины.

25.12.2018 в 23:37
0

 Ну, тыж сам посетовал, что

А вот хлорного железа, ни дешевого, ни дорогого, рядом нет. 

25.12.2018 в 23:41
0

А ну да, производитель соляной кислоты то в соседнем подвале сидит. 8)
Поэтому перефразирую специально для вас
'А вот соляной кислоты, ни дешевой, ни дорогой, рядом нет.'

26.12.2018 в 17:42
0

приветствую.соляная кислота продается в аптеке.находите аптеку в вашем населенном пункте которая делает микстуры по рецептам.там вам продадут разведенную соляную кислоту.мне в моем продали без рецепта.после этого занялся поиском реагента в других местах и купил её как пищевая добавка E507.правда паспорт переписали.

vnn
26.12.2018 в 21:59
0

Я не отрицаю, что при желании можно найти все что угодно, но остается главный вопрос, 'а зачем?'

24.12.2018 в 10:07
0

Покупал месяц назад. Вы что то путаете.

24.12.2018 в 07:21
5

лимонку вообще вроде как без проблем купить... чайник ей чищу от накипи)))

nox
24.12.2018 в 07:38
3

Дык я про то же, что все покупается по соседству. Дешево, не воняет, ржавых пятен не оставляет, травит в 4 раза быстрее.
Если кто-то травит в промышленных масштабах, и покупает железо килограммами, то опять же, и перекись, и соляная кислота продаются канистрами за копейки, реакция еще сильней чем с лимонкой, но уже меры безопасности с кислотой нужны.
А для дома перекись с лимонкой самый идеальный вариант.

24.12.2018 в 08:23
0

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

nox
24.12.2018 в 08:31
0

Для больших объемов я сделал емкость для травления с бурбулятором и подогревом от аквариума и... отдал весь цикл производства монтажнику. Уже прототипы заказываю готовые платы у китайцев. На стадии разработки использую макеты, правда ловлю постоянно глюки на этом. Но травить постоянно по мелочи желания уже нет. Именно из-за грязи хлорного железа.

24.12.2018 в 10:09
0

Ну минус вроде в том что хлорное железо можно использовать повторно, а перекись с лимонной один раз. Ну если раз в полгода травить что это как бы не минус

24.12.2018 в 10:30
2

С учетом, что человек заморачивается ручной шелкографией, что одноразово и очень дорого, то речь никак не идет о промышленных объемах, и обсуждение разницы цены и многоразовости перекись vs хл.железо тут вообще не к месту.

24.12.2018 в 20:40
0

Перекись с лимонкой хорошо, но в наличии был уже разведеный раствор хлорного железа.
Если подогревать, то за 15..20 минут нормально травится.

24.12.2018 в 04:51
0

Попробовать повторить и сэкономить тысячу... У меня даже есть весь набор, кроме драйверов. Но придется еще и шилд для stm32 делать, либо прямо на плате разводить. Сам сижу на stm8.

01.01.2019 в 10:45
0

Ниже написал уже. Нашел STM32-Discovery с STM32F103RCT6. Попробую на нем запустить.

24.12.2018 в 12:09
0

кстати вопрос а будет работать с такими драйверами:

TMC2130 V1.1 SPI

и как их там правильно настраивать? со смузи вроде понятно тут интересно

nox
24.12.2018 в 20:08
0

Без спи использовать проще всего, как а4988

24.12.2018 в 17:08
0

https://github.com/simon-jouet/ESP32Controller/issues/4
Тут народ обсуждает подключение io-экспандеров по i2s, без временного лага. Это круто, но возможно только с мощным ЦП, типо есп32.

24.12.2018 в 23:25
0

Выглядит как костыль для решения проблемы нехватки ног на ESP32.
У STM32 нехватка ног решается заменой микроконтроллера на следующий размер.
Если смотреть на цены самих микроконтроллеров, а не отладочных плат, то разница в цене микроконтроллеров в линейке F103 будет незначительная.

24.12.2018 в 20:26
0

а есть ВОМ по компонентам? думаю что надо попробовать собрать, темболее все есть, бюджетный вариант 32бит

nox
24.12.2018 в 20:38
0

Нет, только схема.

25.12.2018 в 12:22
1

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

26.12.2018 в 04:54
0

Тогда сразу поддержку zero W нужно сделать, как в Prusa.

26.12.2018 в 11:09
0

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

28.12.2018 в 03:58
0

Вся проблема в том, что Оранж Зеро и Пи Зеро стоят уже одинаково. Под Малину есть готовый работающий образ 'из коробки'.

25.12.2018 в 16:34
0

Интересно, платка Maple Mini пойдет, или нужна другая разводка?

25.12.2018 в 16:40
0

Другая

06.01.2019 в 11:54
0

Под maple есть готовая борда в конфигурации, но нужно проверять распиновку

25.12.2018 в 20:13
0

Здравствуйте. У меня схема не открывается, .PCB которая. Пробовал ExpressPCB и другие программы. Может подскажите чем открыть?

27.12.2018 в 22:24
0

Спасибо огромное.

25.12.2018 в 21:01
0

Поддержка дисплея MKS_MINI12864 в STM32F103 пока в альфа версии.
Сам дисплей работает, картинка корректная, SD-карта инициализируется, но список файлов на карте не отображается.
При этом через Pronterface список файлов на этой же карте отображается, и даже запускается на печать, но во время печати, периодически, сыпятся ошибки чтения с карты. Дело в том, что дисплей и карта памяти на MKS_MINI12864 работают в общем канале SPI.
Пока ищем, где там проблема.

В других вариантах,
RepRapDiscount Smart Controller со своим картридером,
OLED SSD1306 с отдельным картридером,
все работает на ура.

25.12.2018 в 22:27
0

Нашел причину, оказалось, что дисплей и карта работают в разных режимах SPI.
Дисплей в режиме SPI_MODE0, а карта в режиме SPI_MODE3.
Прописал в Marlin-bugfix-2.0.xMarlinsrcHALHAL_STM32F1HAL_spi_Stm32f1.cpp режим SPI_MODE0.
Список файлов на карте в MKS_MINI12864 теперь отображается и печатает отлично!

25.12.2018 в 22:00
0

Кто-то уже готов изготавливать на заказ? Думаю желающие обязательно найдутся.

И такой вопрос. Насколько возможно добавить сюда выходы на 2 дополнительных вентилятора - EXTRUDER_FAN и CONTROLLER_FAN, поддержка которых есть в марлине?

26.12.2018 в 07:25
0

Зависит от того, какой дисплей будете использовать, если на параллельной шине, то свободных пинов на доп вентиляторы уже не будет.
Если дисплей I2C или SPI либо UART, то можно.

26.12.2018 в 07:53
0

Планировал использовать OLED SSD1306, он вроде как раз на I2C. Это будет отдельная версия платы или на этой навешивать?

27.12.2018 в 22:23
0

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

01.01.2019 в 05:14
1

А может есть смысл сразу материнскую плату под нужный контроллер? У меня кучка Cortex чипов, но шилды для них не совместимые. LPC-Expresso и STM32-Discovery.
Вот нашел в закромах STM32-Discovery, после одного проекта, с напаянным STM32F103RCT6 на борту. Но сам шилд по распиновке не подходит. Это тогда всю плату перерисовывать. Но идея заманчивая. Тем более у меня почти все запчасти есть. Кювета для объемного травления и текстолит.
Кстати, кто захочет фабричную плату, я могу перерисовать ее в KiCad и отправить в китай в производство. При такой площади минимальный заказ от 5шт, но выгодно заказывать от 15шт.

25.12.2018 в 23:51
0

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

Вопрос: кинематика х-бот в прошивке так же поддерживается? Просто меняется тип платы в конфигурации ну и остальные изменения, же да?

26.12.2018 в 07:19
0

Да. В Configuration.h, всё как обычно.

28.12.2018 в 15:00
0

Здравия всем. 
Отличный проект и проделанная работа.))) чуть бы раньше, не курочил бы из рамса и дуо.

Интересна такая штука, может кто-то знающий поможет с данным вопросом. Есть в наличии такой вот дисплей https://ru.zipy.co.il/p/%D7%90%D7%9C%D7%99%D7%90%D7%A7%D7%A1%D7%A4%D7%A8%D7%A1/2-8-240x320-spi-tft-lcd-serial-port-module-pcb-adapter-micro-sd-ili9341-5v-3-3v/32602444645/

Реально ли организовать в Марлине, чтобы применить его на этой плате. Когда-то он покупался для реализации осциллографа на [COLOR=#444444]STM32F103C8T6 на радиокоте, но так руки и не дошли, то то поменяется в проекте с осциллографом, то-то, так и валяется без дела данный дисплей и стмка.[/COLOR]

[COLOR=#444444]Вот и спрашиваю, возможно ли их скомпоновать в этом проекте[/COLOR]
и как это организовать?
Заранее благодарю за ответ.

28.12.2018 в 16:54
1

Если коротко, то не стоит. На 1.3' OLED картинка будет лучше.

У Marlin графический интерфейс выдает монохромную картинку 128х64 точки. Вывести ее на этот экран можно, но она будет очень мелкая, а данных потребуется передавать в разы больше, т.к. экран полноцветный. Если картинку растянуть, то это еще больше увеличит объем передаваемых данных, а на этой шине у вас еще SD карта висит.

29.12.2018 в 11:58
0

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

C:usersalex.platformiopenvlibsite-packagesplatformiouilder oolspiolib.py:677: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
if path not in self.envorigin.get('CPPPATH', []):

и далее

MarlinsrcHALHAL_STM32F1HAL.h:40:10: fatal error: util/atomic.h: No such file or directory
#include
^~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1HAL_timers_Stm32f1.cpp.o] Error 1

с прекращением компиляции.
Как побороть это?
Пробовал всё переустановить и снова скомпилировать  не помогло.

29.12.2018 в 16:19
0

Все тоже самое. Пишут что надо поставить старую папку из C:UsersHome.platformiopackagesframework-arduinoststm32STM32
Может кто выложит у кого работает компиляция?

10.01.2019 в 13:00
0

Есть решение??? У меняя схожая проблема, но устанавливал все с нуля

11.01.2019 в 17:58
0

Решения нет. Папку никто не выложил. Тут помощи ноль...увы.. надо у буржуев искать....

11.01.2019 в 20:08
0

Выше товарищу lenivo скинул папку, но вроде как не помогло.
У меня же все нормально компилируется.

Попробуйте на другом компьютере.

11.01.2019 в 20:26
0

Просил я а скинули lenivo Речь про STM32 а отправили STM32F1... И конечно, ставил на чистой системе  на компьютере и на ноуте результат все тот-же...

11.01.2019 в 20:45
0

Нет такой папки (STM32)

в C:UsersHome.platformiopackagesframework-arduinoststm32

11.01.2019 в 20:53
0

Есть такая папка  Имеет смысл поменять их по очереди

Добавлю также, это скрин чистой системы при удалении папки STM32 компиляции вообще нет. Сразу ошибка

11.01.2019 в 21:56
0

А версия Core какая?

11.01.2019 в 23:16
0

вот такая

12.01.2019 в 13:02
1

Сделал апдейт:

Updating ststm32 @ 4.5.0 [4.6.0]
Uninstalling ststm32 @ 4.5.0: [OK]
PlatformManager: Installing ststm32 @ 4.6.0


И теперь у меня тоже все поломалось..
Причем любые другие платы компилируются норм и STM32F103ZE  в том числе, а вот STM32F103CB ни в какую.
Эх.

Откатил обратно.
И все стало компилироваться хорошо!
Удачи!

12.01.2019 в 13:45
0

Да, подтверждаю все стало нормально. Спасибо.

13.01.2019 в 14:47
0

Не могли бы Вы поделиться папкой Marlin-bugfix-2.0.x. которая однозначно компилируется, чтоб я понимал, проблема проблема в Platformio, или у меня.

13.01.2019 в 16:37
0

Вот [url]https://ru.files.fm/u/dsdqbd2q

13.01.2019 в 18:51
0

Огромное спасибо!!! Полностью все удалил и почистил. Заново установил VSC, переустановил ST STM32, открыл Ваш файл, и успех. Еще раз, огромное СПАСИБО!!!

15.07.2019 в 22:55
0

Спасибо! + от меня, этот коммент 2 дня искал =)

30.12.2018 в 19:15
0

Извиняюсь за оффтоп, а в чем так красиво платки рендерить?
[IMG]http://3dtoday.ru/upload/resize_cache/main/a5b/940_1080_1/a5bf28874571b4b21dc1cc92ccba9396.png[/IMG]

11.01.2019 в 20:02
0

В PCB 4.1.3

file - export - png -
- 600dpi
- photo-mode

03.01.2019 в 21:17
0

И у меня получилось.

Linking .pioenvsluepillfirmware.elf
Building .pioenvsluepillfirmware.bin
Checking size .pioenvsluepillfirmware.elf
Memory Usage -> http://bit.ly/pio-memory-usage
DATA:    [==   ]  19.9% (used 9784 bytes from 49152 bytes)
PROGRAM: [=====     ]  51.6% (used 135320 bytes from 262144 bytes)

Заметил, что один датчик температуры подключен не к ADC порту...

06.01.2019 в 00:40
0

Оба подключены к АЦП.

04.01.2019 в 12:54
0

Народ. Ткните носом как драйвера по spi подключить. 

06.01.2019 в 00:41
0

Подскажите, пожалуйста, 'mF' это микрофарады? Чему тогда равны С7, С8, С13 и C14?

06.01.2019 в 03:37
1

 'mF' это микрофарады
да

06.01.2019 в 13:05
0

0,1мФ

10.01.2019 в 10:42
0

Кому будет интересно. Можно лутом делать. Всё получается.

12.01.2019 в 13:48
0

В какой программе открыть .pcb файл?

13.01.2019 в 18:30
0

Очень круто... после приобретения своего первого 3D принтера... теперь думаю о втором... треьтем... и т.д. )))
А перебрав первый... в очередной раз проклинаю создателей сего чуда... когда дело доходит до дешевых винтовых клемников... почему до сих пор их используют.. есть ведь такая хорошая альтернатива... например такая

16.01.2019 в 14:33
0

У кого не собирается попробуйте след. опции:

[env:bluepill]
platform = ststm32
framework = arduino
board = genericSTM32F103CB
build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
${common.build_flags}
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1> -<src/HAL/HAL_STM32F1/HAL_sdio_STM32F1*>
lib_deps = ${common.lib_deps}
lib_ignore = c1921b4
libf3c
lib066
Adafruit NeoPixel_ID28
Adafruit NeoPixel
libf3e
TMC26XStepper
lib_ldf_mode = 1

Конкретно -<src/HAL/HAL_STM32F1/HAL_sdio_STM32F1*> убирает из исходников HAL_sdio_STM32F1*, они только для STM32_HIGH_DENSITY и STM32_XL_DENSITY

19.01.2019 в 15:52
0

Один я вижу огромную проблему с нагревом полевиков? у ардуины 5 вольт и все кипит, а у стм32 и того 3.3 вольта, какое там открытие канала? будут печки те еще 100% надобно драйверок ставить, я как то писал об этом, но чет не восприняло сообщество, а у меня на рамсах навесом все это счастье уже два года как трудится и даже родные китайские полевики абсолютно холодные

19.01.2019 в 16:11
0

Вот такое открытие. Да, драйвер - правильнее. Но на небольших частотах можно просто поставить нормальный мосфет и не выделываться.

19.01.2019 в 20:59
0

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

22.01.2019 в 13:41
0

День добрый.

А нет ли варианта платы с двумя драйверами для оси Z ?

Заранее спасибо :)

23.01.2019 в 21:33
0

Пришли платки, день убил в попытках откомпилировать, безрезультатно. Все сделал в точности по инструкции из двух статей. читал много раз вдумчиво, на двух компах выполнял действия, на одном ради чистоты эксперимента прибил и переустановил девственно чистую вынь7 про х64. ругается:
[spoiler] 
 > Executing task: C:UsersUser.platformiopenvScriptsplatformio.exe run <

Processing bluepill (platform: ststm32; board: genericSTM32F103CB; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103CB.html
PLATFORM: ST STM32 > STM32F103CB (20k RAM. 128k Flash)
HARDWARE: STM32F103CBT6 72MHz 20KB RAM (128KB Flash)
DEBUG: CURRENT(blackmagic) EXTERNAL(blackmagic, jlink, stlink)
Converting Marlin.ino
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 10 compatible libraries
Scanning dependencies...
Dependency Graph
|-- 1.3.4
|   |-- 1.0
|-- 0.4
|   |-- 1.0
|   |-- 1.0
|-- 2.0.1
|-- 1.0
|-- 1.0
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1HAL.cpp.o
In file included from MarlinsrcHALHAL_STM32F1HAL.cpp:34:0:
MarlinsrcHALHAL_STM32F1HAL.h:40:10: fatal error: util/atomic.h: No such file or directory
#include
^~~~~~~~~~~~~~~
compilation terminated.
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1HAL_Servo_STM32F1.cpp.o
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1HAL_sdio_STM32F1.cpp.o
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1HAL.cpp.o] Error 1
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1HAL_spi_STM32F1.cpp.o
In file included from MarlinsrcHALHAL_STM32F1. ./. ./inc/MarlinConfig.h:30:0,
from MarlinsrcHALHAL_STM32F1HAL_Servo_STM32F1.cpp:26:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:40:10: fatal error: util/atomic.h: No such file or directory
#include
^~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1HAL_Servo_STM32F1.cpp.o] Error 1
In file included from MarlinsrcHALHAL_STM32F1HAL_spi_STM32F1.cpp:39:0:
MarlinsrcHALHAL_STM32F1HAL.h:40:10: fatal error: util/atomic.h: No such file or directory
#include
^~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1HAL_spi_STM32F1.cpp.o] Error 1
In file included from MarlinsrcHALHAL_STM32F1HAL_sdio_STM32F1.cpp:26:0:
MarlinsrcHALHAL_STM32F1HAL_sdio_STM32F1.h:29:10: fatal error: libmaple/sdio.h: No such file or directory
#include 'libmaple/sdio.h'
^~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1HAL_sdio_STM32F1.cpp.o] Error 1
================================================================= [ERROR] Took 6.09 seconds =================================================================

========================================================================= [SUMMARY] =========================================================================
Environment bluepill                    [ERROR]
Environment megaatmega2560              [SKIP]
Environment megaatmega1280              [SKIP]
Environment at90usb1286_cdc             [SKIP]
Environment at90usb1286_dfu             [SKIP]
Environment DUE                         [SKIP]
Environment DUE_USB                     [SKIP]
Environment DUE_debug                   [SKIP]
Environment LPC1768                     [SKIP]
Environment LPC1769                     [SKIP]
Environment melzi                       [SKIP]
Environment melzi_optiboot              [SKIP]
Environment rambo                       [SKIP]
Environment sanguino_atmega644p         [SKIP]
Environment sanguino_atmega1284p        [SKIP]
Environment STM32F1                     [SKIP]
Environment STM32F4                     [SKIP]
Environment ARMED                       [SKIP]
Environment teensy35                    [SKIP]
Environment malyanm200                  [SKIP]
Environment esp32                       [SKIP]
================================================================= [ERROR] Took 6.11 seconds =================================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it
[/spoiler]
хоть и этот util/atomic.h присутствует в папке. куда его правильно разместить? или что из компонентов не доставлено?

24.01.2019 в 07:42
0

Чуть выше уже отвечал на подобную проблему.
Там в новой версии framework ststm32 @ 4.6.0 накосячили.
Поэтому надо откатить на 4.5.0.

24.01.2019 в 13:44
0

Спасибо все собралось, вопрос у всех такой дикий тормоз с работой с SD картой?, ну прям ваще жесть...

24.01.2019 в 16:25
0

Проверьте стоит ли режим карты: SPI_MODE0
в Marlin-bugfix-2.0.xMarlinsrcHALHAL_STM32F1HAL_spi_Stm32f1.cpp

строка: spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);

24.01.2019 в 20:47
0

Одинаково что моде 3 что 0, дело было в флешке, поставил другую норм, форматнул тормозную норм, странно , на 8 битах на атмеге (два экземпляра все было норм) Вопрос снят, еще раз спасибо.

24.01.2019 в 23:09
0

как из этого формата pcb  сделать пдф? Хочу пустышки убрать и крестики добавить. А впдф конвертации нету...

25.01.2019 в 07:10
0

Выше уже дважды давал ссылку на PCB.
Там экпортируете в EPS или пр., и открываете в фотошопе например.

24.01.2019 в 23:17
0

немогу собрать пишет

OM>
|-- 1.0
|-- 1.0
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1HAL_Servo_STM32F1.cpp.o
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1persistent_store_flash.cpp.o
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1persistent_store_sdcard.cpp.o
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp.o
In file included from MarlinsrcHALHAL_STM32F1. ./. ./inc/MarlinConfig.h:30:0,
from MarlinsrcHALHAL_STM32F1HAL_Servo_STM32F1.cpp:26:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:183:12: warning: 'int freeMemory()' defined but not used [-Wunused-function]
static int freeMemory() {
^~~~~~~~~~
In file included from MarlinsrcHALHAL_STM32F1. ./. ./inc/MarlinConfig.h:30:0,
from MarlinsrcHALHAL_STM32F1persistent_store_flash.cpp:32:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:183:12: warning: 'int freeMemory()' defined but not used [-Wunused-function]
static int freeMemory() {
^~~~~~~~~~
Compiling .pioenvsluepillsrcsrcHALHAL_STM32F1watchdog_STM32F1.cpp.o
Compiling .pioenvsluepillsrcsrcHALsharedHAL_spi_L6470.cpp.o
MarlinsrcHALHAL_STM32F1persistent_store_sdcard.cpp: In static member function 'static bool PersistentStore::write_data(int&, const uint8_t*, size_t, uint16_t*)':
MarlinsrcHALHAL_STM32F1persistent_store_sdcard.cpp:65:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < size; i++)
~~^~~~~~
MarlinsrcHALHAL_STM32F1persistent_store_sdcard.cpp: In static member function 'static bool PersistentStore::read_data(int&, uint8_t*, size_t, uint16_t*, bool)':
MarlinsrcHALHAL_STM32F1persistent_store_sdcard.cpp:73:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < size; i++) {
~~^~~~~~
In file included from MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:35:0:
C:usersdima.platformiopackagesframework-arduinoststm32STM32F1systemlibmapleinclude/libmaple/fsmc.h:47:2: error: #error 'FSMC is unavailable on your MCU'
#error 'FSMC is unavailable on your MCU'
^~~~~
In file included from MarlinsrcHALHAL_STM32F1. ./. ./inc/MarlinConfig.h:30:0,
from MarlinsrcHALHAL_STM32F1persistent_store_sdcard.cpp:30:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h: At global scope:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:183:12: warning: 'int freeMemory()' defined but not used [-Wunused-function]
static int freeMemory() {
^~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp: In function 'void LCD_IO_Init(uint8_t, uint8_t)':
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:109:22: error: 'PD7' was not declared in this scope
#define FSMC_CS_NE1  PD7
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:157:10: note: in expansion of macro 'FSMC_CS_NE1'
case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:109:22: note: suggested alternative: 'D7'
#define FSMC_CS_NE1  PD7
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:157:10: note: in expansion of macro 'FSMC_CS_NE1'
case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:110:22: error: 'PG9' was not declared in this scope
#define FSMC_CS_NE2  PG9
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:158:10: note: in expansion of macro 'FSMC_CS_NE2'
case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:110:22: note: suggested alternative: 'PC9'
#define FSMC_CS_NE2  PG9
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:158:10: note: in expansion of macro 'FSMC_CS_NE2'
case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:111:22: error: 'PG10' was not declared in this scope
#define FSMC_CS_NE3  PG10
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:159:10: note: in expansion of macro 'FSMC_CS_NE3'
case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:111:22: note: suggested alternative: 'PC10'
#define FSMC_CS_NE3  PG10
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:159:10: note: in expansion of macro 'FSMC_CS_NE3'
case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:112:22: error: 'PG12' was not declared in this scope
#define FSMC_CS_NE4  PG12
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:160:10: note: in expansion of macro 'FSMC_CS_NE4'
case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break;
^~~~~~~~~~~
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:112:22: note: suggested alternative: 'PC12'
#define FSMC_CS_NE4  PG12
^
MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp:160:10: note: in expansion of macro 'FSMC_CS_NE4'
case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break;
^~~~~~~~~~~
compilation terminated due to -fmax-errors=5.
*** [.pioenvsluepillsrcsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp.o] Error 1
In file included from MarlinsrcHALHAL_STM32F1. ./. ./inc/MarlinConfig.h:30:0,
from MarlinsrcHALHAL_STM32F1watchdog_STM32F1.cpp:29:
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:183:12: warning: 'int freeMemory()' defined but not used [-Wunused-function]
static int freeMemory() {
^~~~~~~~~~

че за хрень похоже после внедрения робина порты для других не собираются
собирал под 103ret6

25.01.2019 в 07:21
0

А под 103RET6 в platformio.ini что прописано?

25.01.2019 в 08:39
0

и так пробовал
 

[env:bluepill]
platform = ststm32
framework = arduino
board = genericSTM32F103RE
build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
${common.build_flags}
src_filter = ${common.default_src_filter} +  -
lib_deps = ${common.lib_deps}
lib_ignore = c1921b4
libf3c
lib066
Adafruit NeoPixel_ID28
Adafruit NeoPixel
libf3e
TMC26XStepper
lib_ldf_mode = 1

 итак все равно не собирается даже для 103 СВ

[env:bluepill]
platform = ststm32
framework = arduino
board = genericSTM32F103CB
build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
${common.build_flags}
src_filter = ${common.default_src_filter} + -
lib_deps = ${common.lib_deps}
lib_ignore = c1921b4
libf3c
lib066
Adafruit NeoPixel_ID28
Adafruit NeoPixel
libf3e
TMC26XStepper
lib_ldf_mode = 1

чет он строчки режет сдесь настройки как рекомендовали выше

хотя скачанный до нового года марлин компилится а сновым беда когда компилишь с графическим экраном  ошибки сыплются из этого файла что пинов нет

src/HAL/HAL_STM32F1/u8g_com_stm32duino_fsmc

25.01.2019 в 10:26
0

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

25.01.2019 в 12:12
0

Пины, это в pins***.h должно быть прописано, под дисплей.
В котором именно файле pins***.h, зависит от того, какая плата у вас прописана в configuration.h.

25.01.2019 в 13:12
0


#define MOTHERBOARD BOARD_STM32F1R

25.01.2019 в 13:30
1

пины прописаны для RET чипа  а подрубаются src/HAL/HAL_STM32F1/u8g_com_stm32duino_fsmc  пины для ZET и VET чипов которых нет на мелких сериях линейки

25.01.2019 в 14:09
2

в файле src/HAL/HAL_STM32F1/u8g_com_stm32duino_fsmc

#if defined(STM32F1) || defined(STM32F1xx)

выражение подрубает все чипы STM32F1 и прописывает не существующие пины для мелких

#if defined(STM32F1xxZx) || defined(STM32F1xxVx)

поправил так и прокомпилировалось даже с версией STM32  4.6.0

26.01.2019 в 12:55
0

Решил повторить. Скачал новый Марлин стал пробовать делать как указано выше но не смог так как выходит вот такое сообщение. Сам git установлен но ничего не происходит. А старые прошивки на Марлине компилируются как и раньше, всё нормально. Может опять какоето обновление вышло? Как мне поставить эту библиотеку ?

26.01.2019 в 14:52
0

Тоже выскакивало, скачал заново и переустановил, ошибка пропала.

26.01.2019 в 14:55
0

Что конкретно скачали и переустановили?

26.01.2019 в 15:00
0

GIt

26.01.2019 в 17:41
0

Беда... паркуется в 0 отлично и правильно, а печатать начинает с аварии, т.е. с долбежки бошкой в раму(а с usb печатает нормально). Беда №2 делем нагрев стол и сопло греются до положеных темп, жмем печать с карты и темп виснет, т.е. перестает мереть оною, хоть и контроллер не виснет в меню входит по меню ходит, а бошка в это время краснеет...

26.01.2019 в 18:28
0

Помехи по питанию. Странно, в моем варианте все предусмотрено.
Дайте фото вашей распаяной платы.

26.01.2019 в 19:24
0

Фото сложнее но попробую. С помехами вряд-ли. Я смд 100нан написал шт 10 где мог. Да и электролиты тоже на месте

26.01.2019 в 19:24
0

Проблема в том что с карты памяти печатает не правильно. С юсб норм

26.01.2019 в 19:33
0
26.01.2019 в 19:52
0

Не вижу С7, С8, С10, С13, D1.
Да, нашел напаяные SMD, но видимо в пайке косяк, на фото сложно понять.
У меня была подобная проблема при печати с карты, в варианте с Morpheus как в предыдущей статье, при питании с импульсного китайского БП.

Добавил емкости и все, работает без сбоев.

27.01.2019 в 10:19
0

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

26.01.2019 в 19:37
0

Сорри с мобилки. Плату перевёл в спринт и не много подправил. В плане толщины дорожек и отверстий проще для лута. Плата на фото с испустившим чюдотворный дым процом(хвала китайцам) только стол включил и в проце дырка... Вторая плата идентична и пока работает...

27.01.2019 в 11:02
0

Так  если мосфет криво припаял вот  дым и пошел. Тут надо постараться что бы дырка вылезла .Хвала рукожопым :)

27.01.2019 в 23:02
0

А какой марки ставить диоды, по схеме D1, D2?

28.01.2019 в 12:04
0

Блокировочных кондеров еще с десаток напаял, без изменения в плане контроля температуры, блок питания подкидывал (чифтэк 450, елтек 1КВт (с базовых станций)), проблема явно не в питании, пример: инитим карту, жмем печать с карты, анимашка нагрева сопла включается на дисплее, а по факту на PA0 ноль, по USB тестовый кубик отпечатался без проблем, если же предварительно нагреть из меню стол и сопло и жмакнуть печать с карты то по Z и X паркуется норм, а по Y долбится на месте бошкой и валится в аварию, из меню с дисплея при этотом автопарковка проходит вполне нормально. Очень похоже именно на программный глюк, а не проблемой с питанием.
 далее хотелось бы управление вентилями прикрутить тем более что 4 свободных ноги у нас есть при использовании i2c дисплея.

Configuration_adv.h

#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
#define CONTROLLER_FAN_PIN PB12 // Set a custom pin for the controller fan
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
#endif

#define E0_AUTO_FAN_PIN PB13

#define CASE_LIGHT_ENABLE
#if ENABLED(CASE_LIGHT_ENABLE)
#define CASE_LIGHT_PIN PB14 // Override the default pin if needed
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
//#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED.
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
#define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
#endif
#endif
 
При компиляции валится :
MarlinsrcHALHAL_STM32F1. ./. ./inc/SanityCheck.h:1271:6: error: #error 'You cannot set E0_AUTO_FAN_PIN equal to CONTROLLER_FAN_PIN.'
WTF?
без #define USE_CONTROLLER_FAN
собирается, но намертво виснет при старте на заставке марлин.
с одной подсветкой камеры вообще висяк без дисплея.
сильно тапками не кидайте в рокожопости не обвиняйте, победить то охота времени убито уже прилично...

28.01.2019 в 12:44
0

Блокировочных кондеров еще с десаток напаял,
Можно на фото платы взглянуть?!
Очень похоже именно на программный глюк, а не проблемой с питанием.
Вам видимо виднее, тогда зачем просите помощь?
далее хотелось бы управление вентилями прикрутить
Вам бы сначала разобраться с предыдущей проблемой. Потом уже двигаться дальше.

п.с. У меня на том варианте, что описан в статье выше, всё работает.

Повторюсь, была похожая проблема, при печати с флэшки, в варианте с платой Morpheus.
После продолжительных тестов и испытаний, в текущий вариант я добавил емкости (100mf; 0,1mf) по питанию, и проблема исчезла.

28.01.2019 в 13:01
0
28.01.2019 в 13:03
0

Плата один в один ваша. Перемычки лишь на стаб 3.3 вольта с 5. А не с 12. Да на разъём 3.3 вывел на пустые exp2

28.01.2019 в 15:39
0

В моем варианте нет этих перемычек! Как вы думаете, почему??
На разъемы EXP1, EXP2 для питания SD-карты и дисплея выведены 5в, от отдельного L7805.
Хватит морочить голову!

28.01.2019 в 13:05
0

100n 20шт по всем питаниям. И на термистора тоже подпаял.

28.01.2019 в 14:50
0

Помощь прошу так как дуб в программировании , при компиляции вылазит 7 предупреждений может в них какие-то подсказки?

28.01.2019 в 16:29
0

Да ни кто голову не морочит. Раз. 5 вольт для питания дисплея и сд карты не нужны при уровнях стм32 два. Проблема явно софтовая три. И на соседнем форуме комрад Lenivo как раз именно эту же проблему описывал четыре. Уж поверьте за 37 лет с позывным UR3VBM плат я перетравил тонну и 100500% проблему с питанием и софтовый глюк отличу. Просто по всей видимости кроме вас и меня в железе до конца ни кто не повторил. Что жаль. (имеется в виду установка на кинематику принтера а не банальное подпаивание к платке дисплея). Имеется огромное желание бэта тестирования а ваше негодование мне не совсем понятно(читай у меня все работает сам дурак) а высказывание всяких троллей(это ни к вам относится) мне вообще не понятны... Вариант очень интересен думаю многим, но необходимо повторяемость результата а не единичные достижения. Ни коим образом ни кого не хотел обидеть если что извиняюсь за ранее. Просто накатило....

28.01.2019 в 18:08
0

Вы изменили схему питания. Мой проверенный вариант вам не нравится, видимо вы знаете, что делаете.
Удачи!

У вас из за ваших 'доработок' получилась просадка по питанию 3.3в. Из за этого и проблема!
Продолжайте дальше негодовать.

Повторюсь, в моем варианте на разъемы EXP1, EXP2 для питания SD-карты и дисплея выведены 5в, от отдельного L7805. В дисплее и SD-ридере встроены свои регуляторы на 3.3в.

От LM1117 (800мА) на плате запитываются ТОЛЬКО Blue Pill и драйверы с концевиками!

28.01.2019 в 18:12
0

Вариант очень интересен думаю многим, но необходимо повторяемость результата а не единичные достижения.
Так повторяйте, а не искажайте проект! И не вводите в заблуждение других.

28.01.2019 в 16:57
1

Для питания дисплея и сд карты 5 вольт питания НУЖНЫ!  Жаль Вы это до конца не понимаете. И уровни stm тут не важны! Как поймете почему так то и все получится.

28.01.2019 в 19:09
0

Так давайте все успокоимся.. 5 вольт нужны для шылдов. На которых стоят свои стабы в корпусах sot23-5. В моем же варианте дисплей без оного и по даташиту 3.3в. Сд карта же вообще хочет 2.9 вольта по книге. Хоть и на практике работает от 3.3в. И она у меня как видно на фото включена на прямую(через 1к резисторы по сигнальный линиям) просадок нет. Тестером и осциллографом это подтверждается. Что ж убью вечер подключю шилд сд с стабилизатором 5-3.3в и преобразователем уровней 5-3.3. Так же есть адафрут дисплей так же 5-3.3. И эксперимента ради подключю 1602 дисплей. (2004 к сожалению у меня нету)

28.01.2019 в 19:27
0

У дисплея SSD1306 тоже впаян регулятор на 3.3, на него можно подавать 5в.

Картридер например такой: тоже со встроенным LM1117, и без преобразователя уровней, там только подтягивающие резисторы, проверено, работает!

Но если вам очень хочется подключить их на 3.3в, пожалуйста, но от отдельного источника, в смысле от отдельного LM1117-3.3.

30.01.2019 в 17:49
2

Простите что встреваю. Повторите как у автора один в один. Без своих доработок. Проверьте как работает. И если все отлично, начните допиливать как вам 'хочу'. ЭТО же очевидно. В чем сложность?
Частенько наш опыт(читай привычки) может с нами сыграть шутку. Удачи.

30.01.2019 в 07:51
0

Вот почему из платы в плату кочует один и тот же косяк, заложенный ещё давным-давно. 3-пиновый разъём концевиков, в котором сигнал на крайнем контакте. Лёгким движением руки втыкаем разъём не той стороной и из платы идёт волшебный дым. Так как какой-то идиот поместил сигнал на крайний контакт. Ибо разумных объяснений такой распиновки нет.
А все повторяют, репрап же, нельзя от канонов отходить. :(

Надо наконец засунуть его средним и не заморачиваться более. И это было бы естественно.
А так приходится впаивать последовательно с концевиком резистор, дабы исключить внезапный феерверк.

31.01.2019 в 11:48
0

Заказывал платы из статьи, осталось несколько штук, кому надо - в личку, отдам практически по себестоимости.

31.01.2019 в 16:15
0

У китайцев заказывали? Можно фото посмотреть?!

31.01.2019 в 17:12
0

Да, у китайцев, мы там заказываем платы под свои нужды, а эти платы - довеском к основному заказу, для себя. Фотку могу прислать, но ни здесь ни в личке не дает возможности прицепить изображение.

31.01.2019 в 18:57
0

Как же так?

31.01.2019 в 19:43
0

У меня нет редактора и форма простая без всяких кнопочек

31.01.2019 в 19:48
0

Для таких случаев есть
ipic.su

31.01.2019 в 19:59
0

хорошо, завтра найду чем сфотать

01.02.2019 в 10:52
1

поменял комп, теперь появился редактор, фото, такое как есть, но платы уже почти все разобрали, их было мало и осталась последняя
[IMG]https://i.ibb.co/hXmj3JG/IMG-20190131-165210.jpg[/IMG]

01.02.2019 в 20:51
0

Норм.

31.01.2019 в 11:48
0

Наверно, попробую повторить. Только плату сам переразвёл, так как запитка 1117-3,3 от 12 вольт категорически не нравится(китайские 1117 плохо его переносят), поставлю дополнительно 7809.
Разъёмы концевиков нормально сделаю.
На плате МК сдую STM32F103C8T6 и запаяю STM32F103RET6
И, поскольку место оказалось на плате лишнее, сразу развёл управление мосфетами от ir4427

01.02.2019 в 00:44
0

На плате МК сдую STM32F103C8T6 и запаяю STM32F103RET6
Только у одной 48 ног а у другой 64 удачи вам

03.02.2019 в 04:13
0

Н-да, это я лопухнулся.

Ладно, STM32F103C8T6 по любому можно заюзать.

Платы с  STM32F103RET6 на алике стоят 7-8 баксов,  так что можно и её попробовать.
Только она шире, однозначно плата больше выйдет

16.02.2019 в 08:53
0

Я на STM32Discovery с F103RCT6 собирал. Но нужно допиливать Marlin. 256кБ на первое время достаточно. В любое время можно на 512 соскочить.

31.01.2019 в 14:30
0

Заказал ещё 4 синих пилюльки. И две платки сд карты. Результат один и тот же. Карту видит. Жмём печать. На дисплее Е0 нагрев.... И все.... На PA2 ноль. Ошибки нагрев не удался тоже нету. И если через меню сделать отмену печати. То даже в ручную нагрев не включается. До сброса. После сброса норм в ручную нагрев включается. Перепробовал 4 олед дисплея. Один двухстрочник(1602) 4 кардридера. Платы один в один две штуки. Пробывал и навесом на пилюльку результат один. Куда дальше копать ну совсем не представляю....

31.01.2019 в 16:12
0

Дисплей и SD-карта запитаны от отдельного источника? Или вы по прежнему пытаетесь сделать по своему?!

31.01.2019 в 17:14
0

От отдельного

31.01.2019 в 19:11
0

вот скрин из статьи выше:

На прошлой версии прошивки работал таймер 3, сейчас таймер 1.
Но у вас похоже другая проблема, так как у вас на плате напаяна куча ненужных перемычек..

31.01.2019 в 19:23
0

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

31.01.2019 в 19:39
0

Пишите в личку, помогу.

05.02.2019 в 14:05
0

Засада с Клипером I2C порт на STM32F103  не реализован и олед дисплей неподрубишь уже

06.02.2019 в 20:35
0

А куда z-probe с финальной версии исчез? ( Откуда вять пин на него можно. На дельту хочу плату собрать...

07.02.2019 в 09:45
0

Все пины выведены на разъемы EXP1,2 для дисплея на параллельной шине. Если его не использовать, то появятся свободные пины. Смотрите по схеме.

28.02.2019 в 19:28
0

Да как вы ее собираете? третью неделю бьюсь, все никак, то atomic не найдет, то double inline

28.02.2019 в 20:59
0

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

02.03.2019 в 17:08
1

В общем помогло только всё вместе:
1. STSTM32 v4.5
2. src_filter = ${common.default_src_filter} + -
3. В cdefs.h

 #if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)

#define __always_inline __inline__ __attribute__((__always_inline__))
#else
#define __always_inline
#endif

убрать __inline__ __attribute__((__always_inline__))

#define __always_inline
#else
#define __always_inline
#endif

02.03.2019 в 16:48
0

Подскажите, может кто сталкивался? Настраиваю прошивку, заливаю, экран работает(0,95'), энкодер работает, прогреваю стол, обращаюсь к карте, и что то идет не так. Контроллер вроде не висит, по меню првгает, на энкодер отзывается, но стол продолжает греться(или экструдер) бесконтрольно, и рост температуры не отображается. Заливаю предыдущую прошивку(остался файлик) все работает без проблем

02.03.2019 в 19:47
0

рост температуры не отображается
Видимо поэтому и продолжается нагрев.
Надо смотреть, в чем разница между текущим и предыдущим конфигом.

02.03.2019 в 20:11
0

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

02.03.2019 в 21:04
0

Нагрев продолжается только по иконке на дисплее или фактически есть сигнал на выходе?

02.03.2019 в 22:12
0

Фактически, иконки(это не только стол, но и экструдер) на дисплее отображают температуру, которая была фактически в момент обращения к карте, а греет по полной, контроллер греет изо всех сил, при чем защита('Thermal Runaway' или 'Heating failed') его не вырубает. Если обратится к карте до того, как включить разогрев, не важно, стола или экструдера, разогрева не будет. На главном экране температура, до которой греть, установится, но выходы контроллера будут молчать.

03.03.2019 в 19:19
0

Проверить у себя не могу, так как у меня снова ничего не компилируется, даже в версии STSTM32 4.5.0.
Опять разработчики чего то там понафиксили в platformio ..

04.03.2019 в 08:38
0

Большое спасибо! Теперь понятно, почему и у меня рабочий(не мой) конфиг перестал компилироваться

04.03.2019 в 20:24
0

Исправил platformio.ini, перезалил в общей папке.

ссылка
Спасибо за помощь jmz

05.03.2019 в 21:42
0

У кого проблемы с компиляцией, используйте обновленный platformio.ini (в общей папке)

Если будут ошибки SDIO, то
в файле:
MarlinsrcHALHAL_STM32F1HAL_sdio_STM32F1.cpp
заменить:
#ifdef __STM32F1__
на:
#if defined(__STM32F1__) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))

Перед компиляцией удалить папки
.pioenvs
.piolibdeps
в папке Marlin-bugfix-2.0.x

09.03.2019 в 00:09
0

Подскажите, какое максимальное напряжение может быть на разъеме PRINT_FAN? Просто у меня выше 3в, оно не поднимается

09.03.2019 в 21:24
0

Напряжение питания - минус падение на мосфере, т.е. близкое к напряжению БП. А что за мосфет поставили?

09.03.2019 в 21:27
0

Irfz44n

09.03.2019 в 22:36
0

Пороговое напряжение irfz44n - 4В. Другими словами - он не годится в эту схему, к сожалению. У меня трудятся IRF3708

09.03.2019 в 22:06
0

 

09.03.2019 в 23:32
0

Спасибо

10.03.2019 в 18:55
0

Собираю прошивку. Все компилируется, пока не подключаю карту, энкодер и экран SSD1306. Выдает

Подскажите, где проблема?

11.03.2019 в 07:16
0

В platformio.ini:
В 'build_flags = ' добавить в конце  -DSTM32F1
Из 'lib_ignore='  убрать U8glib-HAL
В MarlinsrcHALHAL_STM32F1u8g_com_stm32duino_fsmc.cpp заменить
#if defined(STM32F1) || defined(STM32F1xx)
на
#if (defined(STM32F1) || defined(STM32F1xx)) && defined(STM32_XL_DENSITY)

11.03.2019 в 21:51
0

Прошу прощения, но файла u8g_com_stm32duino_fsmc.cpp не существует в папке MarlinsrcHALHAL_STM32F1

11.03.2019 в 22:13
0

Вам нужно просто скачать актуальную версию прошивки.

13.03.2019 в 21:35
0

Под версией 4.5 проект не собирается, щедро посыпая разного рода ошибками.
К слову, заметил, что скачивает папку C:Users\.platformiopackagesframework-arduinoststm32-mapple. Пытаюсь побороть.

Вопрос еще вот в чем. Будет ли поддерживать full graphic smart controller ? 

13.03.2019 в 22:54
0

Это просто напасть какая-то. Я уж начинаю задумываться, а не слабоумие ли это в первой стадии??? В общем, все делаю по инструкции, компилируется с ошибкой
MarlinsrcHALHAL_STM32F1. ./. ./inc/. ./HAL/HAL_STM32F1/HAL.h:83:4: error: #error 'Serial port 0 does not exist'
меняю порт 0 на порт 1, и все компилируется норм, ошибок нет.
Подаю питание, экран признаков жизни не подает, ну и естественно энкодер и карту, да и вообще все, проверить с пульта не могу. Ну думаю, по крайней мере подключив к репитеру можно будет хоть в нули выйти, оси подвигать, на карту заглянуть, но не тут то было, при подключении к компу, устройство не опознано. Беда.
Заливаю старую прошивку(с немного завышенными ускорениями и рывками, и с не калиброванным пид), все работает, и экран, и коннект по усб и энкодер и карта. Явно где то в прошивке беда, а где, ума не приложу, хотя его, ум, обычно прикладывают туда, где знают, а я, по самоуверенности, полез в дебри, доселе мне незнакомые, вот и мучаюсь. Без помощи многоуважаемого сообщества мне не осилить, поэтому прошу помощи, как поправить подключение по юсб, и как экран (на SSD1306) заставить работать? Все рекомендации, ранее описанные, проделывал. Прошу помощи..

13.03.2019 в 23:09
0

Аналогичная проблема по порту

14.03.2019 в 07:04
0

Давайте ссылку на ваш конфиг (Configuration.h, Configuration_adv.h, pins_MORPHEUS.h).
Посмотрю у себя.
У меня все норм компилируется, и на новой прошивке и на обновленном platformio.

14.03.2019 в 17:48
0

Вот ссылка https://drive.google.com/open?id=1ARUzo3mFjn4uTj3kId07FUQfO5weAWLS
Буду признателен за помощь

14.03.2019 в 18:41
0

Скомпилировал без проблем
ссылка на bin

порт: Serial port 0

14.03.2019 в 21:04
0

Огромное спасибо за содействие. Ну а теперь по теме. Это как в том анекдоте, 'Я ж говорил, место здесь проклятое'))) В общем, проблема никак не решилась. Все ровно как и было. Значит где то у меня косяк в configuration.h и в pins.h. Значит еще время не пришло для решения этой задачи)))) В любом случае, огромное Вам СПАСИБО.
К слову сказать, прошивка, которая компилируется и меня, занимает 97,1% памяти.

20.03.2019 в 22:03
0

#if !WITHIN(SERIAL_PORT, -1, 5)
#error 'SERIAL_PORT must be from -1 to 5'
#endif
#if SERIAL_PORT == -1
#define MYSERIAL0 UsbSerial
#elif SERIAL_PORT == 0
#error 'Serial port 0 does not exist'
#elif SERIAL_PORT == 1
#define MYSERIAL0 MSerial1
#elif SERIAL_PORT == 2
#define MYSERIAL0 MSerial2
#elif SERIAL_PORT == 3
#define MYSERIAL0 MSerial3
#elif SERIAL_PORT == 4
#define MYSERIAL0 MSerial4
#elif SERIAL_PORT == 5
#define MYSERIAL0 MSerial5
#endif

21.03.2019 в 19:04
0

С такими ошибками не встречался.

Давайте ссылку на ваш конфиг (Configuration.h, Configuration_adv.h, pins_MORPHEUS.h).
Посмотрю у себя.

21.03.2019 в 19:14
0

Не, это новый hal.h в Марлине, для usb serial выбирать -1, uart 0 в stm32 нету

20.03.2019 в 21:22
0

Внимание. если вдруг кто будет заказывать плату у китайцев тут https://www.pcbway.com/project/shareproject/RABPS_32bit_by_3dmaniack_3dtoday__ARM_BluePill_Shield_.html указывайте однослойную фольгу - иначе придётся подрезать три проводника переносящие usb разъём c blupill на плату. или правьте топ слой в гербере - там коза. видна даже на рендере.
комментарий у них я написал на всякий пожарный.
Пришли просто с козой платы двухслойные - не просмотрел проект перед заказом, буду руками подрезать чтобы не перезаказывать.

20.03.2019 в 21:35
0

Я же вроде удалял эти лишние линии в слое Bridges, версия от 25.12.18. К китайцам попал видимо старый вариант.

23.03.2019 в 15:36
0

del

23.03.2019 в 17:23
0

Заводские платы [url]https://3dtoday.ru/board/advertisement/781363/

24.03.2019 в 11:43
1

Устал я устранять новые косяки в каждой новой версии прошивки Marlin 2.0.x, поэтому выкладываю старую проверенную версию прошивки в общую папку RABPS:
ссылка
На ней все отлично компилируется, в Visual Studio Code + Platformio.
Ссылка на общую папку.

24.03.2019 в 22:38
0

Спасибо огромное. 3-й день бьюсь, аж завидую людям у которых проблема 'не компилируется'. Platforms ST STM32 4.5.0 установил, папки framework-arduinoststm32 ну нету у меня и все, хотя в списке Packages она есть, ссылку кидает на гитхаб с архивом Arduino_STM32-master, в котором этой папки нет, ладно думаю, разахивирую файлы туда, может появится, чуда не случилось. Как установить версию core 4.0.0a1 platfirmio, вообще не представляю, может все дело и в этом. Если прокатит вариант скиньте кто нибудь папку framework-arduinoststm32, вручную ее подолью. И что бы не плодить сообщений лишних 
Для этого в файле 
C:Users\.platformiopackagesframework-arduinoststm32STM32F1variantsgeneric_stm32f103coard.cpp
исправить #ifndef на #ifdef
в строке:
#ifndef CONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
Редактируем его в platfirmio?
Спасибо тем кто поможет.

25.03.2019 в 17:39
0

папки framework-arduinoststm32 ну нету у меня и все
Папка немного поменялась в новой версии:

C:Users\.platformiopackagesframework-arduinoststm32-mapleSTM32F1variantsgeneric_stm32f103c
Редактируем его в platfirmio?
В чем угодно. Я например редактирую в WordPad.

26.03.2019 в 18:51
2

Перезалил прошивку RABPS , так как в предыдущей версии были проблемы с отображением температуры.
Проверена компиляция в последней версии Visual Studio Code + Platformio.

Если будут проблемы компиляции, то в файле:
C:Users\.platformioplatformsststm32oardsgenericSTM32F103CB.json
заменить:
   'variant': 'MAPLEMINI_F103CB'
на
   'variant': 'stm32f1'

29.03.2019 в 11:51
0

UPD: нашел сверху ссылку, спасибо

04.04.2019 в 20:24
0

Огромное Вам спасибо за труды!!!

09.04.2019 в 20:37
0

У кого-нибудь компилится?)

17.04.2019 в 16:28
0

Конечно компилится. Очень, очень старая сборка, на старом фреймворке. Из нового Marlin я беру только те изменения, которые касаются алгоритмов печати, а HAL часть не трогаю.

21.04.2019 в 12:02
0

На свежую винду установлен свежий VSC и ST STM32 версии 5.2.0 - все компилится без проблем

21.04.2019 в 20:32
0

Блин, везет. Я уже и все древние версии STSTM32 перепробовал и древний билд марлина из комментов выкачал...

21.04.2019 в 20:40
0

древние почему то не компилируются никак. Отсюда '3dmaniack 26.03.19 в 18:51' сборка компилируется норм. Какие ошибки выдает? что за экран?

21.04.2019 в 20:58
0

На HALы ругается. Не компилируется даже с дефолтным конфигом.

21.04.2019 в 21:20
0

О, а на лине компилируется!

05.05.2019 в 00:25
0

Свежие версии марлина еле-еле умещаются в 128к. Поддержка EEPROM уже не лезет.
Однако, надо на F103RET переходить.

05.05.2019 в 15:20
0

Нужна помощь, нужно подключить eeprom на I2c.
При подключил в Configuration.h  eeprom, не получается скомпилировать прошивку. При компиляции пытается прописать eeprom на SD карту и вываливает кучу ошибок.
Экран на SH1106 работает по i2c шине.

Собираю на f103vet (512k), впихнуть можно все что угодно. SD карта не нужна, есть MKS TFT

06.05.2019 в 23:15
0

Тоже интересует вопрос использования i2c eeprom. Посмотрел исходники марлина. Однако надо править HAL, в HAL_STM32F1 отсутствует код для нее. Есть только код для эмуляции на sd-карте и в памяти программ. 
Может соберусь с духом и поковыряю, но сначала надо плату с процессором пожирнее взять. В наличии только синие таблетки, но в них уже не лезет.

07.05.2019 в 18:24
1

Выше выкладывал ссылку на старую версию прошивки
Там всё норм с компиляцией и вместимостью в памяти.

07.05.2019 в 18:42
0

Да, собственно, снапшот трехдневной давности на свежем platformio прекрасно собирается, главное не забывать в новых версиях serial port выставить в -1. С oled ssd1306 занимает 99,2% флэшки. Пока все отлично, но тем, кто хочет 'на вырост'.... Всегда мало :)

И спасибо за плату (сам пока морфеусом пользуюсь, кондеры навесом подпаял), а главное - за идею!

08.05.2019 в 16:18
0

Да, собственно, снапшот трехдневной давности на свежем platformio прекрасно собирается
А температура на этой версии нормально отображается?

11.05.2019 в 23:30
0

Действительно, 'УБЕГАНИЕ ТЕМПЕРАТУРЫ' и хоть ты убейся.
Надо разбираться.

12.05.2019 в 11:43
0

Поэтому я и выложил старую версию прошивки, на которой это работает.
В свежих версиях прошивки поломали поддержку STM32F103 напрочь.

12.05.2019 в 11:51
0

Спасибо! С Вашей все заработало.
Но все равно надо и с новой разбираться. Когда донастрою железо и станет понятно, что на старой все правильно работает - можно будет и новую копнуть, и поддержку i2c eeprom запилить.

12.05.2019 в 12:14
0

Кстати, только что заметил, что даже в Вашей прошивке, но собранной с новым фреймворком (platformio ststm32), отвалился термистор стола (нога pb0/adc8). Термистор сопла вроде работает. Будем искать, с какой версии сломали.

12.05.2019 в 14:38
0

В новом фрэймворке тоже поломали все. Нужно использовать старый или:

в C:Users\.platformioplatformsststm32oardsgenericSTM32F103CB.json
заменить:
'variant': 'MAPLEMINI_F103CB'
на
'variant': 'stm32f1'

12.05.2019 в 18:57
0

Не помогло. И, кстати, Ваша старая прошивка с яндекс.диска собралась с таким же глюком.
На давным-давно скомпилированной прошивке, еще времен Вашей статьи про Морфеуса, такого глюка нет. Слава КПСС, нашел ее в бэкапах, собирал 16 декабря еще.

13.05.2019 в 07:23
0

Тогда надо поискать прошивку версии до 16.12.18

22.05.2019 в 20:02
0

Уже запилена поддержка i2c EEPROM в моей версии марлина

22.05.2019 в 20:04
0

Ее просто нужно перенести из F407, ничего там запиливать не нужно.

22.05.2019 в 20:00
0

Версия 11-02-19 [url]https://drive.google.com/open?id=1IyCrdi5AEOYdgBEVCXkmXuT2kI2NxGLp
Работает все отлично, EEPROM подключен по I2C, Не нужно собираться с духом и что-то ковырять) Скачал кстати за 21-04-19, и принтер начал печатать кубик в два раза большей высоты с дырявыми стенками) Неделю провозился, пока не вернул старую версию и глюк исчез. 

12.05.2019 в 23:41
0

На свежей прошивке (28 апреля) с отключенными THERMAL_PROTECTION_* точно такое же поведение.
Соответственно, надо искать, где сломался ADC8 (PB0).

13.05.2019 в 23:09
1

Докладываю!
Снапшот от 3 декабря 2018 года собрался прекрасно с платформой ststm32 версии 4.5.0 и показывает нормально обе температуры - и стол, и хотэнд.
Для выбора версии платформы в platformio.ini в секции [env:bluepill] меняем строчку 'platform    = ststm32' на 'platform    = ststm32@4.5.0'

Попробую на свежей прошивке перекинуть термистор стола на ADC3 (он же PA3), в Морфеусе занят сигналом SDSS. Посмотрим что с ним. Если заработает - надо рыть инициализацию АЦП в свежем фреймворке.

Ну, или как вариант, переходить на 103RET :)э и не поджиматься с выводами - там их полно на все случаи жизни.

Но уже не сегодня. С копыт валюсь.

22.05.2019 в 19:55
0

Отличный проект, спасибо автору за статью. 
Для тех кто не любит травить и паять есть готовое решение Blue Pill контроллер для 3D-принтера (32 bit 72 МГц) плата для RAMPS

23.05.2019 в 00:55
0

Дисплей OLED SSD1306 подключается к SCL2/SDA2/GND/+5V разъема EXP1, см. схему.
Не могу найти на вашей схеме SCL2 SDA2

23.05.2019 в 16:30
1

Как же?

23.05.2019 в 17:06
0

Понял, спасибо, не догадался открыть файл схемы искал в картинках самой статьи.

27.05.2019 в 18:03
0

а есть герберы для заказа у китайцев на jlcpcb???

18.10.2019 в 16:45
0

Мазафака, мудацкий платформио, нифига не хочет собирать, каменты выше читал, файлы правил без результатно, других вариантов скомпилить прошивку нету? или как эту мудистику понизить версию, на какой еще все собиралось?

22.10.2019 в 10:32
0

Собрал плату, скомпилировал прошивку с Яндекс диска, залил и вот такая бяка с экраном, похоже на правду, но не до конца... постепенно изображение меняется и мусора становится больше.

И этот же экран, если подключать к skr_v1.3, т.е. экран рабочий

Пробовал подключать экран напрямую к stm32 без платы RABPS и пробовал скетч "Hello world" из библиотеки LiquidCrystal, компилил так же в platformio. Выводится так же не то, что нужно: строка читаема, но присутсвуют левые символы и выводится не там , где надо.
Может кто сталкивался, ткните куда копать... Может какие задержки надо выставить, вот только где?

22.10.2019 в 10:56
1

А вы уверены что с 2004 нет проблем? Проверяли его в привычной конфигурации с мегой к приме?

Также Учитывайте тот факт, что для 2004 нужно питание 5в. Если есть проблемы с питанием, такая картинка как у вас  легко может быть. Возможно проблема с недостатком уровня лог "1" (так как стм32 работает от 3в)конкретно для вашего экземпляра.

22.10.2019 в 12:07
0

До этого экран стоял на ramps 1.4+2560 и все было хорошо, а сейчас решил перевести принтер на 32 бита и пытаюсь собрать вариант из статьи, так как из комплектухи  почти все было ). Питание на экран подавал отдельное, когда подключал без RABPS, а когда с ним, то брал с платы RABPS, там с 7805 с нормальными 5в. Возможно с логическими уровнями что то не то, но LPC1768 в skr_v1.3 тоже трехвольтовая и ей хватает. stm-ку другую подключал, не помогает. 

30.10.2019 в 18:35
0

Возможно библиотека LiquidCrystal не той версии.

06.11.2019 в 11:54
0

Прошивку использовал вашу с Яндекс диска, там в platformio.ini версия жестко прописана:
LiquidCrystal@1.3.4, пробовал и более новую, не помогает.

Платформы тоже разные в ini прописывал, в том числе и рекомендуемую 4.5.0, результат одинаковый. Пока в экспериментах, если что-то выйдет, отпишусь. 

29.10.2019 в 21:20
0

А стоит ли подключать экран через 74hs595 или mcp23017?

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

Читайте в блогах

Обзор TPU SolidFilament

Растворимые поддержки для ABS и Лимонен (D-Limonene).

Рука

Технологии аддитивного построения (3D-печати), применяемые к литью металлов

Как я заказывал у REC пробник FormaX и что из этого вышло

Печатаем люминофорные светящиеся изделия