Supabase Select — это наша конференция для разработчиков, которая в этом году прошла в Сан-Франциско 2 октября. Каждый участник получил программируемый бейдж, с которым можно продолжать экспериментировать еще долго после окончания конференции.
Во время конференции он работал как анимированный именной бейдж с расписанием и парой встроенных игр. С тех пор люди превратили его в трекер авиарейсов в реальном времени, аркадную игру про «мертвые кортежи» (dead tuples) и языковую модель, которая работает полностью на самом бейдже.
Вот как мы подошли к созданию этих бейджей и несколько идей, как развить эту концепцию еще дальше.
Бейдж основан на Pimoroni Tufty 2350 и поставляется с:
- Микроконтроллером RP2350
- Цветным экраном
- Аккумулятором
- Встроенными Wi-Fi и Bluetooth
- Пятью физическими кнопками, которые можно настроить на что угодно
Наша первая итерация представляла собой плату с Raspberry Pi Pico, экраном и аккумулятором, соединенными так, чтобы их можно было разъединить и использовать как стартовый набор после окончания конференции. Это было отличное решение для создания модульного бейджа конференции, но собрать тысячу таких вручную было невозможно.
Для следующей итерации мы обратились к Pimoroni, которые производят похожее оборудование — экран, аккумулятор и программируемый микроконтроллер — но на одной плате, что значительно упростило сборку.
Мы написали все программное обеспечение, которое было установлено на них: именной бейдж, расписание и игры. Это была лишь малая часть того, на что способен бейдж, но именно то, что нам было нужно на Select.
Бейджи прибыли за две недели до Select: 800 штук в 20 коробках по 40 штук, и ни один из них не включался. Ошибка в прошивке не давала им «уснуть» во время транспортировки, и все аккумуляторы разрядились.
Мы скупили столько USB-зарядок, сколько Amazon успел доставить нам вовремя. Каждый бейдж потребляет менее половины ампера, поэтому дешевых 30-портовых хабов, которые школы используют для зарядки iPad на ночь, было вполне достаточно. Полная зарядка занимает около трех часов, так что 60 портов одновременно — это 14 партий, и с учетом часа на подключение и отключение каждой партии, получается около 56 часов зарядки. Кроме того, каждый бейдж нужно было подключать к компьютеру по одному для обновления прошивки, исправляющего разряд аккумулятора, а затем переводить в режим глубокого сна, пока он дозаряжался.
Затем Wi-Fi. План состоял в том, чтобы развернуть сеть 2,4 ГГц только для бейджей, покрывающую всю площадку, чтобы они могли оставаться онлайн весь день. Когда мы протестировали это на месте, ни один бейдж не смог подключиться.
К счастью, бейдж был спроектирован так, чтобы работать в автономном режиме с самого первого дня, поэтому никто на Select этого не заметил. Но несколько скрытых функций требовали сети и так и не получили своего шанса проявить себя:
- Эффект Тейлор Свифт: каждый бейдж в зале мигает и анимируется синхронно по команде во время выступления.
- Объявления по всему залу: каждый бейдж вокруг вас одновременно показывает «Сейчас будет выступать Woz».
- Публичная таблица лидеров: текущие рекорды в играх на бейджах.
Единственное, что действительно требовало сети, — это расписание. Программное обеспечение для бейджа было готово раньше, чем расписание конференции, поэтому каждый бейдж должен был один раз выйти в сеть, чтобы загрузить последнюю версию. План Б: Wi-Fi точка доступа, на которой лежали по два бейджа одновременно. Каждый из них просыпался, получал время, открывал TLS-соединение с Supabase и скачивал расписание. Около минуты на бейдж, в общей сложности почти семь часов.
Последние несколько дней превратились в конвейер, работающий посменно, с участием всех, у кого были свободные руки: зарядка, обновление, синхронизация, сон, упаковка, шнурок. За два дня до открытия дверей мы все еще разбирали последние коробки. В день мероприятия мы заметили участников, сгрудившихся вокруг ноутбука, которые уже взламывали свои бейджи.
Взгляните на эти крутые проекты, созданные участниками Select и теми, кто смотрел нас из дома:
- Select Sky: Джоуи (@jsmillerdev) создал трекер авиарейсов в реальном времени с видом радара, отслеживанием отдельных рейсов и такими деталями, как высота и скорость.
Select Sky
Джоуи (@jsmillerdev) создал трекер авиарейсов в реальном времени с видом радара, отслеживанием отдельных рейсов и такими деталями, как высота и скорость.
- Карманный поисковик еды: Майк Демо (@Mike_demo) сделал приложение для бейджа, которое помогает участникам находить места, где можно поесть, с фильтрами для веганских, вегетарианских, безглютеновых, кошерных и халяльных блюд. Его не было на Select, он присоединился удаленно.
Карманный поисковик еды
Майк Демо (@Mike_demo) сделал приложение для бейджа, которое помогает участникам находить места, где можно поесть, с фильтрами для веганских, вегетарианских, безглютеновых, кошерных и халяльных блюд. Его не было на Select, он присоединился удаленно.
- Игра про сбор музыкальных нот: Тиффани Коллинз (@tiff_ishh) превратила свой бейдж в игру, где логотип Tenor собирает ноты, уклоняясь от злого композитора.
Игра про сбор музыкальных нот
Тиффани Коллинз (@tiff_ishh) превратила свой бейдж в игру, где логотип Tenor собирает ноты, уклоняясь от злого композитора.
- Dead Tuples: Эми Майерник (@LFGAmy) смотрела основную презентацию из дома и превратила раздел про OrioleDB в аркадную игру, где нужно очищать «мертвые» строки, пока таблица не заполнилась, а затем разблокировать режим OrioleDB, который дает передышку от очистки.
Dead Tuples
Эми Майерник (@LFGAmy) смотрела основную презентацию из дома и превратила раздел про OrioleDB в аркадную игру, где нужно очищать «мертвые» строки, пока таблица не заполнилась, а затем разблокировать режим OrioleDB, который дает передышку от очистки.
- Локальная языковая модель: Мэдди Д. Риз (@maddiedreese) поместила крошечную модель генерации историй на бейдж с экранной клавиатурой для ввода запросов, работающую полностью на устройстве.
Локальная языковая модель
Мэдди Д. Риз (@maddiedreese) поместила крошечную модель генерации историй на бейдж с экранной клавиатурой для ввода запросов, работающую полностью на устройстве.
- Muse на бейдже: Роберт Сориано (@wobsoriano) пришел домой и запустил Muse на своем бейдже до конца недели.
Muse на бейдже
Роберт Сориано (@wobsoriano) пришел домой и запустил Muse на своем бейдже до конца недели.
Их еще много в витрине бейджей, и каждый из них начинался с одного и того же оборудования, а пришел туда, куда мы даже не могли предположить.
Если вы умеете создавать веб- или мобильные приложения, вы уже знаете большую часть того, что нужно, чтобы разместить экран на своем столе или датчик в комнате, который делает что-то полезное при изменении показаний. Оборудование недорогое, и на него не повлияло недавнее повышение цен на память — Raspberry Pi несколько раз повышала цены на свои компьютеры, в то время как микроконтроллеры остались в той же цене. С таким инструментом, как Claude Code, первый аппаратный проект превращается в послеобеденное время, потраченное в основном на решение того, что именно сделать.
Все необходимое находится на badge.select:
- Если у вас есть физический бейдж, руководство по первому приложению поможет вам добавить свое собственное приложение через USB.
- Если вам нужен кодинг-агент для помощи, набор для проекта с бейджем предоставит Claude Code справочник API и инструкции, которые ему нужны. Вы можете попробовать что-то вроде: «Прочитай инструкции к проекту и справочник API бейджа. Создай таймер Pomodoro с большим обратным отсчетом. Используй кнопку A для запуска или паузы, B для сброса, и C для переключения между рабочими сессиями и перерывами».
- Если вас не было на Select, виртуальный бейдж и редактор Make позволят вам создавать проекты прямо в браузере.
- Если вы хотите пойти дальше, замените прошивку и начните программировать на C или Rust. Уже существует руководство по превращению бейджа в эмулятор Apple IIe с использованием физической USB-клавиатуры и программ на BASIC, работающих непосредственно на самом устройстве.
Хорошими первыми проектами станут небольшие и полезные вещи: часы с именно тем дисплеем, который вам нужен, таймер Pomodoro рядом с клавиатурой, дисплей, считывающий данные из вашего проекта Supabase по Wi-Fi, или индикатор, который загорается, когда ваш агент по программированию нуждается в вас. Благодаря Supabase Realtime бейдж может реагировать в тот же момент, когда что-то меняется в вашем приложении. Ваше первое изменение может быть совсем простым — например, переназначение функции одной из кнопок.
На конференции Select это был ваш именной бейдж. Что вы сделаете из него дальше?












