Affichage des articles dont le libellé est ETM1810. Afficher tous les articles
Affichage des articles dont le libellé est ETM1810. Afficher tous les articles

lundi 14 septembre 2026

ETM1810/M/A: Protocole de configuration et de gestion du modem

Le modem ETM1810 peut-être piloté par une liaison série afin de configurer son mode de fonctionnement mais aussi d'engager différentes opérations de maintenance. Une liste des commandes est disponible ici et sur le site de Cryptomuseum.

Deux modes de fonctionnement sont accessibles par le biais de la liaison série configurée à 19200 Bds, 8 bits, pas de parité et 1 stop bit. On notera que le positionnement du signal RTS permet de verrouiller les commandes en face avant.

Dans les deux cas, le protocole de communication est très mal conçu: 
- aucune information de fin de transmission notamment au démarrage lors du déroulement de l'autotest. Il faut alors travailler sur time-out (peu efficace), identifier une séquence immuable à la fin de l'autotest (dépendant d'une version) ou encore transmettre une requête jusqu'à obtenir une réponse ou le redémarrage du modem !
- utilisation de deux modes de balisage différents: <LF>MSG<CR> ou MSG<CR><LF> conduisant à deux traitements différents en fonction du mode d'accès,
- redémarrage non signalé en cas d'erreur de commande ou de réception d'une séquence.

Configuration du modem
Ce mode est directement accessible à la mise sous tension du modem après que celui-ci ait fini son autotest. Il permet principalement de configurer le mode de fonctionnement par l'envoi d'une chaine de caractères. Les commandes seront obligatoirement transmises par le biais d'un logiciel dédié au regard de la forme du balisage utilisé et de la présence d'un time-out très court.

En effet, chaque commande doit être encadrée par les caractères de contrôle <LF> et <CR>. La réponse peut prendre une ou plusieurs lignes avec un temps de réponse très variable. En cas d'erreur, le modem peut repasser en mode test sans aucune notification.

Gestion du Modem

Ce mode est accessible en rebootant le modem et maintenant appuyées les touches ESC et MODE. On peut alors passer des commandes avec un simple terminal correctement configuré, le balisage étant plus classique (MSG<CR><LF>)

Les réponses tiennent sur une ou plusieurs lignes avec un temp de réaction plus rapide mais très variable. Ici encore sans aucun information de fin de message. Il doit être possible d'accéder à beaucoup d'informations dont peut-être le dump de code des DSP mais je n'ai pas encore eu le temps d'étudier et de tester toutes les commandes. Rappelons que les séquences de référence - ie: les noms des protocoles supportés - ne sont pas présentes dans le firmware de base du modem. Ce qui laisse entendre que les modules de traitement spécifiques sont accédés dans un autre espace de stockage.

jeudi 10 septembre 2026

ETM1810/M/A: Test de fonctionnement

Après plusieurs essais, le modem ETM1810/M/A fonctionne parfaitement en réception et émission, au moins en FSK 50Bauds ITA2. Le test a été conduit grâce au site 'internet-tty.net:8040/EUROPE' qui transmet en permanence des bulletins d'information en AFSK 50Bauds. Il suffit dés lors de raccorder la sortie son du PC sur l'entrée du modem et de connecter un terminal sur la sortie data. Ici, j'utilise mon terminal dédié RTTY. J'ai cependant dû utiliser un adaptateur audio USB, la carte de son embarquée dans ma machine posant problème...

Le brochage donné sur le site de Cryptomuseum s'avère être bon en notant qu'il s'agit d'une sortie et d'une entrée symétriques. Le connecteur data  (X1) traite les données au format de la transmission, il n'y a aucune interprétation d'où la nécessité d'utiliser un terminal à même de s'adapter. On notera l'utilisation des signaux RTS et CTS pour piloter le modem: en émission s'agissant de l'interface donnée et en mode télécommande (remote) s'agissant de l'interface de contrôle.

Un cordon de raccordement a été réalisé qui permet d'extraire les paires réception/émission et de les redistribuer sur un prise DIN 5 broches. Deux adaptateurs ont été conçus, l'un vers deux jacks, l'autre vers une prise DB25 au format audio de mon récepteur EK890.

Bien que prévu pour être utilisé dans une configuration parfaitement connue, un centrage de l'accord peut être visualisé en mode 'Status' et modifié en offset. Je vais maintenant pouvoir commencer à tester l'équipement sur d'autres type de modulations, à partir d'échantillons dans un premier temps puis sur l'air ensuite.

A suivre

vendredi 7 août 2026

ETM1810/M/A: Etude des commandes

L'analyse des chaînes de caractère présentes dans le firmware du modem permet d'inférer les commandes disponibles, une bonne partie de celles-ci, si ce n'est toutes, ayant déjà été documentées sur le site de Cryptomuseum. 

La version du firmware étudié est ici '*ETM Version 2JR1123' avec les modules du paquetage 'JET'.


1- INTERFACE

Les commandes de l'interface système sont accessibles en allumant l'équipement tout en appuyant sur les touches MODE et ESC. Attention, ces commandes sont suceptibles de rendre inopérant l'équipement.

Main valid commands are:
<DSP> for testing the DSPs
<PROGRAM> For program management
<MEMORY> For testing the memory
<SYSTEM> For system utilities
<TEST> For misc. tests
<VERSION> For showing the linkdate
<item.HELP>For displaying topic help

DSP valid commands are:
DSP.MEM.COPY<nr> <dsp addr><src ad.> <len>Copy to DSP memory
DSP.MEM.DUMP<nr> <dsp addr><len> Dump DSP memory
DSP.MEM.FILL<nr> <dsp addr><bytes> {<val>}Fill DSP memory with a 32bit val.
DSP.MEM.WR <nr> <dsp addr><bytes> {<val>}Write and read DSP memory
DSP.MEM.TEST<nr> <dsp addr><bytes> <val> Compare DSP mem. with a 32bit val.

Extended DSP valid commands are:
DSP.BOOT reboot DSP4 and DSP5
DSP.CSB <dspno> Show CSB struct
DSP.EMV Start DSP4/5 prog. 20 and show value at 0x80000000
DSP.FIRMWAREUPDATE <dspno> <prog no> Update DSP4/5 FLASH
DSP.HDRCMD <cmd> Command to HDR DSP4 prog. and poll status
DSP.MEMORY Access to DSP memory
DSP.REG <dspno> <C|A|B|DF|EF|DI|EI> {<hex value>} Read/Wwrite DSP4/5 regs
DSP.TEST <dspno> {<len>} {<1|2>} DSP tests at DSP addr. 0x81000000
DSP.X Reset DSP4 and DSP5
DSP.Z <dspnr> Poll HPIC

MEM valid commands are:
MEM.CMP <addr1> <addr2> <len> Compare memory
MEM.CPY <dest addr> <src addr> <len> Copy memory
MEM.DUMP <addr> <len> Dump memory ('e2p' => EEPROM)
MEM.DSREC <addr> <len> Memory dump as SREC
MEM.D2UMP <addr> <len> Dump memory (16-bit)
MEM.FILL <addr> <bytes> <value> Fill memory with a 32-bit value
MEM.FILL e2p <{0x}index> <byte value> Fill EEPROM
MEM.TEST <addr> <bytes> <value> Compare memory with a 32-bit value
MEM.ERASE <addr> <len> Erase memory

PROG valid commands are:
PROG.ALLOC <typ> <{no}> <{size}> <{pos}> For allocating memory
PROG.BOOT <typ> <no> Sets the boot flag
PROG.ERASE <typ> <no> For deleting a program
PROG.INFO> For a extended list of available programs
PROG.LOAD <typ> <{no}> <{entry}> <{name}> For loading a program
PROG.NAMESTART <typ> <DSP no> <name> For starting a program
PROG.SHOW> For a list of available programs
PROG.RUN <typ> <no> <{DSP cmd}> <{DSP addr offs}> <{DSP no}> For starting

Program Types valid commands are:
[ ICP | DSP]
>
SYSTEM valid commands are:
SYSTEM.BAUD <baudrate>To change the control line baudrate
SYSTEM.KALTSTART For "KALSTART"
SYSTEM.LOADER {<typ>} To activate the loader
SYSTEM.RESET For resetting the system

TEST valid commands are:
TEST.1 Test 1


2- CONFIGURATION

Les commandes de configuration sont accessibles dès la mise sous tension de l'équipement après que l'autotest ait été effectué.

Ces commandes n'ont pas encore été identifiées dans le firmware du 68302. Elles pourraient être traitées par les modules en mémoire Flash, modules qui n'ont pas encore été récupérés. A l'heure actuelle la liste de commandes proposée sur le Cryptomuseum reste la seule disponible.



La carte principale comporte 2 CPLD ipsLSI-1048 dont la programmation s'effectue hors site via un port JTAG. Ce composant dispose d'un fusible de protection de la programmation.


La durée de rétention minimale des données est annoncée à 20ans. Il va me falloir regarder s'il est possible de tenter une extraction in-situ pour disposer d'une sauvegarde des codes 529544-156-47/0 et 529544-156-48/0. Le connecteur 8-pins en ligne est peut-être celui qui permet de programmer ces deux composants ...

jeudi 6 août 2026

ETM1810/M/A: Test et première étude

Un modem ETM1810/M a été mis en vente sur eBay il y a quelques temps. La documentation sur ce matériel est inexistante hormis la description détaillée proposée sur le site CryptoMuseum. Cette documentation m'a confirmé l'intérêt de cet équipement en particulier dans sa version la plus étendue dite 'ETM1810/M/A'.

La référence à la version n'apparaît que sur le coté de l'équipement, et encore. Elle était ainsi absente sur l'équipement en vente. Cependant, l'étude des NSN présentés sur Cryptomuseum laissait entendre que le modèle alimentée en 24VDC n'existait que sur la version étendue. 

J'ai donc fait le pari d'obtenir la version étendue en achetant les yeux fermé ce modem d'autant que le prix était dérisoire au regard des prix pratiqués sur d'autres modems presque équivalents notamment chez Harris.

Sitôt reçu d'Allemagne aujourd'hui, sitôt ouvert: il s'agit bien de la version étendue disposant de deux cartes comportant en tout 5 DSP Texas. Une alimentation 19V de PC en stock est aussitôt convertie pour alimenter l'équipement qui annonce une version logicielle 'JET', soit la dernière version référencée sur CryptoMuseum. Cette version propose 12 formes d'onde chargées en Mémoire Flash.

Après mise sous tension et premier autotest, le modem est démonté pour accéder aux EPROM présentes sur la carte de base. Le code est copié pour sauvegarde et étude. Une réflexion va devoir être menée pour copier le(s) code(s) en mémoire flash. Si une telle commande n'existe pas, il me faudra implémenter une fonction de dump vers la liaison console dans le firmware original.

Pour cela, le firmware est reconstitué (les EPROM 8bits sont sur un bus 16bits) puis chargé sous Ghidra. Le processeur utilisé est un CPU dédié MC68302. Ce modèle n'est pas totalement intégré dans Ghidra mais un désassemblage en tant que 68300 devrait permettre de découvrir les premiers secrets de ce firmware assez remarquable si l'on en croit la description faite par Cryptomuseum.

Ma femme reste toujours étonnée de cette approche sur un matériel fonctionnel mais tout analyste ou reverseur connaît cette fièvre proche de celle d'un chercheur d'or qui vous prend et ne vous lâche plus tant que, a minima, les principes n'ont pas été compris.

Plus de 453 chaînes de caractère sont rapidement détectées qui confirment:
- le rôle d'orchestrateur du CPU,
- une capacité de chargement en format S-Record (skipping S-Record with address %p at line %d),
- la version du système (*ETM Version 2JR1123),
- des messages de traces du fonctionnement (HDR cmd %s sent to DSP %d),
- plusieurs listes de commandes avec une aide complémentaire,
- des chaînes cryptiques (veR$oisi1 :n$ 7., SCR$elifps :rtc1 c.l) symboles d'assemblage ?

En revanche, je n'ai trouvé aucune information sur l'utilisation d'un éventuel OS temp réel, ni référence aux messages affichés concernant les protocoles et modes de fonctionnement dans ce code. Ceci laisse entendre que ces informations sont intégrés dans les modules dédiés et transmis sur demande au processeur central.

La suite va consister à étudier le hardware (présence de mémoires double accès, de Ram dédiée à chaque DSP, de mémoire flash, de deux EPLD...), interfacer l'équipement en mode 'console' et à tester les commandes déjà découvertes.