How To Connect a Gen 1 H2G2 42 Chromecast Without Google Home
Google's H2G2 42 seems to have trouble, particularly if it hasn't been firmware updated recently connecting to wifi. This can make it very difficult to get working. Here are the steps to get the wifi connected.
You can see a video of jjdb210 doing this on stream during EP. 2159 - Thu Feb 12 2026 (Youtube)
Tools Needed
The Process
1. Factory reset your Chromecast by holding down the button for 15 seconds. If done correctly, the chromecast should begin broadcasting a local ssid with it's name.
2. Using a device with curl, connect to the Chromecast's SSID. The chromecast should now be pingable at 192.168.255.249.
3. Get the RSA public key for the the chromecast. The url for this depends on which firmware you are on. In a browser go to either:
http://192.168.255.249:8008/setup/eureka_info (older firmware) https://192.168.255.249:8443/setup/eureka_info (newer firmware)
From this point forward your <base url> is either going to be: http://192.168.255.249:8008 OR https://192.168.255.249:8443
A curl command for this that works well is: curl -k --tlsv1.2 --tls-max 1.2 "https://192.168.255.249:8443/setup/eureka_info"
You will get a json response. Look for the public key, and copy the value. It should look something like this:
MIIBCgKCAQEAwjGAg4LUPBN3lzZYQRrM1a1OaTPLTxPT2YrN1L7sXf36qApfzwIY7tf8F3y1ftlVcDJDeOwv3mqB4Fmfg2mhb9zdn7HsoWd8wI6r+QIUICSdhHDa/vTbfSRSxQAyZrtQZYvN0mX530EQKRBYU2fd44Y3vfThFHWRj5nx5Ut/pGpIuTm9+UshWjxTj5RlZ0+uppI7w9iEB2sFaDIVr8279VhXWb/YsqB9sqPNHPJsyDgWzwEgHNZyDAomMhC+LC9eWhFytGLc9UU4ZT8MNQBqEZfM3mn/dntN1z6iqsIZR+3Q4K2ggZLhiczp5A0SCS+JodGAqAqk73H/KRh7be9E4wIDAQAB
4. Get the wifi details. First you need to have your chromecast scan for wifi networks. (fill in base url above)
curl -k --tlsv1.2 --tls-max 1.2 "<base url>/setup/scan_wifi"
Wait a few moments, then run:
curl -k --tlsv1.2 --tls-max 1.2 "<base url>/setup/scan_results"
This will return a json array of your ssid's. Find your ssid and locate it's wpa_auth and wpa_cipher. For example:
{"ap_list":[{"bssid":"94:83:c4:3f:1d:a5","frequency":2462,"signal_level":-18}],"bssid":"94:83:c4:3f:1d:a5","signal_level":-18,"ssid":"wdby","wpa_auth":7,"wpa_cipher":4}
My wpa_auth is 7 and my wpa_cipher is 4.
5. Now we need to encrypt our wifi password and seetings for sending to chromecast. Here is some node JS that can be used with jdoodle to make that happen.
const crypto = require('crypto');
const wifiPassword = 'WIFIPASSWORDGOESHERE';
let publicKeyBody ='PUBLICKEYGOESHERE';
// Chromecast gives the key body; wrap it as PEM
const pem = "-----BEGIN RSA PUBLIC KEY-----\n" + publicKeyBody + "\n-----END RSA PUBLIC KEY-----";
const encrypted = crypto.publicEncrypt(
{ key: pem, padding: crypto.constants.RSA_PKCS1_PADDING },
Buffer.from(wifiPassword)
);
console.log(encrypted.toString("base64"));
6. Using the key returned, execute the following curl statement:
curl -k --tlsv1.2 --tls-max 1.2 -H "content-type: application/json" -d "{\"ssid\":\"SSIDGOESHERE\",\"wpa_auth\":7,\"wpa_cipher\":4,\"enc_passwd\":\"ENCODEDPASSWORDHERE\"}" "<base url>/setup/connect_wifi"
The chromecast will react to this saying it's connecting. No need to wait for this.
7. Commit the connection with the following command: curl -k --tlsv1.2 --tls-max 1.2 -H "content-type: application/json" -d '{"keep_hotspot_until_connected": true}' "<BASEURL>:8008/setup/save_wifi"
With that, your chromecast should now be connected to wifi again!