Deshabilitar visual mode a vim

add to ~/.vimrc:

set mouse-=a
syntax on

Eggbot

El firmware que m’ha funcionat amb el CNC Shield d’Arduino és aquest:

https://github.com/Thingibox/EggBot/tree/master/Firmware

En aquest el servo ha d’anar al pin SpnEn

El motor que mou l’ou va al X i el motor que mou el rotulador al Y


Normalment si fas un Eggbot amb la versió free anomenada Eggduino, les extensions de Inkscape no reconeixen la placa. Cal fer això:

Editem el fitxer ebb_serial.py que trobarem al directori de les extensions de Inkscape extensions/axidraw_deps/plotink i busquem aquestes línies

ebb_port = None
   for port in com_ports_list:
      if port[1].startswith("EiBotBoard"):
         ebb_port = port[0] # Success; EBB found by name match.
         break # stop searching-- we are done.

if ebb_port is None:
   for port in com_ports_list:
      if port[2].startswith("USB VID:PID=04D8:FD92"):
         ebb_port = port[0] # Success; EBB found by VID/PID match.
         break # stop searching-- we are done.
return ebb_port

i fem aquests canvis:

ebb_port = "/dev/cu.usbserial-1420"
#   for port in com_ports_list:
#      if port[1].startswith("EiBotBoard"):
#         ebb_port = port[0] # Success; EBB found by name match.
#         break # stop searching-- we are done.
#if ebb_port is None:
#   for port in com_ports_list:
#      if port[2].startswith("USB VID:PID=04D8:FD92"):
#         ebb_port = port[0] # Success; EBB found by VID/PID match.
#         break # stop searching-- we are done.
return ebb_port

On si és un Linux posarem /dev/ttyUSB0 en la primera línia


Quan l’extensió busca l’eggbot li envia un caràcter “v” i espera resposta de la versió de firmware instal·lada. Doncs, en algunes combinacions d’Arduino i Firmware, la primera vegada no respon i no detecta la placa. Però si dupliquem la comprovació, la segona vegada funciona i tira endavant. Caldrà tocar aquestes línies del mateix miter ebb_serial.py del cas anterior. 

Hem de buscar la funció testPort i buscar aquestes línies:

serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
if str_version and str_version.startswith("EBB".encode('ascii')):
   return serial_port

Només hem de duplicar les 2 primeres:

serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
serial_port.write('v\r'.encode('ascii'))
str_version = serial_port.readline()
if str_version and str_version.startswith("EBB".encode('ascii')):
   return serial_port

Amb això sembla que funciona en tots els casos. Weid, but true

 

Instal·lar Debian amb RAID 1 software i EFI

  1. I’ve installed Debian without setting up the RAID for the ESP partition. During the partitioning, I’ve already created two identical partitions marked as ESP partitions. They were on /dev/sda1 and /dev/sdb1
  2. I’ve copied the contents of /boot/efi somewhere else (/root/eficopy).
  3. umount /boot/efi
  4. mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1. Of course change /dev/md2 to something else if /dev/md2 is already an active MD device
  5. mkfs.vfat /dev/md2 (potser cal instal·lar el paquet dosfstools)
  6. found the UUID of the partition in /dev/disk/by-uuid
  7. changed the /boot/efi entry in /etc/fstab with the new UUID
  8. mount /boot/efi
  9. copy the data from the backup into /boot/efi again

Instead of backing up the /boot/efi partition, it seems that

grub-install --efi-directory=/boot/efi

Generar SVG amb Inkscape per la CNC

Si partim d’un DXF, amb el LibreCAD l’exportem a SVG amb les opcions:

  • Default width of elements > 0.1
  • Raster image export > ON
  • La resta per defecte

Des de Inkscape ja podem treballar el SVG:

  • Desagrupar tots els objectes diverses vegades per assegurar que no quedi cap grup
  • Seleccionar tots els objectes i fer un path > Object to path
  • Si és un objecte que volem que sigui una línia gruixuda, seleccionar tots els objectes que volem que formin un sol path i fer un path > Stroke to path
  • si és un objecte que volem que tingui àrea i és convex, seleccionar tots els objectes que volem que formin un sol path i fer un path > Fill between paths
  • si és un objecte que volem que tingui àrea i és concau, haurem de fer que els nodes del path estiguin ben enganxats. Si el mètode de l’objecte convex no fa bé la feina, provar això:
    • Seleccionar els nodes amb l’eina d’edició de nodes i fer Join selected nodes
    • Si tenim segments rectes que no acaben en node, esborrar-los, seleccionar els 2 nodes de les puntes i fer Join selected endnodes with a new segment
  • Seleccionar els objectes que volem que formin un sol path i fer path > Union

Al jscut li he hagut de posar 96 píxels/polsada perquè l’escala fos la correcta. No sé si això dependrà del DXF.

Paràmetres de tall

  • Velocitat sense tallar > 200mm/min
  • Velocitat eix Z > 5mm/min
  • Velocitat tallant > 120mm/min
  • Pas eix Z > 0,1 mm

Ajusta Z offset Anycubic amb BLTouch

He afegit BLTouch a la impressora Anycubic I3 Mega. Per ajustar el Z he de fer:

  1. Escalfar el llit
  2. G28 >> homing
  3. G90 >> set mode absolute posicioning
  4. G1 Z10 >> ves a Z=10
  5. G1 X40 Y40 F4000 >> ves a X=40 i Y=40  a 4000mm/min
  6. M280 P0 S10 >> baixa el pin del BLTouch
  7. G91 >> set mode relative posicioning
  8. Baixar lentament l’extrusor fins que el pin del BLTouch salti. Pots fer servir G1 Z-1 o bé G1 Z-0.1 per anar mes lentament.
  9. Si el pin ha saltat i fa pampallugues M280 P0 S160 per silenciar l’alarma
  10. M114 >> per obtenir la posició actual del nozzle. Registrem la posició de la Z (Z1)
  11. G90 >> set mode absolute posicioning
  12. G1 X38 Y15 F4000 >> desplaça el nozzle al punt on ha fet la mesura el BLTouch (movent l’offset XY entre el nozzle i el Bltouch)
  13. G91 >> set mode relative posicioning
  14. Posar un tall de paper sota el nozzle
  15. Baixar lentament l’extrusor fins que costi moure el paper sota el nozzle. Pots fer servir G1 Z-1 o bé G1 Z-0.1 per anar mes lentament.
  16. M114 >> per obtenir la posició actual del nozzle. Registrem la posició de la Z (Z2)
  17. Calculem Z2 – Z1 i aquest és el offset que necessitem. Sí, és un numero negatiu.
  18. M851 Z-2.6 >> defineix un offset de -2.6
  19. M500 >> guardar el valor a la EEPROM

Afegim el gcode G29 a la seqüència d’inici de la impressora en el laminador que utilitzem, just després de fer el homing.

Comandaments GCODE per controlar el BLTouch

  • M280 P0 S260 ;reset
  • M280 P0 S120 ;self test
  • M280 P0 S90 ;stow probe pin
  • M280 P0 S10 ;deploy probe pin

Galetes de xocolata (cookies)

Ingredients per a 24 unitats

  • 115gr de mantega a temperatura ambient
  • 100gr de sucre moreno
  • 100gr de sucre extrafi
  • 1 ou lleugerament batut
  • 1/4 de cullaradeta d’essència de vainilla
  • 155gr de farina
  • una pessic de llevat
  • 100gr d’ametlles picades
  • 150gr de trocets de xocolata

Preparació:

  1. Escalfar el forn a 180ºC. Mentrestant, untar 2 safates de forn amb mantega fosa i deixar refredar fins que endureixi.
  2. Utilitzar una cullera de fusta o un robot de cuina per batre la mantega i els 2 tipus de sucre fins a obtenir una barreja lleugera i esponjosa. Incorporar l’ou i la vainilla gradualment, batent bé després de cada addició.
  3. Tamisar la farina, el llevat i les ametlles picades. Afegir la meitat a la barreja cremosa. Quan es vegi tot homogeni, afegir la resta de la barreja amb els trocets de xocolata sense deixar de remenar.
  4. Separar la barreja en 24 porcions i donar-los forma esfèrica. Col·locar-les separades en les 2 safates de forn i aplastar-les una mica. Fornejar durant 15 a 20 minuts o fins que estiguin daurades. Retirar-les de la safata mentres estan encara calentes i passar-les a una reixeta. Repetir l’operació amb la resta de la barreja. Un cop fornejades deixar-les refredar abans de tancar-les en qualsevol recipient.

Canvis de format d’àudio amb sox

Per passar de alaw a wav
sox --channels 1 --type raw --rate 8000 -e a-law input_file.alaw output_file.wav

Per passar de mp3 a wav
sox input_file.mp3 -c1 -r 8000 output_file.wav

Per passar de wav a alaw
sox -V input_file.wav -r 8000 -c 1 -t ul output_file.alaw

Monitorització rendiment disc en Linux

La comanda dstat ens pot ajudar a veure si tenim temps d’espera de la CPU per accedir al disc, a través del paràmetre “wai”
La comanda podria ser aquesta:

 dstat -tcdD total,sda,sdb 60

Veure en els logs de correu quina web i script els envia

Primer de tot, s’han de crear dos fitxers:

  • /usr/share/php/sendmail-wrapper-php-vars.php
<?php
putenv("HTTP_HOST=".@$_SERVER["HTTP_HOST"]);
putenv("SCRIPT_NAME=".@$_SERVER["SCRIPT_NAME"]);
putenv("SCRIPT_FILENAME=".@$_SERVER["SCRIPT_FILENAME"]);
putenv("DOCUMENT_ROOT=".@$_SERVER["DOCUMENT_ROOT"]);
putenv("REMOTE_ADDR=".@$_SERVER["REMOTE_ADDR"]);
?>
  • /usr/sbin/sendmail-wrapper-php
#!/bin/sh
logger -p mail.info sendmail-wrapper-php: site=${HTTP_HOST},client=${REMOTE_ADDR}, script=${SCRIPT_NAME},pwd=${PWD}, uid=${UID}, user=$(whoami)
/usr/sbin/sendmail -t -i $*

Un cop fet s’han de fer executables.

chmod a+x /usr/sbin/sendmail-wrapper-php

chmod a+x /usr/share/php/sendmail-wrapper-php-vars.php

I finalment s’han de fer 2 canvis al php.ini:

;auto_prepend_file =
;GRN -> Agefim el prepend per el nostre fitxer per registra els logs del mail
auto_prepend_file = /usr/share/php/sendmail-wrapper-php-vars.php
;sendmail_path = "/usr/sbin/sendmail -t -i -f mail@domini"
;GRN -> Agefim el prepend per el nostre fitxer per registra els logs del mail
sendmail_path = /usr/sbin/sendmail-wrapper-php

Recarregant l’apache t’hauria de deixar els logs al mail.info de quina web és la que està enviant correus i via quin script

Problemes per instal·lar GRUB amb Jessie i discos >1TB

M’he trobat amb problemes per instal·lar Debian Jessie amb discos de 2TB en RAID1 software. En el moment de gravar el grub dóna error i no hi ha manera de sortir d’allà. La solució que he trobat és:

  • Crear una partició de 1MB a cada disco com a “reserved BIOS boot area”.
  • Crear les particions de swap i / a cada disco com a RAID.
  • Definir el RAID i les àrees de swap i la partició / com sempre.
  • En el moment de gravar el grub, troba la partició addicional i funciona.