SCaLE

Room 211 Saturday Mar. 07 - SCaLE 23x

3:58:20 · 05 Mar 2026 – 08 Mar 2026 · YouTube

About this talk

This talk features Denver Ginger, the director of compliance at Software Freedom Conservancy, discussing the OpenWRT build system and its implications for compliance in embedded devices. He showcases the OpenWRT1 router, detailing its specifications, including unique features like USB-C and USB-A ports, power over Ethernet, and expandability options for storage and other functionalities. Ginger emphasizes the importance of compliance with licensing, such as the GPL, when producing embedded devices and provides insights into how developers can manage this. He walks through the process of creating a source code tarball to meet compliance requirements, stressing the significance of upstreaming contributions for simplification. The session also highlights the necessity of including clear installation instructions for end-users, referencing examples from various companies, and encouraging audience engagement with the OpenWRT project.

Full transcript

testing. Test one, two, three. Okay. So, this one can be used. >> Testing. One, two. Mic check. One, two. So, I'm pretty sure we got another 10 minutes or so until the talk officially starts. Yeah, that sounds right. Okay, perfect. So, I will wait until the talk start time to start talking. testing. Oh, there we go. problem. What do you mean? All right. So I think we're

at about the start time of this talk. So I will begin. So I am Denver Ginger. I am the director of compliance at software freedom conservancy and today I would like to talk about the openwrt build system. How we got all the compliance uh and how you can too with your build system. And I'll talk about some other very interesting things I hope along the way. So

first of all I want to chat a little bit bit about what brings us to build systems with an example here. So you may have seen this example around the conference. This is the openwrt1 which is a router that we designed in collaboration with openwrt which is our member project. Uh and we put a lot of interesting things into it that you might not find in other

routers. Um, so this is the device in person here. So you can get a sense of the uh the size of the router. Um, and it has neat features like this USBC port on the front is actually a serial port. Um, there is also a USBA port for peripherals like printers or storage or other things like that. And then you can also find uh the Ethernet ports

you might expect on the back like a 2.5 GB port that also supports uh power over Ethernet. So you can power the device that way. Uh you'll see that the devices here at scale are indeed powered that way. I see one on the floor over there and over there that just have an Ethernet cable. So very cool use of that. Uh you can also power it over

USBC if you prefer. So there are some neat things inside of the router as well. So you can see that there is a an M2 slot here uh at the top left there. Uh so you can add some storage that way. There is also a uh that also doubles as a mini PCIe slot. Um so maybe you want to upgrade to like Wi-Fi 9 or Wi-Fi 10

in the future. Um, and you could do that by adding a mini PCIe card uh to that because we do expect this device to last at least 10 years if not 10, 20 or 30. The OpenWRT developers are very excited about maintaining the support for this device for a very very long time. Uh, so I'm very super happy about that. There is also a micro bus connector.

So that's a standard similar to what is used on Arduino for the shields that they have. Uh, so that gives you some GPIO pins and other things like that. A few other cool things like it's got a J-tag header already populated, so you can just plug in a J-tag if you like debugging the system that way. You can also add a battery onto there as well if

you like the clock to keep running when it is not connected to power. So yeah, lots of things in there uh for people who like to hack on things. Uh so we would certainly encourage people to do um as they like with it. Oh, one thing on the the previous page, you can also see there's a switch there between the NAND and the NOR. Um so if

uh some reason you flash something onto there and it's corrupted or doesn't boot properly, then you can switch to the other one. Uh if you break the other one also no problem, you can boot over the network. So it is an unbrickable device and yes, that is a challenge. Um please do let us know if you think you bricked it. uh and we will fix it for

you. So why is it that we build these embedded build systems? Well, there are a few reasons that this comes up. Uh you may want to for example in the case of OpenWRT and Software Freedom Conservancy. Uh you may want to provide something that you know people will be able to hack on and that also provides some funding for uh nonprofit organizations like Software Freedom Conservancy and

OpenWRT. So $10 of every purchase of the OpenWRT1 goes to the OpenWRT earmarked fund at Software Freedom Conservancy. So a great uh additional reason to buy an OpenWRT1. And there may also be other reasons. Uh you may want to sell the device as a for-profit company um and make some profit off of it. Um, so you know, as long as you are in compliance with the license,

um, then, you know, we're happy for those uses of OpenWRT as well, uh, or other embedded build systems. And when you sell a device, you also must comply with a number of things. You must comply with different regulations and requirements. And so that is a reason that I wanted to give this talk to make sure that people are aware of the obligations and requirements um that come

with selling a device. And part of that is if you work at a company and you say are seeing that maybe some of these things are not being done uh you can say hey we should fix these things. And then on the other side, if you are a person purchasing these devices like a router or something like that, we would encourage you to check whether your device

comes with source code or an offer for source code. Uh and please let us know if it does not or if there's a problem with that source code. So I will be talking a little bit more about that later. Uh but first I wanted to jump into uh the bit about compliance here. So when you're talking about complying with different rules or regulations, the big question that

you have to start out with is what is in this thing that I am trying to get compliance for? And this is often a very complicated question. And hopefully uh by the end of this you will see that it doesn't have to be complicated. So the first thing that you will often want to know is what package versions are inside um the device. So a list of

packages and list of all of their versions. uh that's very helpful. So that would be all of the upstream packages that you are using. Then you would want to uh definitely indicate which outofree patches that you have. Hopefully this is not a lot of patches because then that makes uh reasoning about your device more difficult because there are a lot of things that you have to figure

out yourself when it comes to security vulnerabilities or otherwise. Uh and fortunately in the case of the OpenWRT1, the OpenWRT community was so excited about it uh when it was announced in January of 2024 that between then and November 2024 when the device was launched, they upstreamed basically everything that was required in order to have the OpenWRT1 run with a mainline kernel and other components. So, I

would highly encourage this for anyone else um that is making embedded devices um and and super happy that the OpenWRT community did this because it makes it a lot easier uh to reason about compliance etc. So, there may also be some non-free stuff uh on the device and so you would definitely want to know what all of that is. um you know in the case of the

OpenWRT1 there's basically nothing but on a lot of routers you know they may have a proprietary interface and other things like that so you definitely want to know about that uh and what is on there. The last thing I wanted to just briefly mention uh and this is talked about a lot in a lot of different places is whether there are proprietary programs that are derivative of

some copyed programs and uh a lot of companies spend a lot of time and money trying to answer this question and frankly this is not the biggest problem that we see in compliance uh in various devices and so I don't want to spend much time on it myself but I just wanted to note that it is a thing that companies tend to worry about uh but I

am going to rather spend the time talking about the things that are the bigger problems that we find when we are uh assessing the compliance of different devices with the GPL and other uh copy left licenses. So let's start uh going through an example here and of course I will be using the openwrt build system here. And so how is it that we create this source code

tarball that is the thing that we produce with the device when we ship it. Um so this is something required by the GPL that you have the source code available for something when you ship it. It's not like in a month or 3 months or a year. It is when you ship it. You must have this source code ready for the people who may request it and

you must provide an offer for that source code as well. Um I don't have the box here right now but there is an offer for source code right on the front of the openwrt box that it comes in. Uh so that is one way to comply. Um and we would encourage people to make that as prominent as possible. So the first thing we do to get this

source tarball for complying with the GPL and other copy left licenses is we download the openwrt base tree. So this is the thing called openwrt.git at git.openwrt.org. So you can download that uh clone it and see how we started this whole process here. Now this is a pretty small tree. Basically, it just controls a bunch of things about how to uh compile and install other packages. Uh

so there's not not too much to it. It's fairly straightforward. Now, this was derived from buildroot uh when openwrt started in uh in 2004. Buildroot had been around for 3 years at that time. It started in 2001 and the OpenWRT build system has diverged a bit from Build Rroot since then. There are a lot of OpenWRT specific things um in the OpenWRT build system such as you

know specific packages that are expected to be installed uh specific paths that it uses. Uh but yeah, build route is another excellent uh build system if you like some extra flexibility. So anyway, we're starting with this base tree here and then we are running make menu config. And so doing this gives us a config file that includes all of the list of configurations that we chose uh

in the menus that we get through this configuration tool. So the type of system that we are building for the packages that we may want want included and all of those things. So once we have that doconfig file then we can run make download and what that does is it downloads all of the upstream tarballs for all of the packages that the doconfig file indicates that we

are using in the router and then it also creates a feeds folder that includes a bunch of package metadata and so those two things are now in our directory. The last thing that we need is a bunch of uh at least, you know, two how-to files. And these don't have to be called how-to. What I'm talking about here is the thing that GPL version 2 um describes

as the scripts used to control compilation and installation of the executable. So that is the thing that GPLV2 says you need. That is the license of Linux and BYBox and many many other programs. and I'm going to describe to you what should go in these how-to files so you can ensure that you are complying with that portion of GPL version 2. Now, happily for software developers, this

is something that people who like to hack on things would naturally create. If you want someone to do something with a project that you have made, you would like them to be able to install it and run it on their own system. And so you would naturally create how-to files to say how to build it, how to install it onto your device, etc. And so quite fortunately

for us here, um these uh this um natural uh intent of the developer and the requirements of the license go hand in hand. And so you can make sure that you are being in compliance with the license at the same time as you are ensuring that people can do everything they want with the software on this device under copyed um uh under copyed licenses. Uh which is

exactly why the license is there. So what does this give us when we have all of these things? Well, it gives us a minimal set of things that we can reason about. And by that I mean when you are considering the different regulations and requirements that you might be concerned about uh you can quickly answer the questions that may arise. So for example with the cyber resilience

act in the EU you are going to be concerned with whether your uh device um is subject to any security vulnerabilities. And if you have a list of packages and the list of versions on the device, then you can quickly determine if you need to uh further investigate um and test for vulnerabilities and then patch them on the device because the Cyber Res resilience act uh the

CRA uh requires that you patch those quickly. Then on the flip side, there are regulations like the uh the uh like from the FCC and those may require you to determine if something has changed on the device whether you perhaps need to reertify the device. So perhaps there was a change in an upstream uh wireless firmware and you would need to then potentially reertify the device. Now

the open WRT1 has been FCC certified. So we are very happy that there are no issues uh with running OpenWRT on any device that is certified by the FCC. So that's another you know helpful thing that we get from building a device is knowing that if a company says oh no we can't let you install OpenWRT because the FCC won't let us. um that is wrong uh

because we have shown that there is no problem certifying a device running So we have this minimal set of things we can reason about for responding to these sorts of questions about regulations and we get this from this very simple set of things. So the simple base that we have is this openwrt.getree along with those how-to files and then we have a simple config file. So thatconfig

file that lists packages and other configuration of the system as a whole and then essentially the rest is upstream. So thanks to all that work of the openwrt developers there is very little outside of the upstream code that is going into the openwrt one and so that is pretty helpful and makes it very easy to reason about. We would encourage other people to try to follow that

path when you are making a device. This also leads the rest of the development process to be steered towards simplicity. And what I mean by that is that if someone is adding packages or changing configuration or something like that, they are less likely to uh import a giant vendor tree or something like that. Um and instead are encouraged to by the process itself add a config line

or something else like that uh to ensure that it is done as simply as possible and can continue to be reasoned about easily. So you don't have to do a bunch of analysis of some giant other bunch of code that you haven't inventoried at all in any way. Um so if for some reason people still want to add a vendor tree, you can at least show them

how easy it is to not do that and to instead just edit the configuration. So we would encourage people to do that as well. And in the case of openwrt uh based on the simple steps that I showed you on the last slide, we are able to easy easily produce a self-contained source tarball. So this is 1.2 GB and that includes all of the source code for

all of the tool chains that are needed uh the cross compilers and all of the upstream packages and everything else. And 1.2 2 gigabytes might seem like a lot, but we re routinely get source code candidates from companies that are 10, 15, 20 gigabytes um uh with a lot of uh you could say extraneous things in them. And so we would encourage companies to not do that

and keep things simple so that you can reason about what is in your device and the source code that you are providing to people uh for compliance with the various things uh if for no other reason. So this is pretty cool. We have this self-contained tarball. Once you have the tarball, you don't need anything else. You can um run it on any uh any distribution uh because

it has all of this stuff. It doesn't need to download anything online. So, you may be wondering if you do work on embedded systems uh or maybe you are assessing some source code candidate that you received from a company when you asked them for source code. Say for example that you have a TV or I don't know these days like a fridge or a washing machine or

something and you look through the manual or the user interface and it says in you know fine print somewhere like oh by the way you can get source code at this location and it's like you're excited you want to go get that source code um and then you go download it and then you open up the tarball and like there's just a list of folders and no

instructions or anything. Um yeah uh so that would be a problem uh because there does need to be something that tells you how to build and install the software that is under these copy left licenses that have these requirements. Um so I would encourage you to to let us know about that and I'll uh mention how to do that later on. But anyway, if you are building

one of these systems uh you may be concerned about these how-to files. Um and so that's why I'm going to talk a little bit about what these how-to files look like. Uh and for anyone looking at the source code candidates that companies might be giving you um give you a framework for determining if you are getting what you should be getting uh when you get source code

for a device uh that perhaps you want to do something interesting with like add a feature or otherwise. So let's fix that and I'm going to do that by showing you a few different examples here from a project called use the source. So this is a project Software Freedom Conservancy started a couple years ago and the goal of the project is for people to be able to

use the source code that is provided for their devices to do interesting things with those devices to add features um you know to change the behavior in a way that helps you do what you need to do with the devices that you have. And so I would encourage you to check that out. Um now unfortunately sometimes companies do not provide enough information to do that. Um which

is a violation of the GPL and other copy left licenses. Um and so people do sometimes need to express how they were unable to um get interesting things done despite the company ostensively providing source code. Um in this case the source code is incomplete uh in violation of the GPL. Um and so we do unfortunately have some examples of that. Um, but you know, we want to

make sure that companies are aware of what these issues are um and that people are able to discuss them and so we do host those as well. But I'm going to be going through just the first four uh the first four items on use the source today and these are all in compliance uh with the copy left licenses at issue. Um and so I would just like

to kind of show you how it's done, what these howto files look like. Of course, they don't have to be named how to, but sometimes they are. And I'm going to go through some a bridged versions, but you can feel free to download the complete uh source code releases for each of these four products um and check exactly how they did it. Um you know, how they

put the um how they put the source code together, how they created these how-to files, uh etc. So, we'll start, of course, with the And I will start by showing you a diff of the ls between this openw writ tree that openwrt.git repository that I mentioned earlier and the source tarball that we provide for the openwrt1. So you can see here that we added a config file.

So that is the file produced by make menu config. And then when we ran make download then these two extra folders called DL and feeds were added. So, DL contains tarbals of all the upstream packages. Feeds contains metadata about those packages. And then you can see these three how-to files that we added. Now, the first one is not required by the GPL, but is included here to

help you out in case you want to configure the Wi-Fi. and the other two are required by the GPL in the sense that the instructions included in them uh must be included somewhere in the source code uh release that you provide for works under the GPL. And so I'm just going to briefly go into those. So first how to set up the build system. So this is

an abridged version uh because OpenWRT, as you might expect, helpfully goes through every distribution people might use and tells you which packages should be installed for each distribution so that you can then uh compile and install OpenWRT on a router of your choice. So this is pretty helpful here. I've uh trimmed it so that I'm just showing the Debian example here, but uh you can trust me

that Fedora and others are all included as well in this file here. So uh it very helpfully shows you how to set it up on basically any system. So that is how to set up your build system. And then this one I actually didn't have to trim at all. It's all here on one screen. Uh so this is how to compile and install the software. And so

it provides a link to how to set up the bill system, which is the same information in that previous text file in case you didn't read that one. And then it also shows you how to add Lucy to the configuration so that you can have that web interface available with OpenWRT when you get it installed. And once you've done that, you simply run make uh optionally with

this - J parameter to use more of your CPUs. And then once that make process is done, you have a firmware image that is ready to install onto the OpenWRT uh one. And so this is really cool because what that make uh command does is it goes out and it uh takes the source code for the tool chain. It compiles that all. So the cross compiler that

you're using once the cross compiler is done being built then it will build each of the packages that are in the um the upstream package list and then it will assemble all of that into a firmware image that you can then install on the open WRT1. So, this is pretty cool, pretty simple, straightforward. And then it even shows you at the end here how to install it

onto the device as you must do in order to comply with the GPL. And so, it says you copy that firmware image onto the device using SCP. uh since every OpenWRT installation runs an open SSH server, then you run the CIS upgrade command and you pass it that firmware image and then that will upgrade you to that version of OpenWRT that you just built, you know, optionally

with some of the changes that you may have made. And then if you want more info, here is a website you can go to. So this is pretty simple, straightforward what um the OpenWRT developers did for the OpenWRT1. Uh I actually didn't tell them what to do. I just said, "Hey, you know, can we make a source to bal?" And they're like, "Yeah, let's make a source

ball and we'll put this in it." Great. So this is what we've got, what developers naturally make when they are given the task of doing this. And it is also what is required by the GPL. So I would encourage um companies to um have their developers do this uh to be in compliance with the license. So that was the open WRT1 the first example uh of four.

I just wanted to go through four just to make sure that people are you know you know no it's you know it's not just us like everyone is doing this or at least sees that they need to do this. Um and so in here I would like to talk about Samsung. So this is an example from a Samsung television. Uh and so we received a Samsung television.

We got the source code release for it and these are some of the steps that Samsung gave in order to build and install the software unlicensed under copy left licenses onto that Samsung TV. So first it tells you how to build Linux. So you copy this config file into place. Then you run make old config and then make image and then you will get a U image

file that you can copy into this place that we will use later. Then for busy box we unpack the busy box tarball and run make on that. We pass in a cross compilation flag here because that wasn't included in the make file itself. So they've shown us how to do that. And then we have a busy box binary. What do we do with that binary? Well, we

put it inside of a root file system image. And so Samsung has helpfully provided this root fs image in the source code candidate uh or source code release itself. And you don't have to do this necessarily. You'll notice that openwrt uh with the one did not do this. Um it was just built entirely from source, but Samsung chose to include it. Um the point here is that

there are a variety of ways to arrive at compliance and you don't necessarily have to do it a certain way. The important part is that you are able to compile and install your changes onto the device. Um and that can be done in a few different ways. So Samsung is showing us a different way to do that here. So first you unpack that root FS image that

Samsung provided as part of their source release. Then you remove the existing bus by box. you copy the new busy box into place. You know, some of these steps are a little redundant here, but you know, whatever. That's fine. Um, and then you can uh remove that original root FS image and then you uh make squash fs to create a new image from that root file system

that you've just modified. And then you can remove that root file system uh because you now have the image that contains it. Okay, great. So we now have a U image and a root FS image. What do we do with those? Well, Samsung goes on to explain how you can install these onto the television. And so first of all, you connect a serial cable to the Xlink

port of the television. And then you make a folder called update on a USB memory stick and copy these files that we just talked about such as the root FS image and the U image file uh into a folder named update on that USB stick the one you just created. Then we connect that USB stick onto uh to the USB port of the TV. Then uh it

says here while the TV is unplugged, you press press the shift key and the tilda key at the same time. You hold those down on the serial console and then you plug in the power to the television. You wait 2 seconds and then you press the enter key. Um so you know this is maybe a bit more complicated than it has to be but uh Samsung tells

us how to do it and that is what is required for compliance. And then once you've done that, you will get a Uboot menu in the serial console that you have connected to the television. Then you press the zero key on the keyboard and press enter. And that will get you to a prompt. And in that prompt, you can then type BBM USB. And that will show

you a list of options you can now do at this step here. And some of those options are how to flash the kernel image and how to flash the root fs image. And so you would then press four in order to flash the kernel image. You tell it where uh which file to flash. You type in /update/u image. Uh it assumes that is the thing on the

USB memory stick that you plugged in and then it will write that kernel image to the television. Similarly for the root FS image, you can also flash that in a similar way. Now this root FS image does not contain any of the proprietary components that come along with the TV and that is not required by the GPL version 2. Uh so this will essentially boot you into

a um a busy box prompt. Uh so you know Linux and Busybox are both uh distributed under GPL version 2 and so this would be in compliance with GPL version 2 and helpfully uh a lot of people have taken this and they've said yeah well we would still like to use some stuff on top of that. Um so you know they've written their own or otherwise made

sure that you can run other programs on top of this. So there is a project called Samiggo that allows you to do this on certain versions of Samsung televisions. Um, and it's pretty neat that we get projects like these out of these source code releases. And indeed, this is exactly how we got OpenWRT because Lynxis was shipping Linux and other copyed programs on a router. Uh, they

were sadly not doing it in compliance with the license and so they were sued and then we did get source code from links. Uh and so that was great because that was the first commit into openw and uh since then they've of course expanded to many other routers and so I'm very happy that we do through these source code releases uh get a lot of those benefits

that the GPL uh essentially enshrines uh that you are supposed to have when you uh when you receive source code for Linux uh that or when you receive binaries you are required to also receive the source code, the company has to give that to you so you can make meaningful practical use of the source code to make changes and install them on your device. So anyway, this

is what Samsung did and an example of a project that came out of that called Samiggo. So super happy uh that we got that. The next one is perhaps the simplest of all of them and this is an example from Think Penguin. So Think Penguin makes a number of devices uh including routers. Now, Think Penguin uh distributes routers with no non-free software at all, no blobs of

any sort. This does also mean that the routers uh use somewhat older Wi-Fi standards uh because there are no uh versions of the later the newer ones that h have no blobs. Um but this is pretty cool that Think Penguin does this and they've also made it super simple. So, they actually include all of the source code with the device itself. So they include a media along

with the device and so you can just uh take that um CD or USB stick or whatever it might be and then you can get the source code straight off of that. So it tells you how to use it here. You extract this tarball, you go into the Libra CMC folder and then you run make. So no other configuration required. And then that will build the firmware

image similar to the OpenWRT1. And when the build completes, you will see that the image is found in this folder that it tells us here. Now, every version of the Think Penguin router comes with a web interface. So, it shows you how to use that to do the upgrade, the firmware upgrade. So, you go to this IP address in your web browser. Then, you enter the admin

um admin password and then you navigate to system and then backup or flash firmware, and you upload the firmware image there. it will flash it onto the device and then reboot with that image that you just compiled optionally you know with some changes you may have added. So this is pretty neat um and pretty simple uh very cool that think penguin has provided such simple instructions uh

for what can be a very simple operation. So thanks to think penguin I will move on now to our last example which is for AVM. So AVM is the largest router manufacturer in Germany and they have provided these um scripts as part of the source code that they provided. Um and just a note we're talking about uh I quoted earlier the installation of the executable. And so

here you know scripts there are certainly some you know scripts run by the computer itself but you can also see here scripts written in English um that we are going through in order to complete all of the steps. Um and notice notably uh the GPL version says you must provide the scripts used to control compilation and installation not just some scripts not random scripts the scripts. And

so what that that what that means is that the scripts that the company used in order to compile and install the software are what should be provided uh for compliance with the GPL. Um and this makes it pretty clear uh to me anyway that you know you you get all of the things that they did. Um and so uh you know that should be pretty straightforward because

they were somehow able to compile and install the software onto the device. So they can simply just provide you that information and you can too do that. So this is what AVM provides here. They say they've only tested it on this one very specific version of Abuntu. Uh sadly that is compliant with the license. You don't have to make it work on everything. Um you know but

that that is a reasonability standard that I think uh I think is fine. I think you know if people uh only test on one thing I don't think we can you know force them to test on a lot of different things. But that is what they chose to do. You have to install Abuntu22.04.4 uh in order to build uh and install things onto this AVM router. So

it tells you then to execute these commands on the Abuntu machine. First you clone this git repository. Uh now this is a little risky here because you don't know if that repository is going to disappear or otherwise become unavailable. Um and if it did then uh AVM would be out of compliance. Um and so it would be great if you would instead include this repository in the

source code release um that is being provided. Uh but you know if you want to risk it um you can uh just note that you will be out of compliance if this goes away for some reason. So uh AVM has risked um the uh this and I think this repo repo still exists. Um so these instructions should still work. So you clone that repository, run a couple

commands here, and then you execute make menu config to select the router that you would like to build it for and save that configuration. Then you run make tools, and that will build a bunch of the programs uh including some you may modify if you want uh to reinstall onto So once you have compiled those then you need to uh similar to the Samsung television you need

to unpack an existing firmware image and then to copy over the files that you just made uh uh into that root file system and then repack that root file system into an image. Uh so these are using some custom tools uh from this Fritz project um like uh FW mod right here. And so in this case they're showing you how to install a modified version of UC

libc into the um into that firmware image. And so this is this is the instruction that AVM has provided. So you unpack it, copy uh UC Libby into the appropriate place and then you repack the firmware uh using another uh flag to FW mod. Once you have that modified firmware image, then you connect the Fritz box that is the name of the router to the Abuntu PC

and then you do not yet connect the power to that router. Then you use if config to set up the an appropriate IP address and then you call up this flash tool. uh you start running this tool called push firmware and that will sit there and wait for the device to boot up and then you supply the Fritzbox that is the router with power and then that

command will detect that the router has been connected. It will flash this new firmware image onto the router and now it will be running those uh that modified UC Libby or other things that you may have copied into that. So this is um another way to comply with the license um similar to how Samsung did it um and you are once again able to uh build and

install your changes onto the device. Now um I I mentioned earlier that this is something that you know companies generally know that they have to do. I think you know uh sadly not a lot of companies um you know more companies that I'd like are not actually doing it. Um, and so that is why you may find when you look in your TV or other uh device

and you find an offer for source code and you try to exercise that exercise that offer by either downloading it or emailing the company whatever they uh tell you you need to do to get that source code, you may not get the complete source code. Um, and that um, you know, you haven't done anything wrong. It's just that the company may be out of compliance. And so

I would encourage you to let us know and I'll provide resources for that shortly. So just to summarize here, we have shown how to make a um make a build system and the software that it produces easy to reason about. We've made it easy to build the software from a build system like OpenWRT's build system. And then we've also made it easy to install that software onto

the device by including these how-to files. And we've provided four examples of how uh different organizations and companies have provided those scripts used to control So I just wanted to end here by noting a few things. So, this OpenWRT1 router here that you have probably seen around the conference um and a big thanks to Scale um and the tech team in particular for um you know making

sure that um they were using you know kind of the coolest hardware out there to run their uh wireless system uh because I think it's great that we can show that these devices really are you know uh reliable um and suitable for all of these environments uh like a whole conference's Wi-Fi. Um, so that's pretty cool. I would encourage you to come to the Software Freedom Conservancy

booth, uh, which is right at the front of the expo hall on the left. Um, and check out this router a little bit more if you want to like see the inside or otherwise or the box that has the offer for source code printed on it. Uh, we would be happy to chat more about it. We also do have some left, I believe, available for sale. So,

um, you can buy them with cash or card if you want. um and we can give them to you in person uh if you would like to do that. Software Freedom Conservancy is a 501c3 nonprofit charity and if you like the work that we are doing, I would highly encourage you to become a sustainer of Software Freedom Conservancy if you are not already. Uh that QR code

right there goes to that sustainer link um that I put on the slide. I would also encourage you to check out use the source uh the link just below that and you can take a look at the different source code candidates that we've received for different devices there um and whether there were any issues with them uh whether it was easy to make changes uh to the

software based on that source code. And it also has a little form that you can use to upload uh source releases or source candidates that you may have received from companies. Um if you are like concerned that they might not be compliant, want to want to um start some discussion on that. Um I would encourage you to check that out. Now, if you are not sure about

a violation, a GPL violation or otherwise, um, and you would just like to let us know about something, I would encourage you to email us, uh, using this address, [email protected]. Um, I read every email that comes into that address. I may sadly not be able to respond to all of them immediately because we, uh, unfortunately get a very large quantity of of GPL violation reports. Um, and

so please do let us know though because even if I don't reply immediately, um, it does get added to our list of of potential open violations so we can prioritize um, what we work on accordingly. Um, so I would encourage you to do that. Uh, as you might expect from a talk by me, the slide source code is also available here. Um, so at the bottom right

here, you can uh, click on that link. um uh going to the last page of the of the the talk slides here at the URL at the top and then download the source code for these slides. Um so thank you very much. Um and I would be happy to take some questions about build systems use the source any source code you found that you think is awesome

or you're concerned is not awesome. Um and uh would be happy to chat more about that. I think we have about a little under 20 minutes for questions. So, thank you very much. >> Yeah. Hey. Um, I'm just going to walk this mic over to you here. I don't think we have any other >> Thanks. So, I wanted to ask you about the relationship between the OpenWRT1

and Nyx because Nyx that I've heard rumors that last year scale like Nyx was running on the OpenWRT1s here and then uh yesterday at Planet Nyx uh you know Ron who led like I guess the morning keynote uh said something about like NYX and open WRT1. So I mean are those rumors true? Is there is there some something going going on there? >> Uh so I mean

uh you could ask the scale tech team for more information. Uh I haven't talked to them about Nyx OS in particular. I don't know if anyone wants to comment on that from the tech team uh here or otherwise. Um, sorry. You'll have to pass the mic around. Um, if that's all right. Um, so yeah, just uh this is this is Robert Hernandez from the tech team. Um,

so we don't actually run Nyx on the yet. Um, we're running we're running Uh but we do run nyx on the core routers and the other servers that are running things like bind and and DNS and or DHCP and all that. >> All right, that's good to know. And I think I mean I I can't comment on any specific um uh distributions we've done this for. Um

you can maybe ask the Nyx OS people about this uh if you're interested in more. Uh but we do generally you know if uh distribution wants to run uh on openwrt on the uh we we do often send them uh hardware units so that they can they can do that. Um so um for example uh the openwrt1 one does run debian uh thanks to some work from

different organizations on that. Um, and it would not surprise me if you see Nyx OS running on the OpenWRT1 um in another year or so or maybe even sooner. Uh, but yeah, that I think is the the state of things, but I'd be happy to chat more with um, you know, who whoever is interested. And then the other thing is uh in the scale network repo which

is on GitHub under the SoCal Linux Expo org um it's all of our code for running the network. We do have an like a experimental build of of Nyx OS on the OpenWRT1. >> So So >> we we tested one on the floor. Yeah, it's just experimental. We just we just felt like >> Yeah, there was one in the lower conference area. >> It works. Yeah, we've

got we've got a a team member working on it actively. >> Yeah, and we've we've talked with Denver a couple times about kind of the whole thing. So, >> yeah, for sure. I mean, that's one of the neat things. And actually, you know, the OpenWRT developers were very insistent when we made this hardware. I was maybe even a little bit surprised, but they said, "Yeah, we don't

want it to say OpenWRT anywhere um on like printed on the box itself." So, you'll see that, you know, this whole blue router here, there's no OpenWRT. It just says one on the box itself. And so, really, they they knew from the start that they didn't want it to be just an OpenWRT thing. They wanted people to uh know that they could be comfortable and confident in

running other operating systems on the OpenWRT1. Uh and so I'm really happy they made that decision. Um and uh yeah, we fully support that. I mean, that's the whole point of uh having hardware that you control is that you can do what you want with it. You can install whatever OS you want on it. Um, and yeah, I'm really happy that people are installing Debian and it

sounds like Nyx OS um as well onto the um because yeah, that's that's uh that that's awesome and exactly the sort of thing we want to encourage uh and support and a big reason why we made the OpenWRT1 uh because we are concerned that router manufacturers are increasingly locking down uh routers so that you can't flash what you want onto them. Uh this is usually done in

violation of the GPL. Uh sadly we cannot um uh enforce against um every single company that violates the GPL all at once. Uh we are you know suing some companies uh when that comes up. Uh for example um we are suing Vizio uh which is a maker of TVs that was purchased by Walmart about a year and a half ago. Um, and so we want to make

sure that while we are making hardware that gives you all these rights, we want to make sure that in other hardware you may buy, you have those rights, too. Uh, and so that's one of the other ways that we help people get those rights. So, any other questions? >> So, one more from you. >> Okay. >> Okay. Completely unrelated. Um, I'm aware that the Software Freedom Conservancy

has taken ownership of the Uboot project. Is that correct? Uh so I I would I would maybe characterize it a little differently. Uh Uboot is a member project of software freedom conservancy now. Uh that happened within the past few months. Um and so uh so yeah they they you know generally when a project joins they would transfer things like domain names and stuff over to us so

we can be the steward of those resources. Um and of course they can move those to other organizations later if they they choose to do that. Uh but yes, Uboot is now a uh software freedom conservancy member project just like openwrt is. >> Okay. So does that mean that that uh you are the maintainers of Uboot now? So the maintainers remain as they as they were and

have been. Um and so we do all of the non-coding parts of projects that join Software Freedom Conservancy like uh organizing conferences uh paying developers uh just managing finances uh for the projects um and holding assets like domain names um or or other things that the project may have. >> Okay. Well, that that's a I mean that's a huge uh responsibility because uh as an embedded developer

like most of the ARM systems out there are booting from you know using boot. >> Yeah. Yeah. Absolutely. >> We depend entirely on on on the Uboot code base. >> Yeah. So we're really happy at software freedom conservancy that that projects that are you know so notable as you say want to join software freedom conservancy uh because I think there are a lot of advantages that we

can bring you know for example like with the openw when openw openw comes to us and says we want to build a router we're there for them uh we can make that happen you know within less than a year uh from conception to shipping devices so so yeah I'm really happy that joined us. I think there was a question behind you maybe. Yeah. >> Uh so I

was just wondering I know you're not a lawyer or an attorney, but um as far as like uh uh what do you call like uh patent trolls go? Uh do you guys have any experience with that or would know any places to look for other support around that? Uh, so are you saying like like is this a situation where you're working with a project that is maybe

concerned about these things or you're just wondering in general? >> Uh, yeah. Um, because it I've heard about it. It seems to be a problem and like uh I've heard even with like open source projects uh there's potential liability from especially larger corporations with huge patent portfolios. >> Yeah. So I mean that is historically certainly been an issue. you know, there were the the widely publicized shakedowns

that Microsoft did against people making Android devices. Um, and you know, I'm I believe those are not going on anymore, but that's certainly, you know, one one of these kind of ridiculous situations where um, you know, companies are uh uh, you know, effectively being patent trolls. Um and so so yeah, I would um you know, I I would like to know more about any particular situations to

see if there are ways that we could help. You know, certainly for any um software freedom conservancy member project um uh you know, if this were ever to be a concern for them, we could assist them with that. I mean, we have resources available to do that. Um and that's, you know, partly why a a project may want to join Software Freedom Conservancy is because we can

help out with that sort of thing. Um but yeah certainly you know it is something that uh that we we can assist with and that we have the the skills and knowledge to to deal with. Uh we haven't yet had anyone you know come to us uh uh regarding the open WRT1 and say uh no, you know, you're using some of my patented stuff. Um but I

mean the the problem with the the patent system as it is now is you can never really know. Um and so uh we are certainly ready and willing to stand up to any such claims. and defend our projects. >> Thank you. >> Welcome. Any other questions? >> Yes. One question over here. I was wondering what's next. WRT1 seems like a very successful project and hopefully it builds

more momentum and stuff like that, but I'm wondering kind of oh is there going to be a two or like I don't know just kind of what what kind of things you guys are thinking about doing next. >> Yeah, for sure. Uh thanks very much for that question. Um and so yes, we did there was some discussion of an OpenWRT2 on the OpenWRT mailing list uh about

a year ago or so. Um and there was a lot of excitement for that project. I think there still is. Um for a variety of reasons, it's difficult to for us to build that specific thing that we wanted to build. Um including, you know, there's a range of suppliers that we rely on for these sorts of projects. Um and not all of them have come through in

the way that we were hoping. Uh we really don't want to ship anything subpar. Uh so we um are working to get together the right set of suppliers um and the right system so that we can build an openwrt2. Um, so, uh, it's it's not certain what the next one will look like. Uh, it's possible that it may be a smaller device, um, that is less expensive,

but it's still very much in in the, uh, design phase. Um, and so, you know, it probably wouldn't be a year, maybe 2 years before that comes out. Uh, but yeah, we are absolutely looking for new hardware that we can that we can make. Um, and, you know, I'd be happy to chat more about that too if you want to if you want to tell me like

your wish list. um you know stop by the software freedom conservancy booth um and I I'll be there for the rest of the conference uh you know uh for the rest of today and until two o'clock tomorrow um and uh yeah I'd be happy to chat more about that or or right after this talk um so so yeah I'm super excited to build more hardware and you

know uh the success of the open WRT1 has also um you know caused us to think even more about other sorts of hardware that we can make because of course routers are not the only place where there are concerns about uh companies locking down devices um and so we would like to um expand to other places um so that people know that there is at least one

option that is not going to be locked down uh because I think that's increasingly a concern and one one we want to uh resolve for people. Is there a question any other questions? All right, I think not. So, um, thanks again everyone for, um, uh, for being here, um, and for all of the work that you do in various ways, uh, in free and open-source software. Um,

and I would really encourage you, uh, you know, if you're interested to stop by the software freedom conservancy booth. Um, and, uh, you know, become a software freedom conservancy sustainer, uh, if you like the work that we are doing and would like to support us. Uh, so thank you very much. Uh thank you scale uh for all that you're doing with the openwrt1s um and for promoting

this excellent hardware that we have. Um and yeah enjoy the rest of scale. Just your voice. Or you can do it in the back. >> Hello. Hello. Okay, looks good. And this >> you're standing back here. That's fine. As soon as you get in front of the speakers, Part of it. Okay, I think we can probably make a start on it. And and today um we're going

to uh introduce a little bit on FA and then and also and some something about risk five and hopefully you can um uh uh grab the opportunities around risk five and and and Fra. So my name is Ying and then I'm um a software guy. I I used to port all the VMs uh and and compilers on different architectures. I'm the founder of deep computing and then

um I founded a company uh about risk five and during the co so very risky. So, and because I'm software guy, so I never do hardware uh particularly myself and and this is my first start up um uh doing hardware and that's Alan Key says I'm very serious about software. So when before um we always think oh we are compiler guy and VM guy and then we

saying we're the best software in the world you know because sit on the bottom of the the the stack and where power and then now and co I sold my software stuff then I start doing hardware and losing all the money on the hardware. So that is uh Allen key is uh indication you're serious that mean you're going to lose money. So but anyway um and and

riskfire I think most of people probably heard about it. If you not heard about it then basically it's a comparison to x8 um and what's the difference because is is um it's open belongs to anyone that who understand it who can contribute to it and if anyone interesting go on to the risfi.org support and and and join the community and start contribute and then um is that

they have a very customizable architecture and then and all different industry can contribute all different profile and and and basically instructions and for their needs besides the foundation one and because it's it's community maintained just pretty much ness that means that it's going to live forever. It's founded in 2010 and it's been 15 years. So what actually is ris is pretty big gyms I guess is our

hope whoever work on wrist five is pretty similar to lin 30 to 40 years ago saying that and besides windows and ulus they want to be oneird of the market but actually lin is more than one third now so so and and and you can see all the ris members all famous members so they they somehow walk on risk five one way or the other open closely

and um there there are a lot of opportunity around it and generally saying that we the whole ecosystem we still underfunded that means that still needs help and probably some uh uh uh people will still give a bounty program for for for uh part-time to contributions. So do pay attention to it. So for the past 15 years the ecosystem grow pretty good. So from the the two

chain support all the way the hardware up to the application side and then is it's is it's not too bad and literally we within the every layer we have have them all but is it good enough? Answer is no and compared to x86 or ARM we still probably lagging behind. And on the hardware side, so I mix uh deep computing makes laptop and and now we all

turn to uh focus on five more and then we decided only make motherboard for for framework which is make framework is uh you you got a laptop you can swap all different architectures laptop. So do go do come to uh frameworks uh booth or wrist five booth to see how you can swap the ball and then also it's repairable upgradeable. The reason I choose uh we choose

uh to partner with framework is that because we every six month we have a new wristfire SOC much more powerful than before. Then we have main ball different main ball every six months. So it's pretty amazing. So the latest one is um the the last year we launched the a core 2 GHz 64 DDR and then 50 tops AI. So you can literally run uh uh uh

lama uh lama 7B model on it and dipsit model on it. So the the risk five the the vision is all about open source and open. So and we trying to achieve at least for deep computing we're trying to achieve is the most Linux friendly friendly hardware ISA. So which means that we had to do a lot open source uh more than Intel more than uh ARM.

So which including on the server side or any um uh uh data center side and even a small board then we had to have open PMC and and then for the bootloader or or in the x86 or or or ARM side we have EDK tool to compare to it is all open source and then because we still amen one image similar to x86 one image ISO can

install onto all the hardware that means we had to get ACPI to work. So besides that then why we imminate best for Linux. So we basically we were trying to uh have all the the kind of upstreaming done before the chip comes out. So basically and once upstream done that means that you can upgrade your digital n digital without any hassles. So the most difficult one especially

for for desktop or laptop in this GPU. So we we are working on a project or or um uh for uh on exp and and on the we trying to do a low-end uh GPU which with the driver firmware everything open source. So that means that no one had had to suffer that what uh ners say been saying the GPU driver always a problem. So and exactly

the same as AI now because they're very close just like seings. So and and back to FA why why is F because for for stack and and F um is a N like a graphic stack N Linux DRO in in uh uh traditional desktop you have KDE which based on QT your Gnome based on GTK and then you have um um um um Messa and Whand and

then and all these and sit on top the uh GPU drivers. So FA what it is actually FA is uh uh originally from Google and and it been always a competitor for Android since it's born. So and the history of Flutter is that it's a JavaScript is um Las is one of my good friends which is back in the old days of the Java VM. So he

he he joined Google 2006 and start working on the JavaScript V8 and he finish it and then that is your your whatever the browser you run in the virtual machine Java V8 and then he start doing that. So finish another VM which VM and language is better than but uh a VM or Java another new language doesn't solve the business issues. So and in 2015 the doc

development developer summit they introduced flutter. So basically it's a graphics stack or application framework that powers you writing a app. So now flutter is very hot. So because it's closed platform so close the Android lin and some other platform as well. So basically becomes uh uh a very clo in and iOS as well. So it's it's crossplatform application framework. So people can pay attention to it and

and back in 2023. So when I uh making my my tab break and laptop one guy um co and he's from Toyota connect and to run connect is working on the the automotive >> the graphic stack so and we start paying attention to it and at that time V8 and and that isn't good enough to to to to support risk five. So and way and been went

until 2023 we got wasome and we got dark back end to support risk five. >> Flutter is that a yacher? >> Good. So and and and FA we have two version one is desktop version the other one is embedded. So and we call it embedded and then Toyota working adaptively because the the reason why Android auto is very heavy. So basically if you run the full Android

then you need at minimum probably 4 gig RAM or 8 gig RAM. Now it's crazy you know everybody know DDR killing people right? So and then all the automotive and the infotainment they want to cut the hardware. So FA you just need I think on the arms side and at that time Toyota working on it or or or Suzuki working on it you it just need one

gig or two gig RAM with embedded fat you can get the whole UI working. So it's pretty impressive in in term performance and sizes. So, and we pay tribute to to to Joe and leading this effort and getting uh the first flutter release onto AGL. He called it quirky Q back. So, back and in 2025 and he he spent a lot of money buying my uh laptop

tab until we sponsor them on more on the uh hardware on it. So this is the AGL's release with um with the resi support and and meta fat and based on yato niness. So people can get check on it and and say hi to say hello to Joe and feel free to contribute and this is state of it. So you you can you can basically you can

if your AGL conference or automotive for embedded world they will show all the hardware running the whole infotainment or control on based on the factor and on the arm side on the wrist fight side. So it's pretty pretty uh amazed you know based on the time and effort and and and it's pretty good you know very compatible very competitive against QT or or Android so and work

less actually for wristfy we just got the uh uh latest uh chipset on the based on the native standard called RVA23 free. So there's more thing needs to be done for the the whole AGL plus the F side the stack we need R23 bill and then and we we alongside with AGL see how we going to support with all the hardware and get this over and more

importantly because Frata is built on top two VM so on the server side basically um they based on the uh JavaScript engine in on Android platform and then if on the Linda side it based on the duct. So uh um and both VM had to for the performance wise especially for the drawing or memory movement and this one we need a little bit optimization work on the

uh on the vectorzed uh uh instructions. though and need improvement, performance improvement and then more and less now because people know infotainment is going to um have a lot of AI compute on it and then FA just need another AI framework equivalent to um uh on the website web MN WebN or WebGL all these um uh uh AI framework for the AI to load their local model

onto the compute and then to do all the AI work. So there's um a lot of interesting exchanging uh uh activity going on if people have interesting and u we still thinking how do we propose the API and package for the flat AI framework for local compute which sit on top of vectorzed instruction and the future um uh matrix in matrix instructions. So and and even MPU.

So um people probably heard about Tesla with their um latest chip coming out. I think it's the A5. They have a a lot AI compute. So how we going to uh uh uh uh we're similar to all other uh automotive uh MPU. So we need to find out how FA going to make use of the MPU on the AI age. It's best for all different models. So

you have whisper for language and then you have uh uh uh simple LLM or or or you have a compress LM talk to grow or whatever those things. So there's a lot of opportunity especially for for the AI age and I I think people can can jump onto the project and then trend and learn something new about it instead of the old infotainment uh uh functionality which

is pretty pretty boring I would say that and and pretty fixed function so easy to do. I think AI is more interesting. Okay. So this is nice page you have read it on all the risk five project on fa and then if you guys interested in learning the AI application for fa then look look through it and then also and you can try on the AGL release

on the um on any of our our hardware or even the desktop or tablet to play around with flatter and then once you have all the loadage and feel three to to to contribute all these uh improvement onto the open source FA and which is actually a flatter even though from Google but actually it's quite much more open than Android. So that's it that's for today. Any

any >> Yeah. Hey, is there a mic up there maybe? >> Yes, sure. Sure. Yeah. >> I'll I'll run the mic as well. I'll start with the first question. >> Good. Um so so is Flutter I assume Flutter's providing more of the the UI? I mean is it is it kind of an an operating system and then but specifically the reason I'm asking that is where do

you see risk 5 andor flutter on the edge? You're talking about automotive but what about in like kind of edge because right risk 5 is a inexpensive chip right does it make sense getting some sort of edge devices as well. Yeah, I I would think that thank you for the questions and and and basically I think if you can do automotive, you can pretty much do all

the edge and anything with AI with the the top the the tops coming and then the the difference between wristfire and ARM is that and wristfy chipset guy usually listen to the open source community more >> than ARM. >> Yeah. Because ARM actually when you make a SOC they already can ship uh KK volume why we say that they already start making money and and when people

making money usually they don't listen right why because I already uh 1 million a year I don't want to touch nothing >> don't don't interrupt the the revenue >> yeah don't just Yeah exactly don't don't change anything man otherwise It broke right. So that's why usually arms upstreaming is really slow. >> It's getting there but it's still very slow. But when in terms of risk five it's

still all the ecosystem is not mature. They usually they listen to people. So what do you want me to support you and then that's why I did a talk back in the borrow C talk about ko upstreaming. It's just we we we broke the record. We we start upstreaming before the chip comes back, >> Mhm. >> And the code is very compiled. It can't run, but it's

already breaking the record because we listen to to the community. If you don't upstream and you don't have futures, the more you change it on your branch or or LTS, the harder you going back, right? So that is the advantage of wristf. We usually listen to not you guys, right? The reason I probably I'm the only hardware guy doing a lot of talks on the open source

community because I want you guys contribute and want you guys listen and want you guys to earn money of it and spend money of it. Right? If you guys spend money on risk fire, you know the pain and then if you spend money buying deep computing, I genuinely listen to you to death. You can beat me to death and then I will fix whatever you ask me

to fix. And if not this generation, the last generation and then I give you repay back to make this fight better and better to achieve the the vision of this. >> Cool. Any other questions here? Because if you you put them in the mic then they'll get in the live stream. Uh so I I had this misconception that uh you know Flutter because it's Dart like required

JVM and and and I' I've been I just looked it up and it doesn't there's a it requires a Dart VM which I didn't know was a thing. So does that mean that there has to be a Dart VM compiled for Risk 5 for for Flutter apps to run? >> Yep. Everything is supported. >> Okay, >> D. So, back to the table. Duck is supporting risk five.

It's uh well earlier than than 2023, but it's just not optimized. >> So, basically now it's already everything's running. You have ducked, you can compile it to web assembly, but you still need a web assembly VM. So the web assembly RAM is usually is V8 or NodeJS. So and and it's all VM based dynamic language based. So I was reading about the Dart VM. So you you

mentioned you can target web assembly but normally like on mobile when you compile flutter apps it's ahead of time compiled into native code for you know the arm that >> yeah and they have certain thing can a get of time certain thing you cannot so basically you still need a minimum VM >> okay >> so but that's very lightweight and basically now the CPU is fast enough

you don't need to compile. It still runs very fast. >> But it just uh if you you you you optimize it, you usually get much better performance. >> Okay. So, not everything is ahead of time compiled. A lot of it is still >> JIT compiled. So for these sorts of um automotive applications uh is there a requirement that these uh processors have to be have to have

some degree of radiation tolerance or or or or not? Can you kind of speak a little more to that? And then if so are there radiation tolerant uh risk fives being manufactured at this point? >> Yeah. Yeah. You can go to the risfi booth or or or deep computing booth or or framework booth. You can see all the risk fight is running there. So you you you

literally can touch it and feel it. >> And and then one last sort of do you envision a sort of uh relative marketplace for uh for risk five alongside say long or you think that that that other architecture? Well, I would say that um just niness you'll be alongside with FreeBSD, alongside with anything that that provides human uh uh v variety where saying that we we we

coexit, isn't it? So, and we don't tend to replace anything. It just give people um a lot of uh options. You know we've all especially we targeted where we becomes the best linbased architectures. So we leave the freedom to to people to do all the implementation on the indust in the industries. Uh, can you hear me? >> Yep, sure. >> Okay. Can you clarify the state of

the NPUs with risk viv? I've seen risk v chips with embedded NPUs in them. >> Yes. Yeah. For example, what what's the deal with that if it's not part of the risk v architecture? >> It basically is design processor. So they have um uh a separate uh IP for the for the MPU. So and because the risk file is still in um a growing stage for example

I give you example here why we have a MPU because because the the profile the matrix profile instruction the specification not been out yet not been ratified yet. So people cannot implement it. Once this one implemented we usually we think the MPU will dies out because this is completely completely different instruction. It's not inside the the spec. So and and and just we see MPU might be

a interim and and and and um the the software stat you still probably do support for a while because usually a spec coming out will take one or two year for for the chip to the spec comes out and then the IP comes out and then SOC comes out and then and then the B comes out usually take three to four >> So these manufacturers are creating

SOC's risk v >> NPU. >> We have no idea what instruction sets they're using. >> These are all proprietary the old proprietary uh instructions. >> Yeah. So, and you will see and feel free to come to the the the Risfy community booth to take a look um uh or all the video on YouTube how how you know the the the large language model or or whisper uh

whatever it run on the MPU on the Risfy laptops. Okay. Whoa. Wow. Okay. >> Yeah. Sound sound check, folks. I'm testing. All right. Can you guys hear me, but you're not too deafened? Raise your hand if you're deafened. Sorry. Um, let me move this. Joking. All right. I'm going to put this in my back pocket just like the guy said. I'm going to plug in the HDMI

port on this ancient computer of mine, which requires a USBC adapter. Still a couple minutes early, right? >> Say again. >> There should be one already. >> Oh, it already has the USBC adapter, >> Wow. You guys are high-tech. High-tech. Low tech. >> You guys are great, you know. Give Phil my regards. Who were you if you told Phil to do this? This place is great. And

I'm going to plug in power because this is a very old computer. My my Linux computer died yesterday and I spent about an hour trying to revive it this morning to no go. So, I'm using my old Mac. but you know what? Mac is built on BSD, it's got cred. There we go. All right. they said turn my screen to 16 1980 by 1024. Is that okay

though? Okay. Um so the next challenge is this webcam working. Shouldn't be a challenge. It works. You know that Steve Job, every time I have tangled cables like this, I think of Steve Jobs. They say that Steve Jobs hated tangled cables, which is why he um loved Bluetooth and all that kind of You don't want to see me. You want to see the interesting stuff. >> You're

the interesting stuff. >> All right. Oh man. Have you uh so a lot of you have heard of ESP32? That's cool. How about RP2350 or the RP2040? Yeah. How about the Everyone's heard of Raspberry Pi. Okay. So, the Raspberry Pi is very famous for its um Raspberry Pi board, but has anyone heard of or used the Raspberry Pi Pico? Yeah. You know, the Pico is is nothing

like the big brother Raspberry Pi. The Pico is a microcontroller. It's more of a competition to the Arduino, and that's what I'm about today. I don't much I don't much like the Arduino. It's really too old-fashioned. Um, but I love microcontrollers. So, the modern microcontrollers are the ESP32, which has been around for is it 10 years? And I've got some slides on this. Um, just kind of

vamping while I get this stuff set up. I'm glad they have gaffer tape here, too. I brought my own, but All right, that's the basics of that. Yeah. Where's my slides? In reverse order. All right. So, this is my very silly picture of me. I'm wearing my Rainbird hat here. And the reason I'm wearing my Rainbird hat is that I work at Rainbird and I got to

say kudos to my boss um who is a real AI enthusiast. He got us started on AI about a year ago and it's because of him really that I've learned how to do agentic programming. um, how many of you guys have heard of Rainbird? They're the ones we do sprinklers, irrigation controllers. Okay. And so, my job, my day job is to test the mobile apps that control

your sprinkler system, um, that's at your house over the internet. So, um, one of the key things that I want to be able to do, you know, every time I tug this cable, it pulls the thing away from my or I've carefully adjusted it. Okay. Sorry, guys. I'm not used to all this sophisticated audiovisisual equipment. Stay. All right. Can you still hear me? Okay. Um, yeah. So,

I test these irrigation controllers and they have blinking LEDs on them, right? Well, uh, the state of that blinking LED is pretty important to debugging uh, that device, but it's not logged anywhere. So this little device here, this red Oh, this little device, this red thing is an RGB color sensor. And uh yeah, so this RGB color sensor I got really interested in because I need I

can point this at the LED on my device under test, my sprinkler controller, and have my micro uh this ESP32 device here can log the state of the RGB color LED. that was the whole reason I embarked on this learning how to program these little circuity boards because I'm I'm not really an electronics guy. I'm more of a software guy. I got a few thumbs up on

people knowing ESP32 and even RP 2040 and 2350. Oh, hi. Thanks for coming, guys. stuff keeps moving off camera. So, this uh I gonna say Oh, yeah. I'm more of a hardware software guy, but when I There we go. We got everything on screen have you guys uh who programmed here back in the Arduino days? I bet you David did. And you you remember the slowest thing

about programming these Arduinos and even these modern day ones is the compile, edit, debug cycle, right? You got to wait for the thing to compile and then upload and then you can see the results of your testing or I mean what you just changed. Right. So um Seed Studio was uh an early um supplier of hobbyist stuff which is why I called it Speedy with three E

because Seed Studio had three E. Seed Studio still makes awesome ESP32 stuff. Um so I want to be speedy. I want to stop waiting for the progress bar um as we make changes in our firmware code. these are AI generated obviously. I'm not sure why it said amortizing the flash tax, but the traditional way you develop these things is you make a couple lines of change in

your code and then you have to wait for the thing to compile and upload to the board. Um, if you use AI though, an agentic AI loop in a loop, you can not only have it make the code changes for you, but it'll make them probably correct the first time as long as it has the correct pin outs, which uh you can tell it to read the

data sheet off the internet. And you can do multiple changes at once because uh I'm going to get in the demo part here. it'll be more interesting and hopefully uh override those guys in the light blue shirts which are having a very interesting conversation. so let's get into the demo. Um, I was going to give you guys an opportunity to vote and choose between RP2350 and but

due to my sad old 2017 era Linux computer dying yesterday and me having to get everything set up on this also sad and slightly younger 2019 era Mac, I only have the ESP32 ready to go. So, enough of the slides. Only five slides. I hope you guys are happy that there's a lot less slides going on in this demo than you're probably used to seeing. So, I'm

going to shrink this window because you don't need to be staring at that the whole time. I'm actually pleasantly surprised that so many people um have said they have heard of ESP32. How many people have actually programmed an ESP32 to do something at your bidding? Oh, awesome. Maybe a little over half the room. That's great. So, what I'm going to do here is uh Man, I wish

I had a bar stool to sit on. I'm going to show you how the guy with a flashing. Here we go. Okay, this is a board I got just literally today in the mail and dim, medium, bright. Okay, I'm going to tell it to turn that uh the ripple is too too bright. So, I've been using co-pilot. Actually, I want to ask first to get a sense

for what you guys are uh thinking around here. Um, how many people have used one of these agentic or AI like pair programming things to help you code? Okay, approximately half the room also I I have found uh a way to and it's not rocket science, but have the AI not hallucinate and not just make stuff up. And what you do basically is uh it's not too

hard, but but if it's working on facts, the more facts it has at its disposal, the less mistakes it's going to make. So, like I said, it it'll actually look up um data sheets and um so it'll occasionally make mistakes, but I I literally uh for this board uh if you scroll back, I asked it to identify. I said, I just plugged in a new board on

the USB port. Identify it. And it literally uh it did. It's uh so I asked it, have we identified the feather neo board yet? and it said that it would look into it and it actually used it identified see it already identified that's the NeoPixel part number that WS28128 I'm sorry 12B and it identified by its um by what you get when you run lsusb here is

the board that we're looking at and then I looked up the data sheet and so now that I'm inside I'm going to say LED ripple too Right. And busy. Turn down the disco action. Um, so like I said, I'm not really an electronics guy. I'm more of a software guy, but um, it's really the AI is pretty good at inferring intent. So, I'm using Claude Sonnet 4.6

here as as the engine as the AI LLM. It says, "Do I want to do all this stuff?" I'll just say yes and approve all the file operations. Everyone says you should be careful um and not just grant a cart blanch access, which is probably good, which is why it's always prompting me here. Uh but I'm okay with it running PIO. Oh, yeah. Who's heard of platform

IO? Um, yeah, it's kind of the modern, I think, way of programming these things instead of the old Arduino um IDE. Um, and there's another way of programming these things. In fact, when I when I pulled this this particular board out of its envelope and plugged it in, it immediately mounted a USB uh file system. Um, and what you can do is uh actually drag and drop

Python files onto this thing and it'll run the Circuit Python. Uh, but here's the funny thing. If you're a human programming these things, I think Circuit Python legitimately um is probably faster for a human to work in, right? And especially because it it it uh it gets you past that uh upload cycle, right, that you have with C. Um you just edit the file. You can actually

literally open an editor of the Python file on your USB stick and you make changes and it the code uh reflects. Okay. Yeah. So it's less busy here. Oh man. Sorry. It's It looks great in person here. Um, it's still too bright. So, I'm going to tell it Can you guys read this, by the way, or is this too small? I told it to uh I It's

still too bright for the camera. Make the LED matrix half as bright. I can make the font bigger. You guys in the back? >> Okay, I will make the font bigger. Um, Gosh, 24 seems really big. Okay, so this is the line I typed. Is it any better or should I change the color color? I'm going to make it even bigger. course, now my window has gotten

wider. It's covering the camera. Cut the brightness in half again. Anyway, it's doing blue now, red. so there's a couple other concepts that I've learned. which is have you guys heard of skills that you can teach your AI agent skills or record. Um, so what I'm going to do is I'm going to say record. So next time I fire this up, it will uh so skills are

basically a way of giving your agent long-term memory because um there is you guys have all probably heard of context windows, right? The context window is what gets built up in the current session. uh and uh when you first fire up one of these AI agents, it has the only context it has is in this case of a coding agent is the files in the current directory.

and then you make requests of it, you prompt it and it responds to those and your prompts become part of the context as well. Uh so if you don't record things in the files in your current directory then it won't have them in its context for the next time. So um yeah these sorts of uh files are an important way of getting long-term memory. Uh so here's

another view of the uh this the readme.md here is what I've Oh, it actually said it wrote it in agents.mmd. Interesting. Um, why don't I see that in this current directory? Oh, I'm in the purple directory. That's why. That's where I thought it was going to be, but it it made uh it made it run one a little higher, just this is where it said I so

I've told this thing as I've been working on these two boards to just keep notes. So, in this uh agents.mmd file, it's where it um just takes notes about the characteristics of these these boards. yeah, keep the neopixel brightness nice and dim. Um I think is is probably one of the notes it just added to itself um when I asked it to. what I'm going to do

then over here, I'm going to actually try to get this RGB color sensor up and running. so how many people have heard of I2C? Did I ask this already? The I2C, yeah, communication interface. Um, I kind of love I2C and specifically these. Oh man, my camera went. Okay, there's a cable coming out. You see that little four pin cable coming out of the bottom of this circuit

board? It goes into this guy, which is my which is the RGB um color sensor. and using this I2C specification, especially these little quick cables as they call them. I love these quick cables because you don't have to solder pins. You just plug stuff in. Soldering is kind of a fun thing to do. I need my gaffer's tape. But I don't want to spend time soldering and

desoldering things just to uh do some experiments, right? All right. Well, at least they're both on screen. I'll reposition it later. So, what I'm going to do is I'm going to ask detect the RGB color sensor. it's kind of one of those things where sure it's fun to look up the data sheet and find out what the I2C address is for this color sensor, but why not

have it do it? And usually the first thing it does is it does an I2C scan to uh find out all the addresses of the I2C devices that it has detected. So, it would go quicker if I told it. All right, just look on whatever this is. Hex 32. Um, but it I guess I'm kind of fascinated by how this thing can kind of discover its environment

and, you know, work and, you know, learn and adapt. So, So, what actually um in preparation for this, I actually did get an RGB color sensor working on a different board, which I could pull up. should have uh staged up here so we don't have to wait for this one to actually do it. Here's actually something I do sometimes if even it gets a little bit too

blinding even for in person sometimes I'll put a little diffuser in front of it. Well, now I need more gaffer tape. So basically, as with so much else in the AI world, as I experiment with this stuff, I think to myself, all right, is this going to replace someone? Well, maybe. But you have to know that humans have to kind of know what is possible right before

they tell ask a computer to do it. So I don't think that humans are going to be replaced by AI because the AI would just sit there bored with no one to instruct it. The other interesting thing about uh the context is that all these permissions whenever it asks me to do stuff yes and approve wait for the rest of the session. Um, I wish there was

a way I could list out things that can just be permanently approved. And there probably are with with different tools and ways of um configuring um the AI agent. So in this case what it's doing so it wrote the I2C port scanner but now what it's doing is it needs it needs to read the serial port over the USB connection because that's the only way it can

communicate with the board to see all right board how many addresses are there. What I've done with um some of these other boards in here that have little built-in LCD displays is I'll have it display all those addresses that it detects on the screen um because for a human it's easier to read the LCD screen than it is to read the serial port. But for the AI

bot it's easier for it to read the serial port. asking you to do something. >> I think it recovered. Oh yeah, press the reset button on the board. I did not want to have to do that. So yeah, the one drag about these things is the USB port um contention. So in this case, we've got the USB port doing two things. It's taking the new firmware onto

it and it's providing the which actually makes you realize why some of these dev boards have two ports on them, right? One to upload the uh new firmware and the other one to continuously monitor the serial port instead of having to flick back and forth because when I run this, see, it might say something's already taking up the port. Yeah, I cannot open the port. Uh oh,

wait. It's the wrong number. Yeah. Why did it say USB modem one? Not on. Excuse me. Yeah, it's on 14 3301, not 01. What was it thinking? So yeah, that's the other drag about um these things is since they're not for some reason every other time I shut down my computer and they come in later the USB port numbers have changed. Um, I'll I'll have to ask

AI if there's a good way to get around that. Um, yes, the port settled back to 143301. Okay, I'm going to hit reset again and see if we see it's port scanning. Oops. Huh. yeah. So, we've gotten into this conundrum here where when I hit reset to trigger the port scan, it disconnects the serial port for a second. So, I'm not sure. I'll just ask it. Problem

is I tap the reset button. I literally just asked it for advice. See what it says. Um, it'll add a boot delay. Okay, that's a good idea. And it'll print repeatedly the scan results every five seconds. Perfect. Thank you for being so helpful, AI. That's what I would have suggested, too. that option Come on. Would it be better for me, Mr. Bot? I literally um one of

the things that's kind of satisfying to say to an AI after it tells you there's options or different ways to do it or can you suggest typing something in, I'll to say do it for me or make it so if I want to invoke picard. Um and very many times it can do it for me and make it so um which is yes I do want to

run that command and that's the funny thing. So um we've all heard the term chatbot right and these LLMs got famous a couple years ago as chat bots. So a lot of them still have chatbot thinking in their artificial brains. Um but running it in this context as an agent that can actually take action. Um you know I mean it it knows if you tell it to

read the you know look up the data sheet it'll go out to the internet and find it. But sometimes it's just funny the amount of times it sometimes says um it just kind of like gives me the information on screen and I have to kind of prompt it. Take action. Yes, do that. Make it so. that's interesting. The port number changes after every reset. That's a drag,

but it can overcome it. Yeah, this is one of those situations where I wish this one had an LCD to screen screen on it because um it would make it so much easier than this this serial port. Yes, approve IO Ridge. So yeah, the other interesting difference between running on these uh Macs versus these Linux um machines is that there's different commands to detect what the L

USB ports are um or um stuff like that. But the AI um is pretty cool about adapting to whatever environment it's running in. Yeah. So it'll be interesting what it comes up with. Oh, you know what? I should just disconnect this purple board. That is a really good idea. Oh, it wants me to unplug and replplug this one, too. Well, I can do that. Yeah. So, like

I was saying, this has been a learning experience for me. And I think my next uh dev board I'm going to try programming, I'm going to try to get one of those ones with two ports, separate um firmware upload port and serial monitoring port, because of all this hassle with hold to boot while pressing, release, and reset. Yeah. See, I don't want to manually enter the bootloader

mode every time I upload. That's a drag. Um, ready. When you've done that, just let me know and I'll trigger the upload. Boot. Tap reset. Release boot. Well, I'll do it one time. I want to see this work at least once, right? What it say? Hold boot. Tap reset. Release boot. So anyway, um I want to encourage you guys to uh to try this for yourselves. Um

the trick is that um you might need to pay for AI. So, like I said, my company got us started with a subscription to GitHub Copilot. And GitHub Copilot is not to be confused with the crummy copilot that you get in Office or, you know, attached to your Microsoft Word or whatever. GitHub Copilot is actually pretty legit. And what I'm running here is the Copilot command line

interface uh in the terminal. That's what I meant by TUI. Um, I hope it wasn't too cryptic in the title of my talk to say Tui. Did Did any of you guys pick up the text mode user interface? Yeah. As opposed to as opposed to the guey, right? what is it now? Again, hold boot preset. Okay. Let me I don't know why suddenly the camera doesn't want

to autofocus anymore. You want me to wire up the A? Yes, I do. That's exactly what I wanted. How did it know? So, it finally found it. Finally found the address of the color sensor. And then so have any of you guys used Copilot Clyde by the way or any of these other text mode? Yeah. And if you've been using them for um a number of months,

they update usually weekly it seems like. And in the last several weeks, I don't know, they have noticed they they accept asynchronous input. So while it's turning away doing something, you can ask it to do stuff. Oh, wants it again. Boot. Reset. Boot. Replace the ripple effect with a solid block of color. Because now they're using the RGB color sensor. We don't need it to um we

don't need it to have animation. I love it when it says the code got too messy. Let me rewrite it. Oh, this again. >> Uhhuh. >> Right. I would never try Well, that's a really good question. Um, I mean these little projects I've been doing are pretty simple so far. So, I haven't got any cases where the type extra type safety I think would benefit. It said

it did it. So, let's let's check it out. So, um, it says that whatever I point this color sensor at, it's going to reflect it on that matrix. So, if I point it to itself, it'll be kind of a weird feedback loop. But, see here, I'm pointing it to the red LED on the See that? That LED right there is red. So, when I point it to

it, it's red. Point to something else, it changes. Um, if I point it at that's mostly white. You know what actually I need to do and I have done is hook up one of these NeoPixels and have it um cycle through different colors. Um, I'm looking at the orange LED of the power strip. Yeah. And it it turned orange. Um, >> it works. >> It's working. Anyway,

I'm gonna um anyone who wants some Neopixels, I've got some. And uh I honestly I'm very humbled and thankful that there are this many people. I thought at this time of day, surely people would rather be at supper instead of uh watching yet another demo. So, who who who wants to use a NeoPixel or who actually is gonna use them? They're actually kind of fun. I'll give

you a double one. And you get one for asking a question. Thank you. I think I've got a couple more over here. They're so small. I accidentally misplaced them. They're like, um, yeah. So, that's a whole two cents worth each one of those. Have you who here has heard of NeoPixels? Yeah, they're totally awesome. They um you know with all you give it ground and power and

then one more line for signal and that you pulse it just the right way and tell it to change colors. Um I think I've kind of um reached the uh end of this demo which is a success. It's It's It's sensing color. So, um really appreciate you guys' patience. Oh, man. That even the problem with these bright LEDs is that even the colors look white because they

just kind of blow out this the uh CCD of of the webcam. Anyone Anyway, if anyone wants to come up and look closer, it looks more interesting in person than over this crummy blurry video camera. So, um, thank you folks and come up front and look at it in person. So yeah, you can see how it's it detects the red and then um yeah, and that little

that's a little neopixel in the upper left as well, but it's not color cycling fast enough to actually make much of a difference. But >> that's pretty cool. And these things, by the way, you can program these things to uh communicate over Wi-Fi, too. That's what I intend to do. And host a little web server so it'll log all the different colors. >> Yeah. So, if you

>> Yeah, there it goes. Oh, I found a few more Neopixels. Anyone else? Anyone else that didn't get one can have a NeoPixel. >> Why were they talking to you in British English? >> I noticed that. Isn't that funny? Yeah. Color. C O L O U R. >> I don't know why. I just I just don't >> This is This is the anthropic claude. Um >> are

they British? I don't know. >> You can move that around. >> Things like what happened? Well, one of the things you can do is you can have the agent address you as somebody >> forgets to do that. >> it's gone off the rails of switches. >> Oh, okay. >> You know, I've heard that. >> Yeah. And so they say even if it says it's like 250 thousand

tokens or whatever that it can it'll poop out halfway. When it gets about halfway, it's it's kind of too much. I don't know. It's nondeterministic. >> Yeah. Okay. >> So in the end though, where do you get all your code out? Like how do you like you keep giving it instructions and then it keeps changing it? >> Oh, right. >> Sure. That's a great uh >> at

some point you want to take what it >> Oh, here's the output of the serial port, by the way. And so as we move the thing over here and it's doing more red now the uh see how the red is way off and then blue green. Okay. I'm glad we got that part working too. So but let me show you David. Um I mean I don't know

what to say about it other than to say >> and push. And so it it checks it into your git repo. But you know also obviously you can um code >> to write the code in Python or just let >> well if you're using platform IO which I am that's C++ >> um and like like you may have yes I do trust the authors of this folder.

so here's the source. It's just one big monolithic main.cpp right now. >> Oh, wait. I'm in the purple. Oh, yeah. I forgot. There you go. >> Sorry, it's still the wrong one. I think I wanted to code dot. >> Yes, I trust the authors. >> Here's the code. So, yeah, it's um it it it's different. So, if you used copilot or rue code in VS Code, like

see how it says over here, you know, here it's helpfully asking for a chat, you'll see the code change in your IDE, right? But when you run from the command line, yeah, you don't see the code, which is kind of at first it bothered me. But since I'm looking at something and I can this circuit board and I can see it light up and do stuff, it

no longer bothers me not to see the code because what it's doing the circuit board is >> you're getting visual. >> Yeah. Yeah. Right. >> Yeah. But sometimes the code itself is the product or is the output. So then the the IDE methodology is usually more helpful. >> Oh yeah, game night. Yeah, that was my pitch for people when I was telling I was saying, "Hey, here's

a way to kill time until game night." Although I'm kind of wanting to uh have eat night right now. >> I want to go hit the road. I got to get out of Washington. >> Oh, did you drive down? >> Did you drive or fly? >> Yeah, I drove. >> Oh, wow. Okay. >> Yeah, I had to clean up the rest of the stuff from my I

want to take that off. Thank you everyone. out the rest of the stuff from my apartment.

From event

SCaLE

05 Mar 2026 – 08 Mar 2026

All event videos
Back to Watch