B&K 2318 : imprimer depuis un PC
Le 2318 est une petite imprimante thermique graphique, portable et sur piles. Elle servait à sortir sur le terrain les résultats des sonomètres et analyseurs B&K (2236, 2260, RASTI...) : réglages de l'appareil, résultats, et de la place pour noter la date et les commentaires. Elle communique par le module série ZI 0054, une liaison RS-232 sur prise LEMO.
Plus personne n'imprime depuis un 2236, et le 2318 prend la poussière. Ce projet lui donne une deuxième vie : un pilote et une application pour imprimer depuis un PC du texte, des rapports de mesure, des graphiques et même des images.
L'imprimante en bref
- 168 points par ligne, des caractères de 7 × 7 points : 24 caractères par ligne, 12 en double largeur ;
- environ 0,8 ligne par seconde, avec une mémoire tampon d'environ 7 Ko ;
- alimentation par 4 piles AA NiMH (nickel-métal hydrure).
Ne jamais brancher le chargeur sans les piles : au-delà de 6 V, la tête d'impression grille.
L'imprimante dispose de deux piles 40H, avec le temps elles peuvent couler. Je vous conseille de les retirer (en bas a gauche).
Le câblage
Côté PC, il faut un port série en DB9, d'après le câblage du câble B&K AO 0404 :
| LEMO (ZI 0054) | DB9 (PC) | Signal |
|---|---|---|
| 3 | 2 (RxD) | Imprimante vers PC (XON/XOFF) |
| 5 | 3 (TxD) | PC vers imprimante |
| 2 | 8 (CTS) | HS, prête/occupée |
| 4 | 5 | Masse |
- L'adaptateur USB doit sortir de vrais niveaux RS-232, pas du TTL (logique 0/5 V).
- Réglages d'usine : 1200 bauds, contrôle de flux XON/XOFF, données sur 7 bits.
- Pour les images, passer à 4800 bauds va environ 4 fois plus vite (switches N1-1 à N1-4, section 4.1.5 du manuel).
- Le dip-switch se trouve sur la partie de droite, bloc rouge.
Le manuel de 1988 décrit tout, et le pilote couvre toutes les commandes. (voir section Liens)
Les jeux de caractères. L'imprimante gère plusieurs jeux qu'on bascule à la volée : 11 jeux documentés (ASCII, français, allemand, grec, russe, katakana...) plus un jeu de runes caché dans le firmware.. On tape du texte normal, et l'application choisit le bon jeu toute seule. Pour un Français, petit souci : le jeu français n'a ni ê ni â. Les caractères qui n'existent nulle part (ê, â, €...) sont donc dessinés à la volée dans les caractères redéfinissables de l'imprimante (DRC, 7 × 7 points).
Le graphisme. Le jeu graphique PDI permet de placer un curseur, tracer des lignes (pleines, pointillées), des barres et des colonnes de 7 points. Les images sont converties en noir et blanc par tramage, puis imprimées en bandes de 7 points de haut. Entre deux lignes, il reste un blanc (3,94 mm de pas pour 2 mm imprimés) : l'image est corrigée pour garder ses proportions.
Le piège du XON/XOFF. Quand son tampon est plein, l'imprimante envoie XOFF pour demander une pause, puis XON pour reprendre. Mais en mode 7 bits, ces deux caractères arrivent sur le PC en 0x93 et 0x91 au lieu de 0x13 et 0x11. Un pilote série classique ne les reconnaît pas, continue d'envoyer et déborde le tampon. Le programme les reconnaît.
L'application
Tout tient dans un seul fichier Python : interface graphique, ligne de commande et bibliothèque. Sous Windows, un .exe prêt à l'emploi est disponible dans les releases. Sinon, il suffit de Python avec pyserial, et Pillow pour les images.
L'interface est organisée en onglets :
- Text : texte libre, double largeur, vidéo inverse, alignement ;
- Templates : des modèles en fichier texte, avec des champs remplis au moment d'imprimer et la date et l'heure automatiques ;
- Charts : graphiques en barres, tracé façon enregistreur à bande, calibration ;
- Image : impression d'une image ;
- Custom characters : éditeur de caractères 7 × 7 ;
- Tools : tables des jeux de caractères, page de démonstration, remise à zéro, envoi d'octets bruts.
Un diagnostic du câble vérifie la liaison si rien ne sort. Et comme le port peut aussi être un pont série vers TCP (le protocole réseau), l'imprimante fonctionne en Wi-Fi avec un adaptateur ESP32 (un microcontrôleur Wi-Fi), comme celui de saschapo.
Exemple avec le modèle de rapport de mesure, ses lignes pointillées à remplir à la main :
Remerciements
- FrodeM a numérisé le manuel et découvert le jeu de runes caché.
- saschapo a trouvé le problème du XON/XOFF en 7 bits, mesuré l'interligne et déchiffré la table des commandes PDI. Son dépôt propose aussi un adaptateur sans fil sur base de ESP32.
Liens
- Code source et .exe : github.com/stoneset/bk2318-printer
- Manuel 2318 et ZI 0054 : archive.org
- Le dépôt de saschapo : github.com/saschapo/bk2318-esp32
- La discussion sur les runes : forum EEVblog



No comments to display
No comments to display