Hello. Hi, Unexpected Maker. Hi, Piata. I'm trying a new mic setup today. Hopefully it's good. I saw Yanni was waiting with a deep diver gif. The window's all squared away here. You can hear me though, right? It looks okay on my end. It's just going to be mono. Loud and clear. Awesome. I was listening to it. It was a little bit fuzzy earlier, but um, we'll see. The nice thing about this is I don't have to worry about moving around. And I am trying the ultra low latency on YouTube as well, so we'll see how that goes too. I forgot to move my... I can always go to the old audio. You can you can hear me on the other mic now, I assume. Something happened on the USB, I think. Ah, bummer. It looks okay. So yeah, so this is the other audio. I don't know what happened. Failed to read out thermal zone. I don't see any... this is all like boot stuff. Oh, that's garbage. I wonder what happened. I mean, I know Linux hates USB, that's for sure. I was hoping this would be a good solution. OBS doesn't see it now. I got a Scarlett 2i2. It looks like it's okay. Hang in there, folks. I know you're... You all are great. Unplugging it and plugging it back in. Oh, DCD's reading the USB book. What makes this harder is there's a cat on my lap right now too. There's the plug. I'm surprised it ends on my lap even though I'm talking. I re-plugged it in. Yeah, I'll be better. Sorry. I don't know. Okay, I'm moving back to the old system. That's unfortunate. It just like disappeared from... It disappeared from OBS. Like I had it in there and then it wasn't. Sorry, folks. Hang in there. I'm just gonna get my headphones back on as a way to make sure that I'm somewhat close to the mic. I had too many cables on my desk. Oh, maybe it got... There it is. Vin, pick it up. All right, kitty, get up. I know, I know. Sorry, folks. We'll get going here in just a second.  I knew today would be like that. Trying out a new audio thing is always, always sketchy. I guess I could have tried it like under the hood. Okay, we're going. We're using... Let me know if that original audio was much better, although I think I recycled all the packaging already. I shouldn't have done that. But yeah, we'll go with this today. It should be fine. So let me say hi to folks. Yeah, M. Lindholm. Thanks for saying the audio was back and gone. Hey, Dave. Hey, Bruce. Hi, Pierre. Hi, unexpected maker. KeithyEE. AskPatrickW. BruceS. Hi, Charles. Hey, Dr. Hi, Huha007. Thank you all for hanging in there. Hi, HamzLabs. Hi, Skr. They were going good until this is loud. I can turn it down. Happy Friday, Linux 203. This should be kind of what it normally is. Hi, Xmicron. Okay, let's get going. Let me hide the... Not this. Oh, we might do KeyCad. I don't think so, though. I hide this. And we'll do housekeeping first. Hello, everyone. My name is Scott. This is a deep dive with Scott. That's me. I work for Adafruit. They're an open source hardware and software company based out in New York City. I work for them on CircuitPython. CircuitPython is a version of Python designed for microcontrollers. So really small, inexpensive, easy to access, easy to put in lots of different things, sorts of computers. And we try to bring the Python language to that. So it's really the merging of software and hardware in that world. So that's what CircuitPython is. That's what Adafruit is. This is a deep dive. They happen normally Fridays at 2 p.m. Pacific. We're a little bit late here today because I was trying to use a new audio setup that properly stopped working right after I started using it. So that's great. Really good. But we're back with the old system. It should be just fine. It should be solid because it's what we've used for a while. Yeah, so this is a deep dive. If you have questions, I'm happy to answer them. I'm kind of in the middle of something. So we'll dive pretty much right in. Yeah, so they typically run for about two hours. So we'll be here for two hours. So that's plenty of time for questions if you have them. And next week we'll be on Friday as well. And then the next week after that, I'm planning on taking off. So the first of October, there will not be a stream. So one week from now, there will be. And then two weeks from now, I'm out of town. So there will not be. And is that all the housekeeping? I guess the cat down here, that's Spook. He's usually in here. The other cat that was on my lap is Vin. She usually doesn't like it when I start talking. So she peased out. So Spook is epileptic. Occasionally he has seizures. But it's been actually, he's been really doing really well. So that probably won't happen. But I just like to give folks a little bit of a heads up for that. Yeah, could I set it up to automatically do like two hours of Spook just sleeping in the window? Yeah, it's getting rainier here too. That's what Bruce is saying. Hey, what's up? Bed intruder. Okay, so let's, I haven't seen any, yeah, open source lo-fi kitty cam great filler. Yeah, I won't be here to run it. So we'd have to teach Vin how to run it and Spook could just sleep there. All right, so let us dive right in, I guess. I haven't seen any questions come up. So if you have questions, otherwise what I've been working on, I talked about it a little bit on show and tell, but I've been trying to get tiny USB running on the Raspberry Pi, the Raspberry Pi, not the Pico, but the proper Raspberry Pi. This is something I've talked about the last few weeks. But because unexpected maker picked up the S3 work and I looked at the data sheet and was like, hmm, like the only thing that really needs a lot of work on the S3 is Bealeigh and I don't, I need a break from Bealeigh. So something that's been on my mind a lot is bringing tiny USB and circuit Python to the Raspberry Pi 4 in particular. And so I've been working on that and haven't been making a lot of progress, but it's like learning all about it. Yeah, I'm sorry, I'll show you what my setup is. So unfortunately, the only power supply I had for the for the CM4 IO board is actually the one that I use for the overhead. I ordered more from Digikey, but it doesn't come until next week. So I'll use Catcam here. Hi, Wendy. Yeah, we'll go to Catcam here. You can see there's Catcam, there's Spook. So let me show you the setup here. I won't be able to show it kind of like all the time, but I will just, I'll give you an overview of what I'll be working with as we work through stuff. So there's the cat and I'm going to use Catcam to fly over here and show you my desk. So the setup that I have here is I've got this salier and I was running these wires into the IO headers of the, of the, so this is a Raspberry Pi 4 CM IO board. And sorry, this, this Catcam is not the best cam. The overhead's better, but we'll use that next week. So here you can see there's this CM4 module that's set down onto this board that breaks a lot of stuff out. So CM4 is compute module. So this is like a Raspberry Pi 4, but in like a, put it on a different board sort of form factor. I had the focus reasonable. There we go. And so the regular Raspberry Pi header is over here. And what I've got going out is these, these three wires are UART to a UART to USB converter. So that's how we'll monitor your UART output. And then this bundle of wires here is to a J-Link there. And this is the new audio focus rate thing that I, that wasn't working. Um, I've got power on a switch. So I can turn the CM4 board off and on. And I've got this, it's an SD card reader. So if I need to flash a new SD card, that's what I'll be using. So that's, that's the setup that I've got. I haven't actually gotten to the point where I'm testing USB. So when I test USB, we'll be plugging it in there, but I'm not there yet. Um, unfortunately. So can you get a GPU to run with that PCIe header? There's a, look up Jeff Geerling. He's a YouTuber that does a lot of Raspberry Pi stuff. And he's tested multiple GPUs on this header. So yeah, I, I think some of them can, um, but I, that's not what I'm focused on. So yeah, check out, check out Jeff Geerling. He does a lot of stuff in that vein. Testing and things. Wow. Look at that white balance change. Okay. So that's the, there's the overview of my desk, as it is right now. And you'll notice there's no keyboard because I have the keyboards out here on these mounts. So yeah, that's what I'll be messing with. And we'll go back to spook cam now. And I'll stop making you ask Patrick. W asks, uh, what Mac, what macro pad shortcuts do you have on that? Um, I basically only have one, which is play and mute, um, play and mute the, uh, my audio that I'm listening to, like the music I'm playing. So yep. So we're back at cat cam and let's go to the desktop here. And I'll pull this up first. So yeah, I just wanted to give an overview of, um, you can see I have the notes in the background. So a lot of what I've been doing is, uh, trying to figure out just like the development workflow. So, um, they're more complicated. Um, they're a lot more complicated. So a Raspberry Pi, uh, proper, these are what are considered Cortex-A, A-class, um, microprocessors. So they have, they're microprocessors, I think largely because the RAM is actually a separate chip. Um, and it's four cores, um, for the Raspberry Pi 4. Um, and those cores are like fully capable of running Linux or anything. So, um, what I got here is I've got, this is the USB to serial, the UART to USB output. This is my debugger. Um, and let me pull up the code. So, um, I've been cribbing off a number of, a number of sources that I will have to pull out into this other browser. Um, what about peripherals? So I think the peripherals are pretty much the same. Um, so, uh, let me see. Sorry, I just got the text message. That's why my brain stopped. So there's these files that you can get that are these, they're not full data sheets. They don't like to disclose, particularly this stuff about, um, the GPU side of, um, the GPU side of, uh, of the Raspberry Pi, which is actually the main bit that, the main thing in the chip, uh, the BCM 2711 or 2835, like the main thing is actually the GPU. It's not the, the ARM cores. The ARM cores are just kind of like off on the side. So this is, uh, you can find data sheets for their peripheral trees. Um, but you can't kind of like find the thing overall. Um, but this will tell you like physical addresses and stuff like that. Um, and this is not for the right thing, but I thought I, I had it open. So I thought I'd pull it up. Um, yeah. So this is not for the one that we, we need, but, um, you could basically treat it like, like the peripheral side of things is, uh, pretty similar. Uh, it's pretty similar to, uh, like a microcontroller. It's just a memory bus with registers for different things. Um, the CPUs are actually the part that's a lot more difficult. Um, so doctor asks, so what's the big advantage you expect to have using a Pi with CircuitPython on bare metal? And the answer is, uh, HDMI. Like, hands down, that's the reason I'm doing this is because, uh, the way that it starts up is the GPU actually starts and gets everything going. And then it can, and then it loads stuff for the ARM cores and then runs the ARM cores. So the way that it works and let me, sorry, I have a ton of tabs open that are on this other Firefox window that I should drag over here. Um, because I'm sure that we will reference them. Maybe. Yeah. Oh, we want that. Some of these tabs I haven't had open for a while. CM4 data sheet. I have a lot of tabs. Yeah. Okay. Here. I think this is it. So there's two, two places I've been really referencing. So, um, I should give a shout out first to crowd supply. Um, the Pai Unora, which is probably not on the, oh, here it is. So this is one of the reasons I'm interested in it. And this is, uh, an idea that I came up with, uh, kind of in collaboration with Timon. Um, so this is a, it's a Metro shaped Arduino shaped, um, is the RPY4 essentially a GPU with a few ARM cores attached to it? Yes, I believe so. Yeah. Um, isn't that a bit against the whole open source spirit of the project? The fact that the GPU is closed? I mean, none of the stuff that we're doing either, like I don't have access to closed source stuff nor will any of the code that we write be closed source. Um, the GPU, yeah, is closed source, but it's documented enough to be able to spit stuff out. So, um, yeah. So Timon did this Pai Unora, which is really cool. And I, he sent me an early one that I've stashed away. Um, but the idea being that you can treat this, like Cortex A level thing, kind of like a, a regular like microcontroller. And, and you get this weird world of like a lot of power, but, and some things like HDMI and PCIe, but you could treat it like it's a circuit python thing. So I, I love like mashing those two things together. And this is why I'm really interested in it. Um, so check this out if you haven't already. Pai Unora is pretty awesome. Um, and then Timon was starting to work on circuit python. And one thing he linked me, linked to me too was this, uh, I sometimes, uh, Raspberry Pi 4 OS Dev kind of tutorial. And this is a really great reference for very simple bare metal things. Um, so you can see it's like 12 parts. It's sorted a little weird because of the last three. Um, hi, Johnny. Um, but this has kind of got me going. And you can see here that part five is frame buffer. And so it's like part five where they start to like poke things to the GPU to show things on the display. Um, which is awesome. Right. So like a bit confused by the Pai Foundation using a relatively closed thing for the pies. That's all, I think the reason that is is because like the folks that started the Pi Foundation used to work at Broadcom. Right. So like they had all the background on those chips to begin with. And I think they worked on those chips. So they, they they had access to the closed bits. Um, and this is why like Beagle Bone Black is meant to be a, an alternative that's more open. Right. You can use that if you like. Um, but the fact that the GPU actually starts up these chips is actually quite beneficial because it simplifies a lot of the work that we would have to do. Like we could potentially do like other Cortex 8 level, um, stuff once we kind of get it going for Circuit Python and tiny USB. But the startup stuff is different. So like Raspberry Pis are actually a bit simpler from my understanding because the GPU does a lot of that work for you. Um, yeah. So there's this tutorial that's been really helpful. I kind of picked, picked which ones I wanted to do. You could see that they have frame buffer and then they have Bluetooth as well. So Bluetooth would be cool. It's done by a separate chip. So maybe that would be something that we'd be able to do too. The other thing that would be really interesting is on the Pi 400. If we could do USB host, we could use the keyboard and you'd get like a self-contained Commodore 64 era style Circuit Python experience, which I think would be kind of wild as well. So I think bringing Circuit Python to your TV is like really interesting. And I'm really interested in it. So obviously, um, okay. So this is some USB stuff. So Blue Child did actually did a Micro Python port. Very much similar to what I was just talking about where it has USB host. Only if it looks like a C64. I mean, it looks like an updated C64. Good night, Felix. Yeah, well, there will be a recording and check the notes at the bottom for time codes and stuff. That way you can skip around. Can you use a VM and run Raspbian and Circuit Python? Folk knowledge, that's a great idea. That was one of the things I was thinking about doing on the stream is using QMU to figure out what's going wrong because it wasn't working. Let's see what else do I have up here? I have, so these are firmware files. So some of these files you need on the SD card. So basically what you do is you come up with this kernel image files, what you compile, and then that gets loaded by the GPU and then run on the on the ARM. Since the GPU starts up the CPU cores and all, could you have four instances of Circuit Python across the four cores run independent of each other? You could, but they would have to know which core they were on so that they wouldn't clobber each other. And then I don't know what that means for USB, right? Because there's only one USB peripheral still. But yeah, potentially. Circuit Python don't virtualize hardware while that's going a new direction. Well, Urish is actually like working on that. There's somebody in our community who wrote their own RP2040 simulator in JavaScript and they have Circuit Python booting it in the browser on it. So here's the peripherals data sheet for the 2711. Here is the USB source code for Linux as a reference. I just got JTAG working, which I'm very excited about. Although it's like half working. Here's this, this is the device tree that tells you like address ranges and stuff for different things. So I'll take a look at that. That's like, oh, once we get to the point where we're actually like implementing I squared C, we'll need that. If there are enough PCIe lanes, maybe each core could be given a USB controller on a PCIe lane. I think it only has one or two PCIe lanes. Yeah, I hadn't thought about like doing USB over PCIe is a whole other thing. Okay, so this is kind of like the state of my brain. Oh, this is the other thing I've been referencing. There's this Raspberry Pi OS repo. And they have this lesson about interrupts. So they talk more about interrupt stuff. So what I was doing is trying to get, yeah, so interrupts are different than Cortex-M. Because in this land in Cortex-A land, it's designed for operating systems. And so it has privileged levels. And when something happens, it raises what it calls an exception. And that gets handled like by a different, by a higher privilege, privileged level. So there's like this whole mechanic of exceptions. And then interrupts are like some subset of that. We can see here that like there's this synchronous exception, IRQ request, fast IRQ, and then the system error that can all happen. So, and then what you do is you, if you get this IRQ exception, then what you do is you read from the interrupt controller, which one it actually was, and then delegate. So I was working on that. That may be one of the things I have to do, but I actually had to do a little bit earlier work of just getting the UART running. So let me show you what I've got. So I've cribbed what you see here a lot from those two tutorials, the Pi OS 1 and then the bare metal Raspberry Pi 4.1 as well. So this is not all my code. This is code, they're liberally licensed. So I've been copying it. So this is, this is the code that starts. So when that kernel.image is loaded, it's loaded at a particular address, and it just jumps to it. So this is the first thing that you'll do. And here it's doing a check to make sure. So I think it must run this code on all four cores. So we make sure that if we're core, not core zero, then we just wait infinitely. This sets the stack pointer, and it loads us at 80,000 hex. So the stack actually lives lower than us, which is fine for now. This is me trying to set the vector table address. There's a similar thing in Cortex M zero. But I think there might be multiple of these. So I'm having some issues there. This set sets all the BSS section to zero, which is all of the variables that start at zero. And then it jumps to main. And in case we return, then it loops indefinitely. So that is kind of like this is all assembly. And then this is me trying to do the interrupt stuff, which I'm not sure is working yet, but it compiles. So that's okay. We'll look at that later. And then most of this is in tiny USB. There's two spots, three spots, two spots that we have to look at. So what I'm trying to do is this CDC mass storage example. And you can see the build artifacts end up here. But the things that I'm actually changing are in the board support package for the CM4. So family.c has most of the stuff family.make. And then there's a MCU support stuff. So that's where the boot startup assembly is interrupt stuff and IO stuff and the linker script. So that's kind of like all the stuff that I'm changing. And this is in tiny USB. This is not in circuit Python. This is all I'm trying to like get all the tiny USB stuff going before I we have like Timon and I have a branch that's starting to get circuit Python running on there. But this has been a really good lesson in with tiny USB because you're you're shrinking down the amount of code you're doing. It's easier to manage. And so I spent a couple of days this week just trying to get it all building. My gut is always to use clang. But it turned out that clang needed libraries anyway from GCC. And it was calling out to GCC. So I finally just switched it all to GCC and that went much better. So yeah. Simon says you could run circuit Python on three of the cores and then have the fourth core for a management and user interface core and the USB run on that. And then you can jump between circuit Python instances via there. Pia says looking at assembler is like looking at grains of sand and a brick that's part of a wall. Yeah. It's pretty short which is nice. One thing it doesn't have to do is loading all of the read-only data because it's already been everything's already been loaded into RAM. That's something the GPU does for us I think. Okay. So the main thing here is so the USB peripheral itself in the Raspberry Pi is a peripheral that is licensed from Synapse. No. What is it licensed from Synopsys. That's what it is. So in source portable Broadcom I just copied a Synopsys directory and that's straight out of ST. So ST uses the same USB peripheral in ST devices that Broadcom uses in its broad in these Cortex A class stuff which is great. So most of the interacting most of the difficulty of this will hopefully be finding the quirks and like getting everything running. It hopefully won't have to do with like actually interfacing with the peripheral because it will be ideally pretty much the same. But I haven't gotten that far. So the two things I've been trying to figure out first is just blinking an LED and getting the UR output because the UR output was not being very reliable for me. So in family.c here this is in Bordnet and this is Bordnet is like one of the very first things that is called by one of the very first things that's called once tiny USBs main for the example goods run. So here you can see this is me blinking an LED. So these these no ops here are weights. So that's just like making time go by and then setting true and false for 42 is the pin that the LEDs on an 18 is one of the pins that I have the CLA on. And then I have it doing UR prints and those weren't working and it took me a long time to figure out why which is why I was getting to the debugger. Yeah it's funny you say blink blinking an LED is square one but I thought it was hilarious that this Raspberry Pi for OS Dev tutorial doesn't actually blink an LED. It goes straight to UR. So I had to kind of like figure it out on my own and like none of the documentation is really good for like what pin number is that on like I had to dig into the device tree stuff from the kernel. It's a huge gripe of mine that all a lot of these Cortex A class chips are not very well documented because what the creators of those chips do is they just add they just add Linux support and they call that good right. This is the class where it's like Linux is the de facto thing that you run on it and therefore all the documentation is really not that great which just frustrates me to no end. So I have this example it's got hello to GDB and I actually the next step I wanted to do is just rebuild it reload it from the start and see if it works. I got it reloading somewhat over GDB like this is GDB here and I'm using using open OCD to connect to it but yeah let's shut that down. I wanted to give it a shot. I found this I was doing something really stupid so what what I was doing before and so here when I was saying const care start greeting blah blah blah I actually had it in the form const care greeting and then array but this is a problem because this uh this returns the pointer not exactly the same type so I was having crashes due to that and I think I finally figured out my problem which is I needed to do this so I want to kind of start from square one and build the example so it compiled family.o and it linked it together and now I have another kernel image. So the SD card is in I'm in the right directory so I'm going to copy that over and I'm having KDE is crashing if I eject it so I've been doing it that way so now I'm putting it microd yet SD card in and turning it back on and it takes about I was surprised by this it takes about seven seconds for the GPU to boot right so it still didn't work I saw the blink and then it stopped working so something is still funny yeah 30 kilobyte was the array also on the stack yeah like the address was on the stack it was it was not right um okay so now it's not working unfortunately um it stopped blinking but we never got any your output um so it definitely got somewhere down here yeah seven seconds that's a lifetime at this level um it's not running from the card so what happens is that the GPU copies the kernel image into memory um so this is non-interrupt ur output correct so it should just pull that there's space in the ur before it writes um okay but it didn't work so and we just loaded it so let's actually do the jlink um and then here we need to reconnect to open ocd load and back trace oh I think it reset us so I've been doing a break at what actually I think I have a break points um yeah so here we can do like info registers and this will give us the registers of core zero which is awesome so we have a break point at boarding it so and we're at the program counter here is at start so this is where it loads us in um so we're going to run it we break at boarding it and here you can see it's printing out information about the other three cores you can see that they're just halted um which is fine so here we are in boarding it and we can do info locals and we can see that the greeting here is correct um so let's just continue and it didn't blink or anything and now we're at this address 200 and there's like garbage in the stack so this is if somebody out there has worked with cortex a's and has seen this let me know so my working theory is that something is happening obviously and um I was thinking that maybe it was uh trying to so there's different levels of um of execution that's I think EL might be execution level um any watchdog timer is going off maybe um yeah so I think right now it's not set up so that all exceptions get caught by my code so there's there's three levels there's one two three and I think there's a there might be a level zero as well um so what I was just starting to look into is like uh yeah okay so here's there is these exception vectors so this is for a single thing oh phomy guy's pointing out that you can use blinca display i o to output to hgmi yeah populate all the other exception vectors yeah that's what I'm thinking um like there's this vector table base address um show invalid entry message like v bar el one I think is set let's see what this does but I wonder if there's like other v bars that we have to other system registers um exception vectors the exception vector exists in a vector table at the exception level the exception is taken to each exception level has an associated vector base address register right so that's the v bar thing we're only setting one of them yeah rufus it is funny that array and pointer made a difference it's it's a subtlety and like that's a common mistake I make with pointers it's just like you have one too many one too few um so this offset here this 200 seems awfully suspect um I wonder if somewhere in here there's so what if we just set all the v bars to the same thing reset vector address like is there v bar el I guess we could just see what the compiler thinks the compiler knows um s zero one two and then linux after it it has a it has an isb um which is a instruction boundary see I'm I'm not confident that if I set this now well let's see if it compiles I think I might want to like restart the device unknown or missing system register name okay so zero doesn't exist but I think there might be a three so we should be able to handle them all and what we would do is we would just end up in okay so that built um let's let's just do it the full way to make sure that we're in a known state I'm not sure how much of the CPU resets when we just do a mon reset so this is one of the things I knew would be this is probably one of the hardest parts I I expect for for getting Cortex A is going it's just like figuring out how interrupts work and there's two different interrupt controllers on the different Raspberry Pis there's like a classic one and then there's a standard ARM one um which actually and and these exceptions will vary with the CPU as well so watch this and I'll stop this OCD because that's going to be bad so I'm going to wait for the blink and we can actually see where it is this is so much fun we're still there nice well I don't know if that worked then is it's finally cold here she's like you you're taking my favorite bed you jerk okay she's left again um I don't know what do I print system registers don't sure I can see so we're the stack pointers there the program pointers there but if we do a mon reset the program counter doesn't always change which I think might be be maybe we're in an exception state already um how do other working demos and Linux initialize the registers so the working demos don't do interrupts at all and they seem to work um so I don't know what I did find is if I do jump start oh I still have the breakpoint that's gotta be an exception handler and it might be all right let's read more up on this there's gotta be a way to read this state okay exception classes and the esr el syndrome registers if the exception is a synchronous exception which I wouldn't expect or an s error interrupt information characterizing the reason for the exception is saved to the esr el at the exception level the exception is taken to the information saved is determined at the time the exception is taken and has not changed the result of the explicit synchronization that takes place at the start of taking the exception the additional use cases as well yeah I mean mainly for me it's just HDMI like I've looked and looked and looked for ways to do HDMI that are low cost and like just really hard to ignore the raspberry pies for that okay so esr el x those are we have those in if we do info registers we see that we have esr el zero esr el two so so one and two are empty but or yeah one and three are empty one and two has something in it so it's got let's see four and then 200 so let's see if that makes any sense compared to what we're reading I don't think so what bit is that two in is indicates the cause of the exception listing the valid ec field values okay so the esr el two esr el two has let's see this would be 36 bits esr el two is made unknown as a result of an exception return from el two like zeros is unknown reason and that's probably what it is let's see 24 bits each hex character is four oh so we do have a two in that next field not here but you see I guess would be one then huh trapped wf instruction execution does that make sense iss encoding like this the iss encoding the iss s is is blank i don't know what this is that too would be the 26th bit i am like gonna be toast after this but i can't find a lot of good resources for this so hopefully hopefully this video will have does the i o have different trust zones that need setting up i mean maybe but like the other examples i've seen for ur do not the 25th bit what is that what is that bit that i skipped over i l l is what instruction length on a warm reset this field resets to an architecturally unknown value pc alignment fault exception stack pointer alignment fault exception any debug exception except for breakpoint there is a breakpoint instruction um i mean that seems plausible to me that it's an alignment thing i don't know what else do we have here like this looks like junk but maybe it's not el r e l s p s r i think is that stack pointer for the particular level let's just see if we can see what el r el el r what was it it's not what it was el r el not found el r el to run code at non-secure hey set could you instruction trace in gdb until it crashes yeah we could try um i'm really like for some reason like reset doesn't work but like the program counter is still 200 which i don't understand why reset doesn't work um like the stack pointer is where we want it but not the program counter but if we do jump it still does it um it could be like a bad address what happens like i've gotten output from this though that's what throws me off is like i don't think i'm doing anything weird that i haven't done before um i mean maybe it's an interrupt maybe we should try to read the interrupt register like if it was an interrupt that we weren't servicing then we would definitely have a problem let's try to read this i appreciate the pain during debugging and trying to figure out how to make progress anyway well that yeah that's what this is all about okay so there's nothing pending at that register which is some magic address i pulled from somewhere um i mean there might be like i don't think there's like an svd file so it doesn't look like there's anything there yeah it feels like an instruction alignment problems to me um the other approach i was taking was i was and maybe this is worth doing too is the reason i have this alia out is i can have the code set pins high and low as it progresses so with this is like this is what i was doing before the debugger so that you could see like the sequence of things starting up which might be worth doing to figure out where it's stopping print to a pin debugging yeah the nice thing about using pins like that is that it means that your code can keep can keep running which should not be underrated same with printing it would be nice if we were printing but that might be our problem what did i change i don't know i don't know let's see if we can get the gdb2 grading out which is commenting that i feel like this print call has caused me a lot of headaches even though i thought i fixed here as well so let's just give that a shot um and let's make this a while true so we'll just hang out in this loop faster than printf to serial yeah 100% pins are pins will be faster okay so i'm gonna rebuild in this and again i'm gonna just do it without the debugger i just don't trust the state that the cpu that the debug debugger gets the cpu back in which is why i'm like starting fresh which is a pain but this will bring up stuff i'm looking for the blink that happens before the print nothing i mean maybe we're faulting sooner now that could be entirely possible like i wonder like we added these things if we go back to just the one this is all like i mean i'm learning like a new class of cpu so you can't expect it to go perfectly smoothly what does the logic analyzer show on pins i it's not hooked up right now um i will hook it up shortly i am curious how circle initializes we remove let everything crash and come back because you know that's good yeah i should do the there's the blank and there's the hello okay there's a startup 64 let's take a look at it armstub there's a start read write cache latency floating points in EL3 vbar setup gic so that's gic is the interrupt controller switched to EL2 oh boy haha startup 64 and live chain boot works oh it's from u-boot enable EL1 access to timers oprocessor traps init exception vector table i didn't realize there were so many bare metal rpi projects out there not enough uh start second area okay that's for the second core check if we're in EL1 t mode i don't want to actually take anything from uh gpl stuff though i mean it could be an exception level thing it would be nice just to figure out how to figure out where where the heck i am um let me just cross my fingers and hope i did have to add these knobs into here 42 is the led build again i wonder if the 200 is just like from the debugger but i've definitely had it before where it wasn't i uncommented something and it's smaller by 80 bytes like how does that make sense i should set the cv back up the led is off we did not get a second hello to gdb2 where are we where oh maybe this stopped us oh we're important it yeah see that's the problem is i can't really oh i mean that's where what is my stack pointer when i'm trying to do the stack trace the stack pointer is what i would expect it's 7 f f d0 so what is how is the stack initialized in the in the way the debugger expects that should be the compiler like the compiler should be doing all the proper stack stuff um when bordenet or when main is called right so we should see a main bordenet something else 2t 7 f f d0 i mean i guess these should be df0 should these be 64 bits no un64 that's weird i just wanted to print this out see like what's d four eight stack see so this is kind of weird like the back trace is getting it from somewhere else doesn't gdb have a way to hex dump memory yes i'm sure it does does that mean i remember how to do it no it does not um like where is it reading well this is this is interesting that this esr el 2 is pretty full like there's a bunch of bits set there sps r i don't know if forever i don't know i am out of my depth if el equals zero and cps r were you at el 2 i don't know i thought about that like the program counters here but the stack pointer is still kind of where i would expect it but why is back trace then giving me garbage it doesn't actually look like d0 e 0 8 55 5 done 3 i think this is out of the range of hardware watch point on the execution of 200 i've already got a break point there and that's what i just hit like we're on this break point for like that i think that's what you mean like a break uh watch point on execution is a break point so let's just see a arch 64 gdb el level arm what is the current execution mode this is handy depends on the execution mode current el once an exception comes can i read any register to determine whether i'm in s error synchronous rq if i q exception himler if i'm in el zero mode reading cps r causes an exception i don't think there i don't think i should be like that's the other thing we could try running this in q mu that might give us more information let's try that i want to play around with that let's see what q m uses i've never done this before let's do it in a different let's do it in here q mu a lot of this is things i haven't done before let's find that so there isn't a board definition for the pi 4 but the pi 3 is pretty similar oh that's what i wanted oh i'm in the root so it would be examples device cdc msc build raspberry pi kernel 8 my like cpu my my actual cpu like kicked on it's like oh i gotta emulate something okay so that's a start we don't need the graphical output is there a virtual jailing for q mu uh yes there is um you can have gdb you can have q mu do a gdb server um i was looking at that dash no graphic thank you bark does it emulate arm 74 l arch yes i think so i think you can do all the way yeah i think you could do zeros through threes and they just haven't added the four stuff for q mu um and in fact i think you can emulate usb host so i was thinking like for debugging usb host stuff this could be a good option okay where did i see that here we go this is the person that added it this is the compilation here's how to run it okay this is what i was thinking of dash s option makes q mu listen on port one two three four and s makes it stop at execution until you give it the continue command no graphic lowercase s capital s like that turn this off so we don't get confused let's turn this off and let's do the arch that and i have this i have i have the gdb startup that's not right so it times out but now we should do tar ext one two three four okay so now let's see what continue does and it kicks on so i know it's running and control c and hey we're in the same place the stack is slightly different but we got to 200 again that seems good that the emulation did the same thing we're in line 56 of main what is line 56 of main versus main 56 board in it okay so how do we do you art the arm docks are quite handy sometimes there's a lot of arm docs i think that's the challenge you can add virtual usb serial ports i don't want to tell that oh booting a bare metal system what for arm v7a but that's close enable interrupts so that's in the programmers guide for the seven booting a bare metal system boot code i think i have the this is the reference but i'm sure that there is a perfect you all are so helpful bare metal boot code for arm v8 processors in fore mode see what it says setting up vector tables there are vector tables at eat for each exception level can be read you must place boot code at this address i don't have any black fin experience see the problem is the gpu probably could actually be doing stuff before us like this is what i was trying to get set up i tried to do that with all the same thing only 53 pages or so i know right it's got example code ea irq and the fiq bits initializing registers system control registers so what do the other bare metal system demos do to freeze the gpu i don't know what you mean by freeze the gpu like these other simple demos they don't do a lot like i really don't it's probably going to be like oh when we get it but stop the emulation system reset can we like go back in time on qmu there's got to be a way to just have it print everything right oh i thought the gpu was interfering with our code yeah maybe dump guest memory reverse execution how do i reset is it mon reset i don't really need reverse execution i need like qmu to just tell me reverse step i wonder if it works i guess i could set a breakpoint how did i break how do i set a breakpoint on that no hey let's see let's also break it coordinate try to blink an led on a pie i got that far system reset continue okay so we did coordinate and now we continue and now we're here and we do reverse step what what sorry my my instinct is to like use my full monitor all right we got 20 more minutes qmu is pretty neat qmu pc logging and debugging for qmu virtual machines qmu monitor i mean that's what we're getting through mon info arm eel numbering uses a convention reverse from x86 rings well so i don't know either but that's good to know for the future info registers info block who there is temp qmu log and then save on help block remove all the logs show trace what do you think tb is log mmu related activities log when the guest os does something invalid got a delivery um what do you think tb stands for on log cpu sure why not and then oh oh you know what maybe we should oh that looks nice look there's our p state program counter why is our program counter that doesn't look great hmm i don't trust this this doesn't look like it's the right how do i turn it off just set the default cpu oh on help log hmm these don't look right this just looks like the same thing over and over again qmu never trust so many zeros exactly gdb usage let's take a look at that debugging multicore machines separate inferior info thread well that makes more sense that the program counter of the other three cpus is um what we're printing out how do we log the cpu we care about cpu zero show trace before log none this is pretty neat i'll give give it that trace that doesn't look nearly as helpful well that looks like program counters of everything else 81 84 81 88 that's it 81 88 like i don't care that there's four i don't care that there's four use a unix socket which i don't care about a single step behavior i don't get it why can't you just tell me what's going on debug slash expert options serial running emulation in single single step mode use dash d help for a list of log items it so bothers me that like the same thing happens translations blocks trace compile the simple log or f trace tracing back ends trace is what i want one log mon trace event what is single step mode oh maybe this is the trace output can i not control see it how do i stop it rabbit holes after rabbit holes it's very reassuring to me to see struggle as much as i do sometimes you're welcome how do i quit control c doesn't work system power control i'll delete that's not what i want i'm trying to quit qm you oh there's stop like if i i can't control see that control a x thank you it work um let's trace stuff tracing pattern why doesn't control c work trace that help this list really long gic is cool oh man i'm gonna like this once i figure out how to use it this list is like not sorted either this is like everything cpu in cpu out qm you trace arm how to use the simple trace back end oh control c is supposed to be sent to the emulated machine yeah it reminds me of screen tracing and profiling oh let's try that mm-hmm control c's copy the in asm okay and what is the um configure like no configuration file thing well that's pretty straightforward i still still see alt tab as scroll up so we're returning from where i mean that's super cool i guess we could look at the map there's gotta be a version that's a simple in it oh you know what is it it's an 81 like the stack is wrong 81 c cb cc cd ce i guess that's gpio call gpio issue hmm what more can we trace tracing qmu guest execution it's still not that useful like it must be like if we did the return then we return to the wrong place or this is just is in asm just printing everything out oh i'm over time where's that just telling you the stack is hosed i don't know it seems like i like what i keep expecting to find is just to like run it with these settings and you'll be able to see like all the all i guess i kind of want register state or like exception level changes in asm like that's definitely on the right track if you're lucky then one of the sample plugins might even be sufficient for your purposes the cpu and the exec traces which is what we looked at sounds like in asm is not actually what we want i wonder if there's a way to hook python in example plugins box hot pages i'm almost done i swear what is this i think i don't see a 200 this is just trace again isn't it can i only monitor one thing log one thing at a time it's gotta be in here it's just we're looking at all of the sorry folks i know this might be boring python hooks and gdb that's true i just want to log one cpu i really hate it when people come to me and say i just i just i just dry some nuts like it looks like this information would be helpful it's just not the right cores it's like all the other cores cool let's wrap it up thank you all i know i know i'm over time and you all are headed out too i just want to go to the moon exactly okay this has been another deep dive with scott um thank you all for hanging out and hanging in there with me as i explore cortex a and qmu and all of that stuff um pretty interesting hopefully like it may it makes me very happy that qmu can replicate it as well um that means that i don't have to use the the raspberry pi to figure it out so that's exciting check out next week we'll be uh at 2 p.m pacific next friday the week after that we will not be doing it um thanks to david for taking time codes thanks for patrick for getting everything in the uh notes repo if you want to support me and support aida fruit go to aidafruit.com purchase some hardware there um i'm playing around with the cm4 io more modules and boards and i think we do have some of those in stock um so you could play play around with that if you like and if you want to join us on the discord and talk about all time um you can go to adafru.it slash discord and jeff's asking off topic but does the stm 32 767 circuit python support work if the board's on there we we thought it would work but um not a lot of people are using it so it may have failed jeff i would suggest joining the discord uh and we can ask and chat there go to adafru.it slash discord to do that and i'll put it in the chat as well thank you all again and uh we'll see you next week i will put the cat since he's here all right have a great weekend everyone


Ladies and gentlemen, I'm excited. You should be to its next gen NBA 2k 21 on the screen Hey first things first that does mean we're going daily. Yeah, I had to subscribe to the channel drop a like if y'all knew Hey, I'll know anything about me already knew without having to know. I'm making the best sharpshooter build Okay So this is my thinking going into it because what I've done in the past is try and make good all-around builds That might be fun if you were like playing by yourself and then when I'm playing with a team I just don't feel like I fit in a sharpshooter is a wing player That means you're gonna have somebody handling the ball and that means you're gonna have somebody grabbing the rebounds and putting No work in the paint you need to be a member of the team in a way That's also helpful and a lot of time people lose sight of that when they're making their build They try and optimize for attributes and badges that are irrelevant to what they're actually going to be doing on the court So I put together a build that in my opinion after hours of experimenting has the best of everything But at the same time plays a role that basically every team on the game is gonna need All right first thing you should know off rip is that everybody in this game is gonna have a two-way shot crater I already know that's gonna be the most popular build because people are gonna go for shooting and then playmaking And that's gonna give him the same build all of the people you're gonna see so many two-way shot craters in the game I'm already making that prediction off rip and the game hadn't even launched for everybody yet The second thing I want to mention is because you can with any build You can just max out a three-pointer into the high 80s and 90s That means that just being good at shooting actually won't make you helpful to a team You have to be more than just a shooter because the shot maker on the team could shoot your point guard In fact, you probably have some some big men that can shoot in this game that aren't stretch bigs that have like a 83 point shot So just shooting is no longer the role of a sharp shooter of a wing player. I first things first My guy's gonna be six foot seven. This is incredibly important six foot seven and six foot eleven wingspan If you guys play around with the height in the wingspan You will dramatically change which badges are able to get Hall of Fame or gold this exact same build at six foot eight High and six foot eight wingspan had basically no defensive badges no matter how many attributes I put on putting up the wingspan for made such a huge difference I'm gonna show you in a moment the body shape as far as I know makes absolutely no difference Just how your guy looks most people like to define look. Okay, cool So you want to obviously get the easy stuff out the way you max out your three-point shot Your sharp shooter goes without saying now a lot of the things you max out of it automatically brought up the mid-range You're gonna see that a lot like if I increase my driving dunk It's automatically gonna bring up my vertical because you can't have a great driving dunk in zero vertical That would make no sense even once you max out your three-point shot in your mid-range You don't get that many badges ten badges which I make a sharp shooter So even though it's a wildly useless attribute sharp shooters You will need to max out your free throw it'll get you up to a 28 You don't actually have to max out your free throw all the way You can drop it some points to 92 without dropping a 27 badge points next thing you want to focus on is your ball handle You get your ball handle up to like a 82 you need to get an 80 so that you get the tier 2 dribble moves So you have access to more and better dribble moves and because the build can get it You might as well get access to that There's no point not to and of course speed with ball Always important regardless of which build you play with now The reason I put my ball handle up to 82 even though the tier 2 dribble moves are gonna be at an 80 Is because you have to get to a 99 to reach these stats, right? And so I want to be able to use those moves even before I get to a 99 See what I'm saying? So I don't want to have to wait till my build is fully grinded just to be able to use it properly I want to be able to use it as I'm grinding the player now the big difference between this build is that it's gonna be Heavy on defense two-way players so you obviously want to max out all these top defensive attributes that goes for your perimeter Defense your interior defense your steel and you also want to max out your block This same build at six foot eight heights and six foot eight wingspan only had mid-80s perimeter defense mid-80s steel and 11 badge points four inches to your wingspan guys gets you a difference from I just said to what you're looking at on the screen right now on the defensive side huge I don't touch offensive and defensive rebound because for whatever reason at the wing position These take the soul look look look look look look look look look look No, no, we're not wasting goddamn 10 overall on rebounding especially because you're six foot seven You're gonna have someone do that for you play your role ladies and gentlemen Somebody I'll try and create a build that does everything and then you end up with a build that actually can't do anything good at all Uh the physical attributes you want to kind of prioritize these because they actually take very very little to max out And they're gonna be very very important once you get into the games The only one that I don't bother maxing out all the way is vertical just for what I need it for it's not gonna be that useful I'll put it to like a 50.  I have very very very very bad experiences with three level scores 2k 19 2k 20 I'm never gonna do that again. That is a very very hateable build very useless build guys What I do at mine instead I put the close shot to 70 I put the driving layup to 70 and then I actually max out the driving dunk to about a 92 This way you're gonna get access to a whole gang of contact animations Just due to your driving done just to be safe though because some of these are dunk packages and the contact dunk packages Do need a good vertical upgrade your vertical to at least a 65 last thing you want is you make a build and it has a Great driving dunk and it should have access but you don't fit one of the qualifications and it literally takes nothing vertical Is the latest of works, but you don't have to for the purposes of this build. I will I got mine out of 85 And so now when you state step back you take a look at this bill. Let's do some quick mathematics. You have 59 badges Zoom focus and I keep mine. I'm not a badge hunter.   You're a defensive two-way player, and I'm gonna show you guys in a moment I'm gonna have a primary lockdown takeover and on top of that you have a 93 point shot with 28 shooting badges That is the perfect role. You can take this build right here that I'm showing you guys You could dead-ass throw it into any imaginable team and it'll fit because you can D up their best ball handler Mm-hmm. You can shoot from anywhere on the court with bare badges Mm-hmm, and on top of that for whatever reason you could also get elite contact. That makes no sense Okay, so once you get your player to a 95 overall that lets you continue you continue now Keep remember there's a whole bunch of takeovers this year They said I think there's a total of 20 something but this player is not gonna have access to all 20 something because he's only Good at certain things right? I'm gonna keep it honest with y'all I think to be fair this part of the video is just a print It's a prediction more than anything because who knows which one of these gonna be very overpowered This this stuff. We're only gonna know two to three weeks into the game's launch and everyone anyone that pretends to know It's just capping to you This is a brand new system and we've never experienced it yet, but assuming I'm a sharp shooter and I'm already gonna have hall of fame Limitless range. I don't want to waste another takeover on limitless range Even though that's what first instinct might tell you to do spot up precision provides a significant boost to well-time or aim Stationary jump shots. I'm a sharp. I'm gonna be doing that so that's a takeover I'm gonna be going with but I'm gonna use that on secondary because last year clamps was an incredibly Valuable badge. It was a badge that any defensive player would want to have and there's a takeover badge that says extreme clamps Stonewalls ballhandlers into force stops pickups and fumbles So if you want to harass the opponent, there's the badge to go and honestly I have a good feeling that this badge is going to be the go-to for lockdowns in the game So I'm gonna go with that primary and then because I'm I don't think I'm gonna have to worry too much about my shot I will do a secondary sharp shooter and I'll go with spot on precision when you click finish.  Like what did you do? You're gonna tell them and they're just gonna blow their minds that not only do you have max defensive stats You can deal the other bands best player right best ball handler on top of that You got max shooting with 28 shooting badges and you have contact Dugs is over man. They're gonna want to play with you shades of Kawhi Leonard Chris Mullin and Jimmy Butler That's good company right there. I tell you that so let's test this bill so we can kind of show the bad situation Let's start this guy to 99 overall. Mm-hmm. Okay, cool So you don't get too many finishing badges so you don't want to get to With these no point of going giant slayer you guys six foot seven You're not much of a midget but because you had the contact dumps and because you can you want to get posterizer on Hall of Fame It's gonna be a fun build ladies and gentlemen that means that you have one more and I really doesn't matter where it goes I'm not going to throw an acrobat all-time badge You know I'm saying been useful in 2k's for as long as I can remember playmaking badges You only got four of these now you're a sharp shooter. I'm not going to you 2k 21 current gen I experimented a lot with off-ball movement and I kind of fell in love with both stop and go and quick for a step Especially when you just want to do one two moves find an opening on a screen when the clocks running down because that's really the only time You can be handling the basketball I will also say this when you're a sharp shooter a lot of people especially lockdowns will spam Steel just because they think you're an easy person to get the ball from so it might also be useful to get Unpluckable but for the purposes of this I'll go gold quick for a step Ah, you know what I'll go silver quick for a step and a silver stop and go I love both of the badges Okay, cool that this word gets fun 28 shooting badges the first of all, there's a plenty of new badges So let me go through the new badges anti-freeze harder to get cold and lose takeover progress useless this one though blinders Actually, it's pretty interesting. It might be very useful for guards becomes unfazed by defenders coming from the side If you're set in a screen and you're contested from the side and that contest doesn't count Can you imagine how useful this is going to be on point guards that run pick and rolls? Circus threes boost a step back three rhythm shooter improves shots taken after breaking down your defender Sniper boost to well-aimed time shots So I'm assuming that means you got to be using your stick for sniper to be useful Set shooter increases the shot rating when you take your time before shooting and the rest of the badges all stuff We experienced in previous two case. Let's get to it offer it your sharp max at your catching shoot Come on stop playing deep threes. I shouldn't you have to tell you why you got to do that green machine Was one of the best badges last 2k got a rock with that hot zone hunter same applies now. I'm playing this on Xbox I will be switching over to PlayStation when the game when the PlayStation drop and get the game for PlayStation or the couple PlayStation's in a couple 2k's you feel me? So I'm not gonna use hot zone hunter on the Xbox but for the purposes of trying to make the best bill I'll have it equipped now I don't know if it's gonna be like this this year But in the current gen version of 2k 21 for whatever reason Silver slippery off-ball was better than Hall of Fame and I'm telling you as a sharp shooter Using your right stick to get open feels more fluid this year than it did in current gen off rip I played a couple test games to experiment with it and it just feels better I can't wait to really experiment and dive deep into the off-ball movement in this game because I was doing it in current gen And it is not it's the most enjoyable feeling to hit him with that And it moved this way and the guy's lost because you just did a mean pivot So I'm gonna assume the same applies here. It might not in fact, you know what let's go Hall of Fame Let's try it out.  Go Hall of Fame dead Nothing like to you. You might not need Hall of Fame corner specialist If you're in the corner, you're most likely gonna be on a catch-and-shoot anyway, and you got a 93 ball Knock down an open shots, would you and you only have two upgrades left at this point I just throw it on blinders new badge, and it looks like it could be a very promising one might as well All right, so once you do all of that cool boom you want to the defensive badges not gonna lie to you This right here gets me very very horny. Very excited and very horny I'm gonna max out clamps off rip that goes without saying and I'm also gonna max out pick Dodgers They're two of the most important badges in my opinion when it comes to defense because you're gonna be guarding ball handlers a lot with this build I'll throw on a silver or gold. We'll see how that goes But I'm any ankle braces make sure my ankles is nice and safe with the ankle brace on you see the thick little ankle brace He got on right there now 2k did talk about nerfing the sole out of intimidated because it's very overpowered in current Gents, so I'm a little hesitant to to throw some on this bill I mean this this badge right here, so I'm just gonna avoid it for the time being I won't max out pick pocket Just because I have a defensive build. I would like to steal the ball all the time I'll throw a couple I'll throw gold on interceptor since you can be on primary ball handler Ah, you know the Hall of Fame. This is an all-time badge man It was a og in the 2k days back back way back in was a 2k 13 or 14 and they took it out for a whole bunch of years I'm glad they brought it back a useful bill. I mean a beautiful badge. Mm-hmm. Yeah, honestly the rest of these Whatever decreases opponent's takeover meters when achieving a highlight play on defense Actually could be useful not gonna lie This is the potential to be one of the most annoying badges in NBA 2k history So I'm gonna equip that at gold in fact I'll take down interceptor one just to put on Hall of Fame because the idea of improving a player's ability to bump and harass The offense off the ball that gets me so excited. Huh? I'm gonna be a sharp shooter's worst enemy. Mm-hmm Again with this bill John I'm playing a role as best as I can if you want to be able to do everything the reality is you're gonna do nothing good 21 stop. I don't want to hear these commentators.  Do not like the commentators this year In that At six foot seven your players can be agile enough to keep up with guards You have to keep that in mind, but he's too short to go for rebounds. There's no point of trying to waste VC on that Cat step back money Although the difficulty is with that was money the fact that I I'm currently using a player that not only has a max 3-point shot with 28 shooting badges, but it has max defense with 21 defensive badges and can do contact dunks to me It's just insane. The flexibility that this new system gives you is so much more like freeing Just all first impressions than previous ones where you pick up pie chart or you got some cookie cutter Now this year it just feel like you can kind of choose As he's gonna go green or what was going on. Oh David that was a fade You know that jump shot they gave me they gave me a set shot for some odd reason and it's in garbage All the way I'm getting gas playing AI on a test on a test game guys You have to subscribe to the channel. Who else is coming with this kind of energy guys It's literally 1 a.m. Right now and I'm running off energy drinks, man I'm gonna be honest with you. Hey, there is gonna be a big red button on this video that says join I just set up the membership thing so you don't have to but if you pull up to this train join up Hey, I'm gonna be honest with you guys.  So I'm not gonna continue to play this but I've built this player about three times in very very small minute different ways And you actually can't make many changes to this player before it becomes a two-way three-level score or a two-way shot crater But I'll tell you right now If you do want to make adjustments a small adjustments to this build that I explained here in this video The biggest thing you can do is change the wingspan in the height. I'm telling you It will change drastically change the badges that go Hall of Fame the amount of badges you get it'll drastically change What your build is called everything just one inch in height is Everything that being said this build will fit on every imaginable team So it's probably if you were a sharpshooter in previous 2k is this is gonna be the best transition for you moving on to next-gen 2k 21 If you all enjoyed the video man drop a like subscribe to the channel. We do this daily except today We're gonna be dropping like three videos today and this dream but on every other day probably going daily, right? That's too much work. I'm gonna burn out. I'm gonna catch you guys in the next one There's some videos on the screen right now if y'all missed out. I'm out man. Peace


So the end of the move journey is almost complete. Here's our house here, it's Alice up the top there. New place kind of looks like a Colombian drug lord's house and we're just currently waiting for the removalist truck to arrive and then we'll be in. All right so we have officially arrived. Welcome to the new hood. This is Gindia Drive or I call it Garmin Hill because this is where they do the famous Noosa triathlon and we officially moved in a couple days ago. Places in Pridginham Beach just down the road from Noosa. Oh I better back it off, I can't speak properly. And it's been a massive week. Really significant for the Nichols family but we're in and you're going to be seeing a lot more of this scenery over the next year too. Three maybe forever. So in this video what I wanted to do was firstly thank all those people that have supported the channel. We had 5,000 channel supporters the other day which is bloody magnificent. A lot of hard work and effort on the channel is paying dividend by people seeing the content supporting the channel so wanted to thank you all and also to explain what we're going to be doing this channel over the next couple of months in terms of planned content. So those two dogs there, I was just riding along this beautiful sort of country style ride. There's hardly anything ever going on here. It's like 7 20 a.m on what is a Thursday morning and they just came running out of this driveway charging at me on the road. One of them is actually pretty big. I don't know if you can see that one like over there. It's sounding pretty aggressive so I just stopped and picked up my bike and I was I was going to whack them with it if they came any closer and I think they realized and they bugged off but welcome to the new cycling environment. Just for any dog lovers out there, pet lovers, I just want to be clear that I've got a dog and I love pets and the only reason why I got off my bike and was about to use it as potentially a weapon was purely in self-defense. I would never want to harm an animal but if it's going to come rip my leg off, it's a different story but I just wanted to be clear about that. Yeah so planned content on this channel for the next sort of month or so before the end of the year. I've actually got quite a lot of Melbourne content still up my sleeve. I've shot it. I just haven't produced it and edited it and all that kind of stuff so I've got a chat with Hannah McDougal coming up. She's a power athlete. That's at O'Mara Cycles and we've got one with Tommy Nankervis. We actually sit down and we examined one of my Glenvale crits, the full crit, and we told him he's going to give me tips and advice and things I should and shouldn't be doing. So that's coming up. We've also got a chat with Rob Eva from SRAM. I'm on the fence with disc brakes. I understand the performance levels but the fact that there seems to be a lot of issues happening with them. I'm a bit skeptical but he's right on board disc and he's quite insightful. He's got a lot of good insight so we're going to do a bit of a rim versus disc video with him and lastly but certainly not least I was sleeping in an attitude tent for because a month, four weeks and I took a blood test before and a blood test afterwards and the results are compelling. Now my crit results weren't compelling. I was alright. I was up there. I was racing. I was feeling good. I was in the mix but crit racing isn't about how fit you are. It's about how well you play your cards and I got a little bit to learn there but in terms of how strong I felt on the bike I was another level so I'm going to have a deep dive on sleeping in attitude and performance gains and I think that'll probably take us to the end of the year and then we'll do another one of these little videos early Jan and we can talk about future content on this youtube channel in 2019. So I'm pretty much back in my new hood now just wrapping up almost 100k's and to finish up this little video once again just wanted to thank all the channel supporters really means a lot and I wanted to share something with you all this is a this will be the first time people have seen it outside of the bike chaser team and a lot of my subscribers will know that I've shared a bit of bike chaser content on this youtube channel in the past and bike chaser is a marketplace for cycling products that I run and we've sort of really struggled over the years to be different, create a differentiator to the big player in the market bike exchange and the reason for that is marketplace is just really hard to get going you need to have the technology platform right then you need to have users which is for us bike shops using the platform getting products up and then you need to have traffic on the marketplace which essentially delivers leads and inquiries to users and value so that's taken quite some time to get going now the thing is we've we're sort of humming a little bit now so we're now looking for ways to differentiate ourselves and this is coming in 2019 we've partnered with a company called Parcel which is kind of like Uber Eats but for in everything that's not food and what's essentially going to be happening next year is we're going to have people that can pick up items from bike shops and deliver it on their way home even commuting cyclists which is what you're going to see in this video and the idea is that the person delivering the item they earn ten dollars for delivering an item on their way home or on their way somewhere and the person that purchase the item they pay fifteen dollars so it's a little bit on the expensive side but you get it same day and i've trailed this myself i got it literally within hours of placing the order so this is going to give bike shops the ability to compete online because they can't compete on price but if they can compete on service delivery then potentially could be a big thing so i'd be keen to get your thoughts in the below description area and i'll catch you in the next video hey i'm going to go for ride with the boys this evening and i just realized that i need new types i'm going to pop down the street and get one the boys it's time to take the girls two bellies tonight it's your turn oh but you know if you want anything bike related bike chaser can deliver same day right good one


Just like the seasons, trends come and go. Winter is coming. And as a drop shipper, if you want to stay profitable, then you need to make sure that you're offering products that are popular or trending year round. The new year is in a few months. Right now is the time that you need to start stocking up your store with products that are going to be trending throughout the entire year of 2024. So if you want to learn how to stay profitable throughout the entire year of 2024, then make sure you check out this video all the way through because in it, we're going to be explaining some of the best niches that you can start selling in your Amazon store. Now everyone knows that when it comes to drop shipping on Amazon, Amazon can be a little bit iffy about it. You're not extremely drop shipper friendly, but drop shipping on Amazon is definitely a possibility. And if you want to learn more about how to do that, then just make sure you hit that subscribe button because on this channel, we talk about how you can succeed in the drop shipping business. Whether you're drop shipping on Amazon, eBay, Etsy, or your own stores such as Shopify, Wix or WooCommerce, we make it easy for you to get started drop shipping and to succeed. So if that's something that interests you, just make sure you hit that subscribe button. So first and foremost, let's go ahead and get started with understanding what exactly is a niche. Well, simply put, a niche is a specialized segment of a particular market. So as drop shippers, we have a bunch of different categories that we can drop ship. So we can sell items in the jewelry category, or we can sell items in the fashion and accessories category, and those two are niches. While we can still call them categories, they're also niches. It's the same thing. Also when you're selling these kinds of products or these different types of niches, you're also targeting a specific demographic of customers. So while one niche customer base will like a particular product, a different one won't. So let's say you're niching down to the fashion accessories market. If you're starting to sell to that particular demographic of people, you're not gonna be offering them things like electronics. You're not gonna offer them headphones or anything like that, because that's not what they're interested in. That's not what they're looking for. That niche market is looking for fashion accessories. Now, when you're actually considering all of the different niches for you to start selling, there are a few different criteria that you should be on the lookout for. For one, you wanna make sure that the quality in that particular niche is always of high quality. You wanna make sure that everything that you sell is gonna be good quality products. Because if you don't, that's gonna end up with people returning the products or just asking for a charge back. Also, you wanna make sure that that niche is affordable. You wanna be able to make a good profit and you wanna make sure that the products that you're selling are not overpriced. Another really big thing that you wanna look out for are different suppliers. You wanna make sure that there's enough suppliers within that niche for you to be able to source your different products from. On top of that, you also wanna make sure that there's enough products in that niche as well. You don't wanna niche down too narrow where you don't have any products to offer or a very limited number of products to offer. While niching down can be a very good thing for you because you can target a particular demographic of people, if you niche down too much, if you get too specific with what you're selling, then you can accidentally start to exclude too many people and you won't have enough people to be able to sell to. Now, how can we start to look for best selling niches for our Amazon store? Well, there's quite a few different ways. For one, you can just simply check out the best seller section over at amazon.com. Here you can find what most people are looking for. This is what's currently trending and what most people are searching for whenever they hit up the Amazon website. Another option that you have is the TikTok AdSpy tool. Now for this, you do need an account over at autoDS.com. And if you wanna get started with that, right now you can start your trial for just $1.  So once you sign on to your account over at autoDS.com, just click on over here where it says the TikTok spy and you're gonna be prompted with tons of different videos. And when I say tons, I mean tons. Now one great feature about this is the fact that you can filter out your results. So let's say you're looking to see what's trending on Amazon or just overall what's trending in a particular niche. So what I would do here is simply filter out my likes. Look for something that's pretty popular, maybe more than 50,000 likes. And then when it comes to impressions, I can just leave that as is. CTA button, I wanna go with shop now or order now. You can try either one of these two or you can just leave it blank and get a little bit of everything. Then if you wanna see if it's an organic ad versus a paid ad, you can also switch that over. Typically I'll go for the advertising, make sure that it's an actual ad that's currently being advertised. And if I was looking for a particular niche, so if I wanna look for jewelry and see what was trending in that category, I could just type that in through here. But right now I'm actually looking for a niche. So let's go ahead and check that out. So here we have a few different ads that are currently running. So you have something for some dumplings, something for some food. So food could be a pretty good niche. Maybe you could sell kitchen items. This video right here that has 72,000 likes. Let's see what it's about.  All right, we're doing. Okay, so it's about nails. So then this is probably a product that has to do with the beauty niche or the fashion accessories niche, something along those lines. Here you can see that actually has quite a good amount of impressions. Over 1.2 million people have seen this ad. Aside from that, it has some pretty good likes, 72,250 comments and 409 shares. Again, I don't really know too much about nails or anything in this category, but I do know that this belongs to a very popular niche. And that could be health and beauty, health and wellness, fashion accessories maybe. But going back to the TikTok ads by, as you can see, there's tons of other ads that you can start to look through and you can see what's currently trending and what's actually popular and what people are searching for. When you're looking through different TikTok ads or even if you're just on TikTok itself and you're scrolling through your feed, if you come across a product and you see that it has a lot of likes, a lot of comments, a lot of interactions, then that could potentially be a best seller. What more social proof do you need than a trending video on such a huge platform like TikTok? If a particular product on their trending, then chances are you can make some money off of that product. Now aside from that, I want to use one of my favorite tools, Google Trends. Google Trends can help you anticipate trends that are coming up for particular niches. So right now we're actually at the Google Trends website and let's look up the swimsuit niche. So I looked up swimsuits and by default it's going to give you the past days search results. That's not what we're looking for. I like to go for five years. So what you're looking for here is how many people are searching for for this particular search term. So right now, since we looked up swimsuits, we're going to see when the search term is most popular on Google. So as you can see, there's absolutely nothing around October, which is pretty much what we're in right now, but it starts climbing around November or December and it peaks right at June, which is pretty much peak swimsuit season right in the middle of summer. Then a little bit after that, towards the end around July or on the beginning middle of July, it starts to completely dip. So sales pretty much just stop. Then as you can see the next year, it started to pick up around the same time, around April, peaks around June, then goes down. Same thing for the year afterwards in 2021 and for 2022 and 2023. So as you can see, the best time to start selling these swimsuits, not just like there are niches that you really need to start selling right now to make some pretty good profits. There's also some niches that you really should completely avoid. And some of those are going to include copyright items. So let's say one of my favorite niches, the anime niche. While that is an extremely trending niche, there are a lot of items in that particular niche that you should not be selling. So for example, some of those things would include items based off of current brands or shows. So I personally like the show called Attack on Titan or Demon Slayer, but I'm not allowed to sell any products from those two shows. Anything that I sell in the anime niche has to be 100% original. So there are always gonna be a lot of different products that you can sell that are original work or original products or original items. But aside from that, also you don't wanna sell age-restricted items. So things that are specifically only for people that are 18 or older, stay away from that. Also make sure to stay away from dangerous goods. So anything that could pose a threat to anybody, do not sell that. And another thing that you wanna stay away from when it comes to niche dinos on Amazon is medication and supplements. Now I've seen a lot of supplements on Amazon. I've seen a lot of pills, a lot of fish oils, a lot of fat burners, a lot of pretty much anything. Stay away from those products. While they can make you some pretty good money, they can also lend you in some pretty hot water, especially if you're making bold claims about certain products or what they can do. Also you never know if somebody could be allergic to a particular ingredient in your supplements. It's best to avoid that. If the extremely unfortunate event happens where somebody has an allergic or adverse reaction to one of your supplements, then you could possibly get sued. And that is extremely troublesome. You really wanna avoid something like that. So just stay away from that category or that niche altogether. Now with that being said, let's go ahead and start to cover the best 11 niches that you can start selling in your Amazon store for 2024. Now before we do get started with that list, I do wanna let you all know that if you want everything that I'm talking about in an easy to reference cheat sheet along with all of the different links that I'm gonna be covering, then make sure you go ahead and comment down below, hashtag Amazon dropshipping and let me know which one of these niches is your favorite. Once I see that you wanna head and did that, I'll go ahead and reply back with a link to the cheat sheet. So the first niche we're gonna cover is the skincare and self-care products. Now this niche has been extremely in demand for quite some time and it's something that's gonna stay in demand and it's always gonna be trending. This is what you call an evergreen niche. This is something that the hype is not gonna die down. People are always gonna be into the self-care. Everyone's gonna wanna better themselves and ultimately be better at the end of the day. So when it comes to the self-care niche, this is something that is always gonna be trending. So you do not have to worry about the hype on this going down. Now when it comes to this niche, some of the more popular items that you can offer are gonna include things like skincare headbands, acne pimple patches, green tea masks, jade rollers and collagen lip masks. Also as a quick tip, a lot of the people that are into this niche or a lot of the people that purchase items within this niche typically have some sort of skincare routine. And when somebody has a skincare routine, that means they probably have a lot of other products that can help them out with whatever they're trying to do. So it's a really good idea to be able to offer some of these different products in bundles or sets or maybe even buy one get ones. Maybe you can offer something along the lines of spend over $50 and receive a free bag. You know, maybe a bag to put all of your different accessories or brushes or whatever it is inside of. Doing this can really help increase your average order value on top of have some higher customer satisfaction. This niche is also an evergreen niche and it is the pet supplies niche. Now when it comes to pets, it's just me when I say that people see them as their own kids. People absolutely love their pets and they don't mind spending the extra money to be able to offer them their comfort or make sure that they're having fun or just overall happy. When it comes to the pets market, you have practically an endless amount of products for the simple fact that there's almost an endless amount of different types of pets that you can have. So don't worry about any shortage of products and a lot of these different products are constantly being repurchased. So dog food always being resupplied. Dog toys always breaking. So people have to replace them. Bedding for a reptile terrarium always needs to be replaced. So this is a very evergreen market that's always gonna have repeat customers. And that's one really good thing to have. Repeat customers can help us have a steady income each and every month. Now in the pet supplies niche, some of the best products that you can start offering can include the pet hair remover, dog poop bags, which trust me, you can sell a lot of those dog travel water bottles, a cat window bed and a donut pet bed. Now one awesome thing about the pet niche is that some of the products are interchangeable between pets. So if you have a pet bed for a dog, you can also offer that for a cat. This next niche is one of my personal favorites and that is the gaming niche. Now when it comes to gaming, it has grown exponentially ever since the 90s and early 2000s. Back then video games used to be for just nerds and geeks but nowadays pretty much anyone is into gaming. People love playing on the computer. People love playing consoles. So because of that, gaming accessories are on the rise. Some of the more popular items in this niche can include a gaming headset, an LED mouse pad, an LED keyboard, a wireless mouse or a headset holder. Next up we have home decor. Now who doesn't want to spruce up their living space? Nowadays, people are spending time at home more than ever. So because of that, people like to spruce it in up a little bit, make it a little bit more lively and ultimately just make it more comfortable to be at home. Now some of the more popular items in this niche can include floor lamps, essential oil diffusers, wall art prints, decorative pillow covers and key holders. This next niche is one that's been ramping up ever since we were all on lockdown. Every year, year after year, this niche continues to grow. This is probably one of the more evergreen niches that you're gonna find and that is baby products. People are popping out babies left and right every single day.  Now when it comes to people's kids, trust me when I say parents will spare no expense in making sure that their kids are comfortable and healthy. Now some of the more popular items that you can offer here can include teething toys because when kids start to teeth, it is a mess. They start to get super frantic and parents are always looking for something to help soothe their aching gums. You can also offer diaper bag backpacks, a baby plush bathrobe, a play floor mat and a silicone chew spoon set. Now when you're offering these different types of products for babies, you always wanna make sure that you get the highest possible quality items. You don't wanna offer low quality items because if you do, parents are not gonna shop at your store again. Make sure that everything you offer is baby safe. Some of these different items could potentially pose a risk to the child and that is a big no-no. So always make sure that you're offering high quality items. Our next niche is gonna be kitchen supplies. Now I'm pretty sure that we all know but everything has gotten so much more expensive and with that includes eating out. So most people nowadays are starting to not eat out. They're not ordering any more food and they're saving up the majority of their money. So because of that, now more than ever, people are starting to cook at home. Now some of the best products that you can offer in this niche can include kitchen cutting boards under the sink organizers which I think I actually need one of those because if you check under my sink, it is a total mess. Everything's just thrown around everywhere. So I actually think I'm gonna get one of those kitchen organizers pretty soon. Kitchen knife sets with a block are also something that are always in high demand because a lot of times people don't like the knives that they have or they get really old or they just can't be sharpened anymore. So they just look for something new and you can also offer measuring cups and spoon sets. I don't know about you but me personally, whenever I try to eye a measurement, it never works out.  Now this next niche is one that every single person gets into at the beginning of every single year and we're talking about those new year's resolutionnaires with the fitness niche. Now when it comes to the fitness niche, as I said, it is extremely popular at the beginning of the year but it's also something that's popular throughout the entire year because at the end of the day a lot of people really care about their health. Now when it comes to the fitness niche, there is an immense amount of products that you can offer for both men and women and primarily for the majority of these, they're unisex. So they can be interchanged between both. Now some products can be specifically geared towards women while others can be specifically geared towards men but starting off some of the best products that you can offer in this niche, we have the Crossback Sports Bra. Now of course, this is gonna be for women but then we also have workout bands, shaker bottles, running belts and workout gloves. Those of course can be interchanged and marketed towards both men and women. Now there is no shortage of fitness equipment or fitness accessories on Amazon. So when you're offering these, try to offer as many variations as you can, try to be specific and if you can, try upselling or offering some sort of free gift with their purchase. Cell phone accessories is up next and I'm pretty sure at one point or another, every single person watching this video has gone on Amazon to purchase either a phone cable or a phone case or even a screen protector. People are always trading their phones, they're getting new phones. So new accessories are always coming out. This is a very evergreen market that changes pretty much every single year. Products are always updated, technology is always enhanced, so there's always something new to be able to offer. And on top of that, there's so many different types of cell phones out there that the varieties you can offer are absolutely endless. Now some of the more popular items you can offer within this niche are gonna include a phone desk stand, a cell phone ring holder, a tripod or selfie stick, especially for those content creators, a cell phone holder for your car and a universal cell phone lanyard. This next niche is something that people purchase either every single day, every single week or every single month.  Take for example, office paper. People print tons of different papers. People are always printing documents, especially somewhere like let's say a law firm. They're constantly printing, so they're also gonna constantly be repurchasing the same items over and over and over. Before I give you some of the best products to sell in this niche, I'm gonna give you one huge tip that can really help you start getting some good sales. So start looking up different businesses on Google. See what's local or see what's across the country in a couple of different states or a couple of different cities. Look up different businesses, such as printing companies or law firms, companies that seem like they could do a lot of printing or like they could use a lot of office supplies and reach out to them. Send them an email, see if you can come up with a custom offer for them so that way they can choose you over their current supplier. If you can land a few of these different accounts, then you're probably gonna be set for quite a while because businesses are always resupplying these different products. As I mentioned earlier, copy paper is just one of the items that are always selling. A few other items that they're always purchasing can include line sticky notes, desk file organizers, paper clips, and cord organizers. Next up we have jewelry and watches. And this is a pretty high ticket niche. Most of the products that you're gonna find in this niche are gonna be high ticket, meaning you can sell them for some pretty good profits. But you can also offer some lower priced items so you can cater to pretty much anybody. One awesome thing about this niche is the fact that people sometimes whenever they purchase, let's say a watch, they don't purchase just a watch. A lot of the times they're gonna purchase a watch and possibly a matching set of earrings or a matching bracelet or even a matching ring. This niche in particular is perfect year round for the simple fact that people love receiving jewelry and watches and they love giving them as gifts. So this niche can do very well year round. Now some of the more popular items that you can offer in this particular category can include a travel jewelry organizer, a smart waterproof watch, gold earring sets, huggy hoop earring sets, and adjustable sterling silver rings. Now this last niche that we're gonna cover is also one that's evergreen. It's perfect year round and it also goes with our fitness niche. And that is sports and outdoors. Remember I mentioned earlier that people are spending more and more times indoors and at their homes, especially since they're working from home. Well, because of that, a lot of the times, especially either after work or during the weekends, people wanna get out.  And because of that, sports and outdoors is an evergreen niche that's constantly trending. People are always buying things in this particular niche. Now the different types of items that you can offer from this niche can offer widely. But some of the more popular items can include a waterproof lighter, reusable travel utensils, a microfiber travel towel, camping cutting board, and water shoes. And those were some of the best niches that you can start selling right now to be profitable in 2024. Was this list what you were expecting or were you expecting something else? Let me know down in the comments below, I wanna hear what your thoughts are on this. Remember if you want access to the cheat sheet with all of the different links and information I provided in this video, make sure to go ahead and comment down below, hashtag Amazon dropshipping, and let me know which one of these different niches was your favorite. Once I see that you went ahead and did that, I'll reply back with a link to the cheat sheet. I wanna thank each and every one of you, especially if you made it all the way to the end of the video. That really tells me that you're enjoying these videos and you're finding some sort of value. And if you are, please make sure you hit that like button and while you're there, make sure you hit that subscribe button and ring that little bell notification so you don't miss out on any future videos.


In seven steps, transform your life with Sadguru, Inner Engineering. Progress through each step with the guidance of Sadguru. Complete the program at your pace, anytime, wherever you are in the world. Receive an ancient and powerful yogic practice from a living master. Namaskaram and welcome to the Inner Engineering process. Deep dive into any concept and enhance your understanding of the tools of Inner Engineering. Active lifetime support on aspects and practices on the Sadguru app. This is not just a program, it is a possibility for tremendous self-transformation. Inner Engineering. Register now.