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ł 5i25g540x2.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 🙂