New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unicable & JESS DiSEqC programmer #99
Comments
I support this idea! |
Hi, No one more interested on this?
My request is to add this function. |
Yes, the idea is very interesting but not sure how to help. |
So, as some people it's interested we need to organize. We need:
Please, post here if you can contribute! 😄 |
I found more information about this in the manual of a professional satellite meter VAROS 109, page 33: https://www.kws-electronic.com/downloads/KWS-Electronic-Manual-VAROS-109-V01-10-en_171027.pdf
|
Great info! This confirms that we can use the ".dsq" files created by the tools described in my first post. So, we only need to create a tool that can function as a "DiSEqC scripter". That is send the commands one-by-one and wait for the confirmation. Someone has the skills for do it? |
For DiseqC, the axe driver behaves like any other DVB-S/S2 hardware in Linux, so if anyone develop this tool using Linux's dvbapi, it can be included to this axe firmware, too. And sorry - I don't plan to participate on this (serious lack of time). It might be a good exam for a student :-) |
Hi @perexg ! This is the reason to post here. This project has the basics for this tool. And the tool can use the current code for sending DiSEqC commands.
Ok. Don't worry! However, can you point (isolate) where it's the code for sending the DiSEqC commands? Perhaps we can start with a simple skeleton of the tool. |
Use any existing code for Linux. Example: https://github.com/linuxstb/dvbtools/blob/master/dvbtune/diseqc.c I would make this tool standalone. Something like 'dvbsenddsq <file.dsq> <frontend_device>'. |
Thank you, @perexg !
Great idea! |
Should be able to make this as a python plugin for an enigma2 satellite receiver. |
I prefer to develop this tool (aka "dvbsenddsq") as a C portable program. |
Ok, but already in enigma2 CPP code there is code to send DiSEqC control words. |
Standalone, or inside the STB code? |
Inside the STB code. |
Hi! I'm already tried to do this. Sorry guys, it's impossible w. our dvb cards and dvbapi due to limited length diseqc fifo buffers onboard. both my cards (w. frontends stb0899 and tas2001) has a HARDWARE diseqc sequence length limit of 8 bytes, but for unicable programming purposes we need at least 16. Plus software limitations of dvbapi (6 bytes) exists, but can be changed in minutes. |
Hi @akosinov ,
I'm disappointed to hear that! 😞
And what about search for "other" devices, not regular dvb cards? |
Just one option is exists: if unicable device not worried about length of codepart (in all dsq files it equal to 14 w. preamble 7F 10) we can try to split target binary to small portions (for example 7F 10 xx xx xx xx) and send 4 nor 14 bytes at one diseqc operation. Maybe it will be ok, i cant' test due to original programmer (reader) unavailable. |
about limit checking - see source codes of your frontend in mediatree ))) |
oh no,.... no Pi please..... )))) |
Hi @akosinov , Great to hear you're searching! Regarding the Pi, it's cheap and very easy to purchase. Why not? And regarding the splitting of the commands, I feel it will difficult that it works. In any case we need to do some tests. Any one has a "programmable" device (not the programmer" but a LNB o Switch)? We can try to send commands to it. Regards. |
Hi @akosinov , I'm searching here http://github.com/torvalds/linux/tree/master/drivers/media/dvb-frontends about what DVB-S/S2 frontends can support more than 6-8Bytes DiSeqC commands. Any idea what I need to look for? |
I has 2 unicable II devices (switch and lnb from inverto). Can try, but i has no options for check result. i need to read config from device, but don't know how. programming protocol is not a part of standard, developed by unicable chip supplier (maxlinear) and completly closed. |
about frontends - only "manual" checking. find 'master_cmd' and check function algo |
if somebody "present" me original inverto programmer we can trace diseqc exchange and reverse protocol )))) |
Hi @akosinov ,
Here an idea for "checking" if your "custom programmer" works:
You like to test it? 😄 |
Hah. i thinked about this, but has no worked installation. only week ago received unicable equipment w/o programmer and think i can prog it self. aha..... now trying to solve it) |
I'll try! Thank you!
This will be the "second" task after we have a "custom programmer" that works (we need to resolve the problem of the DiSeqC command length, the source code of the tool, etc.). |
your testing method only partialy ok, because u need check ALL parameters saved correctly. cheching only 'LNB address' or some one frequency changement not guaranty 100% correct work. |
Hi @akosinov ,
If you have an Unicable II Inverto LNB it is pre-programmed to a default configuration. This default config has no LNB address and dynamic mode. So any unicable compatible STB can work without using a programmer. You can check this default configuration using the tool from Inverto and selecting the device you have. The loaded config it's the default config. Use this to see all the values of the default config.
Sure! But this will be the start. If you can change this, then you can go in this direction. 😄 |
Found some more info:
Then I googled some more and found the documents "EN 50494 2007" and "EN 50607 2015" on www.doc88.com |
Hi @charlesduco ,
These documents are the description of Unicable I and Unicable II as CENELEC standards. However, thank you for your contribution! 😄 |
Hi guys! I still trying to read (first) config from my device and have some success:
|
Hi @akosinov , Great to hear about these good news! 👍
Great! You can create then a document with a short description of the protocol. You can?
Bad news. However, I feel this is only for reading the config from the device. For writing will be sufficient to just use standard large DiSeQC commands. Right?
Yeah! You need now to share this circuit.
Well, I don't see any reason for protecting the protocol. I prefer open tools and protocols. In any case, if we can have a DIY interface for sendding the "*.dsq" files will be sufficient for 99% of the poeple. Perhaps is time to create a new project in GitHUB for a DYI Unicable Programmer? |
It's hard to believe that the physical bus spec is violated. DiSEqC is a very tolerant standard as described in the hardware design targets of the DiSEqC bus spec. Higher carrier frequency or lower signal amplitude is not always a violation of the standard. |
Im still fighting with my box. Now i has a digital osciloscope and i very surprised. I can see request (generated by STB Card, just 7A - answer free UBs) and answer. Request amplitude is near 400mV (correct), but amplitude of answer is only 50 mV. This is very close to noise level. I dont understand how i can do stable diseqc signal detection. |
Connection is : STB Card - T-splitter(passive, only wires), 15m of nice SAT cable - Unicable Box. |
Did you measure the current in the circuit? Maybe the STB Card is not able to provide the required power for the LNB. |
Im tryed with inverto power inserter too (included in my buyed bundle). Result the same. |
Maybe a simple t-splitter isn't the right way to view DiSEqC signals on an osciloscope. |
already done w same result. also tried to amplify signal by simple one-transistor schema. same - signal level is too close to noise. My next idea - building selfmade Fconnector-Fconnector with tap. let's solder on! :(((( uhh... hate analog circuits..... |
Hi @akosinov , As I see you have problems with the signal from the device (response), it's this right? |
yep |
Hi @akosinov , Then the project can be divided into: a) send programming DiSEqC sequences; b) receive DiSEqC configuration from the device. Why? Because the confirmation from the device when sending DiSEqC commands can be taken for granted. So, don't worry about responses for A. What you think? |
Hi! As i explained above i litle scared about wrong programming & device bricking. So, i think, good idea to make reader first, programmer after. If i can't read eeprom contents i'm not 100% sure in proper device functionality. |
Hi @akosinov ,
OK. Sorry! I accept it. 👍 |
OOhhhh my god. I did it! Now i can read all settings from device. Main problem - low signal amplitude - solved. Too low signal amplitude is a result of high input impedance of my reader and much lower input impedance of STB card. So i had a "resistor divider" and stb card simle "eat" all signal. Solved by diode. And i has a little question - maybe some people will start to reverse engineering binary data itselt. I has no time for it. Just try to change something in original prog, save BINARY (not DSQ) file and find a differences.... and more... and more..... |
If some people has ANY documetation for unicable SoCs from Maxlinear please contact me. It is realy hard to do something with closed eyes. NDA is not a problem. |
Great! 😄 Please, publish something and we can start to check it... |
Excellent work, so all signals coming from the Inverto devices are meeting the DiSEqC bus spec, as I expected.
I'm already started. I know how to decode the first bytes of a .bin file to a .txt file, so I can generate ODU_VER, ODU_NAME and ODU_LO parts from a .bin file and I have notes about the rest of the file, I know the location of ODU_BAND and ODU_UB_CSS and ODU_BOOT parts. |
Hi, And what about this?
Why not share this hack and start to develop a DIY interface using the original software? |
It's not so easy. I can see 'application to programmer' bytes, but not known proper answers ;-) just 0x0101 is ok for INIT command and i can see diseqc reading sequences. It's all. I think this job cannot done without dump of real exchange with original programmer. |
Hi @akosinov ,
Thank you!
Ok. So we need to found one. |
It's very simple. when app is attached (ATTACH_PROCES handler) do "LoadLibrary" and series of "GetProcAddress" for all functions. You can write code self or ask me, if someone has original programmer :-) |
Hi @akosinov ,
At time I don't have time to write this code. However, if I found someone with this programmer, then I can share your DLL and a simple guide for generating the log. This is the reason for asking you for enhancing the code. In Germany, as far as I know, you can rent the Unicable programmer for a few days. Maybe we can ask someone from that country to make the dump. |
Uhhhhhh. i'm finished this project |
Hi @akosinov ,
Great! So, I close this thread and we can continue in https://github.com/akosinov/unicable |
Hi all |
Hi,
I’m not sure if this is a right place for posting this. However, I see that here is a lot of great people with great knowledge. So, I write here if this project can support this idea, or someone likes to promote it on other place.
This is the question: Programmable Unicable products are great for reduce the investment in multisat installations. For example, with two Unicable LNBs and dishes you only need a simple combiner for use them with up to 32 receivers. The key is program one LNB as Pos-A, and the other as Pos-B. Furthermore, with static distribution you can distribute to any number of users up to 32 transponders, from any sat position (you only need one Unicable LNB for each sat position). The key in this case is program each LNB with the static frequencies. Again, it just takes only simple passive combiners for mix the signal from the different LNBs. You save the cost of any switch.
However, for programming an Unicable device you need the programmer. And here is my suggestion: add support (or create a tool) for do it! And how you can do it? Let me tell you what I found.
A time, you can found almost three different Unicable manufacturers with programmable products and programmers:
I installed the software of all, and I see that the software it’s mainly the same. So, some type of compatibility can exist. Furthermore, I try to configure from start some device with one tool and load the file from another version. Sometimes, the configuration can be loaded. In addition, the configuration can be saved in three different formats:
Attached you can found a ZIP with default devices configured with each tool in the three formats.
In a nutshell, the programmer seems to be a mere DiSEqC sender/receiver with RS232 interface (managed over an standard FTTI USB interface). Then my idea is this: support the option for "sending" the '.dsq' file to the device for program it. Obviously you lost the option for reading the configuration from the device. But, if you create your configuration for the beginning, then you don’t need it at all.
Please, comment about this. And if you feel that this project can send this '.dsq' file to the device, please add this option to it.
Regards.
unicable-programmer.zip
The text was updated successfully, but these errors were encountered: