Надеюсь, кому-то мои старания тоже пригодятся...

Спасибо за интерес, сделал merge. Только ты хоть что-нибудь от моего PR оставь в конце, не выбрасывай, а то не будет понятно, откуда этот бутлоадер вообще взялсяrussian wrote:Крутая штука! Я медленно можно буду потихоньку вкуривать?
1) я тупо скопировал первые три файла. Можно тебя попросить попробовать merge from remote master в себя - цель отщипывать по одному файлику из PR, чтоб несколькими шагами всё очень подробно прочитать и понять?" сейчас "Files Changed: 16", хочу попробовать сделать сначала 13, потом 12 и так далее?
Да, есть документация на протокол. Добавил ссылку на соответствующий appnote.russian wrote:2) dfu.h наводит меня на подозрения, что где-то есть документация на этот протокол? Можно тебя попросить прямо в dfu.h добавить ссылку, откуда идёт сакральное знание например #define DFU_GO_CMD 0x21?
Внутри FLASHER-STM32 (flash_loader_demo_v2.8.0) есть два исполняемых файла:russian wrote:3) меня бесит немного эта ST DFU поделка, она не поддерживает командную строку и вообще ужас-ужас. Или для начала ST поделку заставить работать с параметрами командной строки? Или она умеет, и я что-то упускаю?
Да, в конечном итоге нужно будет сделать единую интегрированную среду, куда встроить программатор. Но это уже задачи для последующих итераций, в духе agile-парадигмы.russian wrote:Если делать хорошо, то нам получается нужно сделать вкусный программатор на java в консоль?
Спасибо Андрею за оперативное добавление этой фичи! Заодно добавили код и для модуля HC-05.andreika wrote:написал простенький код инициализации для модуля Bluetooth!
Да, вроде для некоторых модулей нужно ещё пин дёрнуть. Для HC-06, к счастью, не надо. По крайней мере, теперь у нас есть программная часть, в которую можно добавлять и другие модули.puff wrote:там же надо какой-то дополнительный пин использовать для конфигурации?
Гаражные испытания, по плану, на этой неделе.russian wrote:как твоя плата в целом, когда уже тыр-тыр?
Code: Select all
MAIN_RELAY_LOGIC=(time_since_boot < 2) | (vbatt > 5)
Code: Select all
// initFsioImpl() {
if (boardConfiguration->mainRelayPin != GPIO_UNASSIGNED)
mainRelayLogic = sysPool.parseExpression(MAIN_RELAY_LOGIC);
//...
// runFsio(void) {
// instead of enginePins.mainRelay.setValue(true);
setPinState("main_relay", &enginePins.mainRelay, mainRelayLogic, engine);
Code: Select all
#define ADC_VCC 3.0f
Согласен. Давай тогда пока сейчас сделаем как-то так:russian wrote:1. т.е. зависит от компонентов на плате, чип-то работает в диапазоне значений. значит должно стать настраиваемым значением https://github.com/rusefi/rusefi/issues/442 - вот только это будет несовместимое изменение, значит на переходное вмемя всё-таки компилировать будем.
Code: Select all
--- a/firmware/hw_layer/algo/adc_math.h
+++ b/firmware/hw_layer/algo/adc_math.h
@@ -9,7 +9,9 @@
#define ADC_MATH_H_
// it is important that this constant is a float, not double literal
+#ifndef ADC_VCC
#define ADC_VCC 3.0f
+#endif
#define ADC_MAX_VALUE 4095
#define adcToVolts(adc) (ADC_VCC / ADC_MAX_VALUE * (adc))
Виноват, в реализацию ещё не заглядывал. Увидел три пары значений в TS и, думаю, "ну всё"...russian wrote:2. ай как обижаешь, "линейно по трём точкам" Мне кажется, что эта модель как раз точнее большого массива с интерполяцией?
Точнее в схеме дискавери, потому что по факту - дискавери. Там мутно - схема говорит U1 LD3985M33R - а вольтметр показывает 3.0? Может диоды? Я программистandreika wrote: А у вас там на плате действительно стабилизатор на 3.0В стоит? Просто на схеме Frankenso чётко написано 3.3В...
...
С датчиками есть определённые трудности. Есть обычные резистивные, с кривульками, которые логарифмически аппроксимируются. А есть интегральные, с квазилинейной характеристикой. Я ещё более подробно про них напишу, чуть позже...
К сожалению, он плохо реагирует - возникают экстремумы: (Красный цвет - заданная прямая, Синий цвет - график Стейнхарта, построенный по коэффициентам заданной прямой).russian wrote:Если он линеен, то нужно проверить как https://en.wikipedia.org/wiki/Steinhart ... t_equation отреагирует на три точки на одной прямой.
Посмотрел, какая скорость была в СЕКУ и выставил идентичную:andreika wrote:Вот что меня беспокоит - это РХХ (шаговый):
- двигается медленно (раза в 3-4 медленнее, чем в СЕКУ).![]()
Code: Select all
#define ST_DELAY_MS 2
Code: Select all
+#ifndef ST_DELAY_MS
+// todo: migrate to engineConfiguration->idleStepperPulseDuration
#define ST_DELAY_MS 10
+#endif /* ST_DELAY_MS */
Спасибо, что находишь время на проект и на мои "хотелки"!russian wrote:У меня этот июнь необычно геморройный месяц, извиняюсь за лаконичность.
Да, именно твой issue я и видел.puff wrote:я еще в январе об этом говорил
Спасибо Андрею, что оперативно добавил поддержку stepperDirectionPinMode!andreika wrote:И как раз написал небольшой PR на эту тему!
Я исходил из того, что это стандартная фича платы, под которую изначально закреплён выделенный пин. Т.е. на плате есть универсальные Out1 и Out2, которые юзер как раз может назначать через fsio, а есть mainRelay, ECF (fan), starterblock, fuelpump. Т.е. я отношу starterBlock именно к стандартным фичам, в отличие от, скажем, shift light, потому что стартёр есть практически у всех, и все его используют. Это востребованная фича, практически без недостатков. Да и для управления втягивающим реле стартёра достаточно всего лишь обычного реле - это доступно многим. Кроме того, управление реле стартёра относится непосредственно к компетенции ЭСУД, т.к. оно завязано на пороговое сравнение rpm и cranking_rpm.russian wrote:А нужны ли для таких необычных дел выделенные стандартные пины? это очень похоже на fsio пины настраиваемые?
По такому случаю я позволил себе легонько доработать блокировку стартёра через fsio - см. соответствующий PR.russian wrote:настраиваемые ввод-вывод очень потенциально полезны.