Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Aide script ajout ventilateur pour boitier Kintaro

    Recalbox Général
    script ajout ventilateur boitier kintaro
    4
    49
    12199
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Mikefly
      Mikefly last edited by Mikefly

      @Substring Le fichier kintaro.config va se créer tout seul ou je dois copier tout les fichiers scripts de la page ?

      Substring 1 Reply Last reply Reply Quote 0
      • Substring
        Substring @Mikefly last edited by

        @mikefly sais pas. Éventuellement crée le toi-même, il est dans le dossier start du repo github

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        Mikefly 1 Reply Last reply Reply Quote 0
        • Mikefly
          Mikefly last edited by Mikefly

          @Substring oui je viens de voir ça.
          Donc dimanche soir je vais tester pcb.py pour voir si ça passe nickel. Sinon je crée un fichier avec le code de @Dragu.

          Édit: on fait comment pour afficher du code sur rectangle noir sur le forum ?

          1 Reply Last reply Reply Quote 0
          • Mikefly
            Mikefly @Substring last edited by

            @substring dernière question quand je vais tester le fichier pcb.py est ce que laisse aussi l'autre ? Kintaro.py ?

            Substring 1 Reply Last reply Reply Quote 0
            • Substring
              Substring @Mikefly last edited by

              @mikefly le code c'est encadré de triple backquotes :

              ```
              Ton code
              ```

              Le kintaro.py ne me semblait pas utile

              Former dev - Please reply with @substring so that i am notified when you answer me
              Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

              Mikefly 1 Reply Last reply Reply Quote 0
              • Mikefly
                Mikefly @Substring last edited by

                @substring d'accord merci.
                Maintenant je n'ai plus qu'à mettre les mains dans le cambouis ce soir 🙂

                Merci à tous les deux en tout cas 😍

                1 Reply Last reply Reply Quote 0
                • Mikefly
                  Mikefly @Substring last edited by Mikefly

                  @substring voila le message que j'ai quand j'ai lancé pcb.py ( que j'ai renommé en kintaro.py)

                  Traceback (most recent call last):
                    File "kintaro.py", line 8, in <module>
                      import http.server
                  ImportError: No module named http.server
                  

                  si je supprime cette ligne j'ai droit au meme message sur l'import suivant

                  Substring 1 Reply Last reply Reply Quote 0
                  • Mikefly
                    Mikefly last edited by Mikefly

                    @Dragu
                    j'essais ton script, j'ai modifier le pin 18 en pin 8. pour l'instant c'est en cours de test mais le ventilo ne pas se déclenche pas quand j'arrive à 60°C voir plus.

                    edit: c'est bon j'ai trouvé la solution, il faut modifier la ligne :

                    GPIO.setmode(GPIO.BCM)
                    

                    en

                    GPIO.setmode(GPIO.BOARD)
                    

                    En tout cas merci @Dragu et @Substring pour votre aide 😄

                    voila les scripts pour gerer les boitiers Kintaro.
                    Faudrait peut être l'intergrer dans une future mise a jour de Recalbox @Substring ?

                    https://drive.google.com/file/d/1bieEzZX1-UMLcyDKqZ66_SH7UGHGIhoW/view?usp=sharing

                    1 Reply Last reply Reply Quote 0
                    • Substring
                      Substring @Mikefly last edited by

                      @mikefly script python3 ...
                      Essaie de remplacer configpa**er par ConfigPa**er. Mais ca risque d'a oir des conséquences ailleurs

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                      1 Reply Last reply Reply Quote 0
                      • Mikefly
                        Mikefly last edited by Mikefly

                        @Substring ok mais ça bloque déjà avant avec le http.server

                        Apres le script de @Dragu fait le job, le ventilo s'enclenche à 60°C et s’éteint à 55°C.

                        le script de retropie fait la meme chose non ? démarre à 60 et s’arrête à 55

                        Substring 1 Reply Last reply Reply Quote 0
                        • Substring
                          Substring @Mikefly last edited by

                          @mikefly me.semblait pas que le script de Dragu gérait 2 temps, tant mieux alors

                          Former dev - Please reply with @substring so that i am notified when you answer me
                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                          Mikefly 1 Reply Last reply Reply Quote 0
                          • Mikefly
                            Mikefly @Substring last edited by

                            @substring si si. C'est ce qu'il essayait de te dire plus haut.

                            maxTMP = 60 # Over put on fan
                            minTMP = 55 # Under put off fan
                            
                            1 Reply Last reply Reply Quote 0
                            • Dragu
                              Dragu Banned last edited by

                              Donc en fait, le Pin 8 est le Gpio 14, le fil rouge sur le bouton...
                              Tout ça n'est parfois pas évident. 🙂

                              Mikefly 1 Reply Last reply Reply Quote 0
                              • Mikefly
                                Mikefly @Dragu last edited by Mikefly

                                @dragu pourtant la carte électronique est branché sur les 10 premiers pin du raspberry

                                0_1533546743811_IMG_20180806_111204.jpg

                                1 Reply Last reply Reply Quote 0
                                • Dragu
                                  Dragu Banned last edited by

                                  @Mikefly
                                  Oui, et tu vois sur cet schéma la différence entre board et BCM

                                  alt text

                                  En tout cas, on peut vraiement recommander cet boîtier, premier qui contient déjà l'électronique pour la commande du ventilateur. 🙂

                                  Mikefly 1 Reply Last reply Reply Quote 0
                                  • Mikefly
                                    Mikefly @Dragu last edited by

                                    @dragu ah oui ok je comprends mieux.
                                    Oui ce boitier c'est de la bombe. Super qualité de fabrication et super fidèle à la SNES Pal

                                    1 Reply Last reply Reply Quote 0
                                    • Mikefly
                                      Mikefly last edited by Mikefly

                                      Donc au finale voila les fichiers scripts pour les boîtiers Kintaro :

                                      https://drive.google.com/file/d/1bieEzZX1-UMLcyDKqZ66_SH7UGHGIhoW/view?usp=sharing

                                      Tuto :

                                      j'ai utiliser ce logiciel WinSCP

                                      se connecter en mode root sur le pi3 et autoriser l’écriture sur les dossier avec la commande :

                                      mount -o remount,rw /
                                      

                                      copier le dossier Kintaro dans le repertoire /opt folder

                                      puis le fichier S100kintaro.sh dans le repertoire /etc/init.d/

                                      lancer la commande (pour autoriser le fichier) :

                                      chmod +x /etc/init.d/S100kintaro.sh
                                      

                                      et enfin lancer le script avec la commande suivante :

                                      /etc/init.d/S100kintaro.sh start
                                      

                                      normalement le message suivant apparait : Starting Kintaro.

                                      1 Reply Last reply Reply Quote 1
                                      • Dragu
                                        Dragu Banned last edited by

                                        @Mikefly
                                        @Substring
                                        Juste comme info. Le boîtier "Kintaro Super Ursus" est épuisé partout, aussi en Allemagne. Bon, j'ai trouvé une source en Angleterre et vient de recevoir la case aujourd'hui. Quand j'avais commandé, j'avais aussi publié le site sur mon forum.
                                        Depuis leur stock a passé de 43 à 26. Il ne coûte que 5 Euro en plus pour le transport. Alors dernière occasion.
                                        https://www.modmypi.com/raspberry-pi/cases-183/raspberry-pi-b-plus2-and-3-cases-1122/raspberry-pi-3b-snes-case-super-ursus

                                        1 Reply Last reply Reply Quote 0
                                        • Mikefly
                                          Mikefly last edited by Mikefly

                                          Salut,

                                          Ca y est le dev de Kintaro a sorti sa nouvelle version du script pour leur boitier qui prend en charge le ventilateur via hysterisis. on le trouve ici :

                                          https://github.com/MichaelKirsch/Kintaro-Recalbox

                                          il y a du grand changement dans le script :

                                          #!/usr/bin/python -u
                                          #Copyright 2017 Michael Kirsch
                                          
                                          try:
                                              import time
                                              import os
                                              import RPi.GPIO as GPIO
                                              import subprocess
                                          except ImportError:
                                              raise ImportError('spidev or gpio not installed')
                                          
                                          class SNES:
                                          
                                              def __init__(self):
                                          
                                                  #GPIOs
                                          
                                                  self.led_pin=7
                                                  self.fan_pin=8
                                                  self.reset_pin=3
                                                  self.power_pin=5
                                                  self.check_pin=10
                                          
                                                  #vars
                                          
                                                  self.fan_hysteresis = 5
                                                  self.fan_starttemp = 60
                                                  self.debounce_time = 0.1
                                          
                                                  #path
                                          
                                                  self.temp_command = 'vcgencmd measure_temp'
                                          
                                                  #Set the GPIOs
                                          
                                                  GPIO.setmode(GPIO.BOARD)  # Use the same layout as the pins
                                                  GPIO.setwarnings(False)
                                                  GPIO.setup(self.led_pin, GPIO.OUT)  # LED Output
                                                  GPIO.setup(self.fan_pin, GPIO.OUT)  # FAN Output
                                                  GPIO.setup(self.power_pin, GPIO.IN)  # set pin as input
                                                  GPIO.setup(self.reset_pin, GPIO.IN,
                                                             pull_up_down=GPIO.PUD_UP)  # set pin as input and switch on internal pull up resistor
                                                  GPIO.setup(self.check_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
                                          
                                              def power_interrupt(self, channel):
                                                  time.sleep(self.debounce_time)  # debounce
                                                  if GPIO.input(self.power_pin) == GPIO.HIGH and GPIO.input(
                                                          self.check_pin) == GPIO.LOW:  # shutdown function if the powerswitch is toggled
                                                      self.led(0)  # led and fan off
                                                      self.fan(0)
                                                      os.system("shutdown -h now")
                                          
                                              def reset_interrupt(self, channel):
                                                  if GPIO.input(self.reset_pin) == GPIO.LOW:  # reset function
                                                      time.sleep(self.debounce_time)  # debounce time
                                                      while GPIO.input(self.reset_pin) == GPIO.LOW:  # while the button is hold the counter counts up
                                                          self.blink(15, 0.1)
                                                          os.system("reboot")
                                          
                                              def pcb_interrupt(self, channel):
                                                  GPIO.cleanup()  # when the pcb is pulled clean all the used GPIO pins
                                          
                                              def temp(self):     #returns the gpu temoperature
                                                  res = os.popen(self.temp_command).readline()
                                                  return float((res.replace("temp=", "").replace("'C\n", "")))
                                          
                                              def led(self,status):  #toggle the led on of off
                                                  if status == 0:       #the led is inverted
                                                      GPIO.output(self.led_pin, GPIO.LOW)
                                                  if status == 1:
                                                      GPIO.output(self.led_pin, GPIO.HIGH)
                                          
                                              def blink(self,amount,interval): #blink the led
                                                  for x in range(amount):
                                                      self.led(1)
                                                      time.sleep(interval)
                                                      self.led(0)
                                                      time.sleep(interval)
                                          
                                              def fan(self,status):  #switch the fan on or off
                                                  if status == 1:
                                                      GPIO.output(self.fan_pin, GPIO.HIGH)
                                                  if status == 0:
                                                      GPIO.output(self.fan_pin, GPIO.LOW)
                                          
                                              def fancontrol(self,hysteresis,starttemp):  #read the temp and have a buildin hysteresis
                                                  if self.temp() > starttemp:
                                                      self.fan(1)
                                                  if self.temp() < starttemp-hysteresis:
                                                      self.fan(0)
                                          
                                              def check_fan(self):
                                                  self.fancontrol(self.fan_hysteresis,self.fan_starttemp)  # fan starts at 60 degrees and has a 5 degree hysteresis
                                          
                                              def attach_interrupts(self):
                                                  if GPIO.input(self.check_pin) == GPIO.LOW:  # check if there is an pcb and if so attach the interrupts
                                                      GPIO.add_event_detect(self.check_pin, GPIO.RISING,callback=self.pcb_interrupt)  # if not the interrupt gets attached
                                                      if GPIO.input(self.power_pin) == GPIO.HIGH: #when the system gets startet in the on position it gets shutdown
                                                          os.system("shutdown -h now")
                                                      else:
                                                          self.led(1)
                                                          GPIO.add_event_detect(self.reset_pin, GPIO.FALLING, callback=self.reset_interrupt)
                                                          GPIO.add_event_detect(self.power_pin, GPIO.RISING, callback=self.power_interrupt)
                                                  else:       #no pcb attached so lets exit
                                                      GPIO.cleanup()
                                                      exit()
                                          
                                          snes = SNES()
                                          
                                          snes.attach_interrupts()
                                          
                                          while True:
                                              time.sleep(5)
                                              snes.led(1)
                                              snes.check_fan()
                                          
                                          
                                          Substring 1 Reply Last reply Reply Quote 0
                                          • Substring
                                            Substring @Mikefly last edited by

                                            @mikefly tu as testé ?

                                            Former dev - Please reply with @substring so that i am notified when you answer me
                                            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                            Mikefly 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            81
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com