Ok - so you think recording may be working now, but it's the playback that isn't?
Yes, on the WiFi you'd use PWM for output (it's only the original espruino board that has a DAC inside it).
Where is your speaker wired? Try this on your WiFi. I have the speaker wired between GND and B3, and it seems to work fine - it plays a 'ding' noise (which is uploaded in the base64 code).
var wave = atob("e357fnp/eoB4g3hxknV4gW2OgWOXe22FhWOQgW2CgnGJgWmJgWqMgGyIgG2JgmqJgGqNgmmKgGmMgGqOf2iNgGmNgGmNgWmOgWiNgWiNgWiMgmiMgmeMgmaNgWiNgmiNgWqLgmuKgWyHgmyHgG6FgmyIgGyKf2yKf22JgG2JgG6HgHCIfm+IfnGGf3GGfnGGgHGFf3KEgHGGf3KEf3KEfnSDf3SDfnaBf3WCfXiAfnaCfHl+gHaCe3t7g3CSjWJ7gHuKhnx9bHx9jXt5dXGGhX18cHh+in16d3GDhX1/cXl9hoB6d3OAhX6Acnp7hoB9dnZ7iHuFa46JY4F4gYOBhnljfnaOhHhtdIR+kXZpgHOKjHdvdn2BkXhsfm+Jj3Z2c3iCkXtuf2uHkXZ8c3GDjn5yfWmEk3WBc22Ei4B1e2mBkneCdWuEiYJ5emx/k3iDdmqGhoJ8dm1+kXqEdmeIg4GBcm5+jXyGdmaJgoCFb25+in+Hd2WJgICJa26AhoKIeGWIf36NaW2BgoWKd2eHfX2OaWyCfoiLeGmFfXuOamqEeYuKgG98f4CVZ2SDgIWKeXZ/dnqVa2KCfYeKeHl+dnqUcGOAfIiLdnx8d3ePemN7eIiOd358dXqPeml1fIOdeXB/f4eDcmmBbn6RhHpsdo6GdW59c32Qhn5scY+Hd3B5dXuMhoNtbY6HeXN3dnqJhoZvao2IenZ0eHqGh4hxZ4qIfXhxeHmCiYpzZYeIf3tveXl+iox2ZIGIgX5uenl6iox6ZXuHhIBuenl2i4x9aHaGh4JueXpzi4x9bHGDiYRueXpxiox/cG2BjIVweXpwiYyAdGh+joVyeHpwiIuBeGV7kIZ0eHhwhYqDfGN2kYZ3eHdxg4mEgWJxkYd7eHVygYeFhGNtkYd+enJzgIWHh2Rpj4eCe290foSIiWVljoeFfW11fYGJimhji4iGf2t2fX+Ji2xhiIiIgml2fX2JjG9gg4mJhGl1fnuIjHJhf4mJhml0f3mIi3VjeoiLh2p0f3iHinhmdoiMh2xzgHeGiXprcoaMiG1zgHeEiHtvcIKNiG9ygHeDiHt0bn6OiXFygHaBh3x4bnuNiXRygHZ/hnx7cHeMiXZyf3h9hnx+cXSLiXhxf3l7hX2AdHGIinpxfnt5hH2AeHCFin1xfH14g32Be2+CiX9yen93gX6Bfm9/iIFzd4B3gH+AgXB8h4F1doF3foB/hHF5h4F2dYB5fIB/h3R1hoF4dX96e39+indyhYF5dn16en9+i3pvhIB6eHp7en5+jH5sgoB6end6en5+joFrgIB6fXV5e3x/joVqfoF5f3J3fHx/j4hpe4F6gnF0fXuAj4prd4F6hHFxfnuAj4xtdIF5hXJuf3qBj4xwcn97h3Nrf3qBkI1zcH17iHRpf3mBkI12b3p8iXZofnmBko16bnZ8iXhmfXmAkox9b3J7inpme3mAk4x/cG96inxmeXl/lIyBc2x4in9ndnh+lY2DdGl3iYFoc3h9lI6Fd2d1iINrcHl8k4+GeWZzhoVtbXh8kpCHfGdwhIVxa3d9j5KIfmhugYZ1aXZ9jZOJf2ltf4V4aHR+i5OLgWxrfIR7aXJ/iJOMgm5peYN+anB/hpKOhHJodoKAbG5/hZGPhXZndIGBb2x9g5CPhnlncYCCc2t7go+Qh31obX+Cdmx4gI6Qh4Fpa36BeW12f4yQiIRqaH2BfG5zfouQiIdtZXuAfnBxfYmQiIlwZHp/gHNue4iQiYp0Y3h+gnZseoaPiop3Y3Z8gnpreYWNi4p6ZXN7gn1qeIOLjYp9Z3F6g4Bpd4OIjop+am94g4NqdYKFj4p/bW12goVrc4KDkIp/cWx0godscoGAkIt/dWxygolvcIB+kI1+eGxwgYpxbn99j45+em1ugYp0bX19jpB9fG5tgYp2bHt8jZB9fHBsgIp5bHh8jJF9fXJsgIl8bHV9i5F9fHNsgIh9bnJ8ipF+fHVtgId/b298iZB/fHZtf4aAcmx7iY+Ae3huf4aBdGp5iY+BenlvfoWBd2l3iI6DeXpwfoWBeWh1ho2FeHpxfYaCe2hzhYyHeHpze4eCfWlwhIuJeHl1eYeDfmpugoqLeHd3d4eFfmxsgImNeXV5doaGf29qfYiOe3R7doWHf3Fpe4aOfnN8doOIgHRpeIWNgHN8d4CIgHdqdoSLg3R7eH6HgHpsc4OKhHV7eXyGgHxucIKIhXh6enuEgH9xbYCGhnt5e3uDgIB0a3+EhX54e3uBf4J3an2DhIJ4e3t/f4N6anuCg4V5e3t8foN9a3iBgYd6e3x6fYOAbHaAgIl7e314fIKCb3R+f4p9en53e4KDcnJ8fop/en91e4GDdnF6fYqAe4B0eYGCeXF4fYmCe4F0eIGBfXJ1fImDfIJ0doGAgHRze4iEfIN0dIB+gndxeoeFfYN1coB9g3pveYaFfoN2cYB8g31veIWGf4N4cH58goBud4SGgIJ5b318goJvdYSHgYF7b3t8gYRxdIOHgoB7cHp8f4Vzc4GHg398cXh8foV1c4CGhH98c3d8fYV3c3+GhX98dHZ7fIV5c36FhX98dnZ6fIR7c32Ehn98d3V6e4N9dHyDhoB7eHV5eoJ/dXyDhoF7eHZ5eYCBdnuChYJ7eXZ5eX+Cd3uChIN7eHd4eH6DeHqCg4R7eHd4eHyDenmCg4R8d3h3eHuDfHiCgoR9dnl3eHqCfniBgoR/dnl3eHqBf3mBgYSAdXl4d3qAgHmAgYOCdXl4dnp/gXp/gIODdXl5dXp+gnx+gIKEdnh6dHp9gn19f4GFd3h6dHp9gn98foGGeXd7c3p9gYB8foCGe3Z7c3l9gIJ7fYCGfXZ7c3l+gIN7fH+Gf3Z6dHh+f4R8en+FgHZ5dHd+f4R8en6Egnd4dXd+foR9eX6DhHh4dXZ+foR+eX2DhHl3dnZ+foN/eHyChXt2d3V+foKBeHyBhXx2d3V9f4KCeHqAhX52d3V8f4GDeXl/hYB2d3V8gH+Denh+hIF3d3V7gH+DfHd+g4J4d3V6gX6DfXZ9goN6d3Z5gX6CfnV8goN7d3Z4gX+CgHV7gYN9dnd4gH+BgXV6gIN/d3d4f3+AgnZ5f4KAd3d4foB/gnd4f4GCeHd4fYB+gnl3foCDeXd5fIB+gnp3fX+Dend6e4B+gXt3fH6Ee3Z7en9/gH13e32EfXZ7en5/f354enyEf3d8en6Af355eXuDgHd8enyBfn56eHqCgnh8enuBfn97d3qBg3l8e3qBfX58d3mAg3p7e3qBfX59d3l/hHx6fHmBfn1+d3l+g316fHmAfn1/d3l9gn96fHp/fnx/d3h9gYF6fHp+fnyAd3h9gIJ7e3t9fnyAeHh8f4R8ent9fnyAeXd8foR9eXt8fnx/end8fYR/eHt8fn1/end8fISAeHt8fn1/e3d8fIOCeHt8fX1+fHd7fIKDeXp8fX1+fXd6fIGEeXl8fX59fXd6fICEenl7fX59fXh6fX+EfHl7fH58fXl5fX+EfXh7fH58fnp5fX6Efnl7e358fXt5fX2DgHl6e358fXx5fX2CgXl6e318fX15fHyBgnl6en18fH56fHyAg3p6enx9fH56fHx/g3t6ent9fH57fHx+g3x6enp9fH59fHx9g316enl9fH5+fHx8g356e3h8fH1/fHx8gn96e3h7fX1/fXt7gYB6e3h6fX2Afnt7gIF7e3h5fnyAf3t7f4F7e3h4fXyAgHt6foJ8e3h3fX2AgXx6fYJ9e3h2fX2Agnx6fIF+e3l2fH2Agn16e4CAe3l1e35/g316e4CAe3l1en5/g356en+BfHl1eX5/hH96en6BfXl1eH5/hH96en2CfXl2d35/g4B7enyBfnl2d31/g4F7e3uBf3l2dn1/g4J7e3uAgHl2dnx/g4J7e3p/gXp2dnt/goN8fHp+gXp2dnp/goN9fHt9gnt2dnp/gYN9fHt8gnx2dnl+gYN+fHt7gX12dnh+gYN/fHx6gX12d3h+gYN/fHx6gH53d3h9gYKAfHx6f393d3h9gYKAfH17f393d3h8gYGAfX17foB4d3h8gYGAfX17fYB5d3h7gIGAfn18fX95d3h6gICAfn18fH96d3h6gIB/f318fH97d3h6gIB/f319fH58eHh5f4B+f319fH58eHh5foB+f319fX19eXh5foB+f318fX19eXh5fYB+f318fXx9enh5fIB+f358fnx9e3h5fIB+f358fnx9fHl5e4B+fn58fnx8fHl5e39+fn98fnx8fXl6e35+fn98fnx7fnp6e35+fX98fn17fnp6e31+fX99fn16fnt6e3x+fX99fn16fnx6e3x9fX99fn16fn16e3t9fX5+fX16fX56fHt8fX5+fX16fX57fHt8fn5+fn16fH97fHt7fX5+fn16fH98fHt6fX5+fn16e398fHt6fX5+fn16e399fHt5fX5+fn17en9+fHx5fH5+f317en5+fXx5fH5+f317en5/fXx5e35+f317en1/fXx5e359f317enx/fnx5en59f357enx/fn15en59f357e3t/f316eX19f357e3t/f316eX19f357e3t+f316eX19f397e3t+gH17eXx9fn97e3t9gH57eXx9fn98e3t8gH57eXt9fn98e3t8gH97eXt9fn98e3t7f398enp9fn99e3x7f398enp8fn99e3x7foB8enp8fn9+e3x7foB9e3l8fn9+e3x7fYB9e3l7fn9+e3x7fYB9e3p7fn5+fHx7fIB9fHp6fX5+fHt7fIB+fHp6fX5+fXt7e39+fHt6fX5+fXt7e39/fHt5fX5+fXx7e35/fHt5fH5+fnx7e35/fXx5fH5+fnx7e31/fXx6e35+fnx7e31/fXx6e35+fnx7e3x/fXx6en5+fn17e3x/fnx6en5+fn17e3x+fn17en1+fn17e3x+fn17en1+fn57e3x9fn17en1+fn57e3x9fn18enx+fn58e3x9fn18enx+fn58e3x8fn18ent+fn58e3x8fn58ent+fn59e3x8fn58e3t+fn59e3x8fX59e3t9fn59e3x8fX59e3t9fn59e3x8fX59fHt9fn5+e3x8fH59fHt8fn5+e3t8fH59fHt8fn5+fHt8fH59fHt7fn5+fHt8fH5+fHt7fX5+fHt8fH5+fHx7fX5+fHt8fH1+fHx7fX5+fXt8fH1+fHx7fX5+fXt8fH1+fHx7fH5+fXt8fHx+fXx7fH5+fXx8fHx+fXx8fH5+fXx8fHx+fXx8e35+fXx7fHx9fXx8e31+fXx7fHx9fXx8e31+fX17fHx9fXx8e31+fX17fHx9fX18e3x+fX18fHx9fX18e3x+fX18fHx8fX18fHx+fX18e3x8fX18fHx+fX18e3x8fX19fHx9fX18e3x8fX19fHt9fX19e3x8fX19fHt9fX19e3x8fX19fHt9fX19fHx8fH19fHx8fX19fHx8fH19fHx8fX19fHx8fH19fHx8fX19fHx9fH19fHx8fX19fHx8fH19fXw=");
var w = new Waveform(wave.length);
w.buffer.set(wave);
analogWrite(B3, 0.5, {freq:40000});
w.startOutput(B3,4000);
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Ok - so you think recording may be working now, but it's the playback that isn't?
Yes, on the WiFi you'd use PWM for output (it's only the original espruino board that has a DAC inside it).
Where is your speaker wired? Try this on your WiFi. I have the speaker wired between GND and B3, and it seems to work fine - it plays a 'ding' noise (which is uploaded in the base64 code).