Considérant:
que par lettre du 23 juillet 2009, A._ a déclaré recourir contre un arrêt rendu le 2 juillet 2009 par le Tribunal d'accusation du Tribunal cantonal vaudois, en se plaignant de mensonges de la part de sa partie adverse et d'un magistrat, et en demandant à être entendu;
que par lettre du 28 juillet 2009, le recourant a été rendu attentif au fait qu'il n'avait pas produit l'arrêt attaqué, l'annexe à son mémoire étant une décision d'inculpation du 17 juillet 2009 contre laquelle un recours n'était en principe pas possible, que son mémoire ne contenait pas de conclusions et qu'il comportait des propos inconvenants à l'égard du magistrat instructeur;
que le recourant pouvait compléter son recours et remédier à ces irrégularités jusqu'à échéance du délai de recours;
que par lettre du 30 juillet 2009, A._ a indiqué qu'il contestait la procédure ayant abouti à son placement dans un centre psychiatrique, et s'est plaint de ses conditions de séjour;
qu'il critiquait à nouveau les agissements du juge d'instruction;
que le recourant n'a toutefois pas produit la décision attaquée, ni présenté de conclusions en rapport avec cette décision, contrairement aux exigences de l'art. 42 al. 1 et 3 LTF;
que ses divers motifs ne se rapportent manifestement pas non plus à l'acte que le recourant a déclaré initialement vouloir attaquer;
que ces différentes irrégularités, auxquelles le recourant n'a pas remédié, conduisent à l'irrecevabilité du recours, prononcée selon la procédure simplifiée de l'<ref-law>;
qu'il peut, compte tenu des circonstances du cas d'espèce, être renoncé à la perception de frais de justice.

Par ces motifs, le Juge unique prononce:
1. Le recours est irrecevable.
2. Il n'est pas perçu de frais judiciaires.
3. Le présent arrêt est communiqué au recourant, au Juge d'instruction de l'arrondissement de l'Est vaudois et au Tribunal d'accusation du Tribunal cantonal du canton de Vaud.
Lausanne, le 7 août 2009
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge unique: Le Greffier:
Féraud Kurz