Teddycloud CC3200 newbie guide

Why aren’t you using the alt ca patch? Have you wrote the teddycloud ca as ca.der into your firmware image? Only in this case it will work without the patch.

Do you think it should work as follows?
“patches“: [”altCa.305”, ‘altUrl.tc.fritz.box’]

What exactly do you mean by writing ca.der in the firmware?

There is one step where you should write the ca.der from tc as c2.der into the firmware. That’s what I meant.

And yes, if you followed the guide, adding the altCa patch can help

@henryk
this was the solution [”altCa.305”, ‘altUrl.tc.fritz.box’]. Thank you very much!
and even @marco79cgn thx for your great help!

This happens quite frequently that people remove the altCA patch. I wonder why? Maybe because the Wiki says that it is “recommended” and people think that they can just skip it?

„Recommended“ in the Wiki context means that it is recommemded to flash the teddyCA to an alternative path (→ /cert/c2.der) so that you can choose between booting the original firmware (BoxineCA) or the patched one (TeddyCA). This is not possible with other boxes. The alternative would be to replace/overwrite the original BoxineCA with the TeddyCA (like with CC3235 and ESP32 boxes).

Your Toniebox can‘t connect to your Teddycloud without using the TeddyCA. So it is absolutely mandatory to have it on the box. It’s needed for the secured https communication. Otherwise there‘ll be an „unknown Certificate Authority“ exception on your Toniebox, no handshake, no communucation. The altCa patch is needed for the “recommended” way so that the CA from /cert/c2.der (TeddyCA) will be used instead of the original one (BoxineCA).

I followed this newbie guide a few days ago and removed this patch unintentionally as well.
Thereby I need to extend my “just” basic and rusty knowledge base ( especially in this topics proxmox, docker, portainer, subnets, python, json, etc …) So it took me some hours starting from basic youtube tutorials and going step by step.At some point in the late evening I guess I simply mixed the patch names altUrl.305 and altCa.305 and interpreted the following line in the guide

as request to choose and deleted altCa.305 from the list.
After some hours extra to follow the troubleshooting, do it all again a second time, and read existing forum questions I recognised my “simple” mistake by a post of a ngCfg somewhere.

After analysis of my mistake, I even dont have a suggestion what to change to avoid it. Choosing some obviously more different names for the patches might help, but read more carefully would it do also :wink:

1 Like

Hi,
I got some problems as well.
At first I tried to hack the Box with the instructions on the teddycloud container. → Didn’t work → “Ant”
Then i tried the newbie guide. I now get the “OK” sound at the end and the box is connected to the wifi and the internet. But teddycloud says “no toniebox found”

  • teddycloud runs on a docker machine
  • The toniebox sounds changed from german to english (for example “my battery is low”)

LucaToni said something about changes in line 1 of the ngCfg.json. I did just change line 32. What changes in line 1??

Anybody got an idea what was my fault?
THX

You have to switch to ofw2 with the correct patches. In default bootimage is ofw1. That should be changed to ofw2

OK, I changed that of course.
I tried to change the patch section to: [”altCa.305”, ‘altUrl.tc.fritz.box’], as Carl_We postet before, but when I do that, I get the Code “Owl”. I don’t know if that helps, but I wanted to tell you.
Do you have any idea?

Please don’t use single quotes. Also this should be default anyway for ofw2

Hi
I’m stucking at that point to connect the toniebox to teddycloud.
I think I was able to flash the bootloader onto the pcb because I was able to get my box doing the “waiting blinking” sequence (blue, green, cyan, black) when waiting for earpress
Additionally if I’m choosing “ofw1” as “activeImg” the box started playing the original tonie which I placed of ontop the box (the audio file wasn’t on the box before). For my understanding this is the correct behaviour, isn’t it?

Should my teddycloud recognize my toniebox at this point already?

My sd card looks like this. I just copied 3 times the ng-ofw1.bin file and renamed it as shown below. I don’t know if this makes sense at all :man_shrugging:.

I changed the “ofw1” to “ofw2” and tried different patches “altCa.305”,“altUrl305” and “altUrl.custom.305” without success.
I always get the error code ant, which indicates connection to router but no connection to the internet after I was pressing any ear for freshness check.

This was my altUrl.custom.305 file

{
    "general": {
        "_desc": "Changes Boxine URLs to custom ones.",
        "_memPos": "",
        "_fwVer": "3.0.5+"
    },
    "searchAndReplace": [{
        "_desc": "prod.de.tbs.toys to teddycloud",
        "search":  ["70", "72", "6f", "64", "2e", "64", "65", "2e", "74", "62", "73", "2e", "74", "6f", "79", "73", "00"],
        "replace": ["74", "65", "64", "64", "79", "63", "6c", "6f", "75", "64", "00", "??", "??", "??", "??", "??", "??"]
    }, {
        "_desc": "rtnl.bxcl.de to teddycloud",
        "search":  ["72", "74", "6e", "6c", "2e", "62", "78", "63", "6c", "2e", "64", "65", "00"],
        "replace": ["74", "65", "64", "64", "79", "63", "6c", "6f", "75", "64", "00", "??", "??"]
    }]
}

General question:
Do I have to delete every file in the patch folder except the patches I want to use?
Does the “altCa.305” patch has to be always active inside the brackets?

"ofw2": {
        "checkHash": true,
        "hashFile": false,
        "watchdog": true,
        "ofwFix": true,
        "ofwSimBL": true,
        "patches": ["altCa.305", "altUrl.custom.305"]

The Teddycloud runs on a synology NAS with the following docker compose file

#version: '3'
services:
  teddycloud:
    container_name: teddycloud
    mac_address: 66-66-66-00-00-01  # random 
    networks:
      dockervlan:    
        ipv4_address: 192.168.178.148   # set your own IP-Adress (that's the IP Adress from the Teddy Cloud server)
    hostname: teddycloud
    domainname: Philipp                       # set your own domain (that's the domainname of my Synology NAS)
    image: ghcr.io/toniebox-reverse-engineering/teddycloud:latest
    ports:
      - 80:80 #optional
      - 8443:8443 #optional (for the webinterface)
      - 443:443 #Port is needed for the connection for the box
    volumes:
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/certs:/teddycloud/certs #certificates of the server
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/config:/teddycloud/config #config file for the server and the boxes
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/content:/teddycloud/data/content #microSD representation for the boxes
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/library:/teddycloud/data/library #library to manage content
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/custom_img:/teddycloud/data/www/custom_img #location to store custom images for custom tonies json
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/firmware:/teddycloud/data/firmware #firmware backups
      - /volume4/Cloud gemeinsam/07_Toniebox/Teddycloud/cache:/teddycloud/data/cache #img cache for content images
    restart: unless-stopped
    environment:
     - TZ=Europe/Berlin
    cap_add:
      - NET_ADMIN

volumes:
  certs:
  config:
  content:
  library:
  firmware:
networks:
  dockervlan:
    name: mvl
    driver: macvlan
    driver_opts:
      parent: eth1
    ipam: 
      config:
        - subnet: "192.168.178.0/24"      # change it to your own network address! (That's the Range where my network starts)
          ip_range: "192.168.178.148/30"  # change it to your own network address! (That's the range of ipadresses what the macvlan can choos from /27-> 32 adresses; /28-> 16 Adresses ...) 
          gateway: "192.168.178.1"        # change it to your own network address! (That's the IP adress from my Router)

If you enter teddycloud in your browser… is teddycloud opened?

You need to use two patches to get it working.

  • Altca patch for the ca certificate (which should be stored as c2.der pr your teddycloud your toniebox.)

  • one of the alturl patches.

On the macvlan setup someone else might help, I am not using it.

Hello, I’m new here. I’ve been struggling with setting up Teddycloud for quite a while now. At this point, I’m exhausted and on the verge of despair…

That being said, I’ve made significant progress: the Boxine is recognized, and I’ve flashed the boxes so many times that I could probably do it in my sleep by now. I also got a great tool from Alimann (just the plug without the cables, which I then soldered – it was cheap enough).

However, I keep failing miserably when it comes to connecting to the Fritzbox, mainly because fritz.box no longer exists. This namespace has been taken over by someone from Witzbolt and can no longer be used, which means alt.tc.fritz.boxno longer works.

Hi ch1ll4,

first I didn’t test your solution, because I’m not using pi-hole.
Nevertheless I switched the patch to the “altUrl.tc.fritz.box” (“altCa.305” is still active)
Now I get the codeword owl (codewort Eule)

Does the “altUrl.tc.fritz.box” enables connection to my teddycloud instance which is running on IP 192.168.178.148?
I read something about that only 12 characters are allowed.
Do I have to change my home network to 192.168.0.1/24 instead of 192.168.178.0/24?

if you named your teddycloud in FritzBox “tc”, then it should work, if not of course not.

Don’t change your network settings.

You just have to go to the Fritz Box and rename the toniebox to tc.

Then you should be able to reach the Toniebox via tc.fritz.box.

Oh boy…
I forgot to write that I renamed my fritz.box to “tc” and I’m able to enter GUI of fritzbox when I hit tc.fritz.box in any browser

Is there a way you guys can say if my toniebox is able to connect to my teddycloud or not with this logs?
The Toniebox appears in my fritzbox under network connections with a dedicated IP-address

2025/02/09 16:35:23	stderr	INFO |server.c:0929:server_init| 0 open HTTPS Web connections
2025/02/09 16:35:03	stderr	INFO |server.c:0929:server_init| 2 open HTTPS Web connections
2025/02/09 16:35:02	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:35:02	stderr	INFO |server.c:0929:server_init| 1 open HTTPS Web connections
2025/02/09 16:35:02	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:22:27	stderr	INFO |server.c:0929:server_init| 0 open HTTPS Web connections
2025/02/09 16:17:21	stderr	INFO |server.c:0929:server_init| 2 open HTTPS Web connections
2025/02/09 16:17:21	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:17:21	stderr	INFO |server.c:0929:server_init| 1 open HTTPS Web connections
2025/02/09 16:17:21	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:12:59	stderr	INFO |server.c:0929:server_init| 0 open HTTPS Web connections
2025/02/09 16:12:45	stderr	INFO |server.c:0929:server_init| 3 open HTTPS Web connections
2025/02/09 16:11:33	stderr	INFO |cloud_request.c:0479:web_request| Response: '1739113893'
2025/02/09 16:11:33	stderr	INFO |server.c:0929:server_init| 6 open HTTPS Web connections
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	INFO |server.c:0929:server_init| 12 open HTTPS Web connections
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:33	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:32	stderr	INFO |cloud_request.c:0252:web_request|   trying IP: 18.156.186.144
2025/02/09 16:11:32	stderr	INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
2025/02/09 16:11:32	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:32	stderr	INFO |server.c:0929:server_init| 17 open HTTPS Web connections
2025/02/09 16:11:32	stderr	INFO |mqtt.c:0685:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
2025/02/09 16:11:32	stderr	INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
2025/02/09 16:11:32	stderr	INFO |server.c:0929:server_init| 3 open HTTPS Web connections
2025/02/09 16:11:32	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:32	stderr	INFO |server.c:0929:server_init| 2 open HTTPS Web connections
2025/02/09 16:11:32	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:31	stderr	INFO |server.c:0929:server_init| 1 open HTTPS Web connections
2025/02/09 16:11:31	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:31	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:29	stderr	INFO |server.c:0929:server_init| 0 open HTTPS Web connections
2025/02/09 16:11:28	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:28	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:28	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:28	stderr	INFO |server.c:0929:server_init| 1 open HTTPS Web connections
2025/02/09 16:11:28	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:11:28	stderr	WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
2025/02/09 16:10:43	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5139387
2025/02/09 16:10:43	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
2025/02/09 16:10:43	stderr	INFO |toniesJson.c:0238:tonieboxes_update| ... success updating tonieboxes.json from api.revvox.de, reloading
2025/02/09 16:10:42	stderr	INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.110.133
2025/02/09 16:10:42	stderr	INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...
2025/02/09 16:10:42	stderr	INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonieboxes.json
2025/02/09 16:10:42	stderr	INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
2025/02/09 16:10:42	stderr	INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
2025/02/09 16:10:42	stderr	INFO |toniesJson.c:0211:tonieboxes_update| Updating tonies.json from api.revvox.de...
2025/02/09 16:10:42	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5139387
2025/02/09 16:10:42	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
2025/02/09 16:10:42	stderr	INFO |toniesJson.c:0124:tonies_update| ... success updating tonies.json from api.revvox.de, reloading
2025/02/09 16:10:40	stderr	INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.110.133
2025/02/09 16:10:40	stderr	INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...
2025/02/09 16:10:40	stderr	INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonies.json
2025/02/09 16:10:40	stderr	INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
2025/02/09 16:10:40	stderr	INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
2025/02/09 16:10:40	stderr	INFO |toniesJson.c:0100:tonies_update| Updating tonies.json from api.revvox.de...
2025/02/09 16:10:40	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5139387
2025/02/09 16:10:40	stderr	INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0390:tls_adapter_init| Loading certificates...
2025/02/09 16:10:40	stderr	INFO |settings.c:0848:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY
2025/02/09 16:10:40	stderr	INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style
2025/02/09 16:10:40	stderr	INFO |settings.c:0848:settings_load_ovl| Load settings from /teddycloud/config/config.ini
2025/02/09 16:10:40	stderr	INFO |settings.c:0848:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini
2025/02/09 16:10:40	stderr	
2025/02/09 16:10:40	stderr	TeddyCloud v0.6.2 (203f12d) - 2024-10-26 18:14:34 +0000 ubuntu linux-x86_64(64) 

What are you doing?

You enter tc.fritz.box and reach the fritz box Ui?

You shall name the teddycloud tc, not FRITZ!Box.

If you enter tc.fritz.box in your browser, you should be redirected to teddycloud web ui.

And please update teddycloud to the latest release which is 0.6.3

Thank you for that hint
exactly this was my problem. I redone my change of the fritz box naming.
Instead I renamed the name of my teddycloud in fritzbox gui to tc as shown below.
Maybe this helps someone, too :wink:

Toniebox is connected to teddycloud now :partying_face: :partying_face: