*** tpb has joined #timvideos | 00:00 | |
*** aravind_ has joined #timvideos | 00:20 | |
aravind_ | Hello | 00:20 |
---|---|---|
CarlFK | hi | 00:20 |
aravind_ | Hi Carl | 00:20 |
aravind_ | im new here | 00:20 |
CarlFK | hello - what brings you here ? | 00:26 |
aravind_ | im an electronics engineer.. looking for pcb design work.. | 00:27 |
aravind_ | what about you? | 00:27 |
aravind_ | @mithro suggested some projects to work on | 00:27 |
CarlFK | I'm mostly into software and going to events to record talks | 00:34 |
CarlFK | and running down the street to get a pizza. brb | 00:34 |
aravind_ | cool. Nice to meet you | 00:35 |
mithro | aravind_: I'll be around in a couple of hours | 00:37 |
mithro | Currently out at brunch | 00:37 |
aravind_ | Sure no prob.. i will be here till my blankets pull me in | 00:38 |
aravind_ | :) | 00:38 |
mithro | If you are still around then, we can chat about possible projects | 00:38 |
mithro | I'll also respond to your email | 00:38 |
aravind_ | Great :) | 00:38 |
mithro | tumbleweed / CarlFK: the vizzini driver should be replaced with the stuff Ben (The debian dvswitch guy?) and shenki working on | 00:40 |
* mithro pokes shenki with a pointy stick - you were going to get that upstreamed | 00:40 | |
*** aom_ has quit IRC | 00:47 | |
CarlFK | mithro: it may have happened, but now it needs to trickle down into the distros.. and the odroid is pretty far behind - like on kernel 3.14 | 00:51 |
mithro | CarlFK: I'm 100% sure it hasn't happened | 01:30 |
mithro | I stopped bugging shenki long enough he has probably forgotten all about it | 01:31 |
mithro | aravind_: I'll be around in about 10-15 minutes, you still awake? | 01:32 |
aravind_ | Sure @mithro | 01:33 |
mithro | Great, talk to you then | 01:34 |
mithro | aravind_: couple of questions while I walk | 01:34 |
aravind_ | sure | 01:35 |
mithro | aravind_: what OS do you generally use? | 01:35 |
mithro | aravind_: Have you used KiCad before? | 01:35 |
aravind_ | mithro i use OS X | 01:35 |
aravind_ | yes I have used KiCad before | 01:35 |
mithro | What is your level of experience in this area? | 01:36 |
aravind_ | circuit design --> been in industry for last 10 years | 01:37 |
mithro | What are you hoping to get out of this? Practice? Something for your portfolio? See something you created be used? Cool friends to hang out with? Want to give back to the community? | 01:38 |
mithro | Need something interesting to do in your spare time? | 01:38 |
aravind_ | Well all of it + i plan to start design services , a small step to be my own boss :) | 01:39 |
mithro | Ah cool! | 01:40 |
aravind_ | :) | 01:40 |
aravind_ | as of now, my plan is to work when I get spare time (few hours a week) | 01:41 |
mithro | So, I guess your more looking to come up with a good workflow where you can do designs quickly and efficiently? | 01:41 |
mithro | KiCad is probably the least tested on Mac, but at least you have things like proper scripting environment | 01:43 |
aravind_ | I have used KiCad for some designs in my mac (not very complex though) | 01:44 |
mithro | Almost at a computer now | 01:44 |
aravind_ | okie dokie | 01:44 |
mithro | On the experience side, do you know about things like differential traces, length matching and impedance matching (even if you have not done them in KiCad)? | 01:46 |
mithro | Btw what have you used professionally? Altium | 01:47 |
mithro | ? | 01:47 |
aravind_ | yes | 01:47 |
aravind_ | professionaly mostly PADS and CR2000 | 01:47 |
aravind_ | i was a circuit designer mostly , layout being done by layout engineer. | 01:48 |
mithro | Finally at a computer now! :) | 01:49 |
mithro | Typing is much easier than doing it on the phone while walking ;) | 01:49 |
mithro | CarlFK: ping? You still around? | 01:50 |
CarlFK | mithro: here | 01:50 |
aravind_ | i concur :) | 01:50 |
mithro | aravind_: so, are you just interested in the PCB side of things, or want to do the full circuit design too? | 01:51 |
aravind_ | happy to be on full circuit design | 01:51 |
aravind_ | spec + schematics + layout + sims | 01:52 |
mithro | aravind_: okay cool | 01:52 |
aravind_ | @mithro I understand your projects are version controlled using git | 01:53 |
mithro | aravind_: as I mentioned, the two projects that I think would be good to start with are, the TOFE-VGA board and the TOFE-HiLink board | 01:53 |
aravind_ | Okay. | 01:53 |
aravind_ | @mithro I will go through them in detail. Anyone else working on those at the moment? | 01:54 |
mithro | aravind_: the TOFE-VGA was being worked on by seaLne - but he ran into issues with RSI, so had to stop | 01:57 |
mithro | I believe it was at the stage of the schematic being pretty much done and he was starting the PCB layout / design | 01:57 |
aravind_ | @mithro any detailed doc for the proj? | 01:58 |
mithro | aravind_: Sure, let me give you a bit of background | 02:01 |
aravind_ | @mithro Thanks | 02:01 |
mithro | aravind_: The HDMI2USB project originally started using the Digilent Atlys boards for developing our firmware | 02:01 |
mithro | aravind_: The problem is that the Digilent Atlys boards don't have any VGA capability and VGA is probably going to be around until the heat death of the universe | 02:02 |
aravind_ | :) | 02:02 |
aravind_ | thats true, people still use VGA for something or other | 02:02 |
mithro | aravind_: The Atlys boards have an expansion connected - it looks like the old SCSI ones and is called the VHDCI (Very High Density Connector Interface) | 02:03 |
aravind_ | okay | 02:03 |
mithro | aravind_: so, in 2014 we had a Google Summer of Code student develop an expansion board which connects to the VHDCI interface and allows VGA capture | 02:06 |
aravind_ | okay | 02:06 |
mithro | This board works okay and there are about 20-30 floating around the world | 02:07 |
mithro | aravind_: You can find that board design at https://github.com/timvideos/HDMI2USB-vmodvga | 02:07 |
tpb | Title: GitHub - timvideos/HDMI2USB-vmodvga: VGA capture expansion board for HDMI2USB (or Digilent Atlys prototype board). (at github.com) | 02:07 |
mithro | aravind_: with a bunch of description from Rohit | 02:08 |
aravind_ | okay | 02:08 |
aravind_ | still getting my grip around git :) | 02:08 |
mithro | aravind_: GitHub has quite a lot of good documentation about using Git+GitHub on Mac | 02:09 |
mithro | aravind_: They have a bunch of tools which are Mac only but have nice UI and stuff | 02:09 |
CarlFK | aravind_: I have been using git for 5 years. I know about 1%: I commit, I push, and sometimes I clone to some other box. | 02:09 |
CarlFK | that's all you really "need" to know to get going. | 02:09 |
aravind_ | @mithro you are right :). I am following the tutorial now | 02:09 |
mithro | aravind_: The Atlys board however is a development board, which isn't really all that suitable for what we want to do - which is record conferences | 02:10 |
aravind_ | okay | 02:10 |
aravind_ | got it | 02:10 |
mithro | aravind_: so we created our own board which is pretty similar called the Numato Opsis | 02:10 |
aravind_ | so a dedicated board is needed | 02:10 |
mithro | aravind_: the VHDCI connector however is super expensive - like $4 to $8 each | 02:11 |
mithro | aravind_: so we didn't use it on the Opsis | 02:11 |
aravind_ | yes i think its a dense connector for I/O expansion | 02:12 |
mithro | aravind_: instead we decided to reuse PCI-Express connectors instead - which means that the expansion boards don't even need a connector | 02:12 |
aravind_ | ah okay | 02:12 |
mithro | aravind_: The usage of PCI-Express connectors in this manner is a "open standard" I'm trying to promote which is called TOFE (Tim's Open FPGA Expansion) | 02:13 |
aravind_ | got it | 02:13 |
aravind_ | @mithro so the PCIe pinouts dont match to the standard | 02:13 |
mithro | aravind_: I've tried to keep it as close to PCI-Express as possible, we just allow the signals to be slower than PCI-Express uses | 02:14 |
aravind_ | okay. whats the max signal rate in our case? | 02:14 |
mithro | aravind_: All the power pins and data pins are in the same locations, so you can plug in a PCI-Express card and it won't blow up | 02:14 |
aravind_ | ah okay | 02:15 |
mithro | aravind_: I'm trying to do as minimal amount of work as possible ;) | 02:15 |
aravind_ | I understand :) | 02:15 |
mithro | aravind_: The signal speeds are DC -> ~1.5Gbit/s | 02:15 |
mithro | aravind_: PCI-Express starts at about 1.5Gbit/s and goes up to 16Gbit/s (possible 32Gbit/s?) | 02:16 |
aravind_ | is this per lane speed? or overall? | 02:16 |
mithro | aravind_: per lane | 02:16 |
*** sb0 has joined #timvideos | 02:16 | |
aravind_ | okay cool | 02:16 |
aravind_ | any post layout sims? to check sig integrity? | 02:17 |
mithro | aravind_: So, at 1.5Gbit/s we do care about things like impedance matching and differential traces, etc | 02:17 |
mithro | aravind_: Nope, we just kind of pray and hope most of the time :P | 02:17 |
aravind_ | hows the board stackup done? | 02:17 |
aravind_ | ha ha | 02:17 |
mithro | aravind_: We have two existing TOFE boards - the "LowSpeedIO" and the "Milkymist Compat" boards - both operate in the 100kbit/s to 1Megabit/s type range where it doesn't really matter | 02:18 |
aravind_ | okay understood | 02:19 |
mithro | aravind_: another cool advantage of being mostly compatible with the PCI-Express standard is that we can buy adapters and stuff intended for usage inside a computer and use them | 02:19 |
aravind_ | yes | 02:19 |
aravind_ | who will be end users? | 02:19 |
mithro | aravind_: Things like this -> https://www.amazon.com/gp/product/B00KZIAHW8/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 and https://www.amazon.com/Tenext-Express-Adapter-Flexible-Extension/dp/B00EY7BW0C/ref=pd_sim_sbs_147_1?ie=UTF8&dpID=41C0qqno%2B1L&dpSrc=sims&preST=_AC_UL160_SR160%2C160_&refRID=0QMEHFW8SHXMFZH1900D | 02:20 |
CarlFK | me :) | 02:20 |
mithro | aravind_: so to finally get to the point | 02:21 |
aravind_ | CarlFK :) | 02:21 |
aravind_ | okay | 02:21 |
mithro | aravind_: the TOFE-VGA board takes the design used on the vmodvga and changes it to instead fit the TOFE connector + form factor | 02:21 |
aravind_ | okay | 02:21 |
aravind_ | mech specs are defined? | 02:22 |
mithro | aravind_: yeah - PCI-Express + a couple of extra mounting holes | 02:22 |
aravind_ | great | 02:22 |
aravind_ | I saw in your google drive that these boards are manufactured with 2 vendors | 02:22 |
mithro | aravind_: I've also been trying to build up things like templates | 02:23 |
aravind_ | Any specific rules from them? | 02:23 |
mithro | aravind_: so it is easy for people to create new TOFE boards and such | 02:23 |
aravind_ | ah great | 02:23 |
mithro | aravind_: The aim would be that boards we create should be producible by both hackvana and ohs park | 02:24 |
aravind_ | okay | 02:24 |
mithro | aravind_: neither do controlled impedance stuff | 02:24 |
aravind_ | oh :( | 02:24 |
mithro | aravind_: so again we just do our best | 02:25 |
aravind_ | then we should really pray | 02:25 |
aravind_ | :) | 02:25 |
mithro | aravind_: The apertus/AXIOM guys (see Bertl_zZ and se6astian|away) have gotten okay results with OHS Park using the rules I put in that document | 02:25 |
aravind_ | okay. I will follow the same rules | 02:26 |
mithro | aravind_: yeah | 02:26 |
*** sb0 has quit IRC | 02:26 | |
*** sb0 has joined #timvideos | 02:26 | |
mithro | aravind_: so, the current work on the board VGA board can be found at https://github.com/timvideos/HDMI2USB-TOFE-VGA | 02:26 |
tpb | Title: GitHub - timvideos/HDMI2USB-TOFE-VGA: A VGA capture board for use with TOFE-8x compatible boards like the Numato Opsis. (at github.com) | 02:26 |
mithro | aravind_: I'll download it this afternoon and check what the current status of it is | 02:27 |
aravind_ | i will checkout from git and have a look around. | 02:27 |
aravind_ | ah okay | 02:27 |
aravind_ | then i will checkout after you verify | 02:27 |
mithro | aravind_: feel free to check it out and have a look at it too | 02:27 |
aravind_ | okay no prob. | 02:27 |
aravind_ | Any documentation? | 02:27 |
mithro | aravind_: you can see stuff around the TOFE boards at https://github.com/timvideos/?utf8=%E2%9C%93&query=TOFE | 02:28 |
tpb | Title: Tim Videos Conference Recording Systems · GitHub (at github.com) | 02:28 |
mithro | aravind_: I'm collecting TOFE related documentation at https://tofe.io too | 02:28 |
aravind_ | mithro: thanks | 02:28 |
aravind_ | :) lots of things to have a look | 02:28 |
mithro | aravind_: yeah, the TOFE-LowSpeedIO and TOFE-Milkymist boards where both done with quite an old version of KiCad | 02:29 |
aravind_ | do we have a repo of kicad libs? | 02:29 |
aravind_ | footprints and symbols? | 02:29 |
mithro | https://github.com/timvideos/HDMI2USB-TOFE-kicad-template | 02:29 |
tpb | Title: GitHub - timvideos/HDMI2USB-TOFE-kicad-template: KiCad template for creating TOFE compatible expansion boards. Fork the repository, rename it and create your own board! (at github.com) | 02:29 |
aravind_ | Thank you | 02:30 |
mithro | aravind_: The original approach was you forked that repo and ran the script to start your own board | 02:30 |
aravind_ | ah okay | 02:30 |
mithro | aravind_: however, that turned out to be really hard to merge when library parts where updated / fixed | 02:31 |
aravind_ | okay | 02:31 |
mithro | aravind_: so I think I'm going to change to a git-submodule based approach | 02:31 |
aravind_ | okay | 02:31 |
mithro | aravind_: but yeah, we are still figuring these things out | 02:31 |
aravind_ | i understand :) | 02:31 |
aravind_ | i have to do the same as well | 02:32 |
mithro | aravind_: It's surprising how little people have already done in this area | 02:32 |
aravind_ | why is it like that? | 02:32 |
aravind_ | what could be the reason? | 02:32 |
mithro | aravind_: I think lots of small reasons | 02:33 |
aravind_ | okay | 02:33 |
mithro | aravind_: Most Electrical Engineers don't use git | 02:33 |
aravind_ | yea its the first time for me | 02:33 |
mithro | aravind_: KiCad has only just gotten things like differential pairs, length matching, etc | 02:33 |
aravind_ | i have used SVN a lot | 02:33 |
mithro | aravind_: Many EEs don't even use SVN :) | 02:34 |
aravind_ | we were forced to use SVN ;) | 02:34 |
mithro | aravind_: The most common thing I've seen is folders with dates in them | 02:34 |
aravind_ | nowadays at work I use something custom developed | 02:34 |
mithro | aravind_: GitHub actually allows you to access git repositories using SVN | 02:34 |
aravind_ | ic | 02:34 |
mithro | aravind_: as someone who knows how that would work I find it really scarey :P | 02:35 |
aravind_ | ha ha | 02:35 |
aravind_ | its scares me everytime | 02:35 |
mithro | aravind_: The board I have been working on most recently is the https://github.com/mithro/HDMI2USB-TOFE-AXIOM-Adapter | 02:35 |
tpb | Title: GitHub - mithro/HDMI2USB-TOFE-AXIOM-adapter: Adapter which allows the expansion cards from the AXIOM be used on a TOFE compatible board. (at github.com) | 02:35 |
aravind_ | okay | 02:35 |
mithro | aravind_: One thing KiCad lacks is the ability to set DRC for things like length matching | 02:36 |
aravind_ | yes. i saw it has an autorouter, but i dont trust them | 02:36 |
mithro | aravind_: I doubt the autorouter does diffpairs | 02:36 |
aravind_ | i hope in future versions there will be DRC for these features and also we could add production specific rules | 02:36 |
mithro | aravind_: Actually, I've never gotten it to work because it use to be this stupid web service thing | 02:37 |
aravind_ | but KiCad seems to be good for complex boards, seen some examples | 02:37 |
mithro | aravind_: To work around this, projectgus wrote an external Python script which uses the KiCad scripting interface to do it | 02:37 |
aravind_ | mithro: apologies, time for me to go | 02:38 |
mithro | aravind_: That is one great thing about KiCad is that you can script it :) | 02:38 |
aravind_ | its 3.30 am here and its post BREXIT :D | 02:38 |
mithro | aravind_: Length matching checks -> https://github.com/mithro/kicad-length-matching-checks | 02:38 |
tpb | Title: GitHub - mithro/kicad-length-matching-checks: Couple of scripts which checks length matching of your KiCad design. (at github.com) | 02:38 |
mithro | aravind_: No worries | 02:38 |
mithro | aravind_: Feel free to hang out in this IRC channel and chat with people | 02:38 |
aravind_ | I will go through the links you sent me | 02:38 |
aravind_ | and set up the repo + KiCad and scratch around | 02:39 |
aravind_ | okie dokie | 02:39 |
aravind_ | take care @mithro | 02:39 |
aravind_ | have a nice day | 02:39 |
mithro | aravind_: Sorry about the pretty huge information dump - you can review the logs here -> https://logs.timvideos.us/%23timvideos/%23timvideos.2016-06-25.log.html | 02:39 |
*** aravind_ has left #timvideos | 02:39 | |
mithro | CarlFK: so, you want to chat about something? | 02:43 |
CarlFK | mithro: 2 things - 1 easy - I need cases this week, and the one you picked out is out of stock | 02:44 |
CarlFK | I don't need rack mount... so what do you think of this one: | 02:45 |
mithro | CarlFK: any ITX compatible case should work | 02:45 |
CarlFK | Link: https://amzn.com/B01B575EMA | 02:45 |
mithro | CarlFK: I even going to probably 3d print a full size backplate this weekend | 02:45 |
CarlFK | k - i figured it was that easy | 02:46 |
CarlFK | next.. have you ever written python to read data from a google spread sheet ? | 02:46 |
mithro | CarlFK: I think you'll be shocked at how much bigger that case is then the one I used | 02:46 |
CarlFK | it is? | 02:46 |
CarlFK | Case Dimensions: 228.6mm x 195.6mm x 63.5mm, 9" x 7.7" x 2.5" | 02:47 |
mithro | CarlFK: It will be at least twice the height probably about 33% wider? | 02:47 |
CarlFK | Hmm.. I think I am ok with that. I hope to mount it on the back of a 22" lcd and stuff an odrod sbc in there too, so a little extra hight may work out fine | 02:49 |
CarlFK | and maybe stuff the power supply inside the case too. | 02:50 |
mithro | CarlFK: yeah, I'm not seeing anything else on amazon within a similar price range | 02:50 |
CarlFK | super cool would be if I can figure out how to use the LCD's power supply, or at least nice power cord management | 02:51 |
mithro | CarlFK: maybe something like https://smile.amazon.com/Silverstone-Aluminum-Mini-ITX-Center-PT13B/dp/B00DL4BMMC/ref=sr_1_8?s=pc&ie=UTF8&qid=1466822809&sr=1-8&keywords=VESA+ITX+case | 02:51 |
*** sab_123 has joined #timvideos | 02:56 | |
mithro | Morning sab_123 | 02:57 |
sab_123 | mithro, Hi | 02:57 |
sab_123 | mithro, pushed some changes | 02:58 |
mithro | sab_123: Yes, I'll reply to your comments shortly | 02:58 |
sab_123 | mithro, once these 2 get merged in , I can push the timer_uart(I kind of have it working) | 02:59 |
sab_123 | mithro, then I can push the i2c stuff(I have gotten it working) | 02:59 |
sab_123 | with a 24C256 | 02:59 |
sab_123 | mithro, then will push the FTDI_serial | 02:59 |
mithro | sab_123: The USB loopback FTDI serial stuff should be a pull request independent of everything else | 03:00 |
mithro | sab_123: But before you send that | 03:00 |
mithro | sab_123: make sure you reread my email and go look at the code I linked | 03:00 |
sab_123 | the UVC stuff | 03:01 |
sab_123 | yep | 03:01 |
mithro | sab_123: pay special attention to the things I talk about in the email | 03:01 |
mithro | sab_123: I really don't want to have to repeat myself | 03:02 |
mithro | CarlFK: a lot of "signage LCDs" have a 12V output on them | 03:03 |
CarlFK | hmm | 03:03 |
mithro | CarlFK: but I doubt you want to pay the premium those cost | 03:04 |
CarlFK | yeah, I was guessing they wouldn't be cheep. | 03:04 |
mithro | CarlFK: so, it sounds like you are building a combined "capture+confidence screen" thingy? | 03:31 |
CarlFK | mithro: correct | 03:31 |
mithro | CarlFK: What is your setup going to look like? | 03:32 |
mithro | sab_123: Got a moment to discuss the uart stuff | 03:33 |
sab_123 | mithro, yes | 03:33 |
CarlFK | mithro: um.. physically or .. cables? not sure what you mean ... oh, talk uart.. please :) | 03:33 |
mithro | CarlFK: nothing to do with your uart stuff | 03:33 |
mithro | CarlFK: What parts are you using? | 03:34 |
mithro | CarlFK: LCD Monitor+Opsis+Odroid? | 03:34 |
mithro | sab_123: Have you programmed much in OOP languages like Java, Python, C++, etc? | 03:34 |
sab_123 | mithro, Java yes | 03:35 |
mithro | sab_123: so you understand the difference between a "class definition" and the "instance" of a class? | 03:35 |
sab_123 | yes | 03:36 |
mithro | sab_123: Okay, so here we want to do something like OOP in C | 03:36 |
sab_123 | mithro, ok | 03:37 |
mithro | sab_123: But C doesn't make this particularly easy :P | 03:37 |
sab_123 | mithro, ok | 03:37 |
mithro | sab_123: In our case, we have a "Fast UART class" which can be connected to pretty much any pin in the FX2 | 03:38 |
mithro | sab_123: A specific instance of the Fast UART is connected to a specific pin | 03:39 |
sab_123 | But you can create objects to access the same functions | 03:39 |
sab_123 | cant | 03:39 |
sab_123 | SO there is only a couple of ways out | 03:39 |
sab_123 | Use those macros | 03:39 |
mithro | sab_123: Stop | 03:39 |
mithro | sab_123: we are discussing the high level at the moment, we'll get to the implimentation details in a minute | 03:40 |
mithro | sab_123: So, we might have one (instance) of Fast UART on PA2 which we are using as a debug console , and another (instance) of Fast UART on PB4 which we are using to send commands to the FPGA | 03:41 |
sab_123 | mithro, ok | 03:41 |
mithro | sab_123: this usage is going to be different on different boards | 03:42 |
sab_123 | mithro, ok | 03:42 |
mithro | sab_123: IE on one board the debug console might be on PA2, on another it might be on PB4 | 03:42 |
mithro | sab_123: on many of the boards the setup is going to be pretty static (IE On the Opsis, the debug pin will always be X) | 03:43 |
mithro | sab_123: while some boards like the little FX2 dev board you have can be much more dynamic | 03:44 |
mithro | Generally however, this is not going to be dynamically changed at runtime - the pin usage is probably going to be decided while developing some type of firmware | 03:45 |
mithro | sab_123: IE the UVC firmware might put the debug console on pin PA2 and the CDC firmware might put the debug console on PB5 - but it is probably not going to change while the firmware is running... | 03:46 |
mithro | sab_123: Does that make sense? | 03:46 |
sab_123 | mithro, yes | 03:46 |
mithro | sab_123: Lots of constraints + flexibility | 03:47 |
mithro | sab_123: To make things even more complicated we have different *types* of UARTs, we have the fast transmit only, the timer/interrupt one, the hardware peripheral based one, etc | 03:47 |
mithro | sab_123: in Java, we would define a simple UART interface and then each of the different types of UARTs would impliment the interface | 03:48 |
mithro | sab_123: right? | 03:49 |
sab_123 | mithro, yes | 03:49 |
mithro | sab_123: So if you were doing something like this on a "big computer", you might create a structure which had a bunch of function pointers | 03:51 |
mithro | sab_123: The function pointers would be set so they matched the right implementation | 03:51 |
mithro | sab_123: Using function pointers to make C OOP like is a fairly common pattern | 03:52 |
mithro | sab_123: You can look up more details on how to do this later if you want | 03:53 |
sab_123 | mithro, ok | 03:53 |
mithro | sab_123: There are a couple of downsides of this approach however | 03:53 |
mithro | sab_123: The function pointers lead to a level of indirection that compiler can't really optimise around | 03:54 |
mithro | sab_123: For example, It can be hard for it to do dead code removal, IE Remove the implementations you didn't end up using | 03:55 |
mithro | sab_123: Pointers are also generally a very costly construct on small systems | 03:55 |
mithro | sab_123: And you need quite a few of them (~one per function in your interface) | 03:56 |
mithro | sab_123: So, this approach generally doesn't really work for something like the FX2 :( | 03:56 |
mithro | sab_123: So we have to find a different approach | 03:57 |
mithro | sab_123: does all that make sense so far? | 03:57 |
sab_123 | I have to read up on why function pointers are expensive, but I will do that later | 03:58 |
sab_123 | The rest make sense | 03:58 |
mithro | sab_123: pointers in general are pretty expensive | 03:58 |
mithro | sab_123: On "big" 32bit platforms, pointers are the same size as your data you normally operate on | 03:59 |
mithro | sab_123: On the FX2, your data size is a byte - however pointers generally need to be 16bits | 04:00 |
mithro | sab_123: 16bits != 8bits :( | 04:00 |
sab_123 | mithro, agreed. But lests say I want to pass a struct | 04:00 |
sab_123 | lets | 04:00 |
sab_123 | The struct is pretty huge | 04:00 |
sab_123 | Dont pointers help then? | 04:00 |
mithro | sab_123: yes, a single pointer to a struct is going to be better then a large structure | 04:01 |
mithro | sab_123: but you should be avoiding the large structure if possible | 04:01 |
mithro | sab_123: BTW This doesn't apply if the structure is at a static location in memory | 04:01 |
mithro | sab_123: because then the pointer is actually a constant | 04:02 |
mithro | sab_123: Generally, on something like the FX2 you want everything statically, preallocated | 04:03 |
mithro | sab_123: Most types of dynamism are really expensive on 8bit systems | 04:04 |
mithro | sab_123: luckily, as I pointed out - we only really need dynamism at compile time, not run time | 04:05 |
sab_123 | mithro, ok | 04:06 |
mithro | sab_123: so, what we end up with - is we want a system where we can say something like "Create a set of functions for using a UART on PA1" | 04:09 |
sab_123 | mithro, I still dont get how you plan to use it. | 04:09 |
sab_123 | mithro, can i talk about implementation now? | 04:10 |
mithro | sab_123: So, I do something like "CREATE_SOFT_UART(<name>, <soft uart configuration>)" and then end up with a bunch of functions like "<name>_rx" and "<name>_init" which I can call in my code | 04:11 |
mithro | I can also do something like | 04:11 |
mithro | #ifdef BOARD_OPSIS; CREATE_HARD_UART(uart0, <config>); #elif BOARD_ATLYS; CREATE_SOFT_UART(uart0, <config>); #else ..... | 04:12 |
sab_123 | mithro, so there must be different macros | 04:12 |
sab_123 | one for init | 04:12 |
sab_123 | one for the tx | 04:12 |
mithro | As the CREATE_HARD_UART and CREATE_SOFT_UART both generate the same set of functions with the same signature, the code doesn't need to know which style of uart is actually in use | 04:13 |
mithro | sab_123: no, there should be one macro which defines all the functions in the API | 04:13 |
sab_123 | The API I get | 04:13 |
mithro | sab_123: CREATE_HARD_UART defines the complete set, _init, _rx, _tx, etc | 04:13 |
sab_123 | We can use one macro | 04:13 |
sab_123 | But the firmware needs to know which function is present | 04:14 |
sab_123 | lets say a macro dumps the contents into api.h | 04:14 |
mithro | sab_123: what do you mean? | 04:15 |
sab_123 | This is what you are looking for right | 04:15 |
sab_123 | an autogenerated api.h | 04:15 |
sab_123 | Once we do this | 04:15 |
sab_123 | The uart_main.c | 04:15 |
sab_123 | needs to know what function to call in putchar(c) | 04:15 |
sab_123 | Is it uart0_tx(c) | 04:15 |
sab_123 | Is it uart1_tx(c) | 04:15 |
mithro | sab_123: That is the firmware's job | 04:16 |
sab_123 | So if the firmware is setting the pins | 04:16 |
sab_123 | and calling the functions | 04:16 |
sab_123 | generated in api.h | 04:16 |
mithro | sab_123: If the firmware might be using the UART for printf/gets | 04:16 |
mithro | sab_123: Or it might be using it for something totally different | 04:16 |
sab_123 | SO basically you want to auto-generate the api.h file | 04:17 |
sab_123 | Am I correct? | 04:17 |
sab_123 | or off track? | 04:17 |
mithro | sab_123: So the firmware will define the putchar/getchar to do what it prefers | 04:17 |
mithro | sab_123: define "auto-generate" | 04:17 |
sab_123 | the uartx_init which we defined yesterday | 04:18 |
sab_123 | Should be made uart1_init | 04:18 |
sab_123 | uart2_init | 04:18 |
sab_123 | etc | 04:18 |
sab_123 | Just by calling the macro | 04:18 |
mithro | sab_123: yes | 04:19 |
sab_123 | That is going to be rather hard to do | 04:19 |
sab_123 | What is going to be in the api.h file then? | 04:19 |
sab_123 | How do we tell the macro | 04:19 |
sab_123 | to put its contents into a api.h file | 04:19 |
sab_123 | Or will you call this macro | 04:20 |
sab_123 | from api.h | 04:20 |
mithro | sab_123: api.h is purely for documentation | 04:20 |
sab_123 | so these function definitions | 04:20 |
sab_123 | will be in the example code | 04:21 |
sab_123 | and we need to implement uart0_init | 04:21 |
sab_123 | in soft_uart.c | 04:21 |
mithro | sab_123: in soft_uart there will be a macro which creates a whole set of functions | 04:21 |
mithro | sab_123: Which have the same "shape" as the functions define in api.h | 04:22 |
mithro | sab_123: but all start with the given prefix name | 04:22 |
sab_123 | What about their implementations? | 04:23 |
sab_123 | Should these be hard coded | 04:23 |
sab_123 | or auto generated | 04:24 |
mithro | sab_123: what do you mean? | 04:24 |
sab_123 | https://github.com/RacingTornado/fx2lib/blob/0803a717617b9909e568f9c9ea8c1e64de2954af/examples/uart_main/uart_main.c#L25 | 04:25 |
tpb | Title: fx2lib/uart_main.c at 0803a717617b9909e568f9c9ea8c1e64de2954af · RacingTornado/fx2lib · GitHub (at github.com) | 04:25 |
mithro | sab_123: that code should be calling the macros - not defining them | 04:26 |
sab_123 | What I am asking is this | 04:26 |
sab_123 | Do you want the macro to just define the function name | 04:26 |
sab_123 | Like what I have done | 04:26 |
sab_123 | Or do you want the functionality also to be autogenerated? | 04:27 |
sab_123 | For examples | 04:27 |
sab_123 | in soft_uart.c | 04:27 |
sab_123 | we will still have functions called uart0_init() | 04:27 |
sab_123 | uart1_init() | 04:28 |
sab_123 | and uart2_init() | 04:28 |
sab_123 | assuming the user wont pass a pin number greater than 3 | 04:28 |
mithro | sab_123: No | 04:28 |
mithro | sab_123: The user can pass any name for the uart | 04:29 |
mithro | sab_123: and any pin | 04:29 |
sab_123 | and who implemets the functionality? | 04:29 |
sab_123 | The macro? | 04:29 |
mithro | sab_123: So, there is no way you can just have every single combination in that file | 04:29 |
sab_123 | exactly | 04:30 |
mithro | sab_123: Depending on how it gets implemented, the macro might generate all the code | 04:30 |
sab_123 | the entir fast_uart | 04:30 |
mithro | sab_123: Or it might just generate wrapping functions which call internal functions | 04:30 |
sab_123 | in a macro | 04:30 |
sab_123 | wow | 04:31 |
sab_123 | okay | 04:31 |
mithro | sab_123: yes, it might end up that way | 04:31 |
sab_123 | Thats not going to be very readble | 04:31 |
mithro | sab_123: you might get away with using inline function plus constants | 04:31 |
sab_123 | I dont understand that | 04:32 |
mithro | sab_123: There are a number of ways to make it readable | 04:32 |
sab_123 | An inline function is just like any other, except its body is pasted | 04:32 |
sab_123 | How would that help? | 04:32 |
sab_123 | I agree with the wrapper stuff | 04:32 |
sab_123 | Thats one way to proceed | 04:32 |
sab_123 | https://github.com/mithro/HDMI2USB-misoc-firmware/blob/fx2-refactor/firmware/fx2/uvc.c#L981 | 04:33 |
tpb | Title: HDMI2USB-misoc-firmware/uvc.c at fx2-refactor · mithro/HDMI2USB-misoc-firmware · GitHub (at github.com) | 04:33 |
mithro | sab_123: You create an function like "inline fast_uart_rx(const BYTE pin_location, char c) {" then your macro does a "void NAME##_rx(char c) { fast_uart_rx(PINLOC, c); }" | 04:34 |
sab_123 | ah | 04:35 |
sab_123 | okay | 04:35 |
mithro | sab_123: but that requires the compile to notice that PINLOC is actually a constant and optimise it out | 04:35 |
sab_123 | That way | 04:35 |
mithro | s/compile/compiler/ | 04:35 |
sab_123 | For the pinloc | 04:36 |
sab_123 | we need a case right | 04:36 |
sab_123 | there is no easier way to do it | 04:36 |
mithro | sab_123: No | 04:36 |
sab_123 | macro? | 04:36 |
sab_123 | for the .equ? | 04:37 |
mithro | sab_123: just make the person pass in the right values you need for things like the pin bit address | 04:37 |
sab_123 | and create the .equ in the macro itself? | 04:38 |
sab_123 | because you need to do clr name | 04:38 |
sab_123 | so name needs to point to PA2 or PA3 | 04:38 |
mithro | sab_123: yes | 04:38 |
sab_123 | okay | 04:38 |
sab_123 | I will try to get started on this | 04:38 |
mithro | sab_123: Understanding now? | 04:38 |
sab_123 | Yes | 04:38 |
sab_123 | I havent done anything like this before | 04:39 |
sab_123 | So its quite interesting | 04:39 |
sab_123 | But I am pretty sure I will run across a lot of problems. | 04:39 |
mithro | sab_123: So - you can start by ignoring the "genericisation / dynasim" by hard coding the name to be "uart0_" and the pin names just #define at the top of the file | 04:39 |
sab_123 | ok | 04:40 |
sab_123 | Is there any repo where you have something like this done(just for reference) | 04:40 |
mithro | sab_123: once you have that working, you just need to figure out a way to replace the "uart0_" and pin names | 04:40 |
CarlFK | mithro: confidence monitor/capture : 1 short hdmi going to the podium, power, cat5 and hdmi away to me and projector . | 04:42 |
mithro | CarlFK: hrm? | 04:43 |
CarlFK | mithro: you were asking what my setup was going to look like | 04:43 |
mithro | CarlFK: I think you mean, 1 short HDMI coming from the presenters laptop on the podium -- long power, cat5 running to "carl" and one long HDMI cable running to the projector ? | 04:44 |
CarlFK | right | 04:45 |
mithro | CarlFK: your not running HDMI to you right? the HDMI for the presenters laptop goes directly into the Opsis on the back of the monitor? | 04:45 |
CarlFK | correct | 04:46 |
mithro | CarlFK: great, you almost gave me a heart attack with the "power, cat5 and hdmi away to me" bit ;) | 04:46 |
CarlFK | lol | 04:46 |
mithro | CarlFK: Couple of things I have been thinking about | 04:47 |
mithro | CarlFK: Power over Ethernet is generally 48V - it wouldn't take much to do a little board which has ethernet pass through and extracts the power needed for the Opsis | 04:48 |
mithro | CarlFK: I'm pretty sure that we'll get capture over Ethernet by the end of the year too | 04:48 |
mithro | CarlFK: but that might not make sense if you need to run power for the monitor anyway.... | 04:49 |
mithro | CarlFK: I assume you are just getting cheap PC monitors? | 04:50 |
CarlFK | correct | 04:50 |
CarlFK | $100 ish | 04:50 |
mithro | CarlFK: do they use a power brick? Or just take a kettle plug? | 04:52 |
mithro | CarlFK: If you could find ones which use a 12V power brick, there are some interesting possibilities :P | 04:52 |
CarlFK | mithro: I haven't picked one out yet. if brick, then it would be nice if I could split that | 04:53 |
CarlFK | yeah | 04:53 |
mithro | CarlFK: yeah | 04:53 |
mithro | LCD monitors are surprisingly low wattage these days | 04:53 |
mithro | CarlFK: I was looking at it the other day and thought they had the decimal in the wrong location... | 04:54 |
CarlFK | heh | 04:54 |
CarlFK | mithro: modeswitch - is this the repo I should be using https://github.com/mithro/HDMI2USB-mode-switch.git | 04:56 |
tpb | Title: GitHub - mithro/HDMI2USB-mode-switch: Tool for switching boards supported by HDMI2USB firmware between multiple different modes (programming, webcam, etc). (at github.com) | 04:56 |
mithro | CarlFK: it was like 8 Watts or something | 04:56 |
mithro | CarlFK: you can use the upstream one now | 04:56 |
mithro | CarlFK: I was sure it was suppose to be 80W | 04:56 |
CarlFK | mithro: yeah.. i guess 80w light bulb is mostly heat | 04:57 |
mithro | CarlFK: Will merge the latest commits upstream now | 04:58 |
CarlFK | mithro: upstream has less docs | 04:58 |
CarlFK | lol | 04:58 |
mithro | CarlFK: I was sure I had pushed them.... | 04:58 |
mithro | CarlFK: just making sure the tests pass before hand :) | 04:59 |
mithro | CarlFK: merged | 05:02 |
sab_123 | mithro, Will get started then. Thanks for the help | 05:03 |
*** sb0 has quit IRC | 05:04 | |
mithro | sab_123: I'd like to merge https://github.com/mithro/fx2lib/pull/17 but there are still a couple of small outstanding things | 05:07 |
tpb | Title: Created a UART API definition for allowing proper abstraction by RacingTornado · Pull Request #17 · mithro/fx2lib · GitHub (at github.com) | 05:07 |
sab_123 | mithro, ok | 05:08 |
*** mobydikc has joined #timvideos | 05:10 | |
mobydikc | CarlFK: does prod1.sh do the hdmi capture? | 05:11 |
CarlFK | mithro do the board have real eproms? like where is the firmware getting loaded when it doesn't go away on power cycle? | 05:11 |
*** mobydikc has left #timvideos | 05:12 | |
CarlFK | mobydikc: um.. where is that? | 05:12 |
CarlFK | lol | 05:12 |
mithro | CarlFK: The Atlys has SPI flash (for the FPGA gateware) and an EEPROM (for the FX2 firmware) | 05:12 |
mithro | CarlFK: The Opsis has SPI flash (for the FPGA gateware + FX2 firmware) and a *tiny* EEPROM which just stores the MAC address and code to load the FX2 firmware from the FPGA | 05:13 |
CarlFK | ah, got it. | 05:13 |
CarlFK | how do I load v0.0.0-639-g956a8b3 into the Atlys spi/eeporm? (and do you call that flashing or burning or what? | 05:14 |
mithro | CarlFK: which is why the Opsis can change how the FX2 behaves | 05:14 |
mithro | CarlFK: I'm happy to flash the Atlys's SPI | 05:15 |
mithro | CarlFK: but I've never been game to flash the Atlys's EEPROM | 05:15 |
mithro | CarlFK: If you screw the second up, it is a bit tricky to fix | 05:15 |
mithro | CarlFK: I think we should probably use the "burn" terminology because flashing is so overloaded? | 05:16 |
CarlFK | mithro: agreed | 05:16 |
mithro | Now I have to remeber what I was actually going to do today.... | 05:17 |
CarlFK | so how do I use modeswitch ? | 05:17 |
mithro | CarlFK: In theory or in practice? | 05:17 |
CarlFK | practice | 05:17 |
CarlFK | I want to setup my atlys so it powers up in a functional state | 05:17 |
CarlFK | make conda ... did that. | 05:18 |
mithro | CarlFK: "make conda" sets up a self contained development environment, probably not what you want in "production" but lets start with that | 05:21 |
mithro | CarlFK: Basic operation is "hdmi2usb-mode-switch --mode=XXXX" | 05:23 |
CarlFK | um.. it isn't on my path | 05:23 |
mithro | CarlFK: it won't be unless you install it | 05:23 |
mithro | CarlFK: set your path to PATH=$PWD/conda/bin:$PATH | 05:24 |
mithro | or run ./conda/bin/hdmi2usb-mode-switch | 05:26 |
mithro | I'm hoping someone at debconf will put it in a deb package | 05:26 |
*** mobydikc has joined #timvideos | 05:28 | |
*** sab_123 has quit IRC | 05:28 | |
CarlFK | mithro: first i want : --mode jtag ... right? | 05:28 |
mobydikc | CarlFK: I think I missed that. Set mode in what? | 05:28 |
CarlFK | mobydikc: um.. there are 2 hdmi captures - laptop/projector and camera | 05:29 |
mobydikc | I assume grabber is laptop | 05:29 |
mobydikc | I have cam1 on injgest now | 05:29 |
mobydikc | How do I make it the camera? | 05:30 |
CarlFK | https://github.com/CarlFK/dvsmon/blob/master/vocto-prod1.py#L13 ingest --video-source blackmagichdmi --audio-source blackmagichdmi | 05:30 |
tpb | Title: dvsmon/vocto-prod1.py at master · CarlFK/dvsmon · GitHub (at github.com) | 05:30 |
CarlFK | I think thats what you want? | 05:30 |
mobydikc | I'm using the PC and camera you used at nodepdx. I have the camera's HDMI out going to the PC's D+HDMI capture card | 05:31 |
mobydikc | I shouldn't need to download any code to recreate what you had running on this machine last weekend | 05:31 |
CarlFK | correct | 05:32 |
mithro | CarlFK: It depends on what you are trying to do | 05:32 |
CarlFK | mobydikc: im just showing you where the commands are stored | 05:32 |
CarlFK | mithro: I want to burn v0.0.0-639-g956a8b3 to Atlys spi | 05:33 |
mithro | CarlFK: If you want to run openocd commands against your board "--mode=jtag", such as using the make commands in HDMI2USB-misoc-firmware, then that is what you want | 05:33 |
mithro | CarlFK: I haven't tested it recently, but you should in theory be able to just do "hdmi2usb-mode-switch --flash-gateware=XXXXX.bin" | 05:34 |
mithro | --load-gateware LOAD_GATEWARE | 05:34 |
mithro | Load gateware onto the FPGA. | 05:34 |
mithro | --flash-gateware FLASH_GATEWARE | 05:34 |
mithro | Flash gateware onto the SPI flash which the FPGA boots | 05:34 |
mithro | from. | 05:34 |
CarlFK | mithro: is XXXX the full path and file name? | 05:34 |
mithro | CarlFK: yes | 05:35 |
CarlFK | hmm, lets forget about burn and stick with load and flash so that we don't have to change the help | 05:35 |
mithro | CarlFK: in theory, it should find an Atlys board in any mode, switch to jtag mode, and call openocd correctly | 05:36 |
mobydikc | CarlFK: my irc thingy reset, so I'm not sure what exact commands you said I need | 05:36 |
mobydikc | If I want cam1 to be the actual camera should I still run ingest? | 05:36 |
mithro | CarlFK: that initial switch bit might be broken.... | 05:36 |
mithro | CarlFK: if you add "--verbose" you can see the commands it is running | 05:37 |
CarlFK | mobydikc: ingest is what feeds both sources: cam and grabber | 05:37 |
mobydikc | ok, so I get the bouncy ball when I need camera | 05:38 |
CarlFK | mithro: ^^^ mike has all my equipment from NodePDX and is trying to set it up.. yay! | 05:38 |
mithro | CarlFK: If, hdmi2usb-mode-switch --flash-gateware=XXXX.bin doesn't work we should fix it so that it does | 05:38 |
CarlFK | mobydikc: bouncy ball is the default video. --video-source blackmagichdmi | 05:38 |
mobydikc | do I adjust that in dvs-mon? | 05:38 |
CarlFK | mobydikc: today, no. because today you need the special gst libs... so ... in a new term: | 05:39 |
CarlFK | gst-master | 05:39 |
mobydikc | Ok, that's where I can do set mode -i | 05:39 |
mobydikc | ? | 05:40 |
CarlFK | umm. what is set mode -i | 05:40 |
mobydikc | i thought that's the last thing you told me before I rebooted. OK forget that | 05:41 |
mobydikc | I did gst-master | 05:41 |
mobydikc | in the shell | 05:41 |
CarlFK | mobydikc: cd voctomix-outcasts | 05:41 |
CarlFK | ./ingest.py --video-source blackmagichdmi --audio-source blackmagichdmi | 05:41 |
mobydikc | do I run that while dvs-mon is running (so so so sorry for dumb questions) | 05:42 |
CarlFK | well... ingest sends a stream to the vocto core (the mixer) | 05:43 |
CarlFK | it needs to be running. either open a shell and run it, or use dvsmon to run it | 05:44 |
mithro | CarlFK: so...... | 05:45 |
CarlFK | mithro: PermissionError: [Errno 13] Permission denied: '/sys/bus/usb/devices/1-1.5:1.0/driver/unbind | 05:45 |
CarlFK | mithro: for testing, should I just sudo, or put the udeve rules somewhere ? | 05:46 |
mithro | CarlFK: you need to "make unbind-helper" or run as root | 05:46 |
mobydikc | i'm rebooting. what's the optimal order to start dvs-mon and run that blackmagic command? | 05:46 |
CarlFK | I'll start with runing as root. | 05:46 |
mithro | CarlFK: the unbind helper lets me disconnect linux kernel drivers from the device without being root | 05:47 |
mithro | CarlFK: I recommend the unbind-helper | 05:47 |
mithro | CarlFK: because that is what I test with | 05:47 |
CarlFK | mobydikc: dvs-mon, click the run for voctocore and vocto gui. then open a new shell, gst-master, cd ~/voctomix-outcasts; ./ingest.py --video-source blackmagichdmi --audio-source blackmagichdmi | 05:48 |
CarlFK | unbind-helper: command not found | 05:48 |
CarlFK | unbind-helper.c ? | 05:48 |
mithro | CarlFK: Did you do a "make unbind-helper" in the directory? | 05:48 |
CarlFK | mithro: doing that now. | 05:49 |
CarlFK | mithro: sudo chmod 755 bin/unbind-helper | 05:49 |
mithro | CarlFK: what? | 05:50 |
CarlFK | why does it need sudo for that ? | 05:50 |
CarlFK | mithro: http://paste.ubuntu.com/17841465/ | 05:51 |
tpb | Title: Ubuntu Pastebin (at paste.ubuntu.com) | 05:51 |
mithro | CarlFK: I guess it doesn't for that line - it does for the following two | 05:51 |
mithro | CarlFK: the unbind-helper tool is a setuid binary running as root | 05:52 |
CarlFK | mithro: bin needs to be added to the path too | 05:54 |
mithro | CarlFK: hrm? | 05:55 |
CarlFK | mithro: I am adding notes to the readme, like PATH=$PWD/conda/bin:$PWD/bin:$PATH | 05:55 |
mithro | CarlFK: I'm pretty sure the code should find the unbind-helper without you adding it to the bin | 05:56 |
CarlFK | mithro: oh, I thought you ran it | 05:56 |
mithro | CarlFK: no | 05:56 |
mithro | https://github.com/timvideos/HDMI2USB-mode-switch/blob/master/hdmi2usb/modeswitch/lsusb.py#L21 | 05:56 |
tpb | Title: HDMI2USB-mode-switch/lsusb.py at master · timvideos/HDMI2USB-mode-switch · GitHub (at github.com) | 05:56 |
CarlFK | mithro: Write to /sys/bus/usb/drivers/uvcvideo/unbind failed http://paste.ubuntu.com/17841615/ | 05:58 |
CarlFK | 05:58 | |
tpb | Title: Ubuntu Pastebin (at paste.ubuntu.com) | 05:58 |
mithro | CarlFK: does "/sys/bus/usb/devices/1-1.5:1.0/driver/unbind" exist? | 06:00 |
mithro | CarlFK: and can you do a "ls -l bin/unbind-helper" ? | 06:00 |
CarlFK | --w------- 1 root root 4096 Jun 25 00:37 /sys/bus/usb/devices/1-1.5:1.0/driver/unbind | 06:00 |
CarlFK | -rwxr-xr-x 1 juser juser 9056 Jun 25 00:46 bin/unbind-helper | 06:00 |
mithro | CarlFK: did you cancel the "make unbind-helper" command? | 06:01 |
*** Bertl_zZ is now known as Bertl | 06:01 | |
CarlFK | mithro: maybe. I hit enter until the sudo failed, then $ chmod 755 bin/unbind-helper | 06:01 |
CarlFK | then re-ran make | 06:02 |
mithro | CarlFK: so you do see that there are two very important commands after that one in the makefile? | 06:02 |
*** sb0 has joined #timvideos | 06:04 | |
CarlFK | mithro: makefiles that call sudo is... not going to go over well with the debian folk | 06:05 |
mithro | CarlFK: They wouldn't be using the Makefile | 06:05 |
mithro | CarlFK: they would be doing the equivalent in the debian/rules file and the binary would be installed as being owned by root when the package is installed | 06:05 |
CarlFK | well.. I suspect the way you have this setup is going to make it hard for them. but I am not sure what would be better ... so ... never mind. | 06:08 |
CarlFK | -rwsr-xr-x 1 root root 9056 Jun 25 00:46 bin/unbind-helper | 06:09 |
mithro | CarlFK: The makefile sets up a developer environment - they are going to be doing a "python setup.py install" like any other python module | 06:09 |
CarlFK | mithro: Running 'fxload -t fx2lp -D /dev/bus/usb/001/011 -I /home/juser/HDMI2USB-mode-switch/hdmi2usb/firmware/fx2/atlys/ixo-usb-jtag.hex -v' | 06:11 |
CarlFK | b'Permission denied : /dev/bus/usb/001/011\n' http://paste.ubuntu.com/17841879/ | 06:11 |
tpb | Title: Ubuntu Pastebin (at paste.ubuntu.com) | 06:11 |
mithro | CarlFK: they'll probably want to rewrite/rework the unbind helper anyway | 06:11 |
mithro | CarlFK: oh... That would be fixed by the udev rules | 06:12 |
mithro | Hrm, I wonder if the udev rules could also fix the unbind permissions.... | 06:13 |
mithro | CarlFK: okay, maybe you should be running this as root if you haven't installed the udev rules | 06:14 |
CarlFK | LOL sudo: hdmi2usb-mode-switch: command not found | 06:14 |
CarlFK | it does't get the users path | 06:15 |
mithro | CarlFK: yeah | 06:15 |
CarlFK | mithro: this installs, right? sudo setup.py install | 06:16 |
mithro | CarlFK: Yes, but I've never tested that :P | 06:16 |
CarlFK | lol | 06:16 |
mithro | CarlFK: I only have so much time | 06:16 |
CarlFK | from setuptools import setup | 06:16 |
CarlFK | ImportError: No module named 'setuptools' | 06:16 |
CarlFK | ok, um.. let me sudo -s and set the path | 06:17 |
mithro | sudo apt-get python3-setuptools I think | 06:17 |
CarlFK | too late. | 06:18 |
CarlFK | DNA = 110000001100000011000000110000001100000011000000110000001 (0x181818181818181) | 06:18 |
CarlFK | I just re-run until it works, right ? | 06:18 |
mithro | CarlFK: Yeah - for the moment :( | 06:19 |
mithro | CarlFK: actually you might need to force it into serial mode | 06:19 |
CarlFK | mithro: how do I do that ? | 06:20 |
mithro | CarlFK: hdmi2usb-mode-switch --mode=serial | 06:20 |
mithro | Oh, wait you are on an Atlys.... | 06:20 |
CarlFK | AssertionError: serial mode only valid on the opsis. | 06:20 |
CarlFK | lol | 06:20 |
mithro | CarlFK: Just try again maybe? | 06:20 |
mithro | CarlFK: basically, the different FX2 firmware we are using fight with each other about how the FX2 should be configured | 06:21 |
CarlFK | mithro: iv tried over 5 times. normally it gets it by the third when I was doing whatever commands I was doing for lca | 06:21 |
mithro | CarlFK: What were you doing for LCA? | 06:22 |
mithro | CarlFK: At some point we need to fix the FX2 firmware to actually properly set up the FX2 so we don't get those failures. | 06:22 |
CarlFK | mithro: er, not lca. what someone at DC figured out and I dropped it in the lca repo: | 06:24 |
CarlFK | https://github.com/xfxf/video-scripts/blob/master/carl/opsis_setup.sh#L29 # repeat these 3 lines until it works | 06:24 |
tpb | Title: video-scripts/opsis_setup.sh at master · xfxf/video-scripts · GitHub (at github.com) | 06:24 |
mithro | CarlFK: sure | 06:24 |
mithro | CarlFK: those are opsis commands.... | 06:25 |
CarlFK | ah right. I haven't done this to an atlys | 06:25 |
mithro | CarlFK: okay | 06:26 |
mithro | CarlFK: can you try power cycling the Atlys and running the command a few times? | 06:26 |
CarlFK | power cycled, re-ran, worked the first time ... well, new error | 06:27 |
CarlFK | DNA = 100110010110101100010110111000010010100001101000001001011 (0x132d62dc250d04b) | 06:28 |
CarlFK | loaded file /home/juser/HDMI2USB-mode-switch/hdmi2usb/firmware/spartan6/atlys/bscan_spi_xc6slx45.bit to pld device 0 in 4s 414024us | 06:28 |
CarlFK | Info : JTAG tap: xc6s.tap tap/device found: 0x34008093 (mfg: 0x049 (Xilinx), part: 0x4008, ver: 0x3) | 06:28 |
CarlFK | Error: Unknown flash device (ID 0x00ffffff) | 06:28 |
mithro | CarlFK: there is one peculiarity with the Atlys if it is still running the stock firmware from Digilent | 06:28 |
CarlFK | http://paste.ubuntu.com/17842244/ | 06:28 |
tpb | Title: Ubuntu Pastebin (at paste.ubuntu.com) | 06:28 |
mithro | CarlFK: This board still has the stock Digilent firmware on it, right? | 06:29 |
CarlFK | mithro: correct | 06:29 |
mithro | CarlFK: let me dig up the special thing you need to do the first time | 06:30 |
mithro | Dammit, where did I put it.... | 06:32 |
mithro | Neuron1k: we are running a little bit, will ping when we are ready | 06:34 |
Neuron1k | mithro: ok | 06:35 |
mithro | CarlFK: http://paginas.fe.up.pt/~ee06211/doku.php?id=digilent_atlys#interfacing_with_the_onboard_numonyx_n25q128 | 06:36 |
tpb | Title: digilent_atlys [Generation of Reconfigurable Circuits from Machine Code] (at paginas.fe.up.pt) | 06:36 |
mithro | CarlFK: I'm sure I wrote better instructions down somewhere.... | 06:37 |
mithro | Neuron1k: In your blog you mentioned hacking on a model | 06:37 |
mithro | Neuron1k: can you publish that code somewhere | 06:37 |
Neuron1k | mithro: It is added on my github | 06:38 |
mithro | Neuron1k: can you link it here | 06:38 |
Neuron1k | https://github.com/Neuron1k/litejpeg/tree/master/test/model | 06:38 |
tpb | Title: litejpeg/test/model at master · Neuron1k/litejpeg · GitHub (at github.com) | 06:38 |
CarlFK | mithro: this? " The workaround is to set the J11 jumper on the board to avoid power on flash boot, thus leaving the flash in legacy SPI mode." | 06:39 |
mithro | CarlFK: Yes | 06:39 |
mithro | CarlFK: I think you need to remove the jumper after the board has booted while the power is still connected | 06:41 |
mithro | CarlFK: Please write this down somewhere in the Wiki | 06:43 |
CarlFK | mithro: k | 06:44 |
CarlFK | mithro: is j11 next to the usb-A jack, says "HOST" and in the picture here it doesn't look like there are header pins to jump? | 06:45 |
CarlFK | https://hdmi2usb.tv/img/digilent-atlys.jpg | 06:45 |
mithro | CarlFK: it should definitely be around that big USB HOST connector | 06:45 |
mithro | CarlFK: JP9 seems to be on one side and JP11 on the other | 06:46 |
CarlFK | mithro: so .. jumper off, power, jumper on, hdmi2usb-mode-switch --flash-gateware... ? | 06:47 |
mithro | CarlFK: no | 06:47 |
mithro | CarlFK: jumper on, power on, jumper off, hdmi2usb-mode-switch --flash-gateware | 06:47 |
CarlFK | mithro: welll ... it didn't error | 06:56 |
CarlFK | mithro: I was expecting the hdmi2usb colorbars , | 06:57 |
mithro | CarlFK: Does jp11 on your board have a header? Or are you just shorting it with a screwdriver? | 06:59 |
CarlFK | mithro: header | 07:00 |
mithro | Neuron1k: heyo | 07:03 |
mithro | Neuron1k: sorry about running late, we are now getting setup | 07:03 |
Neuron1k | mithro: ok, I will join the call | 07:04 |
*** panther has joined #timvideos | 07:04 | |
mithro | CarlFK: I might be back in a bit, otherwise I'll respond on my phone in 30 minutes | 07:05 |
CarlFK | mithro: k | 07:05 |
shenki | Neuron1k: are you on? | 07:08 |
Neuron1k | shenki: yes | 07:08 |
shenki | Neuron1k: ok. you keep dropping and coming back | 07:09 |
Neuron1k | shenki: I can't see you | 07:10 |
*** sb0 has quit IRC | 07:10 | |
shenki | Neuron1k: okay. we can't see you either | 07:11 |
shenki | Neuron1k: you've joined, but no video nor voice | 07:11 |
shenki | Neuron1k: do you want to try inviting us to a new hangout? | 07:11 |
Neuron1k | shenki: ok, I will drop and could you invite me instead? | 07:11 |
shenki | ok | 07:11 |
mithro | Neuron1k: have you tried restarting your browser? | 07:12 |
*** panther is now known as sab_123 | 07:13 | |
*** aravind_ has joined #timvideos | 07:23 | |
*** aravind_ has quit IRC | 07:28 | |
mithro | CarlFK: did ti work? | 07:28 |
mithro | CarlFK: Have to run, will be back tomorrow | 07:32 |
mithro | CarlFK: I'll push some updates to the udev rules which fix the permissions on unbind tomorrow | 07:33 |
CarlFK | k | 07:33 |
CarlFK | mithro: isn't there another step? | 07:33 |
CarlFK | mobydikc: you still around? I'm heading to bed. | 07:35 |
mithro | CarlFK: what do you mean? | 07:35 |
CarlFK | mithro: don't i need to send hdmi2usb.hex ? | 07:36 |
mithro | As I said, I've never been game enough to flash the ERPROM on an Atlys | 07:37 |
mithro | Which is where the .hex file goes | 07:40 |
CarlFK | mithro: what does this do: fxload -B libusb -D vid=0x16c0,pid=0x06ad -t fx2lp -I hdmi2usb.hex | 07:40 |
mithro | Loads it into ram | 07:41 |
mithro | That doesn't persist after power cycle | 07:42 |
mithro | Btw where does your fxload come from? | 07:43 |
CarlFK | k - so I either need to do that, or hdmi2usb-mode-switch --load-fx2-firmware | 07:44 |
mithro | Yes | 07:44 |
CarlFK | root@cnt1:~/HDMI2USB-mode-switch# apt-cache policy fxload | 07:44 |
CarlFK | 500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages | 07:44 |
tpb | Title: Index of /ubuntu (at archive.ubuntu.com) | 07:44 |
CarlFK | hmm, not sure it works | 07:44 |
mithro | CarlFK: the mode switch tool will aways get the right vid:pid matter what mode the Atlys is in | 07:45 |
CarlFK | hdmi2usb-mode-switch --load-fx2-firmware /home/juser/HDMI2USB-firmware-prebuilt/archive/master/v0.0.0-639-g956a8b3/atlys/hdmi2usb/hdmi2usb.hex | 07:46 |
CarlFK | no error, but still not colorbars | 07:46 |
mithro | CarlFK: I haven't tested --load-fx-firmware recently but as the system has to load fx2 firmware to do the other operations, it would be weird if broken. | 07:46 |
mithro | CarlFK: you should get color bars after the gateware | 07:47 |
mithro | Oh, you need to power cycle after a flash command | 07:47 |
CarlFK | where is your script to bounce the usb so I can connect a termial | 07:47 |
CarlFK | ah, right | 07:47 |
mithro | You should get the colour bars from when you turn the board on now | 07:48 |
CarlFK | yep! | 07:48 |
CarlFK | flterm --port /dev/ttyVIZ0 --speed 115200 | 07:49 |
CarlFK | git describe: v0.0.0-639-g956a8b3-dirty | 07:49 |
CarlFK | mithro: almost 3am, I an go to bed now. | 07:50 |
mithro | CarlFK: great you flashed the right file then | 07:53 |
mithro | You flash the .bin, load the .bit | 07:53 |
mithro | Logged a bug to make the tool check that. | 07:54 |
CarlFK | mithro: yep. I am up for trying to flash the eprom, but not now. to sleepy. | 07:54 |
mithro | CarlFK: I should do it first | 07:54 |
mithro | As trying to recover if we screw it up is to hard to do over the net | 07:55 |
CarlFK | mithro: I would like to do it in the next day or two. that gives me enough time to un-brick or get another one | 07:55 |
mithro | And requires physical access to the board | 07:55 |
mithro | I'll be around tomorrow | 07:55 |
mithro | Probably from around midday again | 07:55 |
CarlFK | sounds good | 07:56 |
mithro | Anyway, my phone is almost flat | 07:56 |
CarlFK | I am going to re-image the machine I was running everything from, we can try doing a normal install and see how that goes | 07:56 |
CarlFK | thanks for your time | 07:56 |
CarlFK | see ya | 07:56 |
*** sb0 has joined #timvideos | 08:05 | |
*** cr1901_modern has quit IRC | 08:21 | |
*** cr1901_modern has joined #timvideos | 08:39 | |
seaLne | my fork of the tofe-vga has the schematic i'd done in it, never felt confident to suggest merging it https://github.com/sealne/HDMI2USB-TOFE-VGA | 09:42 |
tpb | Title: GitHub - sealne/HDMI2USB-TOFE-VGA: A VGA capture board for use with TOFE-8x compatible boards like the Numato Opsis. (at github.com) | 09:42 |
*** sab_123 has quit IRC | 10:05 | |
*** ssk1328 has joined #timvideos | 10:29 | |
*** sb0 has quit IRC | 11:09 | |
*** Bertl is now known as Bertl_oO | 11:45 | |
*** shenki has quit IRC | 12:49 | |
*** shenki has joined #timvideos | 13:06 | |
*** ChanServ sets mode: +v shenki | 13:06 | |
*** ssk1328_ has joined #timvideos | 13:49 | |
*** mithro_ has joined #timvideos | 13:50 | |
*** ChanServ sets mode: +o mithro_ | 13:50 | |
*** Joelw_ has joined #timvideos | 13:51 | |
*** Niharika has quit IRC | 13:54 | |
*** ssk1328 has quit IRC | 13:54 | |
*** Joelw has quit IRC | 13:54 | |
*** _florent_ has quit IRC | 13:54 | |
*** mobydikc has quit IRC | 13:54 | |
*** mithro has quit IRC | 13:54 | |
*** ssk1328_ is now known as ssk1328 | 13:54 | |
*** mobydikc has joined #timvideos | 13:54 | |
*** Niharika has joined #timvideos | 13:55 | |
*** _florent_ has joined #timvideos | 14:00 | |
*** mithro_ is now known as mithro | 14:04 | |
CarlFK | mithro: ping | 15:29 |
*** ssk1328 has quit IRC | 15:34 | |
CarlFK | Heading to lug meeting. back in a few hours. bye! | 19:23 |
*** CarlFK has quit IRC | 19:23 | |
*** CarlFK has joined #timvideos | 19:50 | |
*** ChanServ sets mode: +v CarlFK | 19:50 | |
*** puck has quit IRC | 20:16 | |
*** puck has joined #timvideos | 21:00 | |
*** Bertl_oO is now known as Bertl_zZ | 22:11 | |
*** CarlFK has quit IRC | 22:11 | |
*** CarlFK has joined #timvideos | 23:39 | |
*** ChanServ sets mode: +v CarlFK | 23:39 | |
mobydikc | CarlFK: heyo. I ran dvsmon, started voctocore and voctogui. then went to the terminal and did the ingest blackmagic thingy | 23:41 |
mobydikc | I got a no property "mode" in decklinkvideosrc0 or something like that | 23:41 |
mobydikc | Also dvsmon has a gmi.sh and an ingest --video-source blackmagichdmi. It's looks kind of like they do the same thing | 23:42 |
CarlFK | mobydikc: hmm, can you put that box on the net and do a git pull? | 23:42 |
CarlFK | dvsmon and gmi.sh stuff ... I couldn't get it to use the gst-master libs | 23:43 |
mobydikc | probably. I would have thought it'd be ready to go since it worked in portland tho | 23:43 |
mobydikc | does the "ingest" command in dvsmon need to be running? | 23:43 |
CarlFK | yeah, im a little fuzzy.. but may as well stay current with what I jsut did this morning | 23:43 |
CarlFK | um.. | 23:44 |
CarlFK | voctocore is the only thing that needs to be running - it is the server that everything else connects to | 23:44 |
CarlFK | ingest is: read from something, send to core | 23:45 |
mobydikc | is there something on the camera that needs to be set? | 23:45 |
mobydikc | it's got a mode button three lights, CAM, PB, PC, and cam is lit up | 23:46 |
CarlFK | if you have an hdmi monitor you can plug the cam into, then you can see if it is sending something out the hdmi port | 23:46 |
CarlFK | mobydikc: im out in about 10 min | 23:58 |
CarlFK | then back in a few hours | 23:59 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!