**** BEGIN LOGGING AT Tue Mar 24 02:59:57 2020 Mar 24 03:43:47 Well no .. not I, set_ may be but he hasn't round been for a bit. Mar 24 07:24:19 HI There Mar 24 07:24:40 I need some help connecting my BB to my PC Mar 24 07:26:00 I have a Acer SP513-52N Windows 10 Mar 24 07:35:58 Hi There Mar 24 07:36:52 I need some help with the communication between a Beagle Board and a PC Mar 24 07:37:18 I am using a Acer SP513-52N with Windows 10 Mar 24 07:39:58 I have installed the Bone_D64.exe Mar 24 07:42:06 I have not been able to connect as the Linux USB Ethernet /RNDIS Gadget does not appear in the Ports (COM & LPT) in Manage Devices Mar 24 07:42:49 192.168.7.2 does not respond! Can some one help! Mar 24 07:45:39 Thanks Mar 24 07:47:27 Hi Rob Mar 24 07:49:02 Hi Nishant Menon Mar 24 08:16:06 Hey There Mar 24 16:04:39 Ferdie: is this the first time powering on Mar 24 16:05:07 are the lights flashing? Mar 24 16:05:54 also if you are developing a qt application for bb but you are connected via TTL Mar 24 16:06:19 can you see the qt GUI when it launches Mar 24 17:03:38 MattB0ne: it sounds more likely his beaglebone just has ancient firmware and should be reflashed. I also wonder what "Bone_D64.exe" is, no drivers should be installed for beaglebone (on Windows 10 at least), it should work out of the box Mar 24 17:04:04 anyway, he isn't here anymore so Mar 24 17:06:32 Hello everyone, can i update or install packages at the Beaglebone using just usb tethering? Mar 24 17:08:42 Rena32: in theory yes, but getting the network settings right for that (and not losing the ability to log in on the beaglebone in the process) can be tricky. plugging in ethernet is definitely the easier way Mar 24 17:09:58 if you have a computer that has internet access via wifi but also has an (unused) ethernet port then my recommendation is to just turn on internet sharing on your computer to the ethernet port and connect an ethernet cable between PC and beaglebone Mar 24 17:10:29 Got it Mar 24 17:10:33 that's less hassle than getting internet sharing via usb working Mar 24 17:12:49 And using the ethernet e usb tethering to access the board in my notebook, can i update the debian version, or download and update any package? I mean, without a monitor, mouse and keyboard to access the board without a notebook Mar 24 17:13:06 yep, no problem Mar 24 17:13:32 the usb connection is used to ssh into the beaglebone, while the beaglebone uses ethernet to access internet Mar 24 17:13:47 Great, thanks for the help, i almost buy this set Mar 24 17:13:57 at least I'd expect that to work normally. I personally use a different network manager on the beaglebone than the default one Mar 24 17:14:53 (I also almost never use usb networking, I just connect the beaglebone to ethernet) Mar 24 17:17:27 In case of using the beaglebone AI, that have wifi connection, through the browser in the usb tethering i can set the password end it will connect normally? Mar 24 17:18:21 note that the beaglebone AI is new and very different from other beaglebones, and does not have the same level of software support yet (especially w.r.t using the expansion headers) Mar 24 17:18:56 I'm not sure what functionality is available via the web interface, I've never looked at it :D Mar 24 17:22:01 Understood Mar 24 17:26:26 I think i gonna have too many troubles with the AI, i hope there is some similarities with the BBBlack, that have a pot of support Mar 24 17:26:43 Lot* Mar 24 17:33:28 Today I tried to copy a pile of files to a flash drive in the front USB on a Black, FAT32. It claims no space when the 8GB drive is half full. I know FAT32 is old, but it shouldn't be doing this afaik. I've searched for Black-specific issues and found nothing. Anyone know what I've missed? Mar 24 17:49:31 zmatt: can I see a qt GUI through a TTL cable? Mar 24 17:55:42 zmatt: also if o use an LCD cape that will consume all of my pins? I am looking at some of these and there connections look like they use all of them? Mar 24 17:59:11 a GUI through a serial port? how exactly were you imagining that? Mar 24 18:00:30 and capes generally fit into the entire expansion headers, some capes have pass-through connectors to allow stacking but usually an lcd cape doesn't have such pass-through and would need to be the topmost one. whether or not capes are compatible to be stacked depends on whether or not they have conflicting pins and needs to be evaluated on a case-by-case basis Mar 24 18:12:52 I was hoping to develop my GUI before having a cape Mar 24 18:13:37 but I am not sure how I can see any UI the beagle is driving. Mar 24 18:13:53 if I ssh in that should be ok right Mar 24 18:14:02 MattB0ne It is possible run an X display from the BBB to your desktop, that's how (back in the day) Cray YMP's had displays, they just used a workstation for output and ran X on the supercomputer to generate the output. Another option is VNC. Mar 24 18:15:13 GenTooMan: thanks is there a specific package I need for that? Mar 24 18:15:45 mattb0ne depends on your desktop machine OS Mar 24 18:16:14 GenTooMan: I am on mint linux Mar 24 18:21:17 MattB0ne: just develop your gui on a desktop computer? Mar 24 18:21:38 If you are using X that would make the most sense. Mar 24 18:22:05 one beaglebone-using product I've worked on has a GUI that's developed by a Windows user on his PC using Qt Creator Mar 24 18:22:21 (queuing up a noob question) what is x Mar 24 18:22:28 I was gonna use qt creator Mar 24 18:22:59 (we don't use X11, we just run the Qt5 application directly on the framebuffer) Mar 24 18:23:55 X11 is a (rather dated) graphical subsystem commonly used on linux and other unix systems Mar 24 18:24:25 it is not necessary for single-window-fullscreen qt5 applications, such as those typically used for touchscreen interfaces Mar 24 18:24:58 I use X with my Blacks. Vasly simplifies things. Mar 24 18:25:42 it felt more like complication than simplification to me (though our choice of using the eglfs backend instead of the linuxfb one came with its own hurdles) Mar 24 18:26:30 (shrug) To each their own. I never run anything full-screen and X lets me put a window to the Black in a window on my systsem, just like it's a native application. That's a big win for me. Mar 24 18:27:04 iirc with the linuxfb backend you don't really have to do anything other than run the application with some environment variables set up, and putting it into a system service was no problem Mar 24 18:27:46 Haven't tried that honestly. X works so I've not had impetus. Could easily be I went with X because that's what I'm used to on 'nix. Mar 24 18:27:56 MattB0ne As long as QT is ported to the BBB it's not a big deal. you can develope it on your DT just be sure not to tax things heavily and use too many "features" that suck up performance. Keep It Simple Silly <--principle Mar 24 18:28:16 eglfs is sort of the same except for 1. getting the sgx libraries in a working state 2. fixing qt5 eglfs to support 16-bit framebuffers Mar 24 18:30:47 I prefer X for the same reason Ragnorok gave, I used that instead of VNC. That's what X was designed for simple extension of applications across a network. Mar 24 18:31:33 And to be blunt "their is no SIMPLE way to do that" so X is simpler :D Mar 24 18:32:31 zmatt use what works for your application, that's fine, use the right tool for the right application, that's my mantra. Mar 24 18:33:02 X is also vastly more performant than anything else I've tried, I surmise b/c it is old and simple. Back In The Day it was fat and slow ... today it runs at warp speed. Mar 24 18:33:35 Ragnorok: more performant than running the same application with the linuxfb backend? Mar 24 18:33:43 I doubt that Mar 24 18:34:06 Since I haven't haven't tried that, as stated, my statement is still 100% accurate. Mar 24 18:34:37 especially since X11 on the AM335x has to do all compositing in software, it even needs to composite the mouse cursor onto the screen in software Mar 24 18:35:59 (we ended up using eglfs because it seemed to double-buffer everything, making things slower but resulting in animations looking smooth and tear-free) Mar 24 18:37:06 (I'm sure that could have been achieved with the linuxfb backend too, and conversely double-buffering is probably not mandatory with eglfs, but we just went with the option that yielded the best immediate results without spending more effort on it) Mar 24 18:37:30 all this assuming I remember correctly, it's been a while Mar 24 18:38:27 * Ragnorok longs for the days when search engines used to pay attention to search terms instead of guess what I want, yielding moronic garbage. Mar 24 18:38:34 hah, I still have my script to patch qt5 eglfs for 16-bit framebuffers though (recompiling qt5 seems like a headache so I went with the lazy option of binary patching): https://liktaanjeneus.nl/sgx/patch-qt5-eglfs_kms.pl Mar 24 18:38:53 Ragnorok: for google, use verbatim search Mar 24 18:39:07 I've made sure that that option is on by default when I use the browser's search bar Mar 24 18:39:20 Doesn't work. It's -less- moronic, but it still second-guesses everything. Mar 24 18:40:21 I've started using DDG b/c it's less moronic than anything google, in my xp. I'm sick those retards ignoring what I typed. Mar 24 18:40:25 I don't think I've ever seen it second-guess anything. its main problem seems to be that it's sometimes _too_ literal (e.g. when searching for a Fréchet space it would be nice to get results for pages that are too lazy to put the accent on the e) Mar 24 18:41:20 and it has a tendency to find sites that are mirrors of wikipedia but with better SEO Mar 24 18:41:21 I routinely see google utterly ignore terms both with quotes and with "verbatim" enabled, in various combinations. They used work great. Now they suck. Mar 24 18:41:59 I'd like to see an example of that. I've been using verbatim ever since google started ignoring search terms, and it 100% solved that problem for me Mar 24 18:42:33 I was so glad I found that option, I was beyond frustration with not being able to find stuff on the internet anymore Mar 24 18:42:45 It solved it for a while for me. Just last week it happened, so I tried DDG, and I immediately found what google would not. DDG is my default now. Mar 24 18:43:29 I'll try to remember giving it a go next time I take issue with google's search results Mar 24 18:44:30 I can't say I'm enamoured of its interface but it is adjustable to be reasonably palatable. I'm starting to get used to it. Mar 24 18:45:09 it's one of those things where it would probably be beneficial to properly compare the results various search engines give for things I search for, but as long as the one I'm using works adequate I'm too lazy to properly evaluate alternatives Mar 24 18:45:44 Sure!! Believe me I'm squarely in that boat. Google just got on my last f'in nerve. Mar 24 18:48:00 yeah it definitely sucks that google got so much worse.. I fondly remember the time when verbatim was unnecessary and quotes and the + prefix actually worked Mar 24 18:48:14 I'm trying exFat to see if it works around the FAT32 problem ... that can't be good. initramfs is trying to build the wrong image. Ugh. Same daze things just aren't easy. Mar 24 18:48:29 exfat? ew Mar 24 18:48:33 what fat32 problem? Mar 24 18:48:34 zmatt: Oh MAN I loved it back then. I could find *anything*. Mar 24 18:49:02 Today I tried to copy a pile of files to a flash drive in the front USB on a Black, FAT32. It claims no space when the 8GB drive is half full. I know FAT32 is old, but it shouldn't be doing this afaik. I've searched for Black-specific issues and found nothing. Anyone know what I've missed? Mar 24 18:49:14 linux doesn't support exfat Mar 24 18:49:22 It's got a package for that. Mar 24 18:50:05 fat32 supports drives up to 2 TB Mar 24 18:50:45 however I think individual files need to be smaller than 4 GB... Mar 24 18:50:53 I know. And files up to 4GB. And 65k files/dir. None of those conditions are in force, yet it consistently says the device has no space. Mar 24 18:51:13 df reports plenty of free space? Mar 24 18:51:29 51% full. Mar 24 18:51:52 /dev/sda1 7812864 3973744 3839120 51% /media/flashdrive Mar 24 18:52:29 @zmatt I have asked you some questions about the beaglebone black/enhanced with regards to the spi interfaces. I am using the second bus. The device tree overlay uses the wrong pin mode for the second chip select (I think). I want to be able to read the code for that overlay, and if I am right, adjust it to the correct mode (mode 4 for the spi1.1). Mar 24 18:52:29 Do you know of good documentation that explains how to do this? Or anybody in here for that matter? Mar 24 18:52:51 Shawn33: which overlay do you think is wrong? Mar 24 18:53:10 BB-SPIDEV1-00A0.dtbo Mar 24 18:53:40 I looked at some code online that is supposedly that device tree overlay and the mode was wrong in them Mar 24 18:53:45 Those are all in the kernel source aren't they? Mar 24 18:53:54 I have not figured out how to view the code on my beagle to see if it is the same Mar 24 18:54:16 that is part of what I am trying to figure out how to do Mar 24 18:54:26 Ragnorok: overlays are in a separate repository, bb.org-overlays Mar 24 18:54:53 Oh they moved them then. I have them all under kernel source. I'll stop being static then. Mar 24 18:54:57 I wouldn't be surprised if there's a git clone of it on the BBB by default somewhere in /opt or something, or otherwise you can just clone the repo from github yourself Mar 24 18:55:04 Ragnorok: overlays have never been there Mar 24 18:55:10 at any point in time Mar 24 18:55:30 you're probably confusing overlays with the main device tree sources Mar 24 18:55:43 Plausible. Mar 24 18:56:03 I don't have my dev system up to check what's really where I'm thinking. Mar 24 18:56:22 Shawn33: BB-SPIDEV1-00A0 only sets up a single chip select Mar 24 18:56:34 yeah shoot. I need both Mar 24 18:56:52 the commented-out pinmux for the second chip select seems correct however Mar 24 18:56:59 actually in the end I need to be able to use both plus use gpio as chip selects Mar 24 18:57:08 I need a bunch of slaves running Mar 24 18:57:21 if you want to make a custom spi overlay, you may find it easier to use my overlay-utils Mar 24 18:57:41 is there any documentation on doing that? Mar 24 18:57:43 https://github.com/mvduin/overlay-utils/blob/master/spi1.dtsi Mar 24 18:57:50 oooo let me check that out Mar 24 18:58:29 this example doesn't setup any slaves, but you can add them like this: https://github.com/mvduin/overlay-utils/blob/master/spi0.dtsi#L41-L58 Mar 24 18:58:34 do I just have to take that and compile it? Mar 24 18:59:11 there's also an example for using gpio chip selects (this one for spi0 but it should be straightforward enough to adapt it): https://github.com/mvduin/overlay-utils/blob/master/spi0-gpio-cs.dtsi Mar 24 18:59:15 the project has a makefile Mar 24 18:59:31 so you can just do make name-of-overlay.dtb Mar 24 19:00:26 since you're not using cape-universal you can mostly ignore any comments about cape-universal compatibility Mar 24 19:00:47 beautiful. and then i add that dtb file to the uEnv.txt in place of the current BB-SPIDEV1...... overlay right? Mar 24 19:02:01 yep. copy it to /lib/firmware/ and configure the path in /boot/uEnv.txt into either the dtb_overlay variable or one of uboot_overlay_addr4..7 (these five are all equivalent) Mar 24 19:02:22 I guess copying it to /lib/firmware is probably optional since you configure the full path into /boot/uEnv.txt anyway, but it seems like a good idea Mar 24 19:02:49 thank you very much! Mar 24 19:13:44 Shawn33: if cape-universal is not a concern then this is how you might setup spi1 with four devices: https://pastebin.com/raw/HK66h2Qb ... note however that I've never tried declaring more than 2 chip selects, so I don't know if the driver imposes some limit on that. it shouldn't have any reason to impose any limit on the number of chip selects if it's competently written, but I have no reason to ... Mar 24 19:13:50 ...assume it is competently written ;) Mar 24 19:14:20 I've also written some notes about device tree syntax: https://pastebin.com/XC8vB33d Mar 24 19:15:38 note that with overlay-utils you write your overlay like a device-tree include file (.dtsi), it uses a perl script to transform this into the hideous dts structure required for an overlay (https://pastebin.com/b8kZfhRG) Mar 24 19:16:11 note also that that perl script doesn't attempt to properly parse dts syntax, it assumes you use somewhat sane indenting Mar 24 19:19:52 when writing custom overlays, it is wise to keep a bootable sd card at hand. typos in the overlay (resulting e.g. in unresolvable references) are reported by u-boot by simply refusing to boot at all :P Mar 24 19:21:00 (in which case the simplest fix is to boot from sd card, mount the eMMC filesystem and comment out your overlay in its boot/uEnv.txt ) Mar 24 19:22:04 when the system does boot with your custom overlay, be sure to check kernel log (journalctl -k) for new errors/warnings and verify that your pins are configured correctly using my show-pins utility: https://github.com/mvduin/bbb-pin-utils/#show-pins Mar 24 19:22:31 Shawn33: sorry for the wall of text, just save it somewhere for later reference ;) Mar 24 19:27:42 I got it. Thanks for all the help Mar 24 19:27:55 that was super helpful. i'm gonna go try it Mar 24 20:46:43 Hello everyone! How is the virus treating you? Mar 24 20:46:56 I have started with pru remoteproc Mar 24 20:47:20 the first thing in the tutorial is to send Mar 24 20:48:01 echo 'stop' > /sys/class/remoteproc/remoteproc1/state Mar 24 20:48:22 and it results in Mar 24 20:48:25 -bash: echo: write error: Invalid argument Mar 24 20:48:28 hmm, remoteproc1 ? what's remoteproc0 then? Mar 24 20:48:56 a good question :) Mar 24 20:48:59 regardless, making assumptions about the remoteproc instance number seems like a bad idea, I'm pretty sure their numering is not well-defined Mar 24 20:49:16 the kernel will just sequentially number them in whatever order it encounters them Mar 24 20:49:21 lrwxrwxrwx 1 root 0 Mar 24 13:22 remoteproc0 -> ../../devices/platform/ocp/ocp:l4_wkup@44c00000/44d00000.wkup_m3/remoteproc/remoteproc0 Mar 24 20:49:21 ../../devices/platform/ocp/4a326004.pruss-soc-bus/4a300000.pruss/4a338000.pru/remoteproc/remoteproc2 Mar 24 20:50:05 fair enough Mar 24 20:50:37 any idea what is remoteproc0? Mar 24 20:51:40 the wakeup m3 Mar 24 20:51:59 (used for management of low-power idle/sleep states) Mar 24 20:52:02 anyone? Mar 24 20:52:10 Thanks! Mar 24 20:52:15 talhadar: anyone what? Mar 24 20:52:26 my apologies Mar 24 20:52:28 :P Mar 24 20:52:33 hi my name is talha Mar 24 20:52:37 im from pakistan Mar 24 20:52:45 my city has hit hard with covid-19 Mar 24 20:53:04 dreamhiker: I don't see an obvious reason for it to give an EINVAL on writing "stop" to the state attribute Mar 24 20:53:06 i was wondering beagleboard ai is being shipped or when will it? Mar 24 20:54:02 zmatt, my uname -r -> 4.14.108-ti-r123 Mar 24 20:54:09 what is 4.19 ? Mar 24 20:55:00 talhadar: 4 of the 5 distributors listed on the beaglebone ai webpage have them in stock. whether or not shipping is affected by covid-19 is something you'd have the ask the distributor Mar 24 20:55:13 dreamhiker: "what is 4.19 ?" ? Mar 24 20:55:44 4.14-ti is the current default kernel series for beaglebone images, 4.19-ti is the next kernel series Mar 24 20:56:07 Thanks! Mar 24 20:56:27 (the -ti series are based on TI's kernel tree, which only exists for LTS releases of mainline linux) Mar 24 20:57:25 In my uEnv.txt I have: Mar 24 20:57:54 uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo Mar 24 20:58:12 is this correct for remoteproc Mar 24 20:58:54 remoteproc-pru is still quite unstable and has changed incompatible with each major kernel release, which is why there's a different overlay for each kernel series with remoteproc-pru support Mar 24 20:59:14 (uio-pruss still works the same from kernel 3.8 to kernel 4.19 and beyond) Mar 24 21:00:55 since you're using a 4.14 kernel, it is indeed the correct one to use for remoteproc-pru. This is also clear from the fact that you have remoteproc devices for your prus (I'm pretty sure they wouldn't even show up if you used the wrong overlay) Mar 24 21:01:26 are you getting any error/warning in your kernel log when you get the "Invalid argument" error? Mar 24 21:03:06 dreamhiker: oh lol, it means nothing Mar 24 21:03:31 it returns EINVAL if the core is in any state other than RPROC_RUNNING Mar 24 21:03:41 in other words, you can't stop a core that's already stopped Mar 24 21:03:45 nice design Mar 24 21:12:53 which /var/log do i need to see for kernel log? Mar 24 21:12:59 journalctl -k Mar 24 21:13:54 since oldschool rsyslogd is still installed on beaglebones by default I'm sure it's also written to /var/log/ somewhere Mar 24 21:14:14 and dmesg is not the same? Mar 24 21:14:57 journalctl -k shows the entire kernel log (of this boot) by default. you can add -n 20 to get just the last 20 lines, or -f to follow the log in real time (use ctrl-C to exit) Mar 24 21:15:29 thanks! Mar 24 21:16:58 dmesg is the same but from a different source (directly from the kernel ringbuffer rather than from journal), it may not go back as far as journal does (or in some cases it might go further back I guess, depending on limits configured for journal). nowadays the kernel ringbuffer also isn't accessible by normal users by default, only by root Mar 24 21:17:35 while anyone in the systemd-journal group (which includes the "debian" user by default) can read the system journal Mar 24 21:19:56 sorry, I am always root :) Mar 24 21:20:51 ew Mar 24 21:21:01 that's really a bad idea Mar 24 21:21:31 the debian is setup to have sufficient privileges for pretty much anything Mar 24 21:21:32 never was able to understand why not :) Mar 24 21:22:45 because permissions do not apply to the root user at all, it ignores all privileges set on files. this means that it's much easier to break your system by accident with a typo or poorly thought out command Mar 24 21:24:47 by working as a normal user you know that you can't accidently modify system files that aren't supposed to be modified Mar 24 21:24:56 I understand that. Maybe one day I will grow up to be disciplined. Mar 24 21:25:35 DO you understand the purpose of: echo 'am335x-pru0-fw' > /sys/class/remoteproc/remoteproc1/firmware Mar 24 21:25:44 using the normal account actually allows you to be less disciplined Mar 24 21:25:51 :) Mar 24 21:26:16 it tells the kernel the name of the firmware file to load Mar 24 21:27:19 I thought that PRUs are always running the user programs up to 2,000 instructions Mar 24 21:27:31 ? Mar 24 21:28:15 OK, what is the purpose of that formware Mar 24 21:28:19 firmware Mar 24 21:28:23 it's your code Mar 24 21:28:27 that you want to run on the pru Mar 24 21:28:32 Great! Mar 24 21:29:21 with remoteproc-pru you don't have direct access to pru memory (like you do with uio-pruss) so the only way to get your code onto pru is by asking the kernel to load it onto it Mar 24 21:29:51 Great information! Mar 24 21:30:02 (remoteproc-pru is pretty limited compared to uio-pruss) Mar 24 21:30:41 I can see the following in the log: Mar 24 21:31:24 note that writing the "firmware" attribute doesn't do anything immediately, it just saves the name for later. it'll (try to) load the firmware when you give the start command Mar 24 21:31:42 Mar 24 13:29:48 beaglebone kernel: remoteproc remoteproc1: powering up 4a334000.pru Mar 24 21:31:42 kernel: remoteproc remoteproc1: request_firmware failed: -22 Mar 24 21:33:21 reproducible every time I use : echo 'start' > /sys/class/remoteproc/remoteproc2/state Mar 24 21:35:43 does /sys/class/remoteproc/remoteproc2/firmware show the correctly firmware name? Mar 24 21:36:00 ls -l am* Mar 24 21:36:32 actually the size is 0 Mar 24 21:37:06 when you read it? (sysfs attributes are not files, "file size" is meaningless) Mar 24 21:38:05 root@beaglebone:/lib/firmware# ls -l am* Mar 24 21:38:06 based on what I've seen in the kernel source so far, a blank firmware name does seem to be the (only) way to get EINVAL (Invalid argument) from request_firmware Mar 24 21:38:18 ?? Mar 24 21:38:56 checking the contents of /lib/firmware is not useful since it's not even trying to load anything Mar 24 21:39:36 what do you mean? isn't the firmware is just a regular binary file? Mar 24 21:40:01 I thought you were talking about the firmware attribute, since I just asked about that: Mar 24 21:40:12 appologies Mar 24 21:40:48 > does /sys/class/remoteproc/remoteproc2/firmware show the correctly firmware name Mar 24 21:40:51 yes Mar 24 21:41:27 and it's giving "request_firmware failed: -22" ? strange Mar 24 21:41:37 -22 is -EINVAL Mar 24 21:41:42 give me a sec Mar 24 21:41:51 a missing firmware file would give -2 (-ENOENT) Mar 24 21:44:04 root@beaglebone:/sys/class/remoteproc/remoteproc2# cat firmware Mar 24 21:45:07 are you trying to paste multiline text into chat? you've been here often enough that you should know better Mar 24 21:45:27 use a paste service such as pastebin.com Mar 24 21:45:44 for 2-3 lines? Mar 24 21:45:49 yes Mar 24 21:45:57 Yes sir! Mar 24 21:46:02 whatever you're doing to try to paste 2-3 lines, it's only showing the first Mar 24 21:46:35 actually, I see them all Mar 24 21:46:54 that's of no use to anyone trying to help you Mar 24 21:47:09 it's only showing the first to the rest of the world Mar 24 21:47:16 which probably means your irc client sucks Mar 24 21:47:17 OK, my firmware attribute is: am335x-pru1-fw Mar 24 21:47:52 I am using https://webchat.freenode.net/#beagle Mar 24 21:48:09 I can switch to whatever you suggest me to Mar 24 21:49:10 there are tons of irc clients for all platforms, I don't have specific suggestions to make Mar 24 21:49:59 since you shouldn't paste multiline text into chat even if your irc client *doesn't* screw it up, this particular issue of the web chat seems unimportant Mar 24 21:51:14 OK Mar 24 21:51:20 anyway, then I don't know why you're getting that error... I have no experience with remoteproc-pru (I use uio-pruss) and I don't see how you could be getting that error based on a quick glance at the relevant kernel source code Mar 24 21:52:56 That's sad :( Mar 24 21:55:00 what do you think is the best way to reset PRUs to the initial state? Mar 24 21:55:58 my py-uio library (which uses uio-pruss) has a nice pruss.initialize() method for that => https://github.com/mvduin/py-uio/blob/master/pru-examples/basic-test.py#L6 Mar 24 21:58:57 let me try Mar 24 21:59:13 note that if you want to use uio-pruss you need to switch the overlay to the uio-pruss one Mar 24 21:59:22 (in /boot/uEnv.txt) Mar 24 22:02:24 :) I just wanted to ask this question :) Mar 24 22:02:36 How do you like AI? Mar 24 22:02:53 haven't done much with my BBAI Mar 24 22:03:05 for the most part it's like my bbx15 but with more overheating ;) Mar 24 22:03:26 So overheating is still an issue Mar 24 22:04:01 I found some potential causes but haven't had time or motivation to persue them further Mar 24 22:04:39 So it is not ready yet for the regular use? Mar 24 22:04:54 well I don't have a specific application for it anyway Mar 24 22:05:30 Can I program uio in C? Mar 24 22:05:53 py-uio supports loading ELF executables (as produced by clpru) and includes an example for that Mar 24 22:06:36 note however that I haven't yet implemented support for the resource table Mar 24 22:06:56 note also that writing pru code in C negates many of the benefits of using pru in the first place Mar 24 22:08:24 (and the instruction set was designed for writing code in assembly, not for being targeted by a C compiler) Mar 24 22:09:23 what about the resource table if I program in asm? Mar 24 22:10:02 ?? Mar 24 22:10:33 you said that you haven't yet implemented support for the resource table Mar 24 22:10:51 with pasm you can't have one in the first place, if you use clpru then you'd write your resource table in C even if you'd write the main part of your code in assembly Mar 24 22:11:18 but regardless, the language you write your code in is irrelevant to the loader of the compiled binary Mar 24 22:11:34 Is the correct statement that the resources are defined in the asm file? Mar 24 22:11:36 (and the resource table is just a data structure and doesn't involve any code) Mar 24 22:11:41 no Mar 24 22:12:03 why do you care about the resource table anyway? Mar 24 22:12:22 which resource type(s) do you need? Mar 24 22:12:24 I even do not precisely what it is :) Mar 24 22:12:34 then don't worry about it? Mar 24 22:13:48 I just need to read pins, delay 100us, assert pins, measure the time between pin assertion and deassertion, and write some log somewhere (eg main memory) Mar 24 22:14:12 the delay between that is 100us :P Mar 24 22:15:11 and you definitely don't need a resource table for that Mar 24 22:15:11 I do not need 10ns precision, but I do need 10us precision. But I didn't get your joke :) Mar 24 22:15:22 I wasn't making a joke, I don't get what you're saying Mar 24 22:15:32 oh I misread Mar 24 22:15:52 I thought you said assert pins, delay 100us, deassert pins, measure the time between pin assertion and deassertion ... that confused me Mar 24 22:16:15 :) Mar 24 22:17:10 I do not mind assembly language, especially if it is a good one. Mar 24 22:18:14 note that if you want to measure pulse length you don't strictly need PRU, you could also use an eCAP module for that (which can trigger on edges of a signal (configurable: rising, falling, or both) and log them into a 4-entry fifo, allowing measurement of pulse widths and pulse period Mar 24 22:18:30 it's a nice one, and simple enough to keep entirely in your head Mar 24 22:18:44 My major concerns that my colleagues will tell me that in their STX world they can program everything in C++ and to have a reasonable hard real-time. But my initial idea was to write in assembly. Mar 24 22:19:27 Does it have an interrupt on pin assertion or I need to sit in the loop and to poll? Mar 24 22:19:31 hey it all depends on what you mean by "hard real-time". I doubt they can give any concrete guarantees Mar 24 22:20:01 ISR are typically good in guaranteeing timing Mar 24 22:20:22 no, interrupts would add unpredictable variable timing, pru doesn't support them at all Mar 24 22:22:07 (pruss does have an interrupt controller, but the two outputs it has for the local PRUs are just wired to bits 30 and 31 of the R31-read port, so you sprinkle jump-if-bit-set instructions around in your code if you want to) Mar 24 22:23:14 Do i understand you correctly that I can get an interrupt just for a few designated pins? Mar 24 22:23:37 and again, most likely i do not need thos Mar 24 22:23:54 but if I wanted to measure a pulse width in pru and didn't have other stuff to do at the same time I'd just use a loop that waits for the pin to be deasserted (that's a single instruction jump-if-bit-set/clear when using pru inputs) Mar 24 22:24:13 no, getting interrupts on pins would be difficult Mar 24 22:25:04 Do i have a register that contains a timer (or a cpu cycles count), or I need to count myself? Mar 24 22:26:10 you can use the IEP timer or eCAP timer... both are fairly simple to setup Mar 24 22:27:45 What is the best way to log something (like an array of measurements)? Is the only way to pass them to main cpu? Mar 24 22:27:47 I actually use pru for a timestamping application, and I've written a linux kernel driver that allows using the PRU eCAP peripheral to be used as the timing source that's also used by linux for its raw monotonic time, which I needed to be able to compare timestamps taken by pru (from its eCAP) with timestamps supplied by linux (e.g. by ethernet PTP timestamping) Mar 24 22:28:19 I use a ringbuffer for that (of fixed-size messages, for simplicity) Mar 24 22:28:59 And how do you output those? Mar 24 22:29:07 what do you mean? Mar 24 22:29:22 Like writing them to the log file Mar 24 22:29:41 userspace reads the messages from the ringbuffer and does whatever it wants with them Mar 24 22:30:24 is ringbuffer on PRU? Mar 24 22:31:48 and hopefully reading the ring-buffer head/tail indices is atomic and does not require mutexes? Mar 24 22:31:57 in some shared memory accessible by PRU, it doesn't matter much which Mar 24 22:32:17 a ringbuffer never requires mutexes, that's one of their principal benefits Mar 24 22:32:46 Good point! :) Mar 24 22:32:48 which is a good thing since you can't really easily make a mutex between pru and the cortex-a8, nor would you want to Mar 24 22:36:54 OK, I am on my way to write my pru app. What would be the best walk-through to have some examples and to show the details on how to load and to interact with the PRU code? Is it your py-uio? Mar 24 22:39:13 "best" is subjective... I think py-uio is pretty neat and makes interacting with pru quite nice (especially since you can interactively inspect/modify the pru state using the python repl), and it includes an example that uses a ringbuffer to send messages from pru to a python script, as well as an example that sends interrupts from pru to python if you need those Mar 24 22:42:42 You may no like it (or surprised) I am doing quite successfully all my development on beaglebone using C# Mar 24 22:43:46 also, in case you're curious, this is a real-world piece of pru firmware that just timestamps interrupts (coming from the dma controller) and logs them in a ringbuffer: https://pastebin.com/raw/b2MxyDxZ Mar 24 22:44:07 you can use any language that support mmap Mar 24 22:46:15 Nice. I am using mmap for gpio Mar 24 22:46:26 ew Mar 24 22:46:49 why? it is faster Mar 24 22:47:07 do I need a new tool chain to use qt Mar 24 22:47:15 but I am listening to the experts Mar 24 22:49:50 hey zmatt Mar 24 22:50:20 is the memory map of the arm set by the core design or in the SoC design? Mar 24 22:51:07 dreamhiker: I mean, there are cases where I'd do it too, but generally speaking when I use gpio it's for signals that aren't performance-critical. in cases where timing is critical I wouldn't use gpios from linux userspace anyway since you're subject to random pauses regardless. I also attach great value to allowing the kernel and device tree to abstract gpios for me so I can access them by name ... Mar 24 22:51:13 ...(see e.g. https://pastebin.com/YKW7Wcqu ) without software having to know anything about gpio controllers or pin numbers. then when there's a pcb revision and gpios move around (last revision nearly all of them moved), I just update the device tree and software won't know anything is different Mar 24 22:51:31 I also care a lot about security and don't want services to run as root unless strictly necessary Mar 24 22:53:07 yates: the physical memory map seen by the ARM core is set by the SoC design. however the memory seen by software (both userspace and kernel) when running an OS like linux depends on the page tables setup by linux Mar 24 22:53:27 no, i meant the physical memory Mar 24 22:53:32 ok, thanks Mar 24 22:53:48 the TLBs? Mar 24 22:54:03 TLBs are caches for the page tables Mar 24 22:54:04 I guess you are correct. When I switch my critical timing to PRU that code will disappear on its own. I will try to understand what you just said about remapping. Mar 24 22:55:59 dreamhiker: so userspace software on our systems that use gpios just open e.g. /dev/gpio/amp-standby/value and read/write it. it doesn't care what exact pin it is, which I define in the device tree (along with whether the pin is input or output, and in the latter case its initial state) Mar 24 22:57:05 (/dev/gpio/amp-stanby is a symlink (created by an udev rule) to the appropriate subdirectory of /sys/class/gpio/) Mar 24 22:58:34 this also means userspace software can't for example change an input to be an output (unless the pin is explicitly declared to be bidirectional in DT), which I feel is important since doing so could easily damage hardware Mar 24 23:02:13 (when meddling with the gpio controller directly via /dev/mem, you can also very easily damage hardware with a small mistake) Mar 24 23:03:10 zmatt: you mean by misconfigurtion a pad? Mar 24 23:03:15 misconfiguring Mar 24 23:03:33 or toggling a gpio you shouldn't have Mar 24 23:03:56 oh. well yeah Mar 24 23:04:33 (for example enabling the audio oscillator output on P9.25 while you already have that pin in use for some other purpose) Mar 24 23:05:29 like the "simulatorRollcageXOffset" Mar 24 23:06:08 whatever that is, I imagine it won't appreciate some other chip driving a 24.576 MHz clock signal onto the same net Mar 24 23:07:25 it's a Singer/Link F22 flight simulator control signal. but i digress.. Mar 24 23:08:06 sorry, been staring at ARM assembler ALL FREAKIN DAY Mar 24 23:08:41 dreamhiker: lol, great documentation... http://mapsbkp.geolives.com/monodoc/index.aspx?link=N:Mono.Unix.Native Mar 24 23:09:29 yates: how come? Mar 24 23:09:57 zmatt: it's now my job Mar 24 23:12:01 i feign insanity - i actually enjoy it. Mar 24 23:12:11 :D Mar 24 23:12:13 i'm not very good at it (yet). Mar 24 23:12:19 been there a month today Mar 24 23:12:52 do you know much about the ARM A9 core? Mar 24 23:13:31 (say no... just say .. no! :) ) Mar 24 23:14:09 not a great deal... I know it's an early ARMv7 (no LPAE), I think the second one after the cortex-a8 Mar 24 23:15:28 1 TB. cool. Mar 24 23:15:40 ? Mar 24 23:16:21 40 bits? Mar 24 23:16:34 i hadn't got to that yet. Mar 24 23:16:50 oh, NO LPA? Mar 24 23:16:54 LPAE Mar 24 23:16:55 no LPAE Mar 24 23:17:49 did ARM make a two-core "core"? or did they just jump from single-core to 4 cores? Mar 24 23:18:02 MPCORE Mar 24 23:19:27 are their registers in the MMU for the page tables, or do they reside in physical memory somewhere? Mar 24 23:19:37 s/their/there/ Mar 24 23:19:47 who's registers?!? Mar 24 23:20:15 the MMU is integral part of the processor and has a bunch of registers accessible via cp15 Mar 24 23:20:26 MMU is a co-processor interface Mar 24 23:20:31 yes Mar 24 23:20:37 that i got Mar 24 23:20:38 mcr and mrc Mar 24 23:20:39 (which is for example where you configure the address of the top-level pagetable) Mar 24 23:21:09 yeah although usually there's no longer an actual coprocessor interface, they're basically just "move to/from special cpu register" instructions now Mar 24 23:21:11 is this covered in the ARM v7 architecture reference manual? Mar 24 23:21:18 of course Mar 24 23:21:48 well it seems a lot of the CP15 registers are in the TRM Mar 24 23:22:09 don't they change depending on core? Mar 24 23:22:42 for a few registers the archref may leave some options to the core Mar 24 23:23:00 and some registers contain core-specific configuration, like the Auxiliary Control Register Mar 24 23:23:18 is there a register or other mechanism to identify the core? Mar 24 23:23:23 absolutely Mar 24 23:23:44 i gotta read that damn manual... Mar 24 23:24:08 it's only, what, 3000 pages? Mar 24 23:25:14 does the bbb ARM core have the trustzone stuff? Mar 24 23:25:43 the SMC instruction? Mar 24 23:26:43 the architecture reference manual even has a chapter about cpu identification (B7 "The CPUID Identification Scheme") Mar 24 23:27:06 the _core_ ? yes, every ARMv7-A core does Mar 24 23:27:30 you wrote that the precise momement i clicked on appendix B7 of the pdf.. Mar 24 23:28:07 zmatt: ok, are you (or anyone here) familiar with it? Mar 24 23:28:14 zmatt: do I need a separate toolchain to deploy qt5 Mar 24 23:28:26 but on GP AM335x devices the secure monitor is just a tiny tiny piece of code that supports iirc 4 calls to write values to certain special registers that are only writable in secure privileged state Mar 24 23:28:33 MattB0ne: just install it with apt Mar 24 23:29:10 for example, the MVBAR (monitor vector base address register) can provide multiple vectors. how does the secure monitor machine determine which vector is used when an SMC instruction is executed? the argument? Mar 24 23:30:09 i should say the interrrupt vector table, the base address of which is set by hte MVBAR Mar 24 23:31:16 yates: the MVBAR contains the base of the exception vectors for monitor mode (and must be setup by (secure privileged) code before SMCs can be done), and SMC simply invokes the SVC trap except in monitor mode (hence using MVBAR) Mar 24 23:31:18 i've seen it somewhere stated that it only uses +8 Mar 24 23:31:50 yes, inspecting arguments (either in registers or the constant embedded in the instruction) is entirely up to software Mar 24 23:31:54 zmatt I installed via apt, but I cannot run qmake Mar 24 23:32:05 aha Mar 24 23:32:10 MattB0ne: sudo apt-get install qmake Mar 24 23:36:09 so are you saying that, regardless of the argument, SMC calls the vector at +8? Mar 24 23:36:32 where is the argument passed? R0? Mar 24 23:41:45 where did you find "the MVBAR contains the base"? Mar 24 23:42:13 it's not in the v7 architecture reference manual Mar 24 23:43:16 did my meter run out? Mar 24 23:46:14 it's definitely in the architecture reference manual Mar 24 23:46:36 nah I was just fixing up some noodles Mar 24 23:48:31 the immediate operand of SMC goes the same place as the immediate operand of SVC... which is to say, absolutely nowhere. if software cares about it, it'll have to manually extract it from the instruction Mar 24 23:50:26 that's really funny - i'm eating noodles tonight too! Mar 24 23:51:07 instant? Mar 24 23:51:14 yes, raman Mar 24 23:51:34 but the wife's put a lot of goodies in it, hamburger etc Mar 24 23:51:34 yeah I failed to motivate myself to go shopping Mar 24 23:52:07 well thanks zmatt. as usual, it's a pleasure to pick your brain. Mar 24 23:52:14 i'll get off your leg now.. :) Mar 24 23:54:13 fyi Mar 24 23:55:13 * yates barks twice Mar 25 00:39:35 Has anyone used the BBBW to run an auger line down some pipe to view the contents of the pipe w/ an LED light? Mar 25 00:39:55 If so, how long does the USB web cam have in wire length before things go awry? Mar 25 00:40:37 Just getting some ideas circulating before taking on this task. Mar 25 00:41:59 I guess I would have to run the auger line in the pipe w/ a web cam on the tip instead of a drill bit tip. Ha. Mar 25 00:42:39 But...the line would need the electrical of the LED and webcam to reach 30 to 50 ft. Mar 25 00:42:48 Yikes! Mar 25 00:43:32 Can the 3.3v of the BBB lineout reach 30 to 50 ft. w/ lighting things? Mar 25 00:44:30 If the pipe is large enough in diameter, I would just run a bot down the hole. Mar 25 00:45:17 I guess I can test it. Mar 25 00:45:25 50 ft. here I come! Mar 25 00:46:10 ??? Mar 25 00:46:23 set_: what kind of USB web cam are you using? Mar 25 00:53:26 Some Microsoft cam. Mar 25 00:53:35 3000, I think. Mar 25 00:54:17 I broke my old one to check ventilation and under cabinetry. It workeths. Mar 25 00:54:44 But...it was close up and not 50 ft. in a pipe. Mar 25 00:55:44 I might need to purchase a "waterproof" cam or something. I am still dealing w/ this fellow about it. Mar 25 00:57:32 HD-3000 L2 Mar 25 01:02:04 I found some tools online for this idea. Some are very expensive and some are dirt cheap. Mar 25 01:02:22 But... Mar 25 01:02:34 They have 12' instead of 50' for reference. Mar 25 01:04:09 I found an USB extension cable for $40.00 and it does go about 82'. Mar 25 01:06:18 set_: they sell inspection USB cameras for like $25... USB, waterproof, 50-100ft cable Mar 25 01:07:00 Where? Mar 25 01:07:03 amazon Mar 25 01:07:06 Oh. Mar 25 01:07:07 Okay. Mar 25 01:07:08 No issue. Mar 25 01:07:26 Well, I will go and check it out. Mar 25 01:07:28 Sheesh. Mar 25 01:07:37 All my dreams collapse in sync. Mar 25 01:10:58 From titan to snail all in a second! AMAZON! Mar 25 01:21:31 I found those to be good for "unclogged" piping. Mar 25 01:21:45 I will wire an auger like previously discussed. Mar 25 01:22:05 Pipes are not always tidy and clean. "Yam mean?" Mar 25 01:29:48 https://pastebin.com/wHt4XMJV <<< Look at this sucker on Amazon.com. $800.00 large. Mar 25 01:30:05 Sewer pipe inspection! Mar 25 01:31:37 I might be able to make a small bot for use, too. Mar 25 01:31:40 Who knows? Mar 25 01:31:49 They show wheels on it. Mar 25 01:34:24 Wiring this sucker is going to be hell. I cannot wait! Mar 25 01:39:38 I found the auger cabling feeds and now I must take a venture! Mar 25 01:40:03 Dang sewage and electronics. Can it get any better? Mar 25 02:10:31 Toothless and hairless here I come! **** ENDING LOGGING AT Wed Mar 25 02:59:57 2020