DevBoy — как я создал проект устройства с открытым исходным кодом и запустил проект на Kickstarter

Привет, друзья!

Меня зовут Николай, читателем Хабра являюсь давно, а вот с написанием статей как-то не сложилось. Пора исправлять эту ситуацию, тем более что как раз имеется повод — только что я запустил компанию на Kickstarter для реализации устройства с открытым исходным кодом.



Кому интересно — прошу под кат.

Так уж сложилось, что с детства я имел доступ к прогрессивным технологиям своего времени (Atari 65XE, ZX-Spectrum, EC1841 и т.д.), что предопределило не только выбор профессии, но и привило отличное (как я считаю) хобби — программирование и разработка чего-нибудь.

В дальнейшем судьба преподнесла мне еще один сюрприз — возможность эмиграции в США три года назад. При этом мне повезло дважды — практически сразу я нашел работу именно в той области которой хотел: C++ и микроконтроллеры.

С этого момента мое увлечение получило новый "толчок". Во-первых я познакомился с замечательными микроконтроллерами STM32 от компании ST Microelectronics(до этого я баловался с Atmel AVR). Во-вторых с первой зарплаты я купил 3D принтер. По своей сути я перфекционист — с одной стороны это хорошо — делаешь вещи на совесть, а с другой… порой не получается довести проект до конца только лишь потому, что не выходит он "перфектным". Печать корпусов и возможность заказа печатных плат фактически вывели возможности по созданию проектов на новый уровень.

И вот однажды, перебирая разные заказанные модули для построения простейшего осциллографа и пытаясь разместить их на макетной плате я вспомнил об игрушке которую давным давно когда-то купил когда ходил еще в колледж: о GameBoy. Быстро прикинув возможную компоновку решил: буду делать! Причем сразу в голове мелькнула идея: "А ведь не только кнопочки используются-то! Иногда используются джойстики, иногда используются крутилки… а почему бы не сделать съемные модули?". И работа закипела: пайка прототипа, программирование, разработка и печать корпуса, опять программирование… в результате держа в руках рабочий прототип пришло осознание того, что идея-то не плоха. Опять все закрутилось по-новой, только добавился этап заказа печатных плат, причем не только для mainboard но и всех модулей, т.к. подходящих найти не удалось. Причем, поскольку китайцы изготавливают платы по 10 штук, сразу было решено делать мелкую серию. Кстати, после изготовления этой серии я понял, что паять дальше в ручную(имеется ввиду мелкие серии больше 10 штук) — это не вариант.

В итоге получилось это:



Итоговые характеристики:

  • Базируется на микроконтроллере STM32F415RG, ядро Cortex-M4 работающее на частоте 168 MHz
  • 1024 KB ПЗУ и 192 KB ОЗУ
  • 2.8" экран с разрешением 320x240 точек и 16-тибитным цветом
  • Резистивный тачскрин
  • Два слота для модулей ввода, 4 I/O(2 из них могут оцифровывать сигнал с помощью АЦП) линии в каждом
  • Слот расширения с I/O линиями практически от всех выводов микроконтроллера
  • Слот для карт SD
  • И конечно же Open-source

Само устройство со всех сторон:



А вот так вот выглядит распиновка разъема расширения:



Внутри все выглядит так:



Вот так выглядит модуль с микроконтроллером:



А так его распиновка:



Модуль экрана:



И зарядника для литиевой батареи:



И наконец последняя часть — корпус:





Оранжевые штучки — это толкатели. Извлечь модуль та еще задачка. В итоге были придуманы эти толкатели. Когда модуль вставлен он их придавливает и кнопки сзади оказываются вровень с корпусом. Если же модуль надо извлечь — наживаем на толкатель и он выдавливает модуль вверх. Далее можно легко и просто его вытянуть.

Исходный код заслуживает отдельной статьи. Возможно напишу её позже. Из стороннего ПО используется System Workbench for STM32, STM32CubeMX и FreeRTOS. Это все бесплатные проекты. К этому всему написаны C++ FreeRTOS wrapper, задачи обслуживания экрана, тачскрина, звука и ввода.

image

Особенно интересен вывод графики — прототип с микроконтроллером STM32F103 мог выводить на экран игру типа Марио с частотой 15 кадров в секунду пр разрешении 320x240 и имея всего 20 Кб ОЗУ на борту(фреймбуфер исключается), при этом ограничение скорее всего было из-за частоты работы SPI. На STM32F415 с частотой SPI вдвое большей выходит 30 кадров в секунду.

Ну и в заключение оставлю ссылки:


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

Если спросить меня о долгосрочных планах, чего же я хочу в итоге ответ будет простым: создать компанию с идеологией open software и open hardware, заниматься своим любимым делом и помогать другим людям как делают это Adafruit и Sparkfun.

Если вдруг текст покажется сумбурным — не судите строго, сейчас уже почти час ночи… задавайте вопросы в комментариях — постараюсь ответить.
Поделиться публикацией
Комментарии 101
    +10
    И 20 и 30 FPS для подобного игрового устройства (низкое разрешение, 2D) в современном мире маловато. Для динамических игр стандарт 60, выдерживался на том же Game Boy, где железо слабее на несколько порядков, и на всём до него, начиная с 1977 года. Ну и вообще, если устройство позиционируется как открытая игровая платформа, важнее не железо, а инфраструктура, средства разработки — это показывает опыт PICO8. Т.е. от низкого уровня, быстрый рендер и синтезатор звука, сравнимые с тем же GB©, и далее, удобная среда разработки, необходимые библиотеки, редакторы ресурсов, и т.д.
      +5

      Ну, не тот тип игр, чтобы наслаждаться плавными 60фпс. Но 15 это и правда очень мало.

        0
        Чем меньше диагональ экрана, тем меньше заметен низкий фпс, так что с этим гуд.
          +5
          Практически у всех портативок прошлого (GB, Game Gear, Lynx, TurboExpress и т.д) экран был не больше (около 2.6 дюйма) и абсолютно несравнимо ниже качеством, но все они тянули 60 FPS в 95% игр, и разница была хорошо видна. На современных эмулирующих портативках значительно пониженный FPS в играх хорошо заметен и по сути делает их просто не выполняющими свои функции.
            0

            В играх, где надо много и точно прыгать низкий ФПС убивает весь игровой процесс.

          –1
          del
            +6
            На STM32F415 с частотой SPI вдвое большей выходит 30 кадров в секунду.

            А что взять более другой в линейки и писать через FSMC — это экономия на центах?

              0
              Экономия на размерах. Не получилось бы сделать компактный модуль с микроконтроллером. Пришлось бы убивать идею модульности.
                +6
                Модуль с контроллером не нужен. На фига модуль с контроллеров если всё в графику упирается? Контроллер должен быть по-мощнее и с параллельной шиной к ЖКИ. И место под пару плат расширения с интерфейсами SPI/I2C/FSMC.
                А всё остальное при желании можно модульным сделать.
                  –3
                  Для игровой системв — да. Для системы с открытым исходным кодом где можно этот модуль использовать отдельно вообще без экрана — модульность нужна.
                    +1

                    Отдельных модулей как грязи. Смысл делать еще один?

              +3
              «И наконец последняя част — корпус»

              — запомните, дЭти, вилька и тарелька пишутся без мягкого знака, а сол и фасол с мягким. (с)

              — Ну а если серьезно, зверек мне понравился. Попахивает денди…
                0
                забыли «бутильку» и «вермишэл»
                  0
                  Спасибо, подправил.
                  0
                  Кнопки установлены на односторонних платах без металлизации? Не поотрываются пины?
                    0
                    На фото ж видно переходные на их платах.
                    0
                    Кстати, после изготовления этой серии я понял, что паять дальше в ручную(имеется ввиду мелкие серии больше 10 штук) — это не вариант.

                    Я бы почитал подробнее, какой в итоге вариант был выбран и почему.

                    И в целом, сам по себе набор не слишком интересен (говорю за себя). Но почему бы не произвести сравнения с аналогами по части dev платы и обосновать, чем Ваш вариант лучше/круче/дешевле (или почему дороже и оно того стоит). Хотя бы в сравнении с последними ревизиями teensy.
                      +1
                      Я бы почитал подробнее, какой в итоге вариант был выбран и почему


                      У нас, например, под прототипы нарезка трафаретов из пластиковой 100-мкм плёнки на плоттере, потом паста, расстановка вакуумным пинцетом, печка.

                      Паяльником мы не делаем даже штучные экземпляры, ну, за исключением случая, когда вот совсем срочно надо вот совсем простенькое.
                      0
                      А на чём контроллер заряда сделан? Выглядит как что-то избыточно многоногое и не видно отдельно стоящей типовой защиты.
                        0
                        Вероятно какая-нибудь BQ24xxx. Что действительно избыточно и странно — сэкономить на МК с FMC и поставить что-то дороже 30 центов на АКБ.
                          0
                          Ну, 30 не 30, но что-то типа BQ24090 + AP9211 тут смотрелось бы адекватно — а стоит, похоже, чудо-юдо доллара за полтора-два.
                          0
                          MCP73871 — Stand-Alone System Load Sharing and Li-Ion / Li-Polymer Battery Charge Management Controller. Это именно контроллер — батарея сидит на отдельном пине и в случае ее полного заряда контроллер питает устройство от внешнего питания. В обычных зарядниках нужно целятся на батарею. Из избыточного: три светодиода индикации(с балластными резисторами разумеется) и подтягивающие резисторы для задания конфигурации.
                            0
                            1) Ничего плохого в питании от батареи нет.
                            2) Защиту батареи вам добавлять необходимо. Иначе бахнет.
                            3) Из избыточного у этого чипа ценник.
                          +17
                          Не понятно в чём смысл проекта. Из статьи понятно только что у меня опенсурсный девайс на микроконтроллере и крутые сменные джойстики. Но стартовая цена за минимальную комплектацию — 129$, не знаю, может у вас в США принято деньгами раскидываться, у нас точно нет.

                          За такие деньги можно купить оригинальный геймбой, и вообще любую ретро-приставку при чём не одну, можно купить ту же Raspberry Pi или дешёвый андроид смартфон, поставить туда эмуляторы и ещё денег на геймпад останется (по USB-OTG или Bluetooth подключаемый).

                          Как устройство для разработчика? А что для него разрабатывать? И не проще ли самому собрать если уже разработчик? В общем как самоделка интересно, но ИМХО на готовое устройство под продажи не тянет.
                            0
                            Судя по расцветке, это что-то типа детского набора для самостоятельной сборки. Но это не точно.
                              0
                              Да, рассчитано в первую очередь на рынок США. Вас никто не заставляет раскидываться деньгами. Вполне можно собрать такое самому.

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

                              SergeyMax, какой пластик был, такая расцветка и получилась. "Детский" — это скорее уровня High School(10-11 класс) и колледж/университет.
                              0
                              А какой 3D принтер использовался для печати корпусов?
                                0
                                Дешевый китайский клон Prusa I3.
                                0
                                Почему именно SPI? Для чего-то графического разумнее имхо использовать дисплей с 16-ти битной шиной и FSMC.
                                  0
                                  Потому что тогда бы пришлось поставить все на основную плату и пропала бы идея модульности. Этот экран и модуль с микроконтроллером можно использовать отдельно в разных проектах.
                                    +1
                                    так поставили бы в корпусе LQFP 100 и два двухрядных хедера по бокам с шагом 2,0 мм или 1,27 мм. Не сильно бы больше был размер.
                                    0

                                    Зачем использовать FSMC, когда можно взять нормальный LTDC или DSI?

                                      0
                                      мне таки кажется что от LTDC без внешней SDRAM не сильно много толку.
                                        0

                                        А вот на fmc прикрутить внешнюю память. Цена вопроса небольшая.
                                        Ну и для отрисовки можно dma2d заодно использовать, из него спрайтовый движок делается без проблем.

                                          0

                                          На таком разрешении можно и попробовать. Собирал девайс с 2 слоями на встроенной памяти с разрешением 480х272 16бит. Правда на ф767

                                      +3
                                      Вам стоит вот с этим товарищем пообщаться, там и кадров в секунду сильно больше, и эмуляторы всего на свете работают:

                                      www.youtube.com/channel/UCmVFYDZEcJ3sVFal5K42F-Q/videos?shelf_id=1&sort=dd&view=0

                                      forum.easyelectronics.ru/viewtopic.php?p=561970#p561970
                                        0

                                        Интересная платка микроконтроллера. Жалко китайцы не делают аналогичные с мощными МК.

                                        +1
                                        Вещь занятная, для «поиграться на вечер». Но все эти съёмные джойстики бесполезны будут если для данной платформы не будут пилиться\портироваться игры
                                          0
                                          2.8" экран с разрешением 320x240 точек и 16-тибитным цветом

                                          ILI 9341 — Может и 18 bit.
                                          STM32F415RG

                                          Дорогой и не умеет FSMC.
                                          стартовая цена за минимальную комплектацию — 129$

                                          Китайцы продают готовые платы за 7-10$ stm32f407ve(512rom+192ram) + 16Mbit flash или stm32f407vg(1024rom+192ram) c обвязкой. 3.2 параллельный дисплей на том же ILI9341 за 10-15$ с дисплейным буфером. Отрисовка полного экрана меньше 8 мсек на 18 бит цвета.
                                          +Все остальное ~10$. Итого 35$. Я что то пропустил?

                                          В целом интересный проект. Малинка с ним не конкурирует, потребление у нее энергии слишком высокое для носимой электроники. А на данной платформе можно добиться менее 100 мА при работе дисплея и мгновенное включение(меньше секунды).
                                          Кроме того, можно получить очень маленький лаг на джойстики и клавиатуру.

                                          +5
                                          Кто целевая аудитория этого проекта? Игроки отпадают, т.к. у китайцев куча портативных устройств с меньшей ценой, лучшими характеристиками и готовыми играми. Программисты? Так и тут мимо, т.к. для развлечения можно писать игры под уже существующие платформы со своим комьюнити, которые смогут оценить твоё творение, и даже заплатят за это.
                                            +1
                                            Целевая аудитория — те кто наигрался с Arduino и хочет чего-то большего: настоящий дебаггер, настоящую IDE, настоящую RTOS и более высокую производительность.
                                              +1
                                              Тогда бы я посоветовал делать упор не на игры а на то что это devkit STM. И написать под него какие-то более утилитарные демки, вроде того же осциллографа. Устройство в изначальной поставке должно выполнять функции полезные целевой аудитории.
                                                0
                                                Игры — просто лучшая демонстрация как можно использовать все то, что уже написано. C++ FreeRTOS wrapper не "пощупаешь", задачи обслуживания экрана — тоже. А вот игра вполне неплохо показывает как это все может работать.
                                                Осциллограф у меня есть(правда под прототип на F103, буду портировать), но с ним одна проблема — нет аналоговой части. Фактически можно смотреть 0-3.3V, а что бы это был настоящий осциллограф нужна аналоговая часть которая бы приводила уровни к этому диапазону.
                                                  0

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

                                            +1
                                            В чём смысл крутилок и аналоговых стиков? В гейм-бое не было ни того ни этого, насколько мне известно. Аналоговые стики имеют смысл в 3Д играх, вроде Sony PS Portable, но как я понял, тут она не эмулируется. Тогда зачем этот конструктор вообще?
                                            Под самописные игры?
                                              0
                                              Смысл стиков: можно подцепить на разъем расширения передатчик и использовать как пульт управления моделями.
                                              Смысл крутилок: можно сделать аналоговую часть для масштабирования сигналов в диапазон 0-3.3V, подцепить ее к разъёму расширения и использовать как простенький осциллограф.
                                              Все с написанием соответствующих программ разумеется.
                                              Сейчас крутили используются в Pong'e — оригинальная игра использовала как раз-таки крутилки.
                                              0
                                              m5stack за $40 чем не вариант
                                                +1
                                                Чем больше вариантов всяких разных, тем лучше.
                                                +1
                                                Штука интересная, вдохновляет идея, но пока что я ее не поддержу.
                                                Как многие писали, хотелось бы:
                                                — 50-60FPS
                                                — VSync из коробки (или он есть?)
                                                — Поприличней экран (на прототипе выглядит сурово, и дело не в битности)
                                                — Хороший звуковой синтезатор и динамик.
                                                — Вход для наушников
                                                — Базовый графический движок для облегчения входа (есть уже?)

                                                Я понимаю, что это прототип, но прежде чем за него просить деньги, не лучше ли его доработать в соответствии с мнением потенциальных потребителей? Кстати, а кто они? Перечитал текст — не нашел ответа.
                                                Каково позиционирование устройства относительно других похожих? Оно сравнивается с GameBoy (Advance?), но получится ли из него выжать столько же? А ведь можно купить флеш карик и пилить homebrew для GBA.
                                                Это платформа для «баловства» программистов? Тогда точно нужен синтезатор и частота кадров для демосцен.
                                                Если это обучающая платформа, то нужен враппер на каком-нибудь Basic.
                                                Ну и ценник… Для кикстартера может и нормально, но финальная цена должна быть ниже.

                                                Всё выше сказанное — с моей кочки зрения.
                                                  0
                                                  Отвечал выше:
                                                  Целевая аудитория — те кто наигрался с Arduino и хочет чего-то большего: настоящий дебаггер, настоящую IDE, настоящую RTOS и более высокую производительность.

                                                  Про цены тоже писал выше. Цену можно сделать ниже, но для этого нужно сначало производство наладить. Пока я лишь взял цены у "конкурентов" — с одной стороны рынок их уже отрегулировал, с другой стороны за эти суммы это лействительно можно изготовить.
                                                    0
                                                    Про VSYNC. Обслуживание экрана делается в отдельной задаче. Для обновления экрана ее нужно «пнуть»(хотя можно и в редиме автообновления запустить). На время обновления экрана задача захватывает мьютекс. Так же его может захватить любая другая задача позвав DisplayDrv::GetInstance().LockDisplay();
                                                    Итого алгоритм: лочим экран(захват мьютекса произойдет когда закончится обновление кадра), делаем что надо, разлочим и пинаем задачу обновления. И так по кругу.
                                                      +1
                                                      Не, ну чувствуется тут суровый ZX Spectrum-подход, где не было видеосопроцессора и всё приходилось вручную делать.
                                                      Но на спектруме-то если всё сделать быстро и правильно есть награда: 50 fps.

                                                      А тут 15 на таком 32 битном монстре. Мало интереса и для игр и для демосцены.

                                                      Основная крутая фишка — это сменные джойстики, это прикольно, с этм можно сделать много клёвых инструментов (midi/osc).
                                                      Но вот если бы все остальные подсистемы были бы такие же клёвые как джойстики.
                                                        0
                                                        Да, все делается «вручную» но делается не вами. Если вам надо вывести строку вы просто создаёте объект типа String, вызываете метод для задания параметров(можно задать и при конструировании) и вызываете функцию у задачи обслуживания экрана для добавления этого объекта в лист. При этом можно задать Z — используется для определения порядка при отрисовке.
                                                        Далее если надо подвинуть зовёте str.Move(...); если надо сменить цвет зовете str.SetColor(...); если надо спрятать зовёте str.Hide(); — а вот как оно появляется на экране это уже не ваша забота. Тоже самое и с картинками, и с примитивами, и с Tile Map если хотите написать игрушку. Например демо Gario(анимашка в конце статьи) все это использует и программирование ее очень похоже на программирование для настоящего GameBoy. Только в нем Tile Map и спрайты делались аппаратно, а тут делаются программно, но это сути не меняет, т.к. не требует от программиста напрягаться для вывода этого всего на экран.
                                                        Если нужно выврлить что-то специфическое просто создаёте свой класс наследуемый от VisObject в котором переопределяете виртуальную функцию отрисовки одной строки в буфер и реализуете что надо — например отрисовка графика для осциллографа.
                                                        В общем как я и говорил, про программирование нужна отдельная статья — там интересностей не меньше чем с железной частью.

                                                        15 FPS это на сотой серии. На STM32F415 получается ~30 FPS.

                                                        Не знаю где вам мало 30 FPS кроме как для создания супер-динамичных игр. Звук да, прямоугольная волна, один канал. Но STM32F415 содержит ЦАП на два канала, он выведен на перефирийный разъем — нет никакой проблемы подключить усилитель и программно генерировать любые звуки — в этом и суть модульной системы для обучения и развлечения(если ваше хобби написание ПО и разработка чего-нибудь — любой ардуинщик подвадает под эту категорию).
                                                          +1
                                                          В оригинальном Super Mario Bros., который имитирует ваша демка, 60 кадров в секунду. 1985 год. Как и почти во всех двухмерных играх от их появления до прихода 32-битных приставок (на быстрое 3D мощностей стало всё чаще не хватать). Когда частота кадров ниже 60, в том же оригинальном SMB есть крайне редкие моменты проседания до 30, это очень сильно заметно и визуально и по управлению. Про необходимость 60 кадров в секунду для динамичного и отзывчивого игрового процесса японские геймдизайнеры твердят с начала игровых времён.
                                                            0
                                                            Повторюсь снова: это не игровая консоль. Этот проект "продвинутое Arduino" — для тех, кто из Arduino уже "вырос" с возможностью написания игр. Причем игр гораздо лучше(выше разрешение, все в цвете) чем предлагает тот же Arduboy собравший на Кикстартере больше 400к$. Причем Arduboy заточен только под игры. Я же предлагаю модульную и расширяемую систему, которая может быть основой для множества хоббийных поделок с возможностью повторного использования я кода в том числе и в коммерческих проектах без какой-либо оплаты.

                                                            И да, если брать NES, то частота там 50/60 полукадров в секунду.
                                                              +3
                                                              Мне кажется, что в случае с вашим проектом главной трудностью будет именно донесение его концепции до конечной аудитории.

                                                              На NES полукадр равен кадру, т.к. там нет интерлейса. Речь о полукадрах идёт только при полных 525 строках (для NTSC), а на NES весь растр 262 строки. Т.е. мы реально видим там честные 60 кадров в секунду, без всяких полу.
                                                    0
                                                    С M5stack и кастомами на зэро Вам будет сложно конкурировать, с такой-то производительностью.
                                                      0
                                                      а где брать на это чудо игры, они как то импортируются или работает по принципу эмулятора?
                                                        0
                                                        В первую очередь это не игровая консоль, хотя под нее можно писать игры.
                                                          +2
                                                          Устройство в форм-факторе игровой консоли, обладающее всеми её признаками, но позиционирующееся не как игровая консоль, вызывает некоторый когнитивный диссонанс.

                                                          Вообще подобных проектов за недавнее время было реально немало, но они хотя бы определялись, для кого они (типа аналогичного аппарата, но за $20, с прицелом на создание инди-маркета). И ни один толком не взлетел. Потому что если система игровая, то главное не она, а игры, а любители крайне редко делают хорошие игры (они любители, они пока не умеют и у них нет ресурсов). А если не игровая, то это очень нишевая штука, типа Gameduino или X Game Station, которая вроде бы есть, но никто ничего про неё не знает.
                                                        0
                                                        Идея занятная, но, как уже отмечалось выше, неясно, для кого это.

                                                        Выбор кикстартера как платформы неочевиден. Я полистал открытые проекты и не увидел ничего «для разработчиков». Сравните с www.crowdsupply.com например

                                                        Слышал от знающих людей что для того, чтобы собрать $1000 на кикстартере/индигого, нужно быть готовым потратить порядка $100 на продвижение. Как у вас с этим?
                                                          0
                                                          Слышал от знающих людей что для того, чтобы собрать $1000 на кикстартере/индигого, нужно быть готовым потратить порядка $100 на продвижение


                                                          Это не так.
                                                            0
                                                            поделитесь?
                                                              +4
                                                              У вас в маркетинге на Кикстартере четыре составляющие:

                                                              1) контент — текст, фото, видео
                                                              2) публикации в СМИ
                                                              3) тематические форумы
                                                              4) всякая баннерная реклама

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

                                                              Т.е. тут затраты околонулевые.

                                                              Второе — по гиковским проектам есть несколько больших СМИ, в данном случае это в первую очередь Hackaday. Часть изданий новости о незавершившихся проектах не берут вообще, в другую часть попасть можно, но трудно — авторам и редакторам валится невероятный объём шлака. Если очень повезёт — либо вы найдёте автора, которому интересны именно вот такие штуки, и подсунете ему свой проект прямо под нос, либо он там окажется чисто случайно (мы предполагаем, что изначально вы с авторами не работали).

                                                              Чтобы не уповать на везение, здесь надо нанимать PR-агентство, имеющее связи с авторами и редакторами, и способное показать им «смотри, у нас есть интересная штука, тебе надо?» так, что они гарантированно прочитают. Это стоит порядка тысяч долларов, но за эти деньги вам гарантируют выход в таких-то и таких-то изданиях.

                                                              Т.е. тут или околонулевые затраты с очень скромной вероятностью выхлопа, или более-менее фиксированная сумма. Фиксированная, но немаленькая.

                                                              Агентства, которые предлагают «размещение не менее 50 публикаций всего за 500 долларов», полное ведение кампании за проценты от неё и т.п. услуги — сразу лесом, там почти все мошенники. Всего за 500 долларов вы получите публикации в 50 помойках, которые не дадут вам вообще ничего. Агентство должно работать со СМИ и быть готово дать вам список этих СМИ и авторов, с которыми оно имеет контакт.

                                                              Тематические форумы — здесь вам работать только самим. Много бэкеров не выцепите, но зато и денег не потратите.

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

                                                              Соответственно, в данном случае, по большому счёту, статья расходов может быть одна — на попадание в Hackaday и ещё 2-3 крупных тематических (гиковских) СМИ через PR-агентство. Сложнее всего при этом будет найти не деньги на агентство, а само агентство — нормальные агентства тихо работают со своими постоянными клиентами, зато вокруг краудфандинга вьётся полно мошенников, которые с удовольствием организуют любую ИБД на ваши деньги.

                                                              P.S. Здесь мы не трогаем жирные проекты, целенаправленно идущие на большие сборы не ради производства продукта, а ради самого факта успешного закрытия кампании — например, чтобы далее на запах денег привлечь крупных венчурных инвесторов. Там возможно всякое: и на маркетинг может быть грохнута большая часть потенциальных сборов, и деньги могут заноситься самими участниками проекта. То есть, сама кампания может быть попросту в плановом минусе.
                                                                0
                                                                Не совсем в тему, но возможно даже автору поможет, для продвижения.
                                                                Вам доводилось писать на Hackaday?
                                                                Можете назвать еще какие-нить популярные ИТ ресурсы для hardware устройств?
                                                                  0
                                                                  1) нет
                                                                  2) я не слежу за ними, так что ничего, кроме совсем известных, не знаю

                                                                  P.S. У автора 2 бэкера за два дня, о продвижении ему надо было раньше думать…
                                                          0
                                                          Подскажите, где вы брали закладные под винты и сами винты для корпуса?
                                                            0
                                                            AliExpress. Там много такого подобного. Вставлял в корпус надев втулку на жало паяльника, разогрев ее и протолкнув в отверстие. Затем придерживая ей «рогаткой» вытягивал паяльник.
                                                            Первые версии были без втулок — тоже не плохо получается… если нужно скрутить один раз — тяжело вкручивать-выкручивать в платик. С втулками гораздо легче.
                                                            0
                                                            Больше 7-9 fps не пролезет даже с фреймбуфером, этот экран у меня больше 24МГц SPI не держал стабильно (24m / 8bit / 2bpp = 1.5mbps в недостижимом идеале, буфер 320х240х2bpp=154кб). Плюс фреймбуфер нельзя писать одним куском — DMA может только 0xFFFF байт передавать за раз. Плюс каждый раз надо передавать управляющие команды и дергать ногой DC. Откуда 15+ fps, что за черная магия? Такое наверное реально только с интенсивным использованием функций контроллера дисплея, но это ни разу не универсально и повышает сожность написания кода на порядки…
                                                              0
                                                              Простая магия: SPI запущен на 42 МГц, разрешение экрана 320x240x2. У меня, экран держит стабильно, хотя по даташиту вроде как и не должен. Теперь считаем:
                                                              (42'000'000 / 8) / (320 * 250 * 2) = 5'250'000 / 153'600 = 34.18 кадров/секунду в идеальном случае. В вашем расчете вы уменьшили пропускную способность на порядок(двоичный): надо или при подсчёте пропускной способности SPI делить на 2, или при подсчёте размера кадра умножать на два. Но никак не вместе и то и другое.
                                                              Фреймбуфера тут нет, есть буфер строки. DMA передает за раз одну строку или столбец(в зависимости от выбранного режима), т.е. максимум 640 байт. Слать управляющие команды и дергать ногой нужно только вначале кадра — дальше можно строки пропихивать друг за другом до конца кадра.
                                                              Специфические функции контроллера не используются. Что бы не строить догадки "как такое возможно" можно просто пойти на GitHub и посмотреть — ссылка есть в конце статьи. Это ещё и полезно если работа с этим связана: и в образовательных целях, и с целью заимствования — код открыт и бесплатен.
                                                                +4
                                                                У меня, экран держит стабильно, хотя по даташиту вроде как и не должен.

                                                                Уууу, простите но такой подход возможен только в любительских разработках, но никак не в промышленном масштабе. Что вы будите говорить купившему, когда /лично у него/ экран не заработает в 30 фпс.
                                                              0
                                                              Если использовать это устройство как игровую консоль — нужны эмуляторы 8-битных игровых компьютеров, например ZX Spectrum и Commodore. Но для этого применения лучше подключать дисплей через FMC, а чтобы процессорный модуль был достаточно компактным — сделать его с разъёмом SO-DIMM, эти разъёмы достаточно дёшевы, и контактов в них достаточно. При этом ширину платы можно сделать меньше стандартного SO-DIMM, если вместо корпуса TQFP использовать более компактный. В нынешнем виде это устройство вроде бы подходит на роль мозгов для простого программируемого робота для обучения — есть мощный контроллер с развитой периферией, большая батарея — но ему не хватает для этого средств связи.
                                                                +1
                                                                pledged of $100,000 goal
                                                                Unfortunately, no way (
                                                                  +3
                                                                  Целевая аудитория — те кто наигрался с Arduino и хочет чего-то большего: настоящий дебаггер, настоящую IDE, настоящую RTOS и более высокую производительность.

                                                                  Но за полторы сотни на том же самом али можно буквально завалить ящик стола этими самыми железками. Не в гламурном корпусе, не смахивающее на GB (тут было про ностальгию, но это не игровая консоль)
                                                                  SPI запущен на 42 МГц, разрешение экрана 320x240x2. У меня, экран держит стабильно, хотя по даташиту вроде как и не должен.

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

                                                                  Если коротко, ознакомившись с кашей в голове у автора про позиционирование этой поделки — думаю не взлетит.
                                                                    +1
                                                                    Кстати, что мне в голову пришло в голову когда увидел до ката. Формат GB, экранчик, стм(по ст-линку), явно сменные контроллеры. Да это ведь вполне себе МФУ радиолюбителя! Такая себе заготовка для портативных осциллографа, мультиметра, генератора, whatever… КМК, именно в таком ключе это и стоило преподносить, и в самом конце сказать «а еще можно запустить марио!»
                                                                    Может быть в таком виде и было-бы интересно. Но не за полторы сотни, конечно, кмк.
                                                                      0
                                                                      Вы только что описали именно то, как позиционируется данное устройство. Да, это "МФУ радиолюбителя", да модули можно использовать отдельно и не только в этом проекте — они предполагаются к продаже отдельно. Даже разъем сверху с почти всеми пинами от микроконтроллера есть(а зачем он был бы нужен чисто игровой консоли?) в который можно воткнуть что угодно. Недавно подключал датчик BME280 по I2C и считывал температуру, давление и влажность. А если чуть-чуть модифицировать код то можно будет писать это все на SD карту в формате CSV и потом в Excel графики строить.
                                                                      Если это воспринимается не совсем так, значит где-то явно моя недоработка…

                                                                      Про ценообразование я писал выше в комментариях. Если штука зайдет, то со временем когда все устаканится можно и цену подкорректировать, да и Китайцы равно скопипастят, будет дешевле.
                                                                        +5
                                                                        Но при этом показывается тетрис, (типа)теннис и марио. Тогда как нужно показывать осцилл, лог.анализатор, генератор, и прочее такое. И только в конце типа устал работать — (о! и так можно!) запустил тетрис.
                                                                        А получается именно то что я и говорил: каша в голове. Говорим и позиционируем не как игрушку — осцилл, и прочее, но на фоточках и в видушке показывааем тетрис и марио.
                                                                        И вот это непонятное позиционирование (когда слова явно противоречат фото- и видеоматериалам) нам предлагают купить за полторы сотни с надеждой что коданить возможно и цена упадет и осцилл с логанализатором (покупатели, наверное?) напишут…
                                                                        Вы уж простите, но лично я не вижу ни идеи ни реализации за которые стоит заплатить даже полтинник авансом за будующие свершения.

                                                                        Идея неплохая в общем-то. Да и реализация тоже более-менее. И форм-фактор хорош и заодно и за ностальгию цепляет. Если прислушаться к комментам их этого можно сделать WIN. Комменты здесь прозвучали — проц на основную плату, FSMC, вот это все.
                                                                        Но вы упорно выступаете за ардуино-стайл со всеми его пороками, да еще и от даташитов отступаете… Поймите простую вещь — никто не будет использовать ваш процессорный модуль как есть. Просто потому, что стоит он $30. А чтобы он стал стоить вменяемо — он должен стать популярным. А популярным он не станет, т.к. см.п.1. В общем замкнутый круг.

                                                                        Но вот саму идею кнопочек с обратной стороны для облегчения вынимания модулей и вообще саму идею сменных контроллеров — утащил в загашник — идея, кмк, довольно богатая…
                                                                    0
                                                                    Мне кажется очередной RPi в корпусе а ля GameBoy взлетел бы лучше.
                                                                    Это уже была бы полноценная игровая система, эмуляторы и всё такое.
                                                                    Дети расцвета консолей как раз уже выросли и нам было бы интересно собрать и модить портативную игровую консоль.
                                                                    А тут получается просто прикольный цветной тетрис с возможностью написания своих игр. Типа тетриса, ну или змейки.
                                                                      0
                                                                      Такому аппарату нужна интеграция с проектом TIC-80
                                                                        0
                                                                        Я может и попал бы под ЦУ — человек который давно наигрался с Arduino. Но не попал. Минусы которые вижу — модульность, цена. Из за модульности невозможно получить комбайн из gps\gprs\датчиков… только дай бог что-то одно на выбор и это нормально — модульность особенно на штырьках съедает кучу места. А цена за такой функционал ну просто безумная. Я все жду реинкарнации Phoenard с нормальным процессором и пары кнопок сверху — за 175$ итоговой цены на Seeedstudio мы получали(LCD\GPS\GPRS\BT\WIFI\extRAM\9dof\uSD):

                                                                        Li-Ion battery: Supplying 3.7V, regulated at 3.3V main board voltage
                                                                        MCP73831: The controller for charging the lithium battery off 5V USB voltage
                                                                        Atmel AVR Atmega2560: 16MHz microprocessor board controller
                                                                        30-pin Phoenex connector: Exposes GPIO pins for general project use
                                                                        12-pin Phoenon flex connector: Exposes GPIO pins for on-board extension use
                                                                        TFT 2.8 Inch LCD: Full 16-bit color LCD with ILI9325 driver IC
                                                                        SIM908: GSM, GPRS and GPS in one module, accessible through serial commands
                                                                        Simcard Holder: It uses the standard size Sim-card
                                                                        Speaker and Microphone: for SIM908 calling functionality
                                                                        VS1053b: Audio decoding chip supporting MIDI and a variety of audio formats
                                                                        FT232RL: USB-2-serial bridge for programming and communication with a computer
                                                                        HM-11: Bluetooth 4.0 module for short distance wireless communication
                                                                        ESP8266: WiFi module for wireless internet communication
                                                                        23K256: 256 kBits (32 kilobyte) SPI external RAM
                                                                        Micro-SD: FAT16 and FAT32 accepted in software
                                                                        MPU6050: Accelerometer and Gyro sensor in one package
                                                                        HMC5883l: Magnetometer sensor
                                                                        BMP180: Pressure and temperature sensor

                                                                        Вот там даже модульность была не нужна — все есть и за сумму не сильно большую, и плата сама компактная была. Переплата не такая уж и большая, а работать человек мог с чем хотел под свою конкретную задачу, или же изучать постепенно, наращивая свои навыки. Очень хороший проект, жаль на AVR(хотелось бы очень такой же но на топовом STM32)
                                                                          0

                                                                          Автор, расскажите подробнее, пожалуйста, про производство и выход на КС!


                                                                          Как удалось добиться качественных и ровных поверхностей на FDM принтере?


                                                                          Как в итоге делали плату?


                                                                          Как вышли на Кикстартер, будучи русским, если посредники дерут нечеловеческие деньги?


                                                                          Рекламировались ли как-то?

                                                                            0
                                                                            Как удалось добиться качественных и ровных поверхностей на FDM принтере?
                                                                            Так получилось. У меня обычный дешёвый акриловый клон Prusa i3. Правда заменил в нем голову на v6(была v5 и с проблемами) и трубку Бодена(внутренний диаметр был больше чем надо). А ещё докупил стекло — печатаю на нем с разогревом и ничем не смазав. Если пластик хороший, то липнет и получается блестящая поверхность в месте контакта со стеклом.

                                                                            Как в итоге делали плату?
                                                                            Seeedstudio/EasyEDA, детали AliExpress/Mouser, сборка вручную сам.

                                                                            Как вышли на Кикстартер, будучи русским, если посредники дерут нечеловеческие деньги?
                                                                            Нет никаких проблем выйти если являешься резидентом США. LLC(типа ООО) регистрируется за 5 минут онлайн, счёт в банке открывается за один визит, дальше можно все это вбивать в Кикстартер. Можно вообще все сделать и без LLC, но тогда придется отдать много налогов.
                                                                            И я Белорус, кстати.

                                                                            Рекламировались ли как-то?
                                                                            Пытался, но судя по всему недостаточно. Впрочем, нельзя же быть специалистом во всех областях.
                                                                              0
                                                                              А, я понял, вы постоянно живёте в США, не увидел сразу теги. Да, для резидентов и правда проблем нет.

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

                                                                              В любом случае, удачи!
                                                                            0
                                                                            Nick_Shl
                                                                            Если к такой плате добавить хороший АЦП то можно получить измеритель звука/ультразвука, освещённости, температуры, влажности, скорости ветра. В этом случае DevBoy будет лучше по производительности чем Arduino и значительно менее прожорливая чем Raspberry Pi.

                                                                            Подробнее можете почитать в Диалогах, местном аналоге ЛС(сообщение вам отправил день назад). Если идея понравится то можно её обсудить в общей ветке.
                                                                              0
                                                                              А что имеется ввиду под "хорошим АЦП"? У STM32F4*5 уже имеется три 12-тибитных АЦП, которые могут работать в разных интересных режимах и по даташиту выдавать частоту выборок до 2.4 мегасэмла в секунду.
                                                                              Температуру, давление и влажность проще измерять цифровыми датчиками, например BMP280. Для освещенности можно взять опять же цифровой датчик вроде TCS3472 — не только освещенность, но ещё и цветовую температуру можно измерить.
                                                                                0
                                                                                Под хорошим АЦП имеют ввиду АЦП которое имеет разрядность 16 или 24 бита, возможность работы с напряжением 5В и термостабильность не более 2-5 ppm на градус.
                                                                                То есть сделать упор не на скорость работы АЦП, а на точность измерений.

                                                                                Таким АЦП является AD7175-2 или AD7768-1. Причём на AD7175-2 даже есть рабочий прототип который работает по SPI и выполнен в виде платы расширения для Arduino.
                                                                                Плата с АЦП имеет два аналоговых входа которые выполнены в виде разъёмов SMA. Каждый вход может измерять переменное напряжение амплитудой до 30В. Так же на плате имеется прецизионный источник опорного напряжения ADR444. В следующей ревизии платы сделаю возможность программного переключения между встроенным(2.5В) и внешним источниками опорного напряжения.
                                                                                image

                                                                                Плата АЦП установлена на плату SafeDuino.
                                                                                SafeDuino это плата являющаяся аналогом arduino uno, но имеющая гальваническую развязку по питанию и USB, а так же макетное поле и разъём для подключения дисплея. Плата была изготовлена в далёком 2011 году, но по ряду причин не получила известность. Гальваническая развязка защищает USB порт ПК от высокого напряжения и позволяет, например, измерять напряжение сети 220В 50Гц без разделительного трансформатора (с помощью цепочки резисторов и ОУ AD620).

                                                                                Естественно что подобной платы недостаточно для работы с подобным АЦП, даже не из за частоты 16 МГц, а из за низкой скорости UART по которому передаются данные. По этому в ближайшем будущем планирую вместо safeduino использовать плату stm32 discovery.

                                                                                По поводу цифровых датчиков отмечу, что в то то и смысл что бы одновременно можно использовать цифровые и аналоговые датчики, например термопару. При этом используя не десяток разных разъёмов, а один с несколькими контактами, который был логично смотрелся сверху от дисплея на вашем корпусе. Места под сменные устройства ввода тоже лучше увеличить с двух до четырёх или даже шести, это будет удобно например для работы с оцифрованным сигналом который выводится на дисплее. Было бы так же очень удобно что бы кроме USB плата имела ethernet. Так же можно перенести позиции для сменных устройств ввода и расположить их слева и справа от дисплея, разрешение дисплея так же лучше увеличить.

                                                                                Так же отмечу что точность измерений данного устройства будет не более 0.1-0.05%, притом что недорогой цифровой 8-битный осциллограф/мультиметр даёт погрешность в районе 2-3%.
                                                                                  0
                                                                                  При этом используя не десяток разных разъёмов, а один с несколькими контактами, который был логично смотрелся сверху от дисплея на вашем корпусе.
                                                                                  Так сверху же есть разъем. Универсальный. Берете свою плату с АЦП и цепляете к нему. В этом-то и вся суть! Вам нужны АЦП и датчики, кому-то нужно что-то другое — угодить всем в принципе не возможно. Остаётся один выход: делать универсальный интерфейс(прокинутые пины от МК) на которые каждый сможет навесить что ему нужно. Вот, например, подключены BMP280 и EEPROM по I2C:
                                                                                  image
                                                                                    0
                                                                                    Конкретно мне нужна платформа на которой можно сделать универсальное измерительное устройство с возможностью подключения как к USB компьютера или к роутеру, коммутатору через RJ45.

                                                                                    При этом разъём USB должен быть полноразмерный USBB-1J, а не mini или micro, которые можно выдрать вместе с дорожками одним неосторожным движением.

                                                                                    Дисплей нужен разрешением 800х480 и диаганалью 5-7 дюймов с параллельным интерфейсом т.е. не SPI. Дисплей должен быть сменным модулем, как оно и есть сейчас.

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

                                                                                    Так же хотелось бы что бы в комплекте с основным блоком можно было дополнительно получить плату с несколькими датчиками, плату с АЦП и плату с ЦАП, имеющими на входе разъём BNC. Эти модули должны подключаться к универсальному разъёму который расположен сверху от дисплея. Так же желательно что бы эти модули крепились парой винтов к основному устройству и были выполнены в компактном корпусе.

                                                                                    Хоть уже и писал выше, но всё же повторюсь. Количество модулей для устройств ввода нужно увеличить с двух до четырёх — шести.

                                                                                    Если вам интересна данная идея то могу даже поучаствовать в создании такого проекта.
                                                                                      0

                                                                                      Простите за юмор, но… где пункт про корованы?

                                                                                        0
                                                                                        Вы сейчас не сильно лучше ТС. Он делает устройство, которое хочется ему, не обращая внимания на ерунду вроде соответствия рынку и позиционирования, а вы делаете тоже самое, только хуже — не делаете железку, но в ультимативной форме рассказываете ТС, что ему надо сделать, чтобы угодить вам.
                                                                                          0
                                                                                          Я делаю в первую очередь модульную систему. В обсуждении выше я приводил аналогичные модули от Adafruit и Sparkfun, на которые ориентировался при ценообразовании. Их модули продаются, а значит и рынку соответствуют, и позиционированы правильно. Вопрос: чем мои модули хуже?
                                                                                          Видимо тем, что я также сделал плату и корпус, позволяющие собрать из них такое вот устройство. Наверное гораздо приятнее иметь раскиданные по столу модули с breadboard'ами и кучей "спагетти" из проводов.
                                                                                            0
                                                                                            Вы как производитель телефонов, который делает почти такие же телефоны как у apple, и пытается продавать их по такой же цене. А что, телефоны аналогичные, а значит рынку соответствуют, и позиционированы правильно.

                                                                                            А по теме — вам выше правильно все уже сказали.

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

                                                                              Самое читаемое