Badge PCB, qui ne le sera pas, ou comment tout surmonter et perdre à l'arrivée

Bonjour, Habr! Nous vivons à une époque intéressante: dipheyks, guerres commerciales, jeux politiques, Greta Tunberg, et si cela ne vous semble pas suffisant, alors signez une nouveauté - l'infection à coronavirus COVID-19.

La propagation du coronavirus a également influencé notre conférence OFFZONE 2020 sur la cybersécurité pratique . Il a dû être reporté à des temps meilleurs.

Malheureusement, cela signifie que le badge textolite que nous développons depuis décembre n'aura pas sa forme actuelle. Cet article est une sorte d'épitaphe de son concept. Sous la coupe, nous racontons comment nous nous sommes battus pour l'ergonomie, les composants extraits avec des frontières fermées, la magie du bricolage découverte contre les pénuries et quelles circonstances étaient plus fortes que nous.




Concept: Badge secret principal


  , OFFZONE 2020. ,  :


  • PCB     ,
  • OFFCOIN-,
  •  DIY- ,
  •   Shitty Add-on’.

Mais ce ne sont pas tous les secrets! Nous avons pensé à l'insigne principal lorsque nous avons appris que la dernière manche du concours pratique de cybersécurité CTFZone se tiendra dans le cadre de la conférence OFFZONE 2020. Beaucoup allaient suivre ce tournoi: une victoire au CTFZone détermine qui ira au DEFCON CTF et luttera contre les équipes les plus fortes du monde.

«Et diffusons l'état actuel des choses sur la FCE à chaque visiteur de la conférence!» - l'équipe de développeurs de badges a suggéré. "Personne ne l'a encore fait."

Dans la compétition CTF, 10 équipes participent. En permanence, quelqu'un attaque quelqu'un, quelqu'un se défend, quelqu'un attend un moment opportun. Si toutes les équipes sélectionnent une LED RGB sur la carte, chacune de ces interactions peut être exprimée en équivalent de couleur. Cela se traduira par un système de 10 LED RVB, dont l'état détermine uniquement l'alignement actuel des forces sur le CTF.

L'idée est venue à tout le monde et nous nous sommes mis au travail.




Prototype: de la mise en page au modèle de travail


Après une courte étape d'ingénierie des spaghettis (prototypage sur débogage) pendant dix jours, le badge s'est transformé en premier prototype sur un textolite.

C'est lors du prototypage que l'idée est venue de compléter le badge avec la possibilité de personnalisation en utilisant le connecteur complémentaire Shitty et des modules complémentaires faits maison. Les participants à la conférence iraient tous avec des badges uniques, beauté!

Pour ceux qui sont intéressés, nous décrirons la base des composants de notre PCB.


  • Le cœur du badge est un MK STM32F070R6P6 plutôt fin mais éprouvé (ARM Cortex-M0 48 MHz, Flash 32 Ko, SRAM 6 Ko, boîtier TSSOP20).
  • La musique légère est responsable d'une douzaine de LED RGB WS2812B.
  • Le module émetteur-récepteur NRF24L01 accepte les messages radio.
  • Quelques circuits d'alimentation et une bande de résistances-condensateurs.
  • Eh bien, par tradition, tout est alimenté par 4 piles AAA.

Les capacités de MK STM32 étaient juste suffisantes pour implémenter la fonctionnalité d'un portefeuille OFFCOIN, contrôler les LED et traiter les messages radio.



Le prototype s'est avéré être plus que fonctionnel et a inspiré la joie dans nos âmes avec un clin d'œil gai de LED. À côté de chaque LED sur le PCB se trouve le logo de l'équipe membre de la CTF: la LED rouge est allumée - cette commande attaque, la verte défend, la bleue se cache et se prépare pour quelque chose. Tout cela était prêt début février ...

... Quand nous avons découvert qu'en raison des mesures de non-prolifération de COVID-19, 2 équipes étrangères ne pourraient pas venir nous voir.

Eh bien, désagréable, mais pas effrayant. Nous avons décidé de ne pas changer la conception finale du badge, mais de donner aux équipes absentes un VPN et la possibilité de participer à distance au CTF.


Logiciel et design industriel: les broches pogo sont super


Malgré les nouvelles inquiétantes, en général, le travail sur l'insigne s'est déroulé comme prévu. Il est temps de commencer à écrire des logiciels et à créer une infrastructure.

Nous ne parlerons pas particulièrement de logiciel. Pas à cause du mystère, mais parce qu'il n'y a rien d'intéressant là-bas. Sur le badge, un pilote HAL sans RTOS, WS2812B est contrôlé par un minuteur et une génération PWM, un portefeuille OFFCOIN est implémenté via PKI, une sorte de pilote NRF24. Rien d'interessant. Crois moi.

Mais avec l'infrastructure, nous sommes confus.

Tâche 1: créer un portefeuille pratique à partir d'un badge. La première grande tâche qui devait être résolue était de fournir une recharge rapide et pratique de l'équilibre de votre portefeuille OFFCOIN.

À OFFZONE 2019, le transfert de l'ID de portefeuille OFFCOIN était sans contact: nous avons utilisé le récepteur IR sur le lecteur et l'émetteur IR sur le badge. Ce système a fonctionné, mais lentement, et uniquement avec une batterie ou un badge USB et uniquement si l'utilisateur a correctement sélectionné l'angle d'inclinaison du dos et la quantité de flexion du cou par rapport au récepteur IR. Rapidité et commodité - il ne s'agissait pas du badge de l'année dernière.

Cette année, d'autant plus sérieuse! Le système de paiement est devenu contact et peut lui-même alimenter le badge. L'interface du portefeuille est désormais UART, et la connexion physique elle-même est intelligemment conçue: le contact entre le lecteur et le panneau de badge est des broches pogo.

Les broches Pogo sont de tels contacts à ressort pratiques qui sont généralement utilisés pour établir une connexion électrique temporaire. Sur une carte de lecteur spécialement conçue, 4 de ces contacts sont installés et sur le badge lui-même 4 plots de contact sont réalisés: TX, RX, 3V3 et GND. Alors maintenant, pour se connecter au lecteur, il suffit de placer la carte badge sur les broches et de la maintenir dans cette position pendant un petit moment.


Nous avons également rechargé quelques articles intelligents sur le design industriel et inventé notre propre boîtier pour le lecteur. La première minute de conception a été jetée sur un morceau de papier à l'heure du déjeuner. Ensuite - une demi-douzaine d'itérations sur une imprimante 3D et un adhésif thermofusible, dans les meilleures traditions de prototypage.

Ici, j'ai dû tourmenter équitablement la sélection de la taille des espaces et de l'épaisseur de paroi du boîtier. Pourquoi? Parce que le design du papier devait être immédiatement transféré au CAD et au dessin humain, et non pas sculpté sur le pouce à Tinkercad. Il a poussé un trou, en a oublié un autre ... Mais maintenant nous avons une montagne de prototypes et la conception finale de l'étui.

L'affaire s'est avérée assez confortable. Maintenant, vous n'avez plus à vous soucier du lecteur: vous insérez le badge dans l'étui, il centre lui-même la carte au besoin et le tient de manière fiable en lui-même. Deux limiteurs de grip et une planche qui suit le contour du bas de la planche en sont responsables. Et grâce à l'interface UART, qui est beaucoup plus fiable et plus rapide que l'IR, le processus d'échange de données du portefeuille lui-même prend maintenant une fraction de seconde.


Objectif 2: Assurer une couverture maximale pour NRF24. Nous avions un plan d'étage et il y avait des données sur l'efficacité avec laquelle l'intérieur transmet et reçoit NRF24. On nous a demandé de calculer où et comment piquer les émetteurs afin qu'il n'y ait pas de zone morte sur le terrain de la conférence et que les badges diffusent toujours les dernières informations sur le CTF.

Cela s'est avéré facile. En tant qu'émetteur, nous avons choisi un Raspberry PI monocarte et le même NRF24. Afin de ne pas produire deux douzaines de framboises avec des fils de planche à pain et NRF, nous avons fait notre propre bouclier. Il est conçu pour connecter toutes sortes de types de modules NRF24 et dispose d'une paire de LED pour indiquer l'état des framboises. Il n'est resté sur place que pour vérifier la zone de couverture des émetteurs et, si nécessaire, corriger les calculs.




Achat de composants: que faire lorsque tout va mal


Jusqu'à ce point, la préparation du badge était généralement fluide. Tout a changé lorsque nous avons commencé à acheter des composants et à commander la production de circuits imprimés.

Problème 1: Coronavirus en Chine. L'expérience de l'année précédente nous a rappelé combien il est important de convenir à l'avance avec les fournisseurs et les usines. Nous sommes d'accord.

Et puis quelque chose que tout le monde sait s'est produit. En raison des restrictions à l'exportation et des arrêts de production en Chine, la moitié des fournisseurs de composants électroniques se sont excusés et ont simplement fait un geste impuissant sans donner de délais. La seconde moitié a tiré × 2— × 3 d'un moment qui nous convenait.

La même histoire avec la production de circuits imprimés: environ deux mois de production et de livraison. Compte tenu de l'installation d'OFFZONE 2020, nous n'avons pas eu le temps ...

Sur les conseils de collègues ingénieurs, nous avons essayé de contacter une usine en Lettonie par des intermédiaires. Mais là, ils ont dit le «nē» affectueux («non» en letton) dès qu'ils ont découvert que nous devions produire plus de 40 mètres carrés de textolite.

Les nuages ​​s'accumulaient. Des jours précieux sont allés à la recherche d'une usine qui ferait de nous une série de planches, pour communiquer avec des fournisseurs qui ne cessaient de repousser les délais. La probabilité d'un échec a augmenté.

Au cours de la vingtième série d'appels à tous les contractants possibles, au prix des énormes souffrances morales et morales du personnel de BI.ZONE, aux dépens des ingénieurs barbus, nous avons réussi à nous mettre d'accord sur la production de cartes de circuits imprimés et la fourniture de presque tous les composants afin que nous soyons à temps pour OFFZONE 2020. Dos à dos, mais à temps!

Problème 2: Le NRF24L01 insaisissable.Hélas, nous n'avons pas eu autant de chance avec l'achat des modules radio NRF24L01.

Dans un premier temps, nous avons prévu la possibilité d'utiliser deux modules NRF différents avec une antenne PCB dans le projet PCB: le facteur de forme standard et sa version compacte NRF24L01 mini .

Cependant, la contrepartie, qui a assumé les obligations de livraison, a fusionné au dernier moment. Afin de ne pas casser l'installation, il a fallu en 5-6 jours pour trouver un nouveau fournisseur - ou trouver autre chose.

Les temps désespérés nécessitent des mesures désespérées. Nous n'avons pas osé espérer seulement le succès des recherches et en même temps profité du premier commandement de la DIY-schika: il manque quelque chose - faites-le vous-même! Eh bien, ou copiez de celui qui est plus intelligent. Dans le contexte de NRF24 plus intelligent que les ingénieurs de Nordic Semiconductor lui-même, il n'y a presque personne. Dans la fiche technique du NRF24L01, nous avons trouvé un exemple de circuits et de PCB recommandés.


Le même exemple a été facilement trouvé sous la forme du projet Altium PCB. Nous avons rapidement changé le type de connexion de l'en-tête 2 × 4 2,54 mm aux 8 demi-trous métallisés de 1,27 mm dont nous avions besoin. Les composants, polygones, transitions, conducteurs, etc. sont restés strictement inchangés.

Ainsi, alors que certains collègues ont coupé les téléphones aux fournisseurs d'électronique, d'autres en mode chat échaudé ont commandé la production de PCB et de composants pour une douzaine de modules faits maison. Quelques jours plus tard, ils ont tous mis la main dessus et se sont rassemblés. Étonnamment, cela a fonctionné comme il se doit! 3 cartes assemblées sur 3 ont montré d'excellents résultats aux tests de réception et de transmission.

Les résultats n'étaient clairement pas pires que ceux des produits achetés. Le Dr Dew n'aurait pas lissé son nez. Et cela tient même compte d'une simplification du processus technologique: au nom de l'accélération de la production, nous avons refusé le revêtement recommandé des planches avec dorure par émission.

Même si je devais encore tourmenter avec l'assemblage des modules. Pour des raisons qui nous sont inconnues, les ingénieurs nordiques n'ont pas utilisé une ouverture dans le masque de la carte, mais trois vias comme contact avec le plot de terre (le cas de la puce de l'émetteur-récepteur QFN20). Oui, et regardez l'empreinte de la responsabilité: les composants de soudure 0402, dont les plots de contact sont situés dos à dos sans espace du masque de soudure, sont toujours un plaisir.


Cependant, il ne nous appartiendrait pas de souder un lot important, mais des machines sans âme en production.

... Sinon pour une circonstance: au dernier moment, il y avait un fournisseur de Biélorussie qui nous a aidé avec le nombre nécessaire de mini-modules NRF24L01.


En vain


Un ingénieur peut gérer beaucoup de choses. Même l'absence de composants clés, comme il s'est avéré, ne l'arrêtera pas. Mais lorsque le concept de produit lui-même perd tout son sens, l'ingénieur n'a d'autre choix que de repartir de zéro.

En observant le développement de la propagation de COVID-19, nous avons pris une décision difficile: OFFZONE 2020 doit être reprogrammé. Mais CTFZone, en tant qu'étape qualificative du DEFCON CTF, ne peut pas être reporté (et nous le ferons en ligne fin avril).

Malheureusement, cela enterre l'idée d'un badge qui traduit les actions des commandes CTF.

La textolite a déjà été fabriquée et nous avons maintenant 10 000 composants électroniques et presse-étoupe entre nos mains. Sur le chemin encore 1 000 000. Hélas, ils ne verront jamais la lumière du jour.


Quelque chose se termine, quelque chose commence


Le courage n'est pas notre style. L'équipe de développement de badges est passée radicalement du mode de gravure au mode de refroidissement, mais uniquement pour commencer à générer de nouvelles idées de badines folles pour OFFZONE 2020 v2.0 avec une vigueur renouvelée!

Ce que ce sera, nous n'avons pas encore décidé. Une chose est sûre: nous allons continuer à développer l'idée du connecteur merdique et essayer de le rendre interactif .

Si vous avez des idées ou des souhaits, partagez-les - nous essaierons ensemble de les concrétiser. Restez à l’écoute et n’éternuez pas!

Auteurs de texte: @ qwe_0 , @ Capta1nYossarian

All Articles