Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • card10/logix
  • annejan/logix
  • kgz/logix
  • pink/logix
  • mot/logix
  • 9R/logix
  • melle/logix
  • jspricke/logix
  • sjn/logix
  • marble/logix
  • audionerd/logix
  • astro/logix
  • genotest/logix
  • _luc/logix
  • C-Tim/logix
  • Superwallah/logix
  • nitram/logix
  • Pixtxa/logix
  • royrobotiks/logix
  • deusfigendi/logix
  • arist/logix
  • LordBonzi/logix
  • Stormwind/logix
  • dag/logix
24 results
Select Git revision
  • master
  • patch-1
  • patch-2
  • patch-3
  • patch-4
5 results
Show changes
Showing
with 307 additions and 51 deletions
---
title: Hardware Overview
title: Hardware
weight: 40
---
Our reconstruction of the card10 badge consists of three things:
......@@ -22,6 +23,7 @@ The two boards are connected via a board to board connector and then screwed tog
| -------------------- |-------------|
| Weight | ~ 19 g |
| Size | Height (without wristband): ~8-9 mm. Width: 38 mm. Length: 45 mm |
| Display | ST7735 0.96" Full Color IPS LCD (80x160) |
| RGB LEDs | 11 RGB LEDs facing up, 4 RGB LEDs facing down (SK9822-2020)|
| Wirstband GPIOs | 2 GPIOs + GND + Power per side |
| Battery capacity | 200 mAh (prototypes: 100-150 mAh) |
......@@ -46,7 +48,7 @@ More information to come.
The Fundamental Board is located just above the wristband; above it comes the battery, the Harmonic Board, and the display. The Harmonic Board is connected to the Fundamental Board via a board to board connector.
Several interfaces for [interhacktions](/en/interhacktions) are included on the Fundamental Board. The travelers can be alerted to an event using the vibration motor. Screws through the ECG contacts are used both for attaching the wristband and for making contact with your skin for ECG measurements. Besides its use for interhacktions, the [USB-C](/en/usbc) connector is also used for charging the battery and for updating the firmware.
Several interfaces for [interhacktions](/interhacktions/) are included on the Fundamental Board. The travelers can be alerted to an event using the vibration motor. Screws through the ECG contacts are used both for attaching the wristband and for making contact with your skin for ECG measurements. Besides its use for interhacktions, the [USB-C](/hardware/usbc/) connector is also used for charging the battery and for updating the firmware.
A PDF version of the schematic of the Fundamental Board is available [here](https://git.card10.badge.events.ccc.de/card10/hardware/blob/master/boards/Fundamental-Board/Fundamental-Board.pdf)
......
```
Title: Accessories
```
---
title: Accessories
hidden: true
---
## Gehäuse
- [3d druckbares Gehäuse](https://git.card10.badge.events.ccc.de/card10/cover)
Schau dir die verschiedenen Optionen fuer Gehäuse [hier](/userguide/cases) an.
---
title: Accessories
---
{{% notice info %}}
Deutsche Version: [Accessories](../accessories.de)
{{% /notice %}}
## Cases
Check out the different cases available [here](/userguide/cases).
......@@ -4,7 +4,7 @@ title: Mechanical Data
Our reconstruction of the card10 badge is made of two 1 mm PCBs, spaced 5 mm apart.
- The [Fundamental Board](/en/hardware-overview/#fundamental-board) is a bit larger than the [Harmonic Board](/en/hardware-overview/#harmonic-board)
- The [Fundamental Board](/hardware/#fundamental-board) is a bit larger than the [Harmonic Board](/hardware/#harmonic-board)
- To make sewing the wristband connections easier when the card10 is fully assembled
- The wirstband is about 34-38 mm wide and 25 - 30 cm long
- The two PCBs are spaced using three 5 mm brass spacers and one 5 mm nylon spacer
......
......@@ -2,12 +2,12 @@
title: USB-C
---
# General use
## General use
You will need a USB-C cable to charge your card10. You can also use it as a storage device to read/write files and update software. We plan to provide most of these functions via BLE as well, but a wired connection might still come handy.
The charging and file transfer works whichever way round the USB-C cable is plugged in.
# Full I/O
## Full I/O
Traveler reports agree that the badge uses USB-C, the assumption is that this was chosen over Micro-USB for the available range of extra pins. The reconstruction thus has some extra pins available, which would explain several observations of hardware interHacktions using USB-C.
......@@ -24,17 +24,18 @@ Traveler reports agree that the badge uses USB-C, the assumption is that this wa
| TX2+ | B2 | Reset | Pull low to trigger a reset |
| TX2- | B3 | - | |
# Schematics
## Schematics
![USB-C related schematics section](/media/hardware/usb-c-pinout.png)
**!Caution!** Most USB-C cables available for sale do not connect all pins of the connector. Whilst this is not a problem for general use, if you want to access the full available I/O contacts, it might be best to choose a cable from the suggestions listed at the bottom of the page.
To use full I/O, there is a 'correct side up' for the USB-C cable.
## SWD
## UART
## ECG
## GPIOs
### SWD
### UART
### ECG
External ECG electrodes can be connected via USB-C with a [self-made cable](/tutorials/ecg_kit_assembly/).
### GPIOs
## 'Confirmed' full pin cable options
Whilst this list does not guarantee you anything, these cables have been bought before and were found to have all contacts connected:
......
......@@ -2,48 +2,48 @@
title: Interhacktions
---
# General considerations
## Privacy
## General considerations
### Privacy
Do not collect unneeded data. Always ask yourself if you can reduce the amount of needed data further. Avoid keeping logs.
## Different personal space of people
### Different personal space of people
Make sure your InterHacktions don't encourage people to grab or otherwise uncomfortly interact with people who did not consent.
## Chirality
### Chirality
Some people are left-handed, others are right-handed. Some place a watch below the wrist, some above. When designing user interfaces, bear in mind that the display output may be rotated and buttons may be in a different position than you expect.
## Accessibility
### Accessibility
Consider the variability in range of motion, vision, etc. New ideas how menus can be navigated and the HERT2 can become more accessible are very welcome.
# Interfaces
## Physical
## Interfaces
### Physical
### Contacts for sewing or soldering
#### Contacts for sewing or soldering
A total of 4 GPIO pins, as well as 3.3V and GND contacts are available for sewing wearable LEDs, sensors, ... onto the wristband.
The pitch of the small holes between the sewable connectors fits a 2.54 mm pin header, so if you rather work with solder than thread, you can use an angled pin header to access the sewable connectors. Additional debugging pins are also available through the small contacts between the five sewable connectors on each side.
### USB-C spare pins
Besides the usual USB pins, we made some special signals e.g. UART and contacts for attaching ECG probes available on the USB-C connector. You can find more details on the [USB-C](/en/usbc) page.
#### USB-C spare pins
Besides the usual USB pins, we made some special signals e.g. UART and contacts for attaching ECG probes available on the USB-C connector. You can find more details on the [USB-C](/hardware/usbc/) page.
### Wristband
#### Wristband
If the velcro lined wristband doesn't fit your needs, you can use the holes for the sewing contacts or the ECG contacts to attach your own wristband.
### Harmonic Board
#### Harmonic Board
The Harmonic Board is a fairly simple 4 layer board, you can make a customized Harmonic Board if you like.
## Wireless Interfaces
### Bluetooth Low Energy
Below an overview of BLE interhacktions; for more details see the [ble page](/en/ble)
#### Badge to badge
#### Badge to app
#### Badge to interhactions, latptop, etc.
#### Mesh
### Wireless Interfaces
#### Bluetooth Low Energy
Below an overview of BLE interhacktions; for more details see the [ble page](/userguide/ble)
##### Badge to badge
##### Badge to app
##### Badge to interhactions, latptop, etc.
##### Mesh
# Software
## Micropython l0dables
## c l0dables
### Air Guitar
## Files read as a USB drive
## Software
### Micropython l0dables
### c l0dables
#### Air Guitar
### Files read as a USB drive
---
title: blinkisync
---
From firmware version 1.8 you will be able to send and receive text via light with your card10.
You can exchange contacts, exchange secret notes, embed messages into your LED spotlights, ...
#### usage of the app
Choose blinkisync-receive for receiving transmissions and blinkisync-transmit for transmitting text.
Start interaction by holding the right upper button. Then hold the flashing LED of the sending Card10 to the ambient light sensor of the receiving card10.
the ambient light sensor is located above the "d" of the card10 logo.
The receiving card10 will calibrate now, which means that it measures maximum and minimum of received light in the last second.
When the shown values are stable, the button of the receiving card10 can be let go and after that, the button of the sending card10 can be let go.
Transmission will start now. After transmission the received text can be saved to `blinki-received.txt`
The string to be transmitted will be pulled from `blinki-transmission.txt`
#### Protocol:
Text gets decoded to zero padded utf-8 bytes and bits translated to LED on or off with a timing of 150ms.
In front of the data bytes is a special start byte and there is a timing signal after each byte. The end signal is 8 bits of 0.
Start byte:
`00000101`
Timing byte:
`1011`
End byte:
`00000000`
Example:
hello world:
`00000101 1011 01101000 1011 01100101 1011 01101100 1011 01101100 1011 01101111 1011 00100000 1011 01110111 1011 01101111 1011 01110010 1011 01101100 1011 01100100 1011 00000000`
---
title: Exposure Notifications
---
COVID-19 Exposure Notifications are based on Bluetooth Low Energy (BLE). They are based on BLE advertisements and can be received (and in general also be sent) by the card10.
> :warning: The Exposure Notification support of the card10 is not meant as an replacement for official Exposure Notification apps. It is merely meant as a tool for the curious.
[![Exposure Notification Stats app](/media/card10-exnostat.jpg)](/media/card10-exnostat.jpg)
The currently released firmware for the card10 does not allow receiving of BLE advertisements.
[Here](https://git.card10.badge.events.ccc.de/card10/firmware/-/merge_requests/392)'s
a Merge Request which implements this functionality. If you have a working toolchain for the card10,
please try and build this MR, as you will have to most up-to-date version.
If you do not have a working toolchain, you can download a [pre-build image](/release/card10-exno-r1.zip).
Simply unzip the archive and merge it onto your card10. See the [firmware update page](/firmware/firmwareupdate) for details. Most importantly
always use the "safely eject" functionality of your operating system after writing files to the card10.
To use the BLE features of the card10 make sure to enable BLE in the `Bluetooth` app.
> :warning: This firmware has to be considered untested and therefore faulty. Please make a backup of your file system before putting the new firmware onto your card10.
## Exposure Notification Statistics App
After installing the firmware update, you will find a new app on your card10: `Exposure Notification Stats`. If you launch this app (Bluetooth has to be enabled. See above.) you will start to see some statistics about Exposure Notifications in you vicinity. The app will try to distinguish Apple and Google devices based on a heuristic. This heuristic might fail at any point in time. The app shows the number of unique MACs (aka devices) seen during the last 100 seconds. The seconds counter shows how long ago the oldest considered MAC has been received. A low number means that most of the counted devices are still in you vicinity.
Two buttons allow you to change the LED and vibration motor behavior:
- Off: Default after launching the app.
- New MAC: Flash an LED (yellow) or strongly vibrate when a new MAC (aka device) is observed.
- Each RX: Flash an LED (blue) or weakly vibrate when for each received Notification Exposure.
- Both: Do both ;)
Almost all logic is written in Python and can be modified by you: [`apps/exnostat/__init__.py`](https://git.card10.badge.events.ccc.de/card10/firmware/-/blob/schneider/covid-tracing/preload/apps/exnostat/__init__.py)
### Possible Improvements
- Write received Exposure Notifications to a file:
- Try to follow [Google's guidlines](https://developers.google.com/android/exposure-notifications/ble-attenuation-overview#aggregation_over_a_four-second_scan_scaninstance_min_and_average).
- Try to limit the amout of writes to the flash. Accumulate data in RAM first and write in batches.
- Disable the screen while not looking at it:
- The [G-watch app](https://badge.team/projects/g_watch) can serve as a starting point. It uses the gyroscope and accelerometer to detect glances.
- Show more statistics over time:
- A graph of accumulated activity over time.
- Showing RSSI on the front LEDs (will consume more power).
- Send exposure notifications:
- Needs changes to epicardium and some crypto efforts.
### Media
[Video of the Exposure Notification Stats app running](/media/card10-exnostat.mp4)
## Resources
- https://github.com/kauzu/CoronaAppDetector
- https://github.com/frankrieger/CoronaAppDetectorM5StickC
- https://github.com/znuh/microbit-corona-scanner
- https://www.bunniestudios.com/blog/?p=5820
---
title: Erste Interhacktionen
hidden: true
---
{{% notice info %}}
Hinweis: Die authoritative Seite ist die englische. Wenn du hier etwas inhaltlich änderst, bitte sorge dafür, dass es auch auf der englischen Seite geändert wird.
# Erste Interhacktionen
{{% /notice %}}
Die einfachste Art und Weise, um LEDs zum blinken zu bringen, ist, python zu benutzen. Es gibt zwei Möglichkeiten, um Python-Code auszuführen: Entweder du verwendest eine interaktive Python-Kommandozeile oder du speicherst `.py`-Dateien auf dem card10. Die interaktive Kommandozeile ist sehr praktisch, um Python-Kommandos auszuführen und `.py`-Dateien zu debuggen. Wenn du.py-Dateien direkt speicherst, sind die Skripte, die du schreibst auch dann verfügbar, wenn card10 nicht mehr mit deinem Computer verbunden ist.
......@@ -64,4 +64,4 @@ Die erste Zahl, die eingegeben wird, ist der Index, um die Raketen-LED auszuwäh
Um eine Sitzung in screen zu beenden, drücke `Strg+A` dann `k` dann `y`. In picocom ist die Tastenkombination `Strg+A`, dann `Strg+Q`.
## Glückwunsch!
Wenn du deine neu erworbenen card10-Skills anwendest, schau dir bitte die [generellen überlegungen, um Interhacktions zu designen](/de/interhacktions) an. Denk ausserdem daran, dass manche blinke-Muster bereits eine besondere Bedeutung haben, um den [persönlichen Zustand](/ps) einer reisenden person anzuzeigen .
Wenn du deine neu erworbenen card10-Skills anwendest, schau dir bitte die [generellen überlegungen, um Interhacktions zu designen](/interhacktions) an. Denk ausserdem daran, dass manche blinke-Muster bereits eine besondere Bedeutung haben, um den [persönlichen Zustand](/ps) einer reisenden person anzuzeigen .
......@@ -2,6 +2,10 @@
title: First Interhacktions
---
{{% notice info %}}
Deutsche Version: [Erste Interhacktionen](../firstinterhacktions.de)
{{% /notice %}}
The easiest way to make some LEDs blink is using python. There are two ways of executing python code: Using an interactive python command line, and saving `.py` files on the card10. The interactive command line is very practical to try out python commands, and debug '.py' files. Directly saving .py files makes the scripts you write available when you have card10 disconnected from your computer.
## Using the interactive command line
......@@ -79,4 +83,4 @@ Once you are satisfied, you can publish it in an official revision. As you impro
To close a session in screen, press `Ctrl+A` then `k` then `y`. In picocom, exit using `Ctrl+A`, then `Ctrl+Q`.
## Congratulations!
When applying your newly learned card10 skills, please have a look at the [general considerations for designing Interhacktions](/en/interhacktions). Also bear in mind that some blinking patterns have been assigned a special meaning for communicating a traveler's [personal state](/ps).
When applying your newly learned card10 skills, please have a look at the [general considerations for designing Interhacktions](/interhacktions/). Also bear in mind that some blinking patterns have been assigned a special meaning for communicating a traveler's [personal state](/ps/).
---
title: Logbook
weight: 60
---
#### general
## General
We got some log entries from travelers that have been to this years camp. As far as we know there will be a badge, people call it card10 and "wear" it on one of their arms and connect via BLE.
It is documented that we will have been developing a wide range of so called "interhacktions" (loadables) for card10. A lot of the villages at the camp will have so called GIGAs, BLE Devices to spread new interhacktions, host games and connect to travelers.
To not ruin the future by hiding information that was given to us, we started a wiki (CARD10LOGIX) for everyone to collaborate on ideas for card10.
......@@ -10,9 +11,9 @@ To not ruin the future by hiding information that was given to us, we started a
what travelers will write down in their log-entry at cccamp 2019 will be developed from now on by all of us.
# Logbooks
## [card10-camp-travelers](/en/logbook/card10-camp)
## [personal time, wristband, individual design](/en/logbook/I-O-time-wristband-individual-design)
## [personale state LED](/en/logbook/personal-state-led)
## [topics near by](/en/logbook/topics-near-by)
## [notifications](/en/logbook/notifications)
## Logbooks
### [card10-camp-travelers](/logbook/card10-camp)
### [personal time, wristband, individual design](/logbook/i-o-time-wristband-individual-design)
### [personale state LED](/logbook/personal-state-led)
### [topics near by](/logbook/topics-near-by)
### [notifications](/logbook/notifications)
File moved
......@@ -3,11 +3,11 @@ title: Notifications
---
# Overview:
## Overview:
Android notifications can be intercepted and sent to the card10 to be displayed there
# Firmware support:
## Firmware support:
- The badge can receive notifications via BLE and display them
- It is possible to trigger the vibration motor with a notification
- It is possible to define on the Android side how the motor vibrates
......@@ -18,7 +18,7 @@ Android notifications can be intercepted and sent to the card10 to be displayed
— For example: If the notification is a call notification: The user can reject or take that call
— In general: pressing a button opens the application on the users phone
# Data Format:
## Data Format:
- Protobufs are used to encode these notifications to the badge
......@@ -26,4 +26,4 @@ Additionally there could be a privacy friendly way to announce personal topics v
* There could be a way to find other people with same topics.
* If I try to contact a person with a similar topic, this person should be able to anonymously decline the the contact before we are "matched"
* There needs to be a way to find that person if we get matched. Maybe the LEDs on our badges show the same randomly generated pattern and we raise our badge wearing arm to find each other.
* other peoples interests shouldn't be discoverable if they set their [personal state leds](/en/logbook/personal-state-led.md) to a non-communicative state
* other peoples interests shouldn't be discoverable if they set their [personal state leds](/logbook/personal-state-led) to a non-communicative state
---
title: Maintenance & Repair
weight: 20
---
An important aspect of open hardware is that you have the information you need so you can fix it - if you have the skills to do so.
In this section hopefully we can collectively gather information and tutorials so all of us can enjoy our card10s for as long as possible!
To prevent the display from cracking consider putting your card10 into a [case](/userguide/cases). This is likely the most important thing to do so your card10 has a long life.
---
title: Display repair and replacement
---
All card10 displays were hand soldered by volunteers, many directly at cccamp2019 - impressive, right?!
On the other hand, if untrained volunteers were able to do it, you can probably learn how to solder a card10 display, too!
If you have little soldering experience, it might still be good to find someone with a bit of experience to guide you a bit.
Another consequence of the hand soldered displays: Particularly if your display never worked properly and is not visibly damaged,
there is a good chance that it has a bad solder connection. So if your display
appears broken, you might be able to fix it by just re-doing the solder connection.
This guidance shows you how to check your display, do this:
**Step 0:** Disassemble your card10 by removing the screws on the top PCB with a T6 screwdriver and gently pulling up the harmonic board.
Disconnect the battery with a pair of tweezers.
**Step 1:** The display sticks to the Harmonic board with two small double sided glue points (like the one you placed on
the backside to mount your battery). So careful lift the broken display with a pair of tweezers from the right side upwards.
Make sure that you under no circumstances lift the display to an extent so that the flex PCB of the display rips off
one or more solder pads from the harmonic PCB. Otherwise you would not be able to rework your Harmonic!
**Step 2:** Carefully remove the glue points from the Harmonic PCB.
If your display is not physically broken, now is a good time to check what the solder connection looks like.
If the solder connection looks bad, continue in section **Soldering connection**, otherwise continue with **Replacement**.
### Replacement
**Step 3:** Apply a larger amount of solder with your solder iron. For this step you want to use your largest
solder tip. Try to apply heat to all pins of the flex pcb at the same time. Slowly and carefully apply an
upward force to lift the flex pcb. If all of the pins are heated the flex pcb will come off the Harmonic board.
**Step 4:** Use a desolder wire to remove the rest of the solder from the Harmonic pcb. Be careful and make
sure not to damage the board by ripping off one of the pads.
**Step 5:** Place your new display in the right orientation onto your Harmonic board. Make sure that the small
holes of the display flex pcb and the Harmonic board pcb align. At this stage the metal can part of the display
(bottom side) will point upwards.
### Soldering connection
**Step 6:** Apply solder on the display flex pcb pins.
**Step 7:** Visually check the connections and make sure that there are no shorts between the pins.
**Step 8:** Apply two glue points to the Harmonic pcb (one directly over the blanc pins of the flex pcb to
isolate them to the metal can of the display and one on the right side of the display pcb marking). If you don't
have those glue points we used, you also can make use of standard double-sided tape.
**Step 9:** Flip the display over end carefully press the display to the Harmonic pcb. Make sure that the
force does not destroy the LCD. You can apply the force at the edges of the display. Also make sure that the LCD is
in its right position and aligned with the rectangle on the pcb. It's easy to produce shorts on the components on the
right edge of the LCD.
**Step 10:** Connect the battery and switch on the badge
The LCD can be bought at AliExpress: https://de.aliexpress.com/item/4000018872259.html or from ebay:
https://www.ebay.de/itm/0-96-1-3-1-44-1-8-SPI-TFT-LCD-Full-Color-Display-Module-ST7789-OLED-Screen/174041960470, 0.96" variant.
## tl;dr:
**Parts needed**
Glue dots or double sided tape; replacement LCD, e.g. from AliExpress: https://de.aliexpress.com/item/4000018872259.html or from ebay:
https://www.ebay.de/itm/0-96-1-3-1-44-1-8-SPI-TFT-LCD-Full-Color-Display-Module-ST7789-OLED-Screen/174041960470, 0.96" variant.
**Step 0:** Disconnect the battery with a pair of tweezers.
**Step 1:** Carefully lift the broken display with a pair of tweezers from the right side upwards.
Make sure you don't rips off
one or more solder pads from the harmonic PCB. Otherwise you will not be able to rework your Harmonic!
**Step 2:** Remove the glue points from the Harmonic PCB.
**Step 3:** Apply a larger amount of solder with your solder iron with your largest
solder tip. Try to apply heat to all pins of the flex pcb at the same time. Slowly and carefully apply an
upward force to lift the flex pcb. If all of the pins are heated, the flex pcb will come off the Harmonic board.
**Step 4:** Use a desolder wire to remove the rest of the solder from the Harmonic pcb. Again, avoid ripping off one of the pads.
**Step 5:** Place your new display in the right orientation onto your Harmonic board. Make sure that the small
holes of the display flex pcb and the Harmonic board pcb align. At this stage the metal part of the display
(bottom side) will point upwards.
**Step 6:** Apply solder on the display flex pcb pins.
**Step 7:** Visually check the connections and make sure that there are no shorts between the pins.
**Step 8:** Use glue points or double sided tape to attach the display. Make sure to cover the blank pins of the flex pcb
with the points/tape to isolate them.
**Step 9:** Flip the display over, carefully press the display to the Harmonic pcb, ensure correct alignment to avoid
shorting other components on the PCB.
**Step 10:** Connect the battery and switch on the badge
</details>
---
title: File system maintainance
---
## Read only file system
One possible reason for a read-only filesystem is a set "dirty-bit".
To change this the linux tool fsck can be used.
First the badge needs to be ejected safely, then it needs to be restartet and put back into "USB storage" mode.
The device should not be mounted. Now `lsblk` can help with finding the correct blockdevice.
Then you can check the filesystem with `fsck /dev/sdX` (replace `sdX` with the correct device).
If neccessary the tool will ask if the "dirty bit" should be removed, this needs to be answered with yes.
After this, the problem should be solved.
## No file system detected
If operating does not show a file system after activating _USB Storage Mode_ and attaching it via USB, a few things might be at fault:
- The file system might be corrupted. Please try to create a new FAT file system and copy over the data from a working firmware release.
- The USB cable might be broken. Check if your computer recognized a new device.