MESA 5i25 + OptoBOB

Obiecałem (daawno temu), że opiszę, jak podłączam Mesę „matkę” (5i25/6i25) do OptoBoba „córki”  (w tym przypadku raczej „syna” powinno być).

Przygotowanie Mesy

Ściągamy sterowniki ze strony MesaNet: SUPPORT SOFTWARE. Do karty 6i25 ściągamy te same sterowniki – programowo traktujemy ją cały czas jakby to była 5i25.

Ważna sprawa. O ile ze sterowników (czyli plików .bit) będziemy korzystać ze ściągniętego zipa to sam program 'mesaflash’ musi być 'normalny’ – z  dystrybucji Linuxa. Inaczej tak jak ja możecie się kilka dni kręcić w kółko 🙂

Czym flashujemy?

A to już co kto lubi 🙂 Po rozpakowaniu pliku 5i25.zip wchodzimy do katalogu configs/hostmot2.

Znajdziemy tam pliki .bit, .xml i .pin. Pliki .bit to nasze sterowniki do flashowania, a  .pin to zwykłe pliki tekstowe z opisem pinów – przy podłączaniu OptoBOBa warto przejrzeć następujące pliki:

  • 5i25_dmmbob1x2.pin,
  • 5i25_g540x2.pin,
  • 5i25_hdbb2.pin,
  • 5i25_prob_rfx2.pin

Na końcu każdego mamy wypisaną konfigurację pinów np.

IO Connections for P3

Pin#. I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

1 0 IOPort None
14 1 IOPort PWMGen 0 PWM (Out)
 2 2 IOPort StepGen 0 Step (Out)
15 3 IOPort None
 3 4 IOPort StepGen 0 Dir (Out)
16 5 IOPort StepGen 4 Step (Out)
 4 6 IOPort StepGen 1 Step (Out)
17 7 IOPort None
 5 8 IOPort StepGen 1 Dir (Out)
 6 9 IOPort StepGen 2 Step (Out)
 7 10 IOPort StepGen 2 Dir (Out)
 8 11 IOPort StepGen 3 Step (Out)
 9 12 IOPort StepGen 3 Dir (Out)
10 13 IOPort QCount 0 Quad-A (In)
11 14 IOPort QCount 0 Quad-B (In)
12 15 IOPort QCount 0 Quad-IDX (In)
13 16 IOPort None

Pierwsza kolumna to nr pinu na złączu równoległym – szukamy sterownika, który ma zbliżone obłożenie do naszej maszyny – w moim przypadku najbardziej pasował 5i25_g540x2.pin

Tu też uwaga – w niektórych konfiguracjach jest zamieniona kolejność step-dir – łatwo przeoczyć, a potem trudno dojść czemu nie działa – uczulam 🙂

Jak flashujemy?

sudo mesaflash –device 5i25 –write ../../configs/hostmot2/5i25_g540x2.bit

i dostajemy:

Checking file... OK
File type: BIT file
Boot sector OK
EEPROM sectors to write: 6, max sectors in area: 16
Erasing EEPROM sectors starting from 0x100000...
|EEEEEE
Programming EEPROM sectors starting from 0x100000...
|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Board configuration updated successfully.
You must power cycle board or use --reload command to load updated firmware.

Teraz najbezpieczniej jest zrobić restart komputera.

Można też przeładować Mesę bez restartu:

sudo mesaflash --device 5i25 --reload

Sprawdzamy czy jest wszystko OK – odpalamy polecenie halcmd i wywołujemy show pin hm2_5i25.0. Powinniśmy dostać coś takiego:

halcmd: show pin hm2_5i25.0
Component Pins:

Owner   Type  Dir         Value  Name

5       s32   OUT             0  hm2_5i25.0.encoder.00.count
5       s32   OUT             0  hm2_5i25.0.encoder.00.count-latched
5       bit   I/O         FALSE  hm2_5i25.0.encoder.00.index-enable
5       bit   OUT          TRUE  hm2_5i25.0.encoder.00.input-a
5       bit   OUT          TRUE  hm2_5i25.0.encoder.00.input-b
5       bit   OUT         FALSE  hm2_5i25.0.encoder.00.input-index
5       bit   IN          FALSE  hm2_5i25.0.encoder.00.latch-enable
5       bit   IN          FALSE  hm2_5i25.0.encoder.00.latch-polarity
5       float OUT             0  hm2_5i25.0.encoder.00.position
5       float OUT             0  hm2_5i25.0.encoder.00.position-latched
5       bit   OUT         FALSE  hm2_5i25.0.encoder.00.quad-error
5       bit   IN          FALSE  hm2_5i25.0.encoder.00.quad-error-enable
5       s32   OUT             0  hm2_5i25.0.encoder.00.rawcounts
5       s32   OUT             0  hm2_5i25.0.encoder.00.rawlatch
5       bit   IN          FALSE  hm2_5i25.0.encoder.00.reset
5       float OUT             0  hm2_5i25.0.encoder.00.velocity
5       s32   OUT             0  hm2_5i25.0.encoder.01.count
5       s32   OUT             0  hm2_5i25.0.encoder.01.count-latched
5       bit   I/O         FALSE  hm2_5i25.0.encoder.01.index-enable
5       bit   OUT          TRUE  hm2_5i25.0.encoder.01.input-a
5       bit   OUT          TRUE  hm2_5i25.0.encoder.01.input-b
5       bit   OUT         FALSE  hm2_5i25.0.encoder.01.input-index
5       bit   IN          FALSE  hm2_5i25.0.encoder.01.latch-enable
5       bit   IN          FALSE  hm2_5i25.0.encoder.01.latch-polarity

No to Mesa skonfigurowana.

Konfiguracja LinuxCNC

Tu było trochę zabawy 🙂 Na szczęście miałem już plik konfiguracyjny do zestawu Mesa-Mesa wygenerowany PNCconfem i potem poprawiony ręcznie do naszych potrzeb. Gdzieś w sieci znalazłem też inny konfig do jakiejś innej karty na złączu równoległym – poskładałem, pocudowałem i wyszło coś co działa. Załączam z nadzieją, że u was też zadziała 🙂

Konfig Mesa 5i25 – OptoBob