Here's my homemade substitute for PBW (sourced from various web resources):
Using generic Oxy Free which contains about 50% of the oxygen-active ingredient (sodium percarbonate) and 50% sodium carbonate (washing soda):
70% generic "Oxy Free"
30% "TSP" (Sodium metasilicate)
If your Oxy free is particularly strong, containing mostly (70% or more) of the oxygen-active ingredient sodium percarbonate, with the remainder of sodium carbonate (washing soda):
50% real "Oxy Free"
20% washing soda (sodium carbonate)
30% "TSP" (Sodium metasilicate)
Notes on "TSP":
Original TSP (TriSodium Phosphate) is not easily available anymore (phosphate ban). What is now sold under the name "TSP" is Sodium metasilicate, a good sequestering (dirt binding) agent, but chemically has nothing in common with the old TSP; they are entirely different products.
It is available in your (better) hardware stores in 1 pound tubs or 4 pound pouches. I get mine at Ace.
The only drawback of this "TSP" is it tends to leave a haze on glass if exposed to it too long. I'm not sure if long exposure to PBW causes the same haze, nor have I seen the haze in my homemade version either, but I haven't tested specifically for it.
A long soak with StarSan removes that haze. Since Starsan is acidic (it contains phosphoric acid) I think any plain diluted acid will do the same, e.g., Phosphoric acid, HCl (Muriatic acid).