Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
kiu committed Jul 7, 2024
1 parent 4bb11ac commit 6326117
Show file tree
Hide file tree
Showing 51 changed files with 2,189 additions and 2 deletions.
45 changes: 43 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,43 @@
# xcb-2024
Cross Communication Badge to gamify conference encounters
# xcb-2024
The cross communication badge (xcb) was created for a two day internal company conference. Its main purpose was to gamify communication and networking across the 150 participants.

<img src="img/xcb-2024-top-bottom-revb-photo-front-assembled-off.jpg" width="800"/>

<sup>Additional images can be found in the [img](img/) directory</sup>

# Features
The badge features three modes: Conference, Play and Sensor.

In <ins>conference mode</ins> each badge transmits its unique ID every 30 seconds. Any badge receiving two transmissions from the same badge within 100 seconds will count this as a unique contact. Due to limited infrared power, close proximity between sender and receiver is assumed. The amount of unique contacts is displayed on the LCD screen to gamify in-person encounters.

In addition secret badges are hidden at the event location, offering a treasure hunt for those who want to explore beyond the main conference tracks. The needed hints are printed on [flyers](xcb-2024-flyer.pdf) handed out with the badge. The discovery of these secret badges is encoded in the display as single segments to easily compare progress between participants.

It was important to me that the badge could be re-used after the conference so I added two additional modes.

In <ins>play mode</ins> the badge features a version of the popular game Simon https://en.wikipedia.org/wiki/Simon_(game) (in Germany known as Senso https://de.wikipedia.org/wiki/Senso_(Spiel)). People can chase a high score, which can also be displayed when in conference mode.

In <ins>sensor mode</ins> the badge transforms into a temperature and humidity display with min/max functionality. Powered by USB the badge can continue to operate in the home or office.

On the back of this stacked PCB assembly (preventing any electrical shorts while wearing) the participants can find a [silk screened word puzzle](img/xcb-2024-bottom-revb-render-back.png) containing the names of the employees of the company.

## Video
There is a short video highlighting all badge features on youtube: https://youtu.be/XA52-lHTVL4

<a href="http://www.youtube.com/watch?feature=player_embedded&v=XA52-lHTVL4" target="_blank">
<img src="http://img.youtube.com/vi/XA52-lHTVL4/hqdefault.jpg" alt="xcb-2024 on youtube" width="800" border="2" />
</a>

# Hardware
The hardware is [straight forward](kicad/xcb-2024-top-revb-schematic.png). Powered by two CR2032 coin cells or USB, a STM32, a three digit LCD display, an infrared receiver/transmitter, a buzzer, four capacitive touch buttons and a temperature and humidity sensor. All neatly packed into a wearable badge.

# Repository
- [datasheets](datasheets/): Datasheets of most components
- [firmware](firmware/): STM32CubeIDE project
- [kicad](kicad/): KiCad schematics, PCBs and BOM for single+panelized badge and flash adapter
- [tools](tools/): Helper scripts to generate buzzer note table, mass flashing with auto ID increment and masked word puzzle generator

# License
This project is licensed under the Creative Commons Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0) license. Use of the company name and company logo in any form is not covered by this license.

# Thanks <3
Thanks to Fabian for helping out on the flyer design and Andrii, Maria (+Sebastian), Monika, Niels (+Milla) for working hard doing the final mechanical assembly!
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added datasheets/C2757850-AHT-20-21 DEMO V1_3.rar
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added datasheets/C46830-STM32f030f4.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added datasheets/C7532-HT1621b.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
41 changes: 41 additions & 0 deletions img/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# xcb-2024

<img src="xcb-2024-top-bottom-revb-photo-front-assembled-off.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-front-assembled.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-back-assembled.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-unpopulated.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-populated.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-panel-unpopulated.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-panel-populated.jpg" width="800"/>

<img src="xcb-2024-top-bottom-revb-photo-panel-pile.jpg" width="800"/>

<img src="xcb-2024-dev-adapter-reva-photo.jpg" width="800"/>

# xcb-2024-top

<img src="xcb-2024-top-revb-render-front.png" width="800"/>

<img src="xcb-2024-top-revb-render-back.png" width="800"/>

<img src="xcb-2024-top-revb-panel-4x1-render-front.png" width="800"/>

<img src="xcb-2024-top-revb-panel-4x1-render-back.png" width="800"/>

# xcb-2024-bottom

<img src="xcb-2024-bottom-revb-render-front.png" width="800"/>

<img src="xcb-2024-bottom-revb-render-back.png" width="800"/>

# xcb-2024-dev-adapter

<img src="xcb-2024-dev-adapter-reva-render-front.png" width="800"/>

<img src="xcb-2024-dev-adapter-reva-render-back.png" width="800"/>
Binary file added img/xcb-2024-bottom-revb-render-back.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-bottom-revb-render-front.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-dev-adapter-reva-photo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-dev-adapter-reva-render-back.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-dev-adapter-reva-render-front.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-top-bottom-revb-photo-populated.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-top-revb-panel-4x1-render-back.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-top-revb-panel-4x1-render-front.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-top-revb-render-back.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/xcb-2024-top-revb-render-front.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions tools/WordPuzzleGenerator2/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
17 changes: 17 additions & 0 deletions tools/WordPuzzleGenerator2/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>WordPuzzleGenerator2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
14 changes: 14 additions & 0 deletions tools/WordPuzzleGenerator2/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=21
4 changes: 4 additions & 0 deletions tools/WordPuzzleGenerator2/bin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/WordPuzzleGenerator2$Orientation.class
/WordPuzzleGenerator2$StringLengthComparator.class
/WordPuzzleGenerator2$WordPlace.class
/WordPuzzleGenerator2.class
Loading

0 comments on commit 6326117

Please sign in to comment.