Novar 33

De Kernel Fablab Lannion
Révision datée du 15 octobre 2020 à 10:43 par Davidblaisonneau (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Novar33.jpg

Descriptif de la machine

Numéro de Série : 2290104

Documentation

manuel

Exemple d'utilisation

Maintenance / Etat

Analyse de la disquette

Récupération du contenu d'une disquette créée par la nova

Récupération du contenu de la disquette

sudo dd if=/dev/fd0 of=/tmp/nomfichier.bin

Edition du fichier binaire

sudo apt-get install ghex
sudo ghex2 /tmp/nomfichier.bin

Ecriture de la disuette

sudo dd of=/dev/fd0 if=nomfichier.bin

Effacer la disquette

sudo dd if=/dev/zero of=/dev/fd0 bs=512 conv=notrunc

Notes d'édition

  • La modification d'un parametre d'une ligne existante est bien répercuté
  • variables sur 16bit [confirmations ?]
    1. Magasin
    2. Rotation
    3. Dx
    4. DY
  • Encodage en Little Endian: Les bloc d'octets sont inversés! pour avoir la valeur décimale 1853 il faut avoir "3d 07" et non "07 3d"
  • Pas de déplacement effectif si aucun magasin d'indiqué

Adresses

Début des bank :
04000 bank 1
16000 bank 2
28000 bank 3
3a000 bank 4
  

à partir de 3A208 (programme)
position magasin 03600,15600 ...39608 >>> du coup les @ des banks ci-dessus ne sont peuetre pas bonne ...
type magasin 03906,15906 ...
param ... 28032 à 2808C ...3A042 à 3A098


offset pour l’écriture des lignes d'un programme :
 208
offset pour l’écriture des Magasins :
 ??
offset pour l’écriture des paramètres machine :
 42 (à vérifier)
autres offset  :
 ??

Modifier la disquette

fabmanager@fab1:~/Documents/Novar30$ sudo python
[sudo] password for fabmanager: 
Python 2.6.5 (r265:79063, Oct  1 2012, 22:07:21) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('/dev/fd0','rw+')
>>> f.seek(0x3a208,0)
>>> f.read(8)
'\x00\x00\x00\x00\x01\x00\x02\x00'
>>> f.seek(0x3a208,0)
>>> f.write('\x00\x00\x00\x00\x01\x00\x02\x99')
>>> f.seek(0x3a208,0)
>>> f.read(8)
'\x00\x00\x00\x00\x01\x00\x02\x99'
>>> f.close()

MAPPING de la disquette

0x4000 bank 1

=== Début des Paramètres Machine Précidot ===
  • @bank + 0x000 Param 01
  • @bank + 0x099 Param 44


=== Début du programme Précidot ===
  • @bank + 0x208 Position x, y du premier point de référence
  • @bank + 0x210 contrôle du point de Référence
  • @bank + 0x218 1ère boucle de dépose répétée 1 fois
  • @bank + 0x220 Début des Dépôt sur les point aux coordonnées X,Y
  • @bank + 0x2DF Fin des dépôt
  • @bank + 0x2EF Fin de Programme Precidot


0x39600 bank4P

=== Début des Magasins Novar ===
  • @bank + 0x606 Position x, y du premier rang de référence du magasin 01
  • @bank + 0x6E7 Fin des magasin à Bande
  • @bank + 0x6EC Position x, y du premier rang de référence magasin à vibration 41

0x3A000 bank 4

===  Début des Paramètres Machine Novar ===
  • @bank + 0x042 Param 01
  • @bank + 0x099 Param 44


  • @bank + 0x032 Nb de Ligne du programme
  • @bank + 0x035 Fin du Nb de Ligne
  • @bank + 0x036 Nb de Ligne de Positions Mag
  • @bank + 0x038 Fin du Nb de Ligne
===  Début du Programme Novar ===
  • @bank + 0x208 REF
  • @bank + 0x212 Controle de Ref
  • @bank + 0x218 Prise du 1er Outil
  • @bank + 0x222 Vitesse
  • @bank + 0x228 Début boucle
  • @bank + 0x230 à @bank + 0x24F placement composant
  • @bank + 0x250 Fin 1er Boucle
  • @bank + 0x258 Depose
  • @bank + 0x260 Prise nouvel Outil
  • @bank + 0x268 Vitesse
  • @bank + 0x270 Début 2eme boucle
  • @bank + 0x278 placement du composant
  • @bank + 0x280 Fin 2eme Boucle
  • @bank + 0x288 Depose
  • @bank + 0x290 Prise nouvel Outil
  • @bank + 0x298 Vitesse
  • @bank + 0x2A0 Début 3eme boucle
  • @bank + 0x2A8 à @bank + 0x2B7 placement du composant
  • @bank + 0x280 Fin 3eme Boucle fin de programme