+ Antworten
Ergebnis 1 bis 2 von 2
  1. #1
    Developer
    Registriert seit
    18.07.2012
    Ort
    Ridderkerk, Niederlande
    Beiträge
    634
    Thanks
    144
    Thanked 712 Times in 304 Posts

    New nuvoton driver

    Those who looked in the source code of the nuvoton driver for the Fortis receivers could have seen there was a long standing TODO for the FS9000/9200 (HDbox): the majority of the icons would only work on early production front panels. As documentation about the frontpanel commands is not available to me, I had no way to fix this (up to now).

    Some time ago I had a good look at the code for the communication with the front processor and it turned out to be the standard protocol of RS-232. After some experimenting I could read out the commands to the front processor and the answers (if any) to them.

    I proceeded by installing the factory firmware, and starting the various receiver models from deep standby, meanwhile logging the in- and output of the front processor in a file in hex format. After some study and the info already in the nuvoton source code things began to make a lot more sense. I discovered a few unknown opcodes that opened new possiblities and could add to the list of possible opcodes to the front processor and correct some errors, omissions and assumptions as well.

    As a result the nuvoton driver has had an extensive overhaul. Some things have been moved about in the code, things were made more consistent and of course: the new discoveries were put to good use. This was the result (per Fortis receiver model):

    FS9000/9200 (HDbox)
    All 39 icons should work on all versions of the front processor now. Stock firmware turned out to use two (!) different opcodes to control the various icons. The second one that was not in the code yet is also capable of (re)setting more than one icon in a single command. As a result, (re)setting an icon is noticeably faster in some cases.
    As the circle icons could be finally controlled now I added icon 41: the spinner, using code from the aotom driver for the Sparks. As on the Spark7162 icon 41 can be controlled as follows: value 0 switches it off, 1 gets you the default speed of one change per second, and values 2 through 255 let you set your own rotating speed. The rotating circle is handled in a special thread.
    Up to now printing the texts on the display of these models was done using an opcode to set an icon, necessitating 12 commands to the front processor to refresh the entire display text. Stock firmware turned out to use the same command as used on the HS8200 that can set the entire text of 12 characters with one command, and in fact after implementing it, the code was almost exactly the same as the existing code for the HS8200, so the three models now use the same routine. As a bonus, UTF8 support is now available, as the HS8200 already had that. Text refresh is also noticeably faster.

    HS9510 (Octagon1008)
    No changes.

    HS8200 (Atevio7500)
    One of the major deficiencies of this model is the fact it has no icons. However stock firmware does not use the leftmost of the thirteen character positions in the display, apart from the front processor that uses a single pixel to report remote control activity. The thirteen character positions are all the same: each has a 7x5 dot matrix of pixels. Stock firmware writes texts using the text write opcode and the front processor translates that to the characters displayed startng on the second position, leaving a length of 12 characters, just as on the FS9000/9200. I found no instance of stock firmware controlling individual pixels apart from a strange set icon command written at power on by the boot loader. After some experimenting and installing the "symbols" plugin I discovered that the strange icon command enabled the use of the leftmost position on the display, and one could use the set icon opcode to write one's own bitmaps: all pixels in the display can be controlled individually this way.
    The result after some programming is this: the HS8200 can now display one icon at a time in the leftmost position. I made 22 icons, and they are:
    Code:
      ICON_STANDBY   = 01
      ICON_REC       = 02
      ICON_TIMESHIFT = 03
      ICON_TIMER     = 04
      ICON_HD        = 05
      ICON_USB       = 06
      ICON_SCRAMBLED = 07
      ICON_DOLBY     = 08
      ICON_MUTE      = 09
      ICON_TUNER1    = 10
      ICON_TUNER2    = 11
      ICON_MP3       = 12
      ICON_REPEAT    = 13
      ICON_PLAY      = 14
      ICON_STOP      = 15
      ICON_PAUSE     = 16
      ICON_REWIND    = 17
      ICON_FF        = 18
      ICON_STEP_BACK = 19
      ICON_STEP_FWD  = 20
      ICON_TV        = 21
      ICON_RADIO     = 22
    The icons are not super detailed as you cannot do that much in a 7x5 pixel matrix.
    Because setting an icon overwrites the previous one, the HS8200 does not have the (re)set all feature (highest icon number plus one (re)sets all icons).
    Expansion is possible: in a thread similar to the spinner on the FS9000/9200 one could make animated icons or display them one after another in a circular fashion when more than one is set. Along the same line I plan to add a spinner icon in the future, in this case a rotating line.

    HS742X
    Previously I had written in the source code I could not find a way to control the icons in the display of these models. It turned out I had not looked close enough: they can. These models now have four controllable icons:
    Code:
      ICON_DOT    = 01 (also RC feedback)
      ICON_COLON1 = 02
      ICON_COLON2 = 03
      ICON_COLON3 = 04
    Icon number 5 (re)sets all in one go.

    HS7119/7810A/7819
    These models write an opcode 0x23 to the front processor at power on. After some experimenting I found that this sets the display brightness, a feature previously only available in the nuvoton driver on Fortis models having a VFD. There are ten brightness levels available but I compressed the scale to eight to remain compatible with the VFD models, with 7 the brightest and default at power on and zero completely dark (= display off).
    Another wish I had was to be able to control the colon and periods (on HS7810A/7819, not on 7119) in the display as icons. This has been implemented too:
    Code:
      ICON_COLON   = 01 (the only icon on the HS7119)
      ICON_PERIOD1 = 02
      ICON_PERIOD2 = 03
      ICON_PERIOD3 = 04
    Icon number 5 (re)sets all in one go.
    I have left the special handling of colons and periods in texts in.

    All models
    The intricacies for the SetTimeFormat opcode have been explored and are quite simple: argument 0x80 sets 12h AM/PM format and 0x81 sets 24h format. The front processor uses this to display its local clock in standby. The driver initializes this to 24h for all models when it is started. In fp_control use the values 0 and 1 instead of the hex values, the driver adds the MSbit.

    The new nuvoton driver can be found in my driver git. I have tested on two FS9200's (one with old FP, one with new), a HS8200 (loader 6.00), a HS7810A (loader 6.26) and a HS7429. The driver should compile with very little or no warnings. I hope I have not overlooked anything. My test builds all finished successfully.

    The current version of fp_control should be able to control the new features as well, with possibly the exception of icon 41 on FS9000/9200.

    Have fun with the new features.

    Greetings,

    Audioniek.
    Geändert von Audioniek (22.01.2017 um 13:00 Uhr)
    Receivers: Rebox: RE-4000, 8000, 9000, 2200, 2210, 2220, 4200, 4210, 4220, 8220, 8500, SAB Unix Triple, Golden Media Spark TripleX, Amiko Alien 2+, Sogno Spark Revolution, Kathrein UFS910(1 & 14W)/912/913/922(CX24116 & AVL2108 tuners), Vizyon revolution 820HD PVR, AB IPBox 91HD/9000HD/9000HD rev.2, Xsarius Alpha HD10, nBox BKSA/BSLA/BXZB/BZZB, Vitamin HD 5000
    Sats: Astra 1, 2 & 3, Hotbird
    Main activity: building my own E2 images for Fortis receivers


  2. #2
    Developer
    Registriert seit
    18.07.2012
    Ort
    Ridderkerk, Niederlande
    Beiträge
    634
    Thanks
    144
    Thanked 712 Times in 304 Posts
    The latest version

    I have put some extra work in and this has resulted in the following changes and additions:

    FS9000/9200 (Fortis HDbox)
    The spinner when on, is now stopped in the following circumstances:
    • Spinner is stopped because it is switched off (was already implemented);
    • A command all icons on or off is received;
    • An icon that is part of the spinner (inner circle or one of the eight segments) is (re)set.


    HS8200 (Atevio7500)

    • Display of more than one icon is now possible. If only one icon is switched on, it is displayed continuously. If more than one icon is on, they are displayed in circular sequence, with each icon visible during a period of 3 seconds. A (re)set all icons feature is now useful and has been added too: it is icon 23.
    • A spinner has been added: it is icon 24. When displayed, it suppresses the display of other icons. It's on/off value behaves similar as on the FS9000/9200 and Spark7162/VFD:

    Code:
    0 = off
    1 = default speed (one cycle takes 4 seconds)
    2 - 255 = sets own speed. 2 is fastest, 255 is slowest
    When the spinner is switched off after being on, the previously displayed icon(s) are restored automatically. Updates to their on/off state are stored during spinner activity and restored correctly.

    All models
    The version info has been improved and expanded. First, the version info shown is actually retrieved from the boot loader environment (previously it was a model dependent string constant). Second, the reseller ID in the boot loader can be shown in one of two ways:
    - By using fp_control -v (needs the latest fp_control);
    - By typing cat /proc/stb/fp/resellerID in a telnet session.

    You need a new nuvoton.ko, a new e2proc.ko and a new fp_control to enjoy all this. All source code can be found in my git.

    Hope you like it.

    Regards,

    Audioniek.
    Geändert von Audioniek (07.02.2017 um 15:10 Uhr)
    Receivers: Rebox: RE-4000, 8000, 9000, 2200, 2210, 2220, 4200, 4210, 4220, 8220, 8500, SAB Unix Triple, Golden Media Spark TripleX, Amiko Alien 2+, Sogno Spark Revolution, Kathrein UFS910(1 & 14W)/912/913/922(CX24116 & AVL2108 tuners), Vizyon revolution 820HD PVR, AB IPBox 91HD/9000HD/9000HD rev.2, Xsarius Alpha HD10, nBox BKSA/BSLA/BXZB/BZZB, Vitamin HD 5000
    Sats: Astra 1, 2 & 3, Hotbird
    Main activity: building my own E2 images for Fortis receivers

  3. The Following User Says Thank You to Audioniek For This Useful Post:



Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •