Hello, everyone, and welcome to my session. My name is Frédéric Débiens, or Fred, if you prefer. I'm with the Eclipse Foundation, and it is my pleasure today to speak about remote management for Zephyr-based devices with the lightweight M2M protocol. So our agenda for today is fairly straightforward. And happy Canada Day, by the way, since this is July 1. So if there are any Canadians listening or rewatching, well, I hope you have a fantastic national day. So our agenda for today is quite simple. First, I will give some context about lightweight M2M, because not necessarily everyone in the IoT or even embedded space is aware of what the protocol is. Then we will discuss how Zephyr specifically supports lightweight M2M. And finally, we'll have a demo. But this being completely virtual, and I wanted to avoid the complications, so to speak. So instead of being a completely live demo, we'll see the various steps of the demo alongside with the screen caps of the results. But I won't be actually running the code right now. Well, to keep things a bit simpler. And I will keep a close look on the Q&A. So there's a Q&A section in the platform. And at the end, it will be my pleasure to answer any question that you would have. And after the session, if you didn't have the time to ask your question or simply want to chat, I will be probably hanging around the IoT channel in the Slack for the conference. OK, so what is lightweight M2M? Well, essentially, lightweight M2M is a device management protocol that has been built from the ground up for scenarios where you have sensor networks and machine-to-machine environments and really focuses on constrained devices. Devices that have very weak CPUs, very little memory, and that need to operate in a low-power environment. Imagine, let's say, a connected building. You put sensors over, replace in the walls, and the batteries are supposed to last for five years. So you need to manage those devices, a protocol that will really, really be low-power. Otherwise, well, you certainly won't like the experience, or you will have to hire a full team of battery change people. And you don't want that. I mean, it's not economically feasible. So really, lightweight M2M has been built for the ground up to take into account the constraints of IoT. And this is why it's, in that context, probably a much better alternative than, let's say, use SNMP or any other data center-centric protocol in order to manage the devices. The nice thing about lightweight M2M is that the people who invented the protocol didn't reinvent the wheel. They built lightweight M2M on the top of another IoT centric protocol that's called co-app, the constraint application protocol, which means that the basic architecture for both co-app and lightweight M2M is really very, very close to the one for rest. So you have verbs, you send requests, you get responses, that kind of stuff. The third quality or the third characteristic of lightweight M2M is that it defines a very extensible resource and data model. So by default, you get a number of properties. But it's built in a way where you can extend it and still fit into the specification because, essentially, there's a formal specification for lightweight M2M that's owed by OMA spec works. And so they do the spec work at that organization. And you can be a member of that. And on the other hand, you have multiple implementations vying in the market, some of them commercial, some of them open source. All right. Now, before we dig a bit deeper into lightweight M2M, it's really, really important to understand what co-app is about because, well, as I mentioned, lightweight M2M builds open co-app. So co-app is a specialized protocol defined in an RFC. So that's RFC 7252. And, essentially, the greatest characteristic of co-app is that it's really got a minimal overhead. Essentially, any device that supports UDP or something equivalent to UDP-like, you could run it over SMS, for example, will be able to support co-app. The typical header for a co-app frame is around 100 bytes. So that's very, very small compared to many other protocols that you can find in the typical data center. And the nice thing about co-app is that it can be used on a unique or centralized constraint network, so low power network in the field. Let's say you have a bunch of sensors in a factory that can have stuff. But it can be connected over the general internet as well. And you can even join separate constraint networks together in order to provide a connected distributed environment. So co-app by design is very close to HTTP. As I mentioned, it uses the REST model with the get, put, post, and delete verbs. It's got URIs, response codes, MIME types. But one important thing in co-app is really that it leverages a lot multicast. For example, if you have to do device discovery, you will send the multicast packet, and then you will see whatever device on the network will respond to that packet. So co-app is really important in the context of lightweight M2M. And so when we look at the protocol stack for co-app, obviously you have some sort of physical channel. It can be internet, it can be wireless, whatever. And then on the top of that, the typical protocols, so Bluetooth, low energy, or a personal area network so that the 802.15.4 family of protocols there, which includes a ZigBee, which includes a six-low pan. In this case, we see it in the stack. So there are various flavors of that, but all of them tie back to the 802.15.4 specification. And then on the top of that, you have IPv4, IPv6 that are supported, UDP with optional DTLS, which is an adaptation of TLS to the embedded space. And after that, while co-app is message oriented, so you've got messages, requests, responses, and your applications on the top. And all of that is really and fairly, in a programmer's perspective, really, really simple to use.  Well, this is the official diagram that they put in the various documents at OMA Specworks to describe the lightweight M2M protocol stack. And you see the central place of co-app in that diagram. The interesting thing in this diagram is that it really highlights the flexibility of lightweight M2M. Yes, running over UDP, running using IPv6, using a six-low pan, and stuff like that, is a typical use case. But you can run this using SMS. You can obviously run this over attended protocols, such as Laura 1. So there are many, many possibilities there. And I think that's certainly one of the strengths of lightweight M2M, the fact that it lends itself to a variety of deployments without losing any feature, whatever deployment topology or configuration you would choose. OK. Now, what are the features of lightweight M2M? What does it give to you? The first one is bootstrapping. And that one is really critical if you're thinking about mass-producing devices in the sense that, or not even mass-producing, but even mass-deploying devices inside an organization if you design and build the devices yourself. Why is that? The bootstrapping mechanism means you can have a bootstrap server on the network, where essentially, at the factory or when you are building the device, you will put by default some PKI, some security certificates for DTLS, that kind of stuff. But those are the factory-provided ones. They are just a transient artifact that will enable the device to connect to a bootstrap server that will recognize the credentials. And once this bootstrapping process is over, the bootstrap server essentially will assign a proper IP address, proper digital certificate, et cetera, to the device. And then it will be actually be configured and connect to the real production network, so to speak. And that's a very, very well-defined area in the protocol. And that's really useful, because if you build something from the ground up using an attorney protocol, you won't necessarily have those bootstrapping mechanisms. And well, believe me, rotating credentials by hand or devising your own method to do that when you are designing a turnkey IoT solution is really a pain. So the fact that Lightweight M2M provides that, it's certainly a big advantage. Then Lightweight M2M takes care of device configuration. So essentially, it provides the primitives for you to retrieve and modify devices configuration. And certainly, once again, the fact that this is standardized is a big productivity gain for developers when leveraging the protocol. Another intriguing feature in Lightweight M2M is the fact that it will support firmware updates. So essentially, the way this will work, let's say, in a Zephyr context. So you build your executable, you put it on an HTTP server somewhere, or maybe you use some software update management platform like we've got a nice one at the Eclipse Foundation that's called Eclipse Hockbit. So you could use Hockbit to perform that. But essentially, once the new firmware binary is available over HTTP somewhere, then you can initiate a software or firmware update on the device using Lightweight M2M. So essentially, you flag the device for update and provide the URL to the new firmware file on your HTTP server. And then you start the update. So this means that the device will obviously download the new firmware, replace it in persistent memory, and then reboot, et cetera, et cetera. All of that is taken care of at the protocol level. So once again, this is really, really handy. Obviously, you still need to plan accordingly. I mean, if you want to support firmware updates like that, please ensure that you have enough persistent storage on the device to be able to do this. So if you calculate things too tight, you won't unfortunately be able to do that. And then Lightweight M2M has everything you need in order to manage faults or manage errors, manage the configuration control of not only the device but the applications running underneath. And it's got reporting features as well in the sense that you can easily query any of the properties defined by the device or even use the observe mechanism. That's a part of co-app and Lightweight M2M exposes that where essentially some server can be an observer, so to speak, of the device. And when I say of the device, it's a writer of a specific property on the device. Let's say you have a temperature sensor and you expose that, then the server can register to watch that specific temperature value. And then when the value changes, the device will send to observers a message with the new value. This is really handy. And this enables you to tweak your code to your use case because maybe, well, if you are monitoring temperature in rooms, for example, inside the digital building, maybe it's not meaningful for you if the temperature just goes up by one tenth of a degree. Maybe you want the change to be reported if it's five tenths.  So in the way you write the code, you can manage when those notifications are sent, which means you can really optimize the code for your application to the power profile of your device, to the power profile of your application. And lightweight M2M means it's really easy to tailor your application to scenarios like that. All right. So now we have a fairly good idea at a high level what lightweight M2M can do. Let's now focus on how it's implemented in the Zephyr RTOS. So this is a bit small on the slide. So I already updated the deck to the conferencing tool, so you can retrieve the PDF from there. But essentially, if you look a bit, if you squint a bit, you will see that there are two little circles, red circles on the diagram that I took in the Zephyr documentation. And one is the six low-pan larger lighter blue rectangle. So you see 15.4 support, BLE, and on the top, you see six low-pan. So six low-pan is a way to, it's a Bluetooth profile, essentially, that you can use in order to run IPv6 offer Bluetooth low energy. And then you see lightweight M2M at the top in the application services right besides MQTT and Co-App. So obviously the diagram there cannot show the relationship between Co-App and lightweight M2M. But in Zephyr, like in everything else, lightweight M2M leverages the Co-App protocol, the Co-App implementation. And they are in the Github for Zephyr. There are two very relevant samples for the general use of a six low-pan and then the lightweight M2M client. So the IPSP sample really focuses on just running six low-pan. So it's a good way to troubleshoot an environment, troubleshoot your hardware, that kind of stuff, just to ensure that you can establish an IPv6 connection over Bluetooth low energy. So I always recommend people to try that one out first and ensure that everything works at that level. And after that, there's a pure lightweight M2M client. You can run that using QMU, using emulation. Or you can use an actual board. In my case, my demo is relying on the real board. And so I will give the details of the hardware a bit later. And obviously, if you want to really test this, you need not only the lightweight M2M sample client application on the Zephyr side, but also lightweight M2M server. And fortunately, we've got a free and open-source one to offer there. All right. And that server is Eclipse Leshen. So Leshen as its core is really a Java library for implementing lightweight M2M clients and servers. So it's not a full-blown server, but it provides a demo server for lightweight M2M and also a demo bootstrap server implementings. You know, the various primitives related to that. So you can very easily take advantage of those demo servers in Leshen to get started with lightweight M2M on the server side. And obviously, there are many implementations like Leshen is used by Bosch and other members of Eclipse IoT in commercial products. And well, I must say that even the Zephyr documentation points you to Leshen when the time comes to leverage a lightweight M2M server. So it's certainly widely used and well appreciated in the community. Leshen is very simple. It's not using any third-party frameworks. It has few dependencies. And it provides nifty web UIs. And you will see a few screenshots later for device discovery testing, that kind of stuff. And even, let's say, the firmware update scenario I described you, you can totally that using the web UI in Leshen, granted that you have access to some HTTP server to deploy the new firmware file somewhere. You build it using Maven installs. So it's really, really easy to deploy in that perspective if you start from the source code. And it's leveraging our co-app implementation at the Eclipse Foundation that's called Eclipse Californium. And Californium is a very mature, well-supported. It comes from Bosch implementation of co-app. And so, well, plenty of good stuff as you can see going on at Eclipse. OK, now I will give you some code. The only warning I would give you, I took code out of the Zephyr demo there. And to fit it on the slides, I made some cuts. I removed some of the ips. I removed the comments. I removed everything so that you can have a view. So please refer to the full sample. And I put the link earlier in the deck if you want to have a look at this. But for registration proposals, you've got some code in this presentation. So first, the includes. You will see that the includes for typical lightweight N2M application are fairly standard. Obviously, you've got the base Zephyr.h. And in this case, the sample reads hardware information. It configures stuff over GPIO. It relies on some sensors. So it's using the includes for that. But lightweight N2M itself is very simple, just a plain header file in net slash lightweight N2M. And nothing more than that. And that speaks to the great simplicity and great design in Zephyr that it's so simple to just add support for the protocol by adding so few includes, so few headers. Looking at the typical main for sample application, we'll see here there's a struct that's defined that contains client information. And essentially, you have to do some setup and put values in a structured way for future use. And then after some initialization, you call the lightweight N2M RD Client Start function by passing this client structure and then some other information to get the actual lightweight N2M stack initialized and start. It's as simple as that. Now, one important thing is that as I mentioned before, this main is really streamlined. I removed some of the code. So please have a look at the full sample for the full code. A typical initialization function here, so lightweight N2M setup here. So that's the one that we were calling at the very top of the main here. And essentially what it does, you see, it assigns values to a number of lightweight N2M resources. And all of that, the fact that it's 3, 0, 0, 3, 0, 1, et cetera, all of those standard values are defined in the lightweight N2M specification. So you're not inventing that. But obviously, since the data model is extensible, you can add your own in a structured way as defined in the spec. The other thing that you do in a typical setup function will be not only to register those values, but to register some callbacks as well. So when you have specific heavens happening, you want to process them so you register the callbacks. And then the callbacks will execute whatever logic you want to at runtime. This is an example of one of those callbacks. So this is a general callback for client heavens that has been registered in a previous method. And in this case, in the sample app, it's just one giant switch. And all it does is to log the fact that, let's say, we have a registration failure for us as a lightweight N2M client, or we have a registration success and that kind of stuff. But obviously, you could put some business logic there in order to do specific things when registration works or anything like that. So once again, the protocol is very clear and clean there in the sense that it's really about defining values, defining callbacks, and decide what you want to do at runtime. All right, now about the little demo that I built to support this specification. Essentially, what I did is on one side to run my Zephyr application, I used an Adafruit Federer. And this is the RF-52 model. So essentially, it's got a small cortex M4 at 64 megahertz, some storage, but not too much. And it's got a built-in USB serial converter, so you just plug it in and then you can observe whatever is happening on the console. And then it's got Bluetooth low energy radio built in. And on the other side, I just used a random Raspberry Pi I had lying around. In this case, a model B+. You could use probably any model there, really. It was running Raspbian, the latest version. And once again, we've got Bluetooth support in there.  And then on the other side, just ensure that 6-Lopin, IPv6, all of that was configured properly on the Raspberry Pi. And then we are running Lession on the Raspberry Pi. So we need to bring that up. And that's what I will illustrate in the next few slides. So all of the code here, if you download the PDF, should be cut and you should be able to cut and paste it without any problems. And I put little screenshots there of the output so you have an idea of what's happening when you type those comments. So to deploy the Zephyr Lightweight M2M demo is really straightforward. It's just if you want to use it over Bluetooth, you have to ensure that you've got the proper configuration overlay. The sample comes with overlays for several things. But in this case, there's one specifically for Bluetooth and another one for DTLS. So in this case, I just using the Bluetooth one. And then we do West Flash in order to deploy. So my other fruit fatter needed a little flasher. So I'm using the Jailing from Segerd in this case. And then we use Minicom in order to connect to our board to see whatever is happening. So when you do that, you have the output that you see on the right. And you see that the application is starting. And the last message, waiting interface to be up. So the network is getting up. And unless we assign an IP address to the device, it won't go further than that. So that's what we do as a second step, essentially. Establish the Bluetooth connection. And then, essentially, ensure that we associate, in this case, a static IP, IPv6 address to it. So in order to do that, the first step of instructions, you need to ensure that 6-LowPan is active in your Linux kernel. So you do a mod probe on Bluetooth 6-LowPan in order to activate that. And then Echo 1 6-LowPan enable. So with that, everything kernel-wise is OK. The next step, you need to retrieve the Bluetooth or the Bluetooth ID of the device. So HCI2 is what you use for that. So when you type that command, you will get the output in the first screenshot at the top here. And you see that, OK, there are many unknown devices. So that's my phones and random stuff. I mean, so much Bluetooth stuff in my home. It's a testament to the fact that I work in IT, I guess. So I retrieved, we see there's only one lightweight M2M IPSP node. So that's the identifier that has been allocated to my device. So I retrieved that identifier. And then I run the Echo Connect command that you see here in the second part of the slide. So we pass that. We do that Echo 2 6-LowPan control. And we use IP to assign a specific static IP address. And that becomes the BT0 interface when you type IFCONFIG, for example. And when you do ping 6 on that specific address, you will see, as you see in the second screenshot, that you can ping the device. So with that, we have the instruments that we have established properly the connection over 6-LowPan and assign a proper IP address. All right, now at this point, we just have the lightweight M2M sample running on our board. So the next step is to start our lightweight M2M server. And by the way, I added additional screenshots. When you assign the IPv6 address to the board, you will see additional output coming up. And you will see that there will be registration timeout. So that's the screenshot on the right of the slide. So you see it in bold registration timeout. This is because we don't have a lightweight M2M server running at that point. So we need to bring Leshen up in order to do that. And that's our step number three. So you can get the latest nightly build of the Leshen demo server by just doing this little W get. And it's just a few megabytes, so it should be over fairly quickly. And then you just start the jar you just downloaded. So if you have JDK version 8 and up, this would work perfectly fine. Just ensure that you set the configuration parameter to prefer IPv6 addresses since Sixlopan uses IPv6. So this will ensure that Leshen won't waste its time listening on IPv4. And you get once Leshen is running, you get the output that you see in the screenshot. When this happens, you can connect to the Leshen demo server. So you just use the IP address and port. And those things, by the way, when you start Leshen are configurable. So by default, it will use ATAT. If that port is already used in your environment, then obviously, this will, I would say that, you can reassign Leshen to use Analyte Report without any problem. And if you have multiple network cards in your environment that's the same, you can assign it to a specific network interface or that kind of stuff. So it's really flexible. And it's got a whole slew of options you can pass to it in order to configure it the proper way. But in this case, I use the defaults. So I connected to my Leshen Raspberry Pi on port ATAT. And I've got the screenshot on the left. So this is the list of devices that are registered on the Lightweight M2M server. So you see my little add a fruit feather there. And when you click on it, you get the screenshot on the right. So it will enumerate the various things that are available on the device. And you see that most of those values, you can do an observe. You can do a read. You can do a write. So you can dynamically modify the values for those configuration parameters or device parameters. And depending on what hardware support you have on the board, you can obviously expose those sensors and those hardware features through Lightweight M2M. So in the sample that's provided with Zephyr, you have support for some lights, temperature sensor that can stuff built in. So if the board exposes that, then you can manipulate them straight from the interface. And the interface on the left is also the one used to deploy firmware updates. So once again, this is something that we could have done. So that's what Leshen looks like. And at that point, you have a working environment. And you can start fine-tuning your Lightweight M2M application, implement support for whatever hardware you want to support, that kind of stuff. And Leshen will pick up whatever you code in your Zephyr application and expose and register properly in the Lightweight M2M stack. So it's that easy to work with. Now, Leshen is only part of what we have in Eclipse IoT. So I already spoke about Eclipse Californium, our co-app implementation, and I also evoked Eclipse Hubbit, which is an enterprise-grade solution to deploy software updates. So in this case, when you consider everything that we've got in Eclipse IoT at this point in time, but those numbers are always outdated, but at least they were good as of last week, so end of June 2020. We've got more than 8 million lines of code in the 45 projects that we host specifically in Eclipse IoT, more than 350 contributors, 42 member organizations, and in fact, 43. We had a new member last week, so we are growing all the time there. And that's just the Eclipse IoT community, the Eclipse Foundation as a whole as 375 or even 400 projects at this point in time. So just in the IoT space, we've got 45. And then when you look at the membership we've got in our IoT working group, you see our strategic members, Bosch, Rotec, and Red Hat. And you see who's who of the names in IT. Really, we have all sorts of layers, little startups, huge multinationals, and we've got the Linux Foundation. And this is something I would like to emphasize here today, the fact that the Linux Foundation is a member of the Eclipse Foundation. The Eclipse Foundation is a member of the Linux Foundation, and specifically of the Zephyr project. We don't have an artist of our own, and we are proud to draw support behind Zephyr and other open source RTOSs. But I must say Zephyr is certainly one of the best, if not the best. So we work very closely with the Linux Foundation, and we are happy to be a part of this ecosystem. Now, my call to action at the end of this presentation would be for you to really become an Eclipse member, to join our IoT working group, and help us build the future of open source IoT. And to contribute to the various IoT projects that we have, or even if you have technology that you want to open source, obviously we are open to that as well. OK, now, if you have questions, and there are some questions, I will look at them. Please continue to add them to the Q&A, and I will get through them as they come. If you want to keep in touch, I'm on Twitter as Blueberry Coder, and you can visit our website on ioteclipse.org. So thank you so much for listening, and now I will have a look at whatever questions are in the pipeline. So Pulkit is asking, does lightweight M2M have mesh support available? This is not something that I tested personally. I can be wrong there, but to my knowledge, I would expect this to work properly. I mean, as long as whatever mesh you are using is able to assign IPv6 addresses, the little scenario that I just described should be able to work. Obviously, mesh environments may mean that you will consume a bit more power, so you need to be careful about that. Then Robert is asking, are there other ways to connect the six-slope pan device over Bluetooth besides writing to the CIS kernel debug file? Do regular Bluetooth tools support it? I would expect this to work, but I must say I'm no Bluetooth specialist, but this is something I would try to dig a bit in. So maybe I will put something somewhere in the Slack channel if I get a more definitive answer there. Obviously, what I did in my demo was just to illustrate how things work at the basic level, but I would expect whatever typical Bluetooth tool you use to be absolutely working, as long as your kernel has the six-slope pan support baked in and that you activate, obviously, that module either explicitly or by default by putting that in the proper configuration file. The third question in the Q&A is from Andreas, and Andreas is asking, assuming I'm building a product for an on-premise solution, how does the client discover the server? Well, that's the thing, the client doesn't discover the server. What the client will do is to broadcast its presence, because essentially, as I mentioned earlier, co-app and lightweight M2M are big on broadcast, so essentially you send a broadcast packet and whatever server is there will accept the registration packet or the registration message, and then we'll process that. So if I go a bit earlier in my slides, so we see that process happening in the screenshot on the right. You see a registration timeout, registration failure, and then the lightweight M2M client is simply sending those registration messages all the time until a server will pick up the registration and send an acknowledgement message in return. So when essentially my relation server came up, we can see lower in the output that the registration message has been received, and the acknowledgement has been sent, and we see about in the middle of the output that registration is complete. So that's how it works, and that's one of the strengths of lightweight M2M. You don't need to know in advance the IP address for the server. You just start the client. If there's a bootstrap, if you want to use bootstrap, you need the bootstrap server to be available. So the client will send a bootstrap message until a bootstrap server picks up. The bootstrap server, when it picks up, will send back all the required information, and then after that, the device will register against the proper lightweight M2M server. So it's really great lightweight M2M as a solution for environments where the environment is unpredictable because you don't have in advance to know the IP addresses for the servers and all of that, and using DTLS, you can make sure using standard encryption that the data flows will be saved from man in the middle attacks and stuff like that. All right. I don't see any further questions in the Q&A. So if you have further questions, please add them now, and I will try to answer them, or otherwise, as I say, I will probably hang out in the Slack for the conference after this session ends. So the last thing I would like to say is thank you so much for attending my presentation today. I really appreciate your presence. I appreciate the questions that you asked. I hope this was useful, and please visit us at ioteclabs.org and leverage the open source components that we've got there. Many of them are server-side implementations that you can deploy in any cloud or on Kubernetes or on Promises. You do whatever you want to do. And we've got some tools that are useful, obviously, in embedded development, such as, well, in this case, lightweight M2M. I've got additional questions there. One is, I missed how to install it on the device feather. Could you repeat? Yes, I can repeat that. So it's fairly straightforward. So essentially, suppose that you have a Linux machine, you install the lightweight M2M, not lightweight M2M, but the Zephyr SDK. So that's really the simplest way to set up the tool chain and all of that. So once the Zephyr SDK is there, you have to clone the GitHub repo for the Zephyr code base. And going to the root folder of that, you type the command here, West build, you have to specify your board. The code is in samples, net, lightweight M2M client, and you pass the fact that you use the Bluetooth overlay to configure Bluetooth. After that, once the combination is over, you just flash your board using West. And then you can use Minicom or any other terminal application to connect over the virtual terminal over USB that you get in order to access the output. And that's about it. So it's very, very simple to deploy the application on the device. Okay. If there are no further questions, once again, thank you so much. Once again, happy Canada Day. And I'm looking forward to interact with you during the rest of the conference over Slack. If not, there's always Twitter. I'm Blueberry Quarter over there, as you can see on the last of my slides. So don't hesitate to reach out, always happy to strike a conversation. So once again, thank you. And I wish you a nice rest of the conference to everyone.


for this meeting possible. Some of our sponsors, Cass County Ag Improvement Association, the Ransom County Crop and Livestock Improvement Association, the NDSU Extension Service, the NDSU Department of Animal Science, the North Central Research Extension Center, the Carrington Research Extension Center, Serylson and ethanol, Blue Flint ethanol, and the North Dakota Corn Consul. So all those into our groups played a major part in helping make this meeting possible today. My name is Brian Zemperk. I work down in Ransom County as the Extension Agent, and I'm going to serve as your host this afternoon. We're going to get going with Gailen's going to talk about some storage issues this afternoon with the ethanol product. So at this time, I'm going to turn the floor back over to Gailen and get going with his presentation this afternoon. OK, thank you. Can you hear me? If you can hear me OK again, Scott, maybe give me a message. But I'm sure your lunch was better than mine, so I hope things are good there. And basically, I was going to talk a little bit about what costs the store, as well as maybe pricing options on distillers grains. And then also then jump into stories, things that we've tried here at Nebraska, both at the university, but also I'm going to share quite a few anecdotal stories from producers across the state that have allowed us to watch what they've done and recorded and gather some information from them. At the end, I'm quite excited because we're also going to compare feeding stored material versus not storing it and just mixing it fresh. And the part I'm kind of most excited about is that we've allowed some to spoil and fed it to compare to some that was not spoiled and be kind of interesting to show you that data. OK, so a lot of people have been very interested in the storage of distillers grains. And the reason that they have been is because we thought it would be economical to store. And I'll go through some of those examples here in a minute. Before I do that, Carl and the committee asked me to discuss a program briefly that we use to make decisions on whether to purchase the distillers grains and how much to feed. We've called that cattle code. It's a complete budget type model that uses the performance data that I showed you from earlier on the meta-analysis. In other words, the comparison of performance on different levels of different byproducts. You put in the feed ingredient costs that you have that you've been quoted. And then it calculates how much it costs to get it to your operation from the ethanol plant. How much you're going to feed, and then put in the cattle interest and feed interest. And it'll basically do a budget that shows, OK, how much more or less can I make if I feed the distillers grains?  But I think many people know how to do the calculation to do it on a cow-calf operation. But I want to go through that here just real briefly as well. So this is a picture of basically the entire sheet that is cattle code. And it is available online. And I have it up on my computer. So if you bear with me for just one second here, I'm going to try and share with you so you can see the screen that I'm using that's got the actual cattle code on it. So hopefully that shows up there now. And then we'll go back to the slides here in a minute. So when you first come to this Excel file, there's really only two sheets on there. It's one that just has a description of it and the different inputs and outputs that come. So it's just a real simple description of what it is. And then the other sheet is where you put in the steps that you want to actually follow.  And what you do here is these are the inputs if you were just going to feed them grain. So this is without the byproduct you're going to feed them. And so in this example, the cattle reading, 24 pounds a day, a conversion of 6.5, the price on calves. Now that was a little while ago. So we could change that and make these, hopefully, they're both higher. Let's just put them in at 134 and 110. I assume that you can see me doing that. And then medicine costs, death loss, and yardage charges, et cetera, you really want to make sure that this is as accurate as you want it to be for your operation. Now that's the first step. And most people get confused. You actually got to put in what are you using, what was performance for cattle fed just a grain based diet, not what are they going to perform like if you use the byproduct because that's what this program predicts. OK, down below here is probably the most important part because this is what compares different ingredients to corn. And when this program was developed a few years ago, corn price was $3. And so you can see what our corn prices are that are in there as default. And you can download this and, again, modify it the way you want. Now the whole way this program works is that you call the plants and get a price. And these prices are not accurate today, again, because prices have easily doubled now recently. So the examples only as good, though, is the prices you put in. And so I want to go through this because it basically makes comparing apples to apples a lot easier. One of the challenges on pricing the stillers grains and other feeds is that you get those prices on a per ton basis. And that's probably a per ton as is or as fed. And what you really want is a price per ton of dry matter to compare then to a price per ton of dry matter on corn. Well, as an example, I don't know if you can see this, but that corn is $3.30 and the is $187.83. If I change that to $6, that price is $250 per ton of dry matter. Now that's the important number to compare to the prices above of wet the stillers grains as an example. At $70 per ton, if that's what you get quoted, turns out to be $218.75 per ton of dry matter or as the percentage of corn is 88% right now. So if for no other reason, this program allows you to quickly identify, OK, what are my prices of corn that I'm paying or could get paid for my own corn? And what is the price quoted to me from the local ethanol plant for the stillers grains? And they're going to give you your corn prices quoted in dollars per bushel. And the ethanol plant is going to give you dollars per ton as is at the plant. And those two numbers cannot be compared. It's very difficult to compare those two. The only two numbers, which I assume you can see are these two numbers, this $218.75 and this $249.96. OK, but once all that's inputted and you put in ingredients, other ingredients in their cost, what happens is on this, this just next to those, the step three, it has a list here of different ingredients and then what's the inclusion. So right now, in this example, it has wet the stillers grains included at 10% with a 50-50 mixture of high moisture corn and dry rolled corn. And then 10% of the stillers grains is displacing those mixtures of dry rolled and high moisture corn. You could just use dry rolled corn if that's what you're in fact feeding. And anyway, it talks about, OK, what is my pounds that I'm getting per load? Some trucks are 30 ton loads, some trucks are 25 ton loads. What's my price per loaded mile? Again, that's probably a low number based on today's economics, et cetera, et cetera. How many miles from the plant am I? If you're closer to the plant, your trucking distance is going to be less charged than if you're further away from the plant. So it allows you to manipulate that, if you will, on how much transportation is going to cost you. And then all of that information's put in and then you get output. And so what it does is it predicts how is dry matter intake going to change, how is feed conversion and average daily gain going to change, and how will days on feed, if they gain more, how will that change as well? It puts in the feeding costs and the non-feeding costs, the cost of the cost per head of hauling, and then your ration characteristics and cost, total feed costs, and then your feed costs to gain. And notice, then, it gives a profit loss based on those numbers that you put in on the first input of step one. OK, all of that's not different than anything else that you may have used in the past, but here's where it changes is that this is then compared to this column of not feeding byproducts. So if you feed distillers grains at 10% inclusion, which is what we happen to have been up above, compared to not feeding, you stand to make $27 more per head than if you didn't feed it. Now, hopefully, everybody there that's got a feedlot that's in the audience notices what the P and L is on this steer based on those costs I put in. And that's, unfortunately, not far off with what some cattle are going to do, probably, that are in the yard today, unfortunately. So it doesn't say that you're going to make $27 a profit. What it says is that you're making $27 more than if you hadn't fed distillers grains. Now, I don't know how well that showed up. This program, again, is available for you for download. And if you want to do that, you're welcome to download that and play with it. If there's questions, we can come back to that next time. I'll go back to the slides here now and go from there. OK, so what the rest of the topic then that I'm going to discuss with you primarily, and again, we can come back to the cattle code if there's questions, is how do you store this? And first off, why would you store it and what's it going to cost? Well, to be frank about it, the reason that we got into this storage issue of wet distillers grains is because we have a lot of cattle and a lot of cattle close to ethanol plants. And so most of our ethanol plants prefer to make wet distillers grains. Then they don't want to spend the extra money to dry the distillers grains down and ship it out of the state or out of the country. But the problem with that approach is that our cattle and feedlots goes down in the summer month. And so we approach that we started into this four or five years ago because we saw dramatic decreases in the price of the distillers grains through the summer months, which means it's a good time to be purchasing the distillers grains. And that's primarily because of this decrease in cattle on feed numbers, as you can see here in July and August. And so if I was going to purchase distillers grains one month of the year here in Nebraska, I'd make sure I was year in, year out purchasing in July or August. Now, this is another diagram that illustrates that. And I realize it doesn't show up well, but the red bars are cattle on feed in the US. And so again, I'm just pointing out that cattle on feed in the US drops to around 10 million head in feedlots in the summer months as compared to 11 and a half or 12 through the fall, winter months. Now, so what? Why is that necessarily related to the distillers price? Well, if you look at this blue line that's in the background and on the y-axis over here is relative price, the cheapest price for distillers grains year in, year out is in the summer month. And we believe that's a cause and effect because cattle on feed numbers are lower, the distillers price is lowest in the summer month. So my only point of saying all that is is that that's what led us into this type of work and really has been what people have adopted. Now, that's for a feedlot even, they could purchase their feed needs potentially in the summertime, but it's also really important then for a cow calf producer that may need supplement in the winter and yet that's when they can't get into the distillers grains market and or it's the worst time to get into the distillers market because that's when it's gonna be the highest price. So the benefit of storage is really for small producers that can't handle semi-load quantities and feed it up fast enough and for small operations and cow, small feeders and cow calf producers that want to purchase feed in the summertime and feed it out later on throughout the year. Now, I mentioned this when we first started and I think it's an important point and it's sort of a feed sheet. When I'm talking about storage of distillers grains, I'm gonna show you some examples where we mixed a forage in with the distillers grains at say 80% distillers, 20% forage. And that's on a dry matter basis. Now, notice that because the forage might be 15% water or less and the distillers grains is 65% water or more, that when I go to weigh them out and mix them together into a bunker, I really only need about 9.3% forage and about 90.7% distillers grains. So my point is, is that there's a big difference between inclusion on a dry matter basis and inclusion on an as is basis or as fed basis. Notice 20% versus 9.3, 80% versus 90.7. So it's really important that whoever's mixing this, and again, if you're used to feeding cattle, you have to deal with this some anyway, but your nutritionists or extension or someone may help you with these calculations. My only point is it's important to understand the difference between dry matter and as fed because it dramatically influences how much you're gonna mix. As an example, if you were gonna mix up 20,000 pounds of this or 10 ton, you would need 18,133 pounds of distillers. If you did it on a dry matter basis, you would have loaded incorrectly 16,000 pounds of distillers grains. So it makes a big difference whether you're working on a dry matter as fed basis. When you go to load it in the truck, gotta be as fed. When it comes to the nutrition of the cattle, dry matter is the only thing that's important. Okay, what else do you need? Well, if you're gonna mix this to bag it or to put it in a bunker and mix it with forage, you'll need some equipment to handle it, which for some producers, that can be a limitation. You will likely need to grind any of your forages that you're going to mix with the distillers grain. Now, we've run things through our mixer wagons or trucks with scales, primarily because we wanted to do it accurately. I'm not sure that's a requirement in all operations that that mix is just perfect, but that's the way we've done it. And then if you want a bag, generally you could have a bagger, but you may want to just hire that out. That's the most common way.  Now, the definition we use for that is shrink. No matter what happens, you will never feed the same amount that you purchase. I don't care who you are, you never feed all of it. You're always gonna lose some. Now, it may dry out, you may not weigh it out accurately, you may actually lose some to fermentation losses, et cetera, but that shrink is really important. And it's important to know what that number is because if you're gonna store it and you lose half of it because you stored it, that's probably not gonna be a good deal. If you lose 5% though, versus 15%, that could be the difference on whether it's smart to store it or not. So my point is, is we've got to estimate that and we've got some data on this, but I'm just saying that the numbers that we propose is likely three to 6% if you're bagging, five to 15 if you're bunkering it or putting it into a bunker. And again, date is always best. And if anybody stores this, it's always great to measure how much dry matter did you purchase versus how much dry matter did you get fatter delivered to the cattle. Okay, so now there's sophisticated and then less sophisticated ways of doing this. Our economist, Dr. Darrell Mark, that we work closely with, who's obviously gonna do it the more sophisticated way has developed a computer model as well. And then we've also provided a hand calculation sheet, which is what of course I use, generally because it's a little simpler. Well, we want you to account for how much the byproduct costs, so the cost of what the stiller's grains at the plant, the cost of the forage or whatever you're gonna mix with it, if you're gonna mix anything with it, that'll give you the total cost of your feeds. We have a mechanism to account for the transportation or the cost of getting it delivered. Generally, those loads are gonna be 25 to 30 ton loads. Obviously, we have to cover the cost because it is a fairly labor-intensive process when it's first stored. Have to account for fuel costs, which obviously in today's market is a big issue. There's a cost of your bunker. Even if you have one on hand, there's a cost to your having a bunker and there's a cost to bagging if you choose to bag it. You may rent equipment, so you may have other equipment costs that you gotta account for, plastic if you're gonna cover it, et cetera, et cetera. And then there's an interest on when you buy that feed compared to when you actually utilize it at the cattle. So again, Dr. Mark has sophisticated this in a spreadsheet which I will briefly show you and then I'll also show you though a hand calculator that does this, but it does a lot of things where it'll tell you your total cost on an as is basis, your total cost on a dry matter basis, which I think is very useful for producers to compare. It'll give you estimates of your shrink. Of course, you put that in, but I mean it'll give you an estimate of what that shrink does to your cost. And so you can get total cost on a dry matter basis with the shrink included, which again, I think it's an important cost to keep in mind. So there's a manual that we put together three or four years ago that sort of described our experiences at that point. It was sort of a cookbook, so to speak of different mixes that could be tried that we knew would work well, but in this manual, which again, I've shared and hopefully it's part of your materials there today, on one of the pages on the inside there, I believe it's just one second, it is page 14 in that manual is the sort of hand calculator example of doing all of these different costs to eventually get to how much does this cost you if you're gonna store this and how much does it add to your feed cost. So make sure this is crystal clear. Just getting material in in the summer and storing it is not a free process. There is cost to it. So the only way that storing wet distillers grains makes any sense at all is with the assumption that it'll cost you less if you buy it in the summer and that therefore, if you can buy it at a cheaper cost, some of these extra costs of storing it will be offset because the original feed was cheaper. I think most people assume that there's not much cost on storage and there is. So that's why I'm emphasizing that. Well, and if you want the more sophisticated approach with the Excel file, there's four steps in that Excel file and I have a picture of it.  And so it does a good job of analyzing those costs. Again, just like cattle code, this one is called a cattle store and it's a model that predicts the storage cost with multiple steps. It's actually fairly simple to use and allows you to play with that. Again, unless there's questions, I may not switch over and share that screen with you at this point, but be happy to go through an example if there's a lot of interest in that there. Okay, now maybe into some of the details of what we've tried. There'll be a lot of pictures here, so I have a lot of slides, but it's mostly pictures and things for me just to comment on and then move on. So, I didn't go on the tour obviously this morning, but I'm presuming that's wet distillers grains there and not modified. If that's wrong, we'll talk a little bit about modified, but at least with wet distillers grains, this here is a picture of a payloader and the whole concept of this picture is is that you cannot drive on wet distillers grains and pack it in. The payloader wheels just spin out underneath it and Terry Klopp and Steen colleague here at Nebraska uses the analogy that the wet distillers grains is like mashed potatoes. Hopefully everybody there can relate to what mashed potatoes are like.  It just doesn't work to pack it in. As you can see, the payloader just drives into it. It doesn't actually drive up on it and you won't be doing that very long before you get stuck. So the concept that we started with is is let's mix some low quality forage in with it. This is just our research station where we are grinding wheat straw, we've tried corn stalks, we've tried about any forage that's available to quote unquote bulk up the wet distillers grains. With the goal in mind that you either bag it under pressure or drive on it in a bunker and pack it in. So our experience at the university is that if you try and put wet distillers grains in a bag and you put pressure on the bag, you will have to rebag it the next day. No, the material is so dense and has so much pressure that if you put any pressure on it, it will expand and blow off the bag. Now to be fair, just to be really clear here, wet distillers grains will go into a bag and it'll keep in a bag. You just can't put any pressure on it. And so I think it's fairly clear in this picture, the top of this bag is right here. I don't know if you can see it because there's a bag of corn solids behind here, but this is modified distillers grains. And then right here is where we switched over to the wet distillers grains. And you can see that the height of this bag is about there. So the bag is about twice as wide and about a third of the height if you put wet distillers grains in a bag. But again, it'll work. You just can't put any pressure on it. Modified distillers grains will go into a bag because it's been partially dried, will go into a bag just fine under pressure. So this is again our bagging system. Again, we mixed everything through trucks so we knew the right mixes and we've tried adding different levels, if you will, or different concentrations in the mix of these bulky forages. So we obviously, this blew out. And so we were putting pressure on the bag and we didn't have much forage in because that was one of the treatments and it blew that part out. As we added more forage to that mix, it started to bag fine under pressure. And so we were trying to determine if you want a bag wet distillers grains under pressure, what's the minimum amount of forage. The other thing we've tried, again, this is our research station, is putting these materials into a bunker and being able to drive on it. So this right here is 30% grass hay. We happen to use grass hay for this. And this is 40% grass hay on a dry basis and then we were able to easily drive on that and pack it. Now, another common question about this is, well, is this like making silage? Does it in silo? And I want to caution you that the concept is very much like silage, where what you want to do is get the air away from it. So oxygen is the enemy. So if you can keep oxygen out of this, it will dramatically improve your storage and decrease spoilage. So yes, we're packing it in like silage, but it's not because it's gonna go through the ensiling process. It's primarily just to keep the oxygen away and keep it from spoiling. So again, you can see we were able to drive on that with no problem and it packed in quite well just like silage, again, to get all the air out. We had a conference at our station a couple of years ago and we did some mixes, which is what they're mixing right here and packing it in.  We had modified distillers grains that we just piled up straight. We had wet distillers grains, again, that we just tried to pile. And then what we did is we covered those piles and we also covered the mixes that we made. So you can see that we covered everything that we did in plastic and put tires on it. We let it sit for, I think it was about 30 days ahead of the conference, maybe longer, 45 days. And then we had the meeting and we opened them up for the first time. So when you open up those bags, this is the modified distillers grains that was just piled straight and covered in plastic. So you can see that it doesn't look very good. And when you dig that away, you get about, oh, a six to eight inch layer that's pretty poor, obviously, and spoiled. But I will point out that below that spoilage layer all the way down that modified distillers grains from that point on is quote unquote, just as good as the day we brought it in. So my point is you can pile it straight and cover it. You'll just get some spoilage on the top. And then once it seals off, it's sort of preserved, if you will, down below. This is the mixture of four-aged mixed in with wet distillers grains. It's not as good of a picture because it's not as far back into the bunker, but not near as dramatic of spoilage, only a couple of inches instead of eight to 10.  And then we opened those bags up again after about 30 to 40 days of storage for the conference. And they look as good as the day we put them in there. So again, you can bag wet distillers grains with no pressure. You just, it takes more area and you gotta be a little careful on when you're feeding to feed it up fast enough. So what we've tried is we've tried adding wheat straw, corn stalks, we've used grass hay to wet distillers grains. So all of these are with wet distillers grains. And then we've also added corn stalks and wheat straw to modify the distillers grains. Now, in some cases in the feedlot situation, you're actually trying to get just the minimum amount of material to bulk it up. And so again, these just happen to be numbers that we tried that worked. In the bunkers, we've added 25 to 30% wheat straw. I've been able to drive on it. We did a different study where we happened to need more corn stalks. So we added 45 to 55% corn stalks. We've added 30 to 40% grass hay and they all worked. Now that's all on a dry matter basis. My point of saying that is, is notice that if I add 12 and a half percent wheat straw on a dry matter basis in a bag, the bag wet distillers grains under pressure, that's only about five and a half percent on an as is basis. So it's a lot different when you go to weigh it out in the trucks and mix it up. So those are things that we've tried and gotten along real well and had no trouble with storage. Okay, so what have producers tried? Well, this is a project near Odessa where they stored wet distillers grains. Kent Hubbard, he mixed them with forage he had, sorry, and drove on it and packed it on just like he would his silage. This is the pile when it was done. The criticism here is that that pile was way too wide and not near tall enough. The goal in making silage and making these storage piles is to make them a lot taller and a lot less wide because you wanna decrease the surface area. So the second year he made a much better pile. It was much more narrow and a lot taller and more successful in our opinion. Other producers have used instead of just piling outside and driving on it, they actually put hay bales around. This is a cow calf producer and made a makeshift bunker. They piled hay down, excuse me, they ground some hay and spread it out on the ground. Then they brought in the wet distillers grains and dumped it on top of the hay and sort of layered it in. And then they mixed it. Once they had piled some wet distillers grains on it, they actually used the front end loader here to do the mixing as they pushed it into the bunker. And so they did not run it through the mixer trucks and weigh it all out. They sort of layered it in and then mixed it up as they were packing it and pushing it up. So obviously if you can't tell which one of those works for the University of Nebraska, that's Denny Bauer who's got the red Nebraska code on. He's an extension educator out there. Once they had piled it, they covered it in plastic and with hay and it just looked great underneath. So there was plastic on it. They actually put some hay on top of that to try and make the seal even better and worked just great for them. Others have just tried to pile it. This was a produce. I've cut out a lot of the slides that you, that I had shared that may be printed for you just for the sake of time here. But this was, I think, 30 or 40 loads of wet distillers grains in the summertime, more or less piled on the corner of a pivot and allowed to sit there. So this was put out in July or August, I can't remember, out near Madrid's, out near North Platte. This was coming back a few months later. You notice that the color is a fairly nice, bright yellow here and then it gets much darker as it's stored and dries out. And if you looked at that pile, it looked fine on the surface, sort of dry, but when you dig down into it, you'll notice that there's a spoilage layer here and then once you get below that spoilage layer, again, it looks pretty good. As good as the day it was put in. But this was left uncovered and just allowed to sit there. Again, the cost has to be pretty low, but that's the way that these folks wanted to store it at that time and then feed it out later. And of course, we've done some things at the Goodman's and Ranch where, again, piling in a makeshift bunker, putting plastic all around it, and piling in wet distillers grains and sort of sealing it back up. So it looks like a nice pile. Looked good once it was opened. Really had very little spoilage. This is that same pile being opened later. Hardly any spoilage on top or anywhere else on that because it was sealed really well. Okay, what we've also tried to do is we've tried to evaluate whether you need to add a cover to it or just let it sit. And to do that, we could either use a whole bunch of bunkers or we could use barrels. And our barrels serve to mimic, if you will, or simulate a bunker situation. So in this case, we were looking at covering it with plastic. This is actually sand that we poured on top of the plastic like you'd put a tire down on the bunkers, on a bunker that was covered in plastic. And then this is opening that barrel 45 days later. Notice that here in the middle where there was no air that got to that material, looked just as good as the day we put it in. Around the edges where it wasn't sealed is where it spoiled some, but not much on the plastic covered barrels. We also sprinkled salt on this at about one pound per square foot. This was the day that it was put in and this is what it looked like after being stored for 45 days. Again, we wanted to see how much spoilage would occur. And these were our controls. If we just mixed wet distillers grains with straw and put it in these bunkers and let it sit for 45 days, notice what happens. On the very surface, it dries out and looks pretty good. But once you move down through, you really get three layers. And then down below this layer, once you get down into the barrel down here, then that material looks pretty good and looks like it did when we put it in. So my point is, if you just pile it and pack it, you will get a fair amount of spoilage on the surface. I think that's normal. Some producers, the question came up this morning about distiller solubles. Some producers will actually use those solubles and spray it on top of the bunker. So we went ahead and mimicked that. We sprayed solubles on top of these barrels, either with or without salt and looked to see how much spoilage and losses we had. So basically the students went in and recorded how much weight was spoiled and how much was not spoiled, how much we lost and which covers were best. So to kind of summarize that, if you were in a 10 foot bunker, our estimates are that you'd lose three and a half to 5% of the dry matter. And depending upon the cover, we saw anywhere from one to 15% spoilage, which you got to keep in mind that just because it spoils, you're probably gonna feed it. And so just because it spoiled, we assumed that we would need to quantify that amount and that that's gonna end up being fed to the cattle. Plastic covering it in plastic resulted in the least amount, obviously uncovered and just left out as a control was the most and the solubles and salt were kind of intermediate. Now, the last thing is if you're gonna use syrup and spray it on top of a bunker storage, so to speak, you're gonna lose 25 to 50% of that material that you're using as a cover. And that's just important to keep in mind. In other words, a lot of people like to do this but the solubles better be cheap because you're gonna lose at least half of it or at least 25% of it. In general, when the distillers spoils, the fat is lowered, the pH is dramatically higher in the spoiled layer compared to the unspoiled.  The minerals increased or concentrated some and the proteins either unchanged or increased some. So in essence, the spoilage process uses up the fat and sort of keeps all the mineral and the protein and the fiber around, so to speak. Okay, so that's kind of a quick overview and I know that's fast, but I also know it's after lunch and so hopefully that was okay. But we wanted to look at, so what? What happens if you have the distillers grains and it spoils? What's the impact of using that spoiled material? So we went and we got distillers grains from the same plant and we put it in a bag or in a bunker. Clearly, if you look at this bunker, it's a lot of spoilage in that bunker. We actually had two bunkers. We fed out some cattle feeding that material compared to a bag. And after 39 days of storage, you got quite a bit of spoilage and if it was in the bag, you didn't get hardly any. So it clearly was different. This is the bunker halfway through the feeding trial and this is down towards the end. And again, you can see that on top of there, we're getting some areas where we've got a lot of spoilage and it did not look good. This is after we mixed it in the finishing diet, this is the control diet that was distillers grains out of the bag and this is the distillers grains diet out of the bunker. Clearly, you could just visually see which treatment had the spoiled stuff in it.  That little bit of spoilage that you saw in the bunker lowered the amount of fat, increased the amount of fiber, protein was unchanged, pH was a little higher as you'd expect, mineral was higher as you'd expect. And actually the bunker got wetter and then it got drier at the end. But I don't know if the dry matter matters, this is gonna change, the stuff left out in the bunker is gonna change depending upon what the weather does. If it was in North Dakota, it would have been about 10% dry matter this year, so at least based on what I hear up there. So we lost about 12% of the material out of that bunker just from storing it. So about 12% less, if we, whatever we purchased, 12% was gone. And you have to account for that loss and when you price those ingredients. We lost 16% of the fat that we bought. We lost 8% of the fiber in about the same amount of protein as dry, excuse me, as what we lost in dry matter. Pretty bad stuff. So how do you think they perform? Well, this is a corn-based diet that we fed as a control. This is the 20 individually fed head steers. This is the bagged distillers grains that was not as spoiled, obviously, in a bag, fed the 20 steers. And this is the spoiled material out of that bunker that you looked at. So these guys, you would guess, would do poorer than these guys if you looked at those bags in the bunker. Well, what happened is that final weight was impacted average daily gain was impacted and feed to gain was impacted as well, but not the way you'd expect. Final weight was much greater, but it was greater for the two treatments, regardless of which one it was, just the two that had distillers grains was greater than the cattle fed corn. Average daily gain was greater for the two treatments that had distillers grains, but no difference. And if anything, numerically better for the cattle fed on the bunker and feed to gain was about the same. But again, numerically better if anything for the material from the cattle fed out of the bunker. All of them did better than the cattle fed corn, but again, that's to be expected. Carcass characteristics were not impacted, so I'm gonna jump right through that. Okay, so we thought we were pretty smart. Spoilers, the spoiled wet distillers grains or the stuff in the bunker had less fat. We saw the same increase in pH and mineral and fiber compared to the bagged material, but the thing that was surprising is there was no difference in performance between the stuff that had spoiled versus the stuff that was allowed not to spoil. So we thought, well, that's interesting, not what we expected. So let's do it with some growing calves and then we'll kind of have the complete picture. So we went and did it with growing calves, the same way we fed cattle that were fed distillers grains at 15 or 40% of the diet that was stored in a bunker. And then we fed 15 or 40% of the distillers from distillers that was put in a bag that we're saying. So we're saying bagged materials non-spoiled, stuff put in the bunker is quote unquote, spoiling, allowing spoilage to occur. That's fine, this is what it looked like. This was done this fall and winter, excuse me, this winter spring. So this was put in the bunkers back in November and the trial started here in March. So it went through the wintertime. This is what it looked like as we were going. Doesn't look near as bad as the stuff that we fed out last summer. You can see that there's clearly a discoloring across the top and some spoilage, but not near as dramatic. So what happened to performance? Well, interestingly, at 15% inclusion, this is the spoiled material out of a bunker that was allowed to spoil more. This is the non-spoiled material out of a bag. Again, it fed at 15%. And then the same over here, but these two were fed at 40%, so just to be clear. So if you just look at these two numbers, cattle that were fed the distillers out of the bunker that had more spoilage ate about 1.8 pounds less per day, gained about two-tenths of a pound less, but not dramatically different. And if anything, there wasn't a significant difference there, but numerically the cattle fed, the bagged distillers grains did just as well if not a little bit numerically better. Okay, sorry, let me back up. So over here at 40%, again, the cattle fed out of the bag, eight more feed gains weren't dramatically different, 2.5 versus 2.35. And notice here that if anything, the feed conversion's better for cattle fed, the spoiled bagged material compared to non-spoil. So it's perplexing, it's interesting, I would say, but we didn't see a dramatic difference in performance. Okay, the last three slides I just wanna show you, we compared feeding this stuff fresh versus stuff that we've stored. And in this first study, it was 30% wet distillers grains, 70% corn stalks, and cattle fed material that had been stored versus fresh, eight more, gained more, and were more efficient. And those were significant. So feeding this stuff, then it comes out of a bag that's been stored, was better than just mixing 30% distillers and 70% stalks fresh every day and feeding them. So there was something that was improved. But here's the problem. These guys gained more, but they also ate more. So we don't know if they gained more because they just ate more, or if it was in fact better feed. So what we did is we went back and we said, okay, let's force the intake to be the same. When we did that, the gain was less, but here's the problem. We did not do this study right. So we did it the first time, we didn't get it quite right. We did it the second time, but we didn't use the same distillers grains in both cases. And it turned out that the stuff we fed fresh was actually better, had more fat in it, had more energy. So we messed up the second one. So then we did it a third time. And this time, I think we got it right. We forced them to eat the same amount. We got all the same source of the distillers grains and had a distillers straw mix and noticed that the stuff that was stored, those cattle gained more and were dramatically more efficient. So we believe storage with a forage in a bag anyway, certainly helps performance compared to feeding fresh. So sort of a summary of all this, which I know is a lot of material thrown at you, but I tried to be as complete as I could. If you can store what distillers grains alone in a bag, but you better not put any pressure on it unless it's modified distillers grains. We've done a lot of work where we've mixed it with low quality forages anywhere from 15 to 50% forage with 50 to 85% distillers. And we've bagged it and we put it in bunkers and we've never had any major problems. Storing it, storing wet distillers grains with the forage probably improves the forage. In other words, that's why the siloed material or the stored material performed a little better. I'm guessing there's 20 to 30 or 40 producers across the state that have done this. I can think of at least a dozen or more that have done it and no one's had any trouble. And I'm saying that on purpose is that I've never heard of a horror story of storing it. There's only one, at least in Nebraska. And I mean that because there was one story from Iowa State in a trial they did where they stored it and it didn't do so well. So my point is is that a lot of people tried it and they've all gotten along good. I recommend covering it in plastic even though it's a labor-intensive process. I think it's well worth it. You should plan on losing five to 15% and you should expect that the fat will be slightly reduced if you store it and that's from the spoilage process. We didn't see, we saw spoilage maybe, maybe not, hurt growing performance and certainly had no impact on finishing cattle performance and that's not what you would expect. So we're quite intrigued by that.  So I appreciate meeting up with chat with you from here and I hope it's been useful, but don't know if I've taken way too much time and no time for questions. Is there any questions for Gail or whatever you want? Is there been anything done with using an ointment on using an ointment? My product? My product? Yeah, this last study here I kind of skipped over that. That last study had an inoculum put onto it compared to this one that was exactly the same but without an inoculum. And the inoculums for silages and so forth are generally there to help with the fermentation and speed that fermentation process up so it ensiles faster. Because I never really explained why this doesn't ensile but the pH of the stillers grains coming out of those plants is already very acidic. It's a pH of three and a half to four and that's what the final pH is for silage. So and that's what kills off all the bacteria and silage is that really acidic environment at the end once it's ensiled. So my point is I would be surprised if inoculums have much benefit. Now to be fair, notice that this was not significant because they both have a letter B on them but you can see here that the conversions went from nine, eight to nine and so these were individually fed steers and there was I think 20 animals on each of those levels so that should be pretty good replication and but I'll let you decide if that's significant enough. That's the only study that we have. I'm not aware of others that have got other experiments looking at use of an inoculum in this process. There may be other work out there but I'm not aware of it. The common common thing that's growing in some of the spoiled stuff and whether any of them are harmful to cattle and I guess when Greg gets into that just give his stuff a last question about what the other types of products are. Yeah, that's a good question. We've analyzed some of those samples, not some of them, a lot of them for mycotoxins. We've not done the mold types. I know that's possible to do. I have some colleagues that are in the plant pathology area and to be frank, I hope I quote them correctly, they've suggested that isolating and analyzing for all the different fungi that are there would not be a good use of time. And so we have not tested for all the different types of fungi and molds that are there. But what we have done is what they did recommend is do tests for presence or absence of mycotoxins. And I've got to tell you, we've never seen any spikes and any mycotoxin. We've tested for the suite of mycotoxins that are out there. Mycotoxins is sort of a general term for all the nasty things that some fungi can produce. And we've never seen anything. And one of those studies that, remember those piles of distillers I mentioned that were on the edge of the field that they had just piled up. In that specific study, there was a spike in xarelinone. The problem is, is that we didn't test it when it was first put out there. And we happen to have a corn year that year where we had some corn with a lot of xarelinone. So I can't promise you whether it came from the corn originally and just was into the distillers grains to begin with because the mycotoxins that are in corn end up in distillers grains. There's no doubt about that. And in fact, it gets increased three times based on what we were talking about before. So I can't say that the mycotoxin was there because of spoilage or whether it was there because it came in from the corn originally in the ethanol plant. So that's the only one know out of 10 or 15 samples that have had any problem. So I don't want to say that it appears that it's never a problem, but I would have expected us to see it if it was much of an issue. It's a good question. Hi, Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. Hi, I'm Galen. What's your experience with that? What's your experience with that and the spillage grains and all the coles? Yeah, we've, I've been approached about that. And, you know, I'm aware of those. And I think that there's no doubt that there's preservatives, if you will, that could be added. And there's no doubt that my guess is they'll be very effective. I don't have any experience with them. We haven't tested any of them. And it'd be nice to have some date on that. Cost effectiveness, as you know, normally that can be quite prohibitive. I mean, I think that's a common statement anyway, is that the cost can be prohibitive. The benefit here, though, could be is that if a preservative was able to be sprayed on, the spoilage is not occurring throughout the whole pile. It's occurring at the surface where it's exposed to oxygen. So my point of saying that is, is that preservative costs might be very, it might be decreased because you're just spraying it on the surface, and that's where you need to inhibit the mold. But I can't answer whether it would be effective or cost-effective, because I've not tested it. I do know Camin and some of those other companies that have those products are quite interested in it. Just got to keep the cost down. Sorry? The cost of abortions, the brain and the cells. Does it cause abortions? I apologize, I couldn't hear very well here. Question one, though, the mold and the cod, first and foremost, brain and the cells. Yes, there are a few of those. Beef cows are by far the most sensitive out of cattle, the most sensitive to mycotoxins. That's probably one of the first, unfortunately one of the first symptoms of it. Finishing cattle are probably the least susceptible animal out there, followed by finishing swine, but breeding stock is very susceptible. There are many of those mycotoxins, depends on which one it is and how potent it is. And the problem is to see there's a suite of probably 20 different mycotoxins, and each one of them has a different concentration before it causes some of those challenges. I don't have all that information on the top of my head. I apologize, but a few of them are quite potent and very instrumental in causing abortions or fetal problems. But like I said, we've had a lot of folks do this, and no one's told me it's been a problem for them. And my experience is, is anything I tell people to do, and then if they go out and they try it and they have any problem at all, I'm the first one to hear about it. So I'm saying that, not jokingly, I'm saying that that's a good thing and I've not heard of any problems. It's always something to check, especially if you're feeding it the breeding stock. Gail in here, that was the last presentation with us, Gail in there.


Ya shifting from faraway many years, yarn has mostly been used to make paradise clothes, mostly you would see grandmothers making them, they will make sweaters for their kids and things like that but in today's world yarn actually has been modernized to make a lot of other different things. For example we have flowers that are made out of yarn being that yarn is many very many different colors, kwenmati karakaweza na yon kwaweza na watua kwaweza yaweza kufa kwaweza niwa wajata kwaweza kwaweza watua kwaweza na waweza kwaweza na watua yon kwaweza niwa, kwaweza na waweza ma shape iwa nini kwaweza na waweza kwaweza niwa wajata It was considered an art where only grandmothers and mothers used to make it but now, you are as a young person. Tell us about your story. OK. The main one of the reasons where I started to crochet because I felt like crocheting is an art that shouldn't just be left in the past. It's an art that started long time ago. We all know it from grandmothers, but nowadays I thought of how can we keep on going on with this art, So that's why the modernization of the yarn came in. Personally, I make outfits. For my love of fashion, I use that to make outfits out of the yarn. More than outfits. That include dresses, more than sweaters that people wear nowadays, a lot of other things as well. Okay, so if I were to give you an order to make a dress, so how long does it take to make one? How long it takes to making things is actually very different. If I'm going to make a dress, a full dress, that means I'm going to take a lot of time in making the dress. It's actually a process. So when I get an order, I'll just take you through the process. When I get an order from a client, the client tells me the kind of design they want or the kind of outfit they want. I now draw it and come out. When I'm drawing, I get to know the measurements, what am I going to use. If you don't have the measurements, I'm not going to make the outfit unless you send me the measurements because I don't want to catch any material that outfit for eight hours only for you to tell me it's not fitting because you didn't give me the right measurements. So I prefer measurements. So take us through the process of making a product like that. Okay, for example, I just tell you about this. It's currently a dress. It's for a client. She wanted a maxi dress for her birthday, but black and white. How is that a dress again? It's a dress. Currently you can't really see, but this is the upper part. I'll just try to show you. Can I try to see how you can see it? Of course. The upper parts? Yeah. Oh, okay. Okay, different colors. Yes. Ah, so how come you don't know the measurements? Yes, I always make them. I'm making different pieces. Then I will join them to form a dress. So currently I'm just making the pieces. After I've made all the pieces, they are connected. Once they are connected, we get our dress. Okay. Yeah. Let me show you. Ini bust. One bust. This is another. Impressive. Yes. So ini already nisha form bust. So I'm making the body. Okay. So I'll make it a kujahivi, yende from waist, yende to hipst, yende to chini. When I have this in full and this in full, I now connect them. Connect them. I'll have to form a perfect dress. Okay. Yes. So let's talk about this one. Oh, this. Is that a sweater or what is it? This leg is a sweater top. Oh, okay. And the shoulder is a sweater top. You can just see it. So this here I make elastic. Oh, nice. Yes. So you can see ini elastic, when I'm going to wear this, it's going to fit me perfectly. Okay. Yeah. So do you choose the color for your clients or they choose it for themselves? Some clients actually, one of them, I just choose for me the color or others actually tell me, I want that in green or I want that in another color. So the beauty about it crochet is like at any point you can get any color you want. It's so colorful. Kuna orange. Kuna all the color that you can think of. Kuna blue. Kuna. So it's actually a place where you can play with different colors to come up with different design. If anyone wants, they can check out my page in IG at Crochet Lux. You can, I just see the art. You can see the way where I'm playing with the colors. Nice. What I'm coming up with. Yeah. What about this? What is this? This is a skirt. Oh. This is a skirt actually. Okay. This is nice. You also do this. Yeah. So this is just the design of the skirt. Uh huh. It's like you can flip it. Nice. It looks very, very difficult to do. Is it? It's not. Like I told you, it's a skill. I can begin to make more complicated designs.  So when I'm doing that, drawing helps me come up with that. And then after I draw, is when I start to create. So this can take a long, can take five hours, can take ten hours, can take five days, can take a week. It depends actually the design of the outfit and how long the outfit really actually takes to make. And how does that affect the cost range? Of course, that affects the cost range. If I'm going to take a lot of hours making a gamet or a dress probably, I'm going to charge more for it because whatever you're paying me as a crochet artist is you're buying the art. You're really not buying the outfit. You're buying the art because when I'm making a crochet outfit, it's like I'm giving a piece of me to the art itself. That means there are some moments where I get frustrated. I'm making an outfit and then it's not working out the way I want it. So it means I'm also giving out part of myself. So when you're buying a crochet outfit, you're not just buying the gamet. You're buying an art and that's what it's actually going to cost you. So that actually costs more. Yeah. And there are different forms of art. Why crocheting? Crocheting is a very fascinating art. First of all, if I just trying to explain when I started crocheting, I started crocheting four years ago. When I started out, I used to have issues. For example, I couldn't get my measurements right every time I would make an outfit that would come out smaller or maybe larger than the one I intended to make. So over time, crochet is a fascinating art being that it grows.  That's how I can really tell my story. Because when I started out four years ago, I couldn't make perfect stitches. I couldn't make perfect measurements. But now when I look back, it feels like it's gradually increasing. The skills, they are gradually increasing. And then when you look at a crochet outfit, there's just some uniqueness and it's so amazing. I can't really explain it. But that's the beautiful thing I love about crocheting. It's such a beautiful art. I really can't get to explain that how fascinating it is. I don't know if other people see it as well. But as for me, I feel like it's a very fascinating art that I would like to continue making for a while. Okay. Most of us are used to cotton clothes like the ones we have. And this is Yan, Niusi, Kunashimo. So how can you, how do you go around that? Yan. Okay. That's actually because people don't really know much about Yan. They are Yan made out of cotton. They are Yan made out of silk. They are Yan made out of a lot of things. It's because it's modern times. Ya Kitambo, we used to think Yan is just made out of, that's a cleric actually. The one you're holding right now. But Yan can be made in other different forms. We can have a cleric. We can have cotton. We can have silk. We can have nylon. We can have a lot of things out of Yan. Ya. So you work with a cleric or you work with all of them? It depends on what I'm making. If I'm going to make a baby's cloth, for example, a baby's dress, I'm going to use a much finer Yan. And that's cotton Yan. It's softer. It's, you know, so actually the type of Yan also dictates what you're actually making. If I'm going to make something else, I use a different type of Yan. Ya. And how is the market for your business? The market is tricky actually because this is an art that I think there's stereotypes still around it. When you think of crocheting, you just think of somebody sitting down and using a hook, probably grandmother picture. So when you modernize crochet and you bring it in a form, in a modern time, so you're going to make an outfit out of something that has been thought to be of the old times, people begin to ask questions about it. So actually that's a way the market is being affected because of the stereotypes. So when I'm going out there as a crochet artist and I'm looking for a market to sell my product, I'm actually looking for people who know what art is, not somebody who wants to buy a gamet. I'm not, I don't want to sell to somebody who's fascinated by art. Who knows the amount of energy I'm going to put in the gamet. Who knows that I'm going to use creativity when I'm making the gamet. Somebody who understands art and that's my market. That's the people that I want to target, not just anybody else. I would love to say that I was one of those people who thought about crocheting as a grandmother sitting. So I'll ask you, do you ever get bored or are there any other challenges that you go through? Of course there are a lot of challenges just from the point that you say you have to sit to make a crochet outfit. Actually one of the things that crochet has taught me the values that I'm getting from this as being just a crochet artist I've learned discipline, I've learned commitment because I have to sit down and make this outfit. If I don't feel like doing it how am I going to complete my outfit. I've loved it it has also improved my creativity. So apart from just crocheting for the other things there are values you get out of crocheting. You learn to be committed, you learn to be disciplined you learn to be creative you learn a lot of other things as well.  It's crazy actually because as an artist I'm using this as a crochet I'm taking this as my brand being that it's a brand I am the producer I am the marketer I'm doing all the things like a one man person's business you know So currently it's still hard but one of the things that have really helped me to balance as being a student with this art it has been that planning is one important thing that I have got to I've got to be with the chain to learn how to plan so well planning has helped me a lot in balancing because I know when are my classes coming up when do I have clients who want one to three things how am I going to make that and how do I cooperate that between the times that I have for my studies and the time that I have to create So planning has really played a major role in my life to enable me to balance between my academics and also to and my creative side. You've said that crocheting has helped you in discipline and planning and the aspect has instilled in you Okay, greatly crocheting has helped me personally with my mental health when I was just starting out in Skuli I had some really weird mental health issues I don't know it was just but actually mental health is currently a problem that is affecting many of the youths So before I had started crocheting I was dealing with a lot of mental health issues and that means depression I was that one person that would just stick in the house the whole day to go for classes and don't do anything By that time I really didn't feel like I wanted to engage with the world I felt like I really wasn't having a grip on reality and the times were really tough the times were hard because there's no one I could talk to because things like depression and stuff I think that people are still frowning upon you will go and tell your friends and they will be like kwawe a chana nadipu urechi kwawe ushiku na depression that's what they tell you probably but at the end of the day you're suffering you don't really know how to get your grip on you don't know how to start what to do and how to move on So in a way that crochet really helped me that's actually when I started to crochet I just thought yes I thought the future holds for me because actually that's really what depression your anxious about the future and maybe you're sad about the past so it's really a lot and so I said I don't really know what the future holds I really don't know about that I know of the past but I'm not really going to let the past drag me down so the only way where I really got my strength back is through crocheting because I said I'm sleeping the whole day just make a bralette that's you know the swimming I make a bralette if I did it today I can do it tomorrow and I can do it the next day and that's how I got my confidence back and that's how I started to live again so yeah I think crochet is just a big part of my life and it's an atta wouldn't just want to push out and take it out because somebody said it's just sitting and crocheting I feel it's a big impact and I would like to say it for someone out there who's currently dealing with depression just find one thing that you can do anything even if it's just small if you do it today you can do it tomorrow repeat the same thing you did and if you do it after a period of time you'll find yourself back again feeling happy again feeling that at least you can do something for yourself so yeah it gets better I would love to congratulate you for being a hero and standing up for yourself and choosing something better I would really love to congratulate you for doing that so where do you get your clients from? so my clients mostly get them online yes an online presence gets me to my clients because like I told you before crochet is an art you need to really find people who know what art is and you don't just find people like that anyway you have to sell your product put your product out there tell people why somebody has to choose you currently there are so many other crochet people there are so many other people so if I'm going out there to get my clients first of all I need to tell them I'm selling art I'm not selling a garment so I need a specific kind of people that know what I'm actually selling they know the advantage of something that is handmade and they also know the value of art and also another thing somebody who can actually pay me for my price because I'm not going out there to just sell I need somebody who can get to the price I love the fact that you're an art enthusiast I was also once an art enthusiast but I love how you do it and out of it are there any other art activities any other activities that you're involved in? currently I really won't say because you know with the nature of crocheting it's really hard to get around doing other things actually currently my life is around crocheting at academics I wouldn't really tell I'm expecting other types I'm doing other types of arts but I'm a person who just love art naturally love art I love the simple things of life and all that so with that I get to whatever crocheting helps me if I see something outside of nature that is art I can implement that into crochet so actually crochet is a broad I see it as a broad way of expressing my creativity and also art as a whole because if I can make flowers out of crochet that's like just art in nature brought into crochet yeah yeah so how do you plan to sustain your business going forward? since I'm still studying right now it's kind of hard I'm still struggling with the marketing I'm still struggling with production and all that but I'm thinking that when I'm done with my studies my plan now that is when I'm done with my studies I can actually involve other people as well that also creators of art like crochet I mean other crocheters so we can come up and start something together you know when you're we are around 2 to 3 people 5 people it's clearly that you can get more done compared if I'm just one person so the way that I want to expand is by involving other crocheters as well and after involving other crocheters also we can also have people who can help with advertising and marketing so I'm seeing it as something that I want to create a brand out of it and not just a one person brand to want to involve other people so that's actually my plan so saying that you have made this for yourself you have created something good for yourself what can you tell other people who aim to do the same thing as you have I'll just say the times are tough currently the times are really tough everything is changing drastically economy and all that I'll just say if you have something that you can do whatever that is it's a modernized world currently we have internet whatever you can do just do it and show it to the world you never know actually if you begin loving this thing that you're doing or somebody else may just like it so anything that you find your hands to do you don't really have to wait for a white collar job so anything that you can do with your hands or anything that you can do just do it and show it to the world thank you so much Quinta this has been very informative personally I am challenged are you challenged out there take it upon yourself to do something productive with your hands that will make you even better each and every day this has been Youth in Action I am Nyongweso Grenis


The Independent National Electoral Commission has praised fears about the 2023 elections following the 20 million permanent voters' cards, which are yet to be claimed by their owners, and the poor participation of citizens in the ongoing continuous voters' registration exercise. I, next Deputy Director of Voter Education, Mary Unkem, stated this in a Booja during the launch of the PVC Bulls Drive project, organized by a non-governmental organization, the Advocacy for Civic Engagement. She called on Nigerians, especially the youth, to be actively involved in the process of electing new leaders as only votes and not social media would determine the winners of the 2023 general elections.