Faits :
A.
A._, domicilié en France, a présenté une demande de prestations de l'assurance-invalidité le 25 octobre 2012.
Par décision du 30 juillet 2013, l'Office de l'assurance-invalidité pour les assurés résidant à l'étranger (l'office AI) a fixé le taux de l'invalidité à 17 % et rejeté la demande.
B.
Sous pli posté le 30 août 2013, A._ a déféré cette décision au Tribunal administratif fédéral en concluant implicitement au versement d'une rente d'invalidité. Dans sa réponse du 22 octobre 2013, l'office AI a conclu au rejet du recours.
Par décision incidente du 5 novembre 2013, le Tribunal administratif fédéral a communiqué la réponse de l'office AI à l'assuré; simultanément il lui a imparti un délai de 30 jours pour verser une avance de frais de 400 francs. L'assuré a réceptionné cette décision le 8 novembre 2013 puis a déposé les sûretés dans le délai fixé.
Le 6 décembre 2013, l'assuré a posté une réplique sur laquelle l'office AI s'est déterminé le 27 janvier 2014. Le 7 février 2014, le Tribunal administratif fédéral a communiqué la duplique de l'office AI à l'assuré et l'a invité à produire ses éventuelles observations accompagnées des moyens de preuve correspondants Le pli a été distribué le 10 février 2014, selon l'accusé de réception qui figure au dossier du Tribunal administratif fédéral (pièce 11).
Ce dernier a rejeté le recours par jugement du 16 septembre 2014. Il a invité l'office AI à donner la suite nécessaire aux documents produits par l'assuré avec sa réplique (consid. 11 du jugement).
C.
A._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation en concluant à l'octroi d'une rente. Il dépose plusieurs pièces médicales.

Considérant en droit :
1.
1.1. Le recourant soutient que l'envoi du Tribunal administratif fédéral du 7 février 2014 ne lui a jamais été remis, si bien qu'il a été empêché de se déterminer sur la réplique (recte: duplique) de l'office intimé.
1.2. Dans la mesure où le recourant soulève un grief d'ordre formel contre le déroulement de la procédure de première instance, soit implicitement la violation de son droit d'être entendu (art. 29 al. 2 Cst.), celui-ci doit être examiné en premier lieu, car il se pourrait que le Tribunal fédéral accueille le recours sur ce point et renvoie la cause à l'autorité inférieure sans examen du litige au fond (cf. <ref-ruling> consid. 2 p. 92 et la référence).
Le dossier du Tribunal administratif fédéral contient pourtant un accusé de réception daté du 10 février 2014, lequel porte la même signature que celle que le recourant avait apposée sur le recours posté le 30 août 2013. En d'autres termes, le recourant a reçu l'ordonnance du Tribunal administratif fédéral par laquelle lui a été transmise la duplique de l'intimé et a eu l'occasion de se déterminer sur celle-ci, si bien que le grief est infondé.
2.
2.1. Le recourant soutient ensuite que son état de santé et ses capacités restantes ne lui permettent pas de reprendre son activité professionnelle antérieure, ni d'exercer une activité adaptée. Il dépose diverses pièces médicales qui justifient, à son avis, de retenir un degré d'invalidité ouvrant droit à la rente.
2.2. Les mémoires de recours doivent être rédigés dans une langue officielle, indiquer les conclusions, les motifs et les moyens de preuve, et être signés (art. 42 al. 1 LTF). Les motifs doivent exposer succinctement en quoi l'acte attaqué viole le droit (art. 42 al. 2 LTF, première phrase).
Sur la question du droit à la rente, le mémoire de recours ne satisfait pas aux réquisits légaux (art. 42 al. 1 et 2 LTF). D'une part, le recourant ne s'en prend qu'aux constatations de fait de l'autorité précédente relatives à l'étendue de sa capacité de travail, sans exposer (même succinctement) ni démontrer en quoi ces constats auraient été établis de manière manifestement inexacte ou en violation du droit (cf. art. 97 al. 1 LTF). D'autre part, le recourant ne se prévaut d'aucune violation du droit lors de la fixation du degré de l'invalidité. Dans ces conditions, il n'y a pas lieu d'entrer en matière sur ses griefs.
3.
Vu les circonstances du cas d'espèce, il sied de renoncer à la perception des frais (art. 66 al. 1 LTF, deuxième phrase).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le présent arrêt est communiqué aux parties, au Tribunal administratif fédéral, Cour III, et à l'Office fédéral des assurances sociales.
Lucerne, le 15 mai 2015
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Glanzmann
Le Greffier : Berthoud