Faits : A. Par ordonnance pénale du 13 avril 2014, le Ministère public du canton de Genève a condamné X._ pour infraction à la LStup et à la LArm à une peine privative de liberté de 180 jours, avec sursis durant quatre ans, sous déduction d'un jour de détention avant jugement, ainsi qu'à une amende de 3'000 francs. X._ a fait opposition à cette ordonnance. Le ministère public l'a convoqué à une audience fixée au 28 mai 2014 à 9 h 00. X._ n'a pas comparu, seul son conseil se présentant à l'audience. Par ordonnance du même jour, le ministère public a constaté le retrait de l'opposition. B. Le 2 juin 2014, X._ a requis du ministère public la restitution du délai et la réouverture de la procédure d'opposition, au motif qu'il avait connu une panne avec son automobile le matin de l'audience du 28 mai 2014 et n'était arrivé à celle-ci qu'à 9 h 50. Par ordonnance du 12 août 2014, le ministère public a constaté que l'ordonnance pénale du 13 avril 2014 était entrée en force. Il a considéré que la présentation à l'audience du ministère public n'était pas un acte sujet à répétition, ni donc à restitution. Il a interprété la requête de X._ comme une demande de reconsidération, voie non prévue par le CPP. Au surplus, il a estimé que X._ n'avait pas rendu vraisemblable l'existence d'un empêchement non fautif. C. Par arrêt du 6 octobre 2014, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours formé contre cette ordonnance par X._. D. Ce dernier forme un recours auprès du Tribunal fédéral contre cet arrêt. Il requiert, avec suite de frais et dépens, son annulation, le maintien de l'opposition formée contre l'ordonnance pénale du 13 avril 2014, la restitution du terme pour l'audience consécutive à dite opposition et la réouverture de la procédure pénale sur opposition. Il sollicite l'assistance judiciaire. L'autorité précédente et le ministère public se sont déterminés, ce dernier concluant au rejet du recours. Le recourant a formulé des observations.