Coldplay Xyloband Reverse Engineering


The Xyloband is the wristband that Coldplay gives to the audience to create a colorful light show during its concerts.


Fotografía de Carlos RM (CC) 2012.

The wristband receives data from a central transmitter. The new version of the band not only is able to light the LEDs but can receive audio and play it through a built-in speaker.



First, we will disassembly the device and list the different components that we find in the PCB. Then we will try to investigate them looking for datasheets and all the available information to reconstruct the behavior of the circuit. Finally that, we can recover the blueprint of the tracks in the PCB and analyze the complete system.


So I took the Dave Jones approach: “Don’t turn it on, take it apart!”. First I opened the wristband and extracted the PCB with the LED band.

Xyloband internals

Xyloband internals: Speaker, LED/Antenna flat-flex and PCB.

This is the internal parts of the Xyloband. We can see the speaker, the flat-flex with the LEDs and the main PCB. From this view we can intuit that the flat-flex will probably act not only to power the color LEDs but as an antenna to receive the signal.

PCB Inspection

To get a good view of the PCB layers I have done two photos from each side, one front-lighted and another back-lighted. After that we can create a composite image for each side so we can find if there are inside layers. And indeed, there are.

Xyloband PCB Front

Both sides of the PCB with front-light, back-lighted and composite.

The PCB has 4 layers, two external or sides and two internal layers. In parenthesis is the color I have used later in the PCB track blueprint:

  • Front side (Orange)
  • Back side (Cyan)
  • Internal Ground layer (Navy Blue)
  • Internal track layer (Purple)

Now we will analyze each layer in detail.


So here is the first composite image of the front side with its main areas, power and data reception, demodulation and decoding (RX):

Xyloband PCB Front

Composite image of the front of the Xyloband PCB. Horizontally flipped image to match the back layer.

In the front of the Xyloband PCB we can find these devices:

  • Silicon Labs Si4362 High-Performance, Low-Current Receiver
  • 30 MHz Cristal Oscillator
  • IC IACMF Voltage Regulator
  • 3 mH Inductor

The Si4362 IC is the main component of the RX area. This chip will receive the transmission from the antenna (we can see it is connected to the uppermost pin of the flat-flex), amplify it using an Low Noise Amplifier and demodulate it. Then the final digital signal will be sent to the microcontroller in the other side of the board through an I²C connection.

The Power section of the front side is mainly a voltage controller that generates the suitable voltage to drive the LEDs and the Audio Amplifier.


Now back to the back were the main areas are the logic microcontroller, the audio amplifier, the LED drivers and a part of the power section that enables the connection of the battery to the voltage regulator on the other side.

Xyloband PCB Front

Composite image of the back of the Xyloband PCB.

And in the back we can see the following ICs:

The ARM processor is connected with the Si4362 receiver through the I2C and decodes the information, namely the audio and LEDs colors. Then it will light the LEDs through the driver and output the audio signal with its DAC.

The audio signal goes to the SSM2211 audio amplifier which is connected with the speaker.

PCB Reverse Engineering

Now we are going to analyze the board and extract to tracks printed on in to get to full circuit schematic.

Front Tracks

Xyloband PCB Front Tracks

Back Tracks

Xyloband PCB Back Tracks

Inside Tracks

Xyloband PCB Inside Tracks

All tracks superimposed

Xyloband PCB Inside Tracks


The main controller of the Xyloband is an Atmel SAM D20 which outputs the audio and sets the light of the wristband. The audio output is amplified by the Analog Devices SSM2211 low distortion power amplifier and the LEDs are managed by tree transistors. Finally all the data is received and decoded by the Silicon Labs Si4362 receiver and sent through the I2C bus to the main processor.

GIF support coming to WhatsApp


After our friends from AndroidTR found out some resources in the new update of WhatsApp for Android I wanted to go deeper and analyze the iOS version to see if it was prepared to handle GIFs as well.

New glyphs for GIF support

New glyphs for GIF support.

In the last update of WhatsApp for iOS (version 2.16.7) there are the same three new GIF glyphs found in Android and two more for what it seems to be Live Photos support.

New methods and classes for GIF support

New methods and classes for GIF support.

Then in the proper binary executable there are a lot of new methods designed to handle GIFs. They even have created a new Class WAGIFCreator which seems to allow to create GIFs from scratch with various images or a video.

It seems this feature is complete, but the WhatsApp team has to enable it remotely as they have previously done with other capabilities like E2E Encryption.

Introducing the YMARK specification


The YMARK specification aims to define a simple file format that allows to store (and export) all the metadata of a given subject for a student. In particular it was designed to store the assessment so a given program can parse the file and easily compute the final mark and show all the available information of the subject.


YMARKs files are encoded in plain YAML and include all the metadata of a subject and the marks. The main principles of the YMARK format are that it must be:

  • Simple
  • Human readable
  • Easy to modify
  • Extensible
  • Compatible


The following are the defined keys of a YMARK file. Other atributes are not only allowed but encouraged. Each YMARK file describes a unique subject for one student, so each of these properties is about that particular subject and student:

Key Required Description Type Examples
codename Required Two or more capital letters that easily identify the subject String CRYPTO
status Required An integer describing the state of this subject Integer More info below
name Optional Full name of the subject String Cryptography I
Micro and Nano Electronic Design
Sistemas electrónicos digitales
code Optional Code of the subject String G330923
course Optional Course of the subject String Cybersecurity Course
Master in Electronic Engineering Grado en Ingeniería Electrónica
institution Optional Institution teaching the subject String Standford University
Universitat Politècnica de Cat
Universidade de Vigo
credits Optional Number of credits of the subject Float 2.5
type Optional Type of the subject String Online
year Optional Academic year String 2014
term Optional Term of the subject String 2
web Optional Website of the subject String
assessment Optional Array of dictionaries containing the assessment marks Array More info below


The status key of the subject is an integer that indicates the following:

Status Code Meaning Description Color
0 Passed The subject has been passed and now is archived Green
1 Active The subject is being taught in the actual course Blue
2 Future The subject will start in the future Purple
4 Failed The subject has been passed and now is archived Red
Other Unknown The status of the subject is unknown Grey

If you want to create a new proprietary status code you should use a code over 100. The colors are recommendations for any GUI.


The assessment key is an array that includes all the marks of the subject needed to compute the final mark and a some other important information.

Each element of the array is a dictionary with the following keys:

Key Required Description Default Example
mark Required Mark of the item 8
description Optional Name of the item Mid-Term Exam
Lab 3
weight Optional Float between 0 and 1 indicating the weight of this item over the overall subject mark 1 1
fullscale Optional Float that indicates the maximum mark of this item 10 10


Here is an example of a full YMARK file:

course: Master in Electronic Engineering (MEE)
institution: Universitat Politècnica de Catalunya (UPC)
codename: AACT
name: Advanced Analog Circuit Techniques
code: 230642
credits: 5
type: Core
year: 2015/16
term: 2
status: 1
    - description: Deliveries
      mark: 7
      weight: 0.2
    - description: Mid-Term Exam
      mark: 8
      weight: 0.2
    - description: Final Exam
      mark: 76
      fullscale: 100
      weight: 0.6

Program is a script that reads YMARK files and computes the final mark of the subjects.

Usage - Pedro José Pereira Vieito © 2016
  Compute marks from diferent subjects in YMARK format.

Usage: [-adeghow] <file>...

  -d, --details  Show subject details
  -e, --edit     Edit mark files
  -g, --guide    Open subject guide
  -o, --open     Open subject folder
  -w, --web      Open subject web
  -h, --help     Show this help


$ ./ AACT.ymark -d
AACT (Advanced Analog Circuit Techniques) ………………………………………………………………  7.6
 Course: Master in Electronic Engineering (MEE)
 Institution: Universitat Politècnica de Catalunya (UPC)
 Year: 2015/16
 Term: 2
 Type: Core
 Status: Active
 Credits: 5 ECTS
 Code: 230642
 Progress: 100%
 Assesment: 3 items
 - Deliveries (20.0%) ……………………………………………………………………………………………………………………  7.0
 - Mid-Term Exam (20.0%) ……………………………………………………………………………………………………………  8.0
 - Final Exam (60.0%) ……………………………………………………………………………………………………………………  7.6

Interesting courses in Coursera


Coursera is a MOOC platform with thousands of courses from different universities and institutions. These are some I have found very interesting:

Cómo recuperar acceso de administrador en un Mac


Siguiendo estas instrucciones se puede recuperar el acceso de administrador de un Mac sin eliminar otras cuentas o borrar el disco. Este método no funcionará si el disco duro está cifrado con FileVault 2.

  • Reiniciar el Mac.
  • Antes de escuchar el sonido de arranque hay que pulsar Comando+S para entrar en modo terminal.
  • Desde la línea de comandos borramos el archivo .AppleSetupDone para que OS X ejecute la pantalla de bienvenida la próxima vez que reiniciemos:

      mount -uw /
      rm /var/db/.AppleSetupDone
      shutdown -h now
  • Finalmente sólo hay que encender de nuevo el Mac y crear una cuenta.