Toniebox Firmware Dump

The Microcontroller within the Toniebox is a Ti CC3200 (ARM Cortex-M4). Fortunately there are some development Tools available to get further Access which gives us the possibility to dump the Firmware and get access to the files stored within the internal FileSystem.

Structure of Article

  • Toniebox Debug Port
    • Tag-Connector for Debug Port
    • FTDI Adapter / Connection Toniebox to USB
  • Boot Mode
    • SWD mode
    • UART mode
  • extracting firmware
    • CC3200Tools
    • dump firmware
    • read files from internal FatFS
  • SWD debug port

Toniebox Debug Port

A closer look at the Toniebox PCB reveals a Debug Port which makes further steps much easier. Reverse engineering helped with finding the function of most of the debug pins.

Debug PinFunctionMCU Pin
1TX55
2RX57
3VCC (+3,3V)
4RST32
5GND
6?
7TCK19
8TMS20
9SOP221 (indirect SOP0 35)
10?

Tag-Connector

The debug port is designed to fit a Tag-Connector which is meant for debugging purpose. The data sheet for the Tag-Connector can be found here.

You can get the Tag-Connector at Amazon (Affiliate Link).

PCB Pin Layout
of debug port
10 Pin Tag-Connector
end view
IDC connector (2×5 0.1″)
end view
(Connector on ribbon cable to Tag-Connector)

FTDI Adapter / UART-USB

To talk to the debug port of the Toniebox with the Tag Connector you need an FTDI Adapter (UART-USB). It is more comfortable to use one with an DTR and RTS port. In this case it can automate the needed reset and the bootflag (set SOP2 high).

FTDI Adapter (UART-USB)

You can get the FTDI Adapter at Amazon (Affiliate Link).

Boot Mode

The CC3200 Microcontroller implements a sense-on-power (SoP) scheme to switch between three modes where two of these are available within the Tonie project. (To switch between the boot modes a restart of the device is needed.)

SWD mode

SOP2 (pin 9) low will activate the functional mode with a 2-wire SWD mapped to TCK (pin 7) and TMS (pin 8) of the debug port.

UART mode

SOP2 (pin 9) high will activate the UART load mode to flash the system during development and in OEM assembly line.

extract firmware

To extract the firmware from the board, UART Mode needs to be activated (SOP2 / pin 9 needs to be pulled high).

CC3200Tools

In UART mode not only the upload of firmware for development or while in production line at OEM is possible, with the CC3200Tools a dump of the existing firmware and all files of the internal file system is possible as well.

The CC3200Tools can be downloaded here (GitHub).

dump firmware

Use following command to extract full firmware:
c3200tool -p /dev/ttyUSB2 --sop2 ~dtr --reset rts read_flash firmware.dmp

read files from internal FatFS

to dump the files within the internal file system (FatFS) of the CC3200 microcontroller, each file hast to be loaded separately.

  • List files in FatFS:
    cc3200tool -p /dev/ttyUSB2 --sop2 ~dtr --reset rts list_filesystem
  • Extract the files you like:
    cc3200tool -p /dev/ttyUSB2 --sop2 ~dtr --reset rts read_file /sys/mcuimg.bin ./sys/mcuimg.bin

SWD debug port

Attention!
The whole SWD debugging methode is not tested yet!
Needs to be verified.

By pulling SOP2 (pin 9) low, SWD debug mode on TCK (pin 7) and TMS (pin 8) can be activated.

To start debugging with SWD a debugger like the J-Link OB ARM debugger is needed.

J-Link OB ARM debugger

You can get the J-Link OB ARM debugger at Amazon (Affiliate Link).

Attention!
The whole SWD debugging methode is not tested yet!
Needs to be verified.

6 Gedanken zu „Toniebox Firmware Dump“

  1. Hallo [Team RevvoX],
    ihr hab ja schon eine Menge mit der Toniebox umher experimentiert.
    Hattet Ihr mal ein Exemplar das nicht mehr regulär bootete?

    Ich hab hier eine Box die nach dem verbinden mit der Ladestation sehr schnell grün blinkt und dazwischen langsamere Blinkpausen macht. Das Blinken wird dann mit der Zeit immer langsamer bis die Box nur alle 15-20 Sekunden blinkt. Irgendwann geht sie dann aus.

    Die Box ist nicht online zu bekommen und hat dieses Verhalten spontan entwickelt.

    Ich wollte mal fragen ob es evtl. eine Möglichkeit gibt mehr Infos aus der Box zu bekommen. Beim begutachten der Innereien der Box ist auf den ersten Blick nichts Außergewöhnliches aufgefallen.

    VG digitaljunk

    Antworten
    • Hallo Digitaljunk,
      Den Fehler, so wie Du ihn beschreibst, hört sich nach einem Hardwaredefekt an. (Ich gehe davon aus, dass Du bereits ein Zurücksetzen der Box versucht hast).
      Da wir auch eine detaillierte Analyse und Identifikation der Bauteile und Verbindungen auf dem PCB aufgenommen und dokumentiert haben, könnten wir mit Dir versuchen den Fehler einzugrenzen.
      Insbesondere die Ladelogic ist etwas anfällig und ist mittlerweile mit den verschiedensten Schadensbildern bei uns bekannt.
      Um eine weitere Analyse zu machen, würde ich Dich in unserem Telegram Chat Channel einladen (https://t.me/toniebox_reverse_engineering). Dort steht Dir nicht nur das Team RevvoX, sondern auch die mittlerweile sehr groß angewachsene Community mit Rat und Tat im Dialog zur Seite.

      Gruß,
      Gambrius

      Antworten
  2. Hallo Gambrius ist es möglich mit eurer CFW die 2Gb Grenze des Content Ordner zu umgehen, sprich werden die Files direkt geladen oder auch in Ram kopiert?
    MfG yoda

    Antworten
    • Hallo Yoda,

      der Teil der CFW ist noch nicht fertig gestellt. Konzentrieren uns gerade auf ein paar andere Funktionen.
      Die CFW kann die OFW patchen. Damit ist wesentlich mehr mit der OFW möglich als vorher.
      Weiter Funktionen wie Abspielen von mp3s etc. wird folgen. Ob wir dann die 2GB Problematik anders lösen ist noch nicht sicher. Aktuell sehen wir auch keinen wirklichen Bedarf mehr als 12 Stunden Audio hinter einem Custom Tag zu verlinken. Da wäre das Bedienkonzept nicht mehr das richtige…

      Gruß,
      Gambrius

      Antworten
  3. Hallo ich danke dir nochmal vielmals mit diesem Blog von dir Gambrius aber ich bin mir nicht ganz sicher, ob ich die richtige Belegung der Pins am TonieBox-Board und FTDI Uart benutze, bevor ich irgendwas zerschiese.
    Ich möchte nur dumpen und flashen per FTDI Uart, so wie ich das verstanden habe ist es?

    TonieBox Pin 1 (TX) > FTDI RX
    TonieBox Pin 2 (RX) > FTDI TX
    TonieBox Pin 4 (RST) > FTDI CTS ?? notwendig?
    TonieBox Pin 9 (Sop2) > FTDI DTR ?

    vielen dank !!

    mfg Yoda

    Antworten
    • Hallo Yoda,

      die Pin Belegung müsste so passen. Mir ist bis jetzt auch noch keiner unter gekommen, der sein Board zerschossen hat (ausser Moritz!).
      Falls Du noch Unterstützung benötigst, schau mal bei uns im Telgramm Chat vorbei. Dort gibt Dir die Community gerne Hilfestellung. Insbesondere beim Flashen und dumpen gibt es dort mittlerweile einige die Dir dort im Detail helfen werden.

      Gruß,
      Gambrius

      Antworten

Schreibe einen Kommentar