Hi. This is going to be history as biography. It's the story of Lieutenant Emery Taunt as John said, but more significantly I think it is the history of the United States and the Congo in the 1880s, 1890s, early 1900s, the critical years during which the shape of that sad place was formed and left us with the problems we in the world are dealing with today. I'd like to begin by talking a little bit about sources, so you're comfortable with the fact that this is nonfiction. The sources for the story are very good. Obviously the U.S. National Archives and the Library of Congress are great resources. The National Archives keeps all the Navy records, the State Department records and those kinds of documents easily accessible, logbooks of the ships in question and so on. The Library of Congress records are all the published materials, newspapers, magazines, those kinds of things as well as some of the illustrations I'll show you. The two documents on the right hand side are representative of what comes out of the National Archives and the right is part of the Congressional Serial Set. What is unfortunately very fuzzy and hard to read comes from the Henry Shelton Sanford Archive in Sanford, Florida. He owned the 23,000 acres that Sanford, Florida was built on. Henry Shelton Sanford was the American minister in Brussels during the Civil War and he plays an enormous part, an evil part, a bad part in the story I'm going to tell you, but all his archival materials are easily accessible in the city of Sanford, Florida. So that'll give you a sense of that. The other resource I drew on was a trip my son and I took down the Congo River in the summer of July 2011, five or six weeks from its headwaters at Kissing Ghani where it says, trips start there, used to be called Stanley Falls, Kissing Ghani today, down across the great bend of the river, down to the Atlantic at Banana Point, we'll talk about Banana Point, a historic place, 1400 miles in a small boat. The idea was, and it was my wife's idea, the Congo plays an enormously important part in the history of the place and in the story that I'm going to be telling you and it was hard to understand that part without having experienced it. She was right.  I joked that in the box that he carried with him of emergency supplies, we could do anything but obstetrics. This is our boat on the top thousand miles of the Congo River, the boat on the right, powered by a trustee Yamaha 55 horsepower motor. I was stunned when I saw it first because I had, as a P3 pilot, I'd expected at least four engines, but surely two and we only had one. I didn't focus on the fact that we didn't have any paddles or poles either until we were well along in the river. My son is the guy in the Panama hat. Our crew are the four others there, obviously Congolese citizens, good people. Alain and Jean were driving the boat. Bottom left is Wavine. She was our cook and bottom right is Frederick, our interpreter, Frederick spoke English, French, Langala and a host of Congo languages, all of which was very helpful. And there's the good ship Lollipop as we're getting ready to get underway. And oh, wait a minute, don't go away yet. The top one, I'll bring it back, the top one, the much smaller boat there is the last couple of hundred miles on the river after the rapids. And when I saw the first one, I kind of marveled at it. The second one was even more marvelous, at least like a sieve.  But as you recognize, I made it. The Congo today, outside of the cities, outside of Kisingani, outside of Kinshasa, Bendaka and places like that could easily be the Congo of the 19th century. These are representative, the bottom ones, are representative villages on the Congo. And the only thing that jumps, fishing villages, the only thing that jumps out at you is the kids are wearing very bright clothing. And what's happened is all the stuff you give to Goodwill ends up in connex containers heading for the ports in the Congo and is sold there. So young children come by wearing Chicago Bears t-shirts. My favorite was a kid who came by wearing a t-shirt that said, it's not easy being this weird. He didn't know what it meant and I smiled. Top right is my son, outside of our tent. The two of us actually had a tent to sleep in. That particular tent has been set in a porous bog. We had to make camp at midnight that night and we sank up to our knees in it. Top left is a market town, a market village along the river. Small fishing camps and small agricultural villages stretch out along the river and every now and then you'll run to one of these, which is the market, where goods are exchanged, food stuff is exchanged. And you can see there the wreckage of some Belgian buildings in the background. The Congo Henry Morton Stanley said was going to become the Mississippi of Africa. This great throughway, this great corridor through the heart of a continent and it would move people and goods and it would be the basis, the backbone of the country that was to come. That's untrue. The Congo is nothing like the Mississippi. There was no scheduled passenger transportation on the river. I'm not sure there's any scheduled any kind of transportation anywhere in the Congo, but what moves on the river are these barge trains and what you see here are two barges moving up the river. Behind them you don't see it as a diesel tug.  I wasn't able to identify much of it. Heavy industrial stuff, what looked like junk cars, all kinds of things.  And as you see them coming by, they look like escape pods from Armageddon. It's absolutely a stunning, stunning image of people trying to move and live their lives in a very difficult place. The Portuguese are the discoverers of the Congo River. As they move slowly down the African coast, trying to get into the Indian Ocean, trying to get to the riches of the Orient, they bounced along and each river necessarily attracts attention for many reasons. One, it's viewed as a route into the heart of a continent. In the case of the Congo, it doesn't work. We'll talk about that. The other is it's a source of fresh water. And obviously they have to resupply fresh water. So they bounce down along the coast. In 1482, the Portuguese found the mouth of the Congo River and proceeded up as far as they could till they hit the rapids. The water falls at a town then and today called Matati, which means stones in Key Congo. And it is the beginning of a stretch of a couple of hundred miles of rapids, white water, that drops the river about 900 feet. That is the head of navigation on the Congo. Once you're at Matati, you cannot go any farther. And this is a Portuguese stone at Matati, scratched in around 1482 and obviously enhanced since many times, that marked the point at which the Portuguese got there. Africa's major rivers were always seen as the routes into the continent. Rivers everywhere are. And in the case of the Congo, I guess I have to point it out to you here. I can't use this pointer. Right here, the great central African river, that too was viewed as access in into the continent, which slowed progress into the heart of equatorial Africa. First was the fact that the Congo has these rapids. Second was the notion that the river is a Petri dish of disease. We'll talk about the Petri dish in a moment, a little bit of information on size. The Congo is not the biggest river in Africa. It is the second biggest, but by the Nile is the longest.  The Congo added to its headwaters is about 3000 miles. It care it drains a watershed of about a million and a half square miles, million four. And out the river's mouth, every second, you get about a million and a half cubic feet, an enormously high rate of flow. And it's a steady flow because the river spans the equator north and south. So when it's rainy season in one area and it's dry in the other, you're still getting a lot of rainfall. The result is the river has scoured out its bed, the lower river, down to 600 feet in the bed of the river. And out to the Atlantic, it is cut through the continental shelf down to 4000 feet out hundreds of miles from the continent. Really impressive. This chart on the right compares the Congo to other rivers. In all respects, it is second to the Amazon, both in the drainage basin and the amount of flow and the length and all the rest of it. But second to nothing else, the river is is a remarkable feature. Here is a map. Can you see that reasonably clearly? Let me get over here. The river proper begins here at Stanley Falls. This is the mother river, the Lua Laba. There are a series of waterfalls here. And that right there is the town of Kissingani. That point then called Stanley Falls in the period I'm talking about, Stanley Falls Station. That point is roughly the farthest extent that Arab slavers got into the continent, their base areas. They continued to slave, collect slaves and capture them west of there. But that marks the extent of, for instance, the Swahili language, Arab culture, and so on. From Stanley Falls down to what is today Kinshasa, what was Leopoldville in the days of the Belgians, that 1,100 miles is open and navigable. And in some places it's huge. In some places the river is 10 and 12 miles wide. The cover I showed you right there, the river is about 8 to 10 miles wide there. In places where it's so wide, some of them have lots of islands in them, so you don't have the sense of its vast size. But it's really pretty impressive. Here again at Kinshasa, for several hundred miles down to Matati, you have rapids again through the crystal mountains of Africa. So what you're looking at looks to be a great artery into the heart of a great continent. In fact, that interior, the continental interior is landlocked because of those rapids. And that changes the shape of Congo's history. It changes its economy enormously, and it changed the way colonization proceeded into the continent. That's obviously an illustration of the rapids, but the rest of them are photographs, the ones on a diagonal are my photographs. Those rapids are impassable. Some French guy in a raft and a scuba gear actually made it down these rapids alive. A number of people have tried it and died. I would urge you not to attempt that. The other thing that slowed the exploitation of the continent was horrific disease. And you see that today. I think we're now seeing Ebola north of this area again. The great diseases, the familiar diseases of history, malaria, yellow fever, sleeping sickness guaranteed that there were no beasts of burden in this area. The beasts of burden turn out to be the natives, and we'll talk about that in a moment. That's a great New Yorker illustration. The flow wasn't all one way. The Europeans introduced smallpox into this part of Africa. And as you might suspect lethal effect, death rates of 60-70% were commonplace. And during the era, we're talking about the 1880s through the early 1900s. There were various waves of smallpox sweeping through this portion thinning the herd. When the Portuguese arrived in West Africa, Equatorial West Africa for the first time, they saw not simply a different place or a different continent, but almost a different planet. The flora and fauna were nothing like anyone had seen. The megafauna especially, rhinoceros, crocodiles, all kinds of things. I should tell you none of this is on the river from kissing Gani down anymore. The answer when I asked the question as to what's happened to all that stuff, the answer is it's been eaten. The population of the Congo is about, we guess, something like 74 million. And the hunt for food, the quest for food, especially for protein, is never ending. You'll see some pictures of people, I think, as we go on. There aren't any heavy ones. Okay. Not only were the animals and the plants utterly unfamiliar, so too were the peoples and the form of government. And the attitude quickly was that they were of no account, no significance, no art, no culture, a godless, soulless probably, fit victims for slavery, although at least in the beginning, the deal was that contracts treaties were negotiated with these chieftains by the Europeans, by Stanley and others, to acquire their land and their possessions by treaty. So for that special purpose, they took the government and people seriously, but otherwise not. The first exports from Africa were tragically, and you know this as well as I do, the first exports were slaves. Self-transporting slaves that were carried by the Europeans west across to the new world, stacked like cordwood in the hulls of the slave ships, the demand was absolutely enormous, especially in the Caribbean, especially in Brazil and the sugar plantations of those areas, but anywhere there was plantation agriculture, rice culture, cotton culture, none of that worked economically if you paid for your labor and the oppression and the abuses were simply horrific. On the other side, Arab slavers were taking black Africans out of the continent and delivering them to to Arab and elsewhere. So that was the first economic export, the first economic product. The second, and the impetus behind the 1880s, the colonization in the 1880s was fabulous wealth and ivory. There's some pictures here that'll give you some sense of what that meant. We have managed since this era to have killed off about 95% of the elephant herds of Africa. I think there's only some 5 million or so left and they're being poached at horrific rates right now. They were well over estimates now, well over 100 million of these beasts before. Tragically, female elephants made the mistake of having tusks just like males. So hunters and ivory collectors gathered them all. Take a look at the size of some of these. Ivory was more than simply the plastic of the 19th century. It was the great decorative item.  The sculpture, the rather bizarre sculpture on the right is a figure about so high in the Victorian Albert Museum and it'll give you some sense of the extraordinary beauty, this extraordinary workability of this commodity. So the first goal of colonists and exploiters in Africa, the first goal was ivory. The second was even better. In late 1880s, Dunlop, the Scottish engineer, invents pneumatic tires, first for bicycles and then for cars. And by the mid 1890s, there is an enormous world market for natural rubber. And here is an illustration of natural rubber being tapped in the jungle. The only way it could be gotten was in very small amounts deep in the jungle of natural vines. And this was the great impetus for the Belgians' exploitation of native labor, black labor, because they would chase the men out into the jungle, tell them not to come back until they had a ball of latex about the size of the head of a baby. And in the meanwhile, the women and children, their women and children were essentially hostage to the performance of the men. They were not simple hostages, though they were put to work making and baking the cassava bread that would be the food stuff that would sustain sustain the economy that collected this rubber. The rapids I told you about necessitated a transportation system around them, obviously. That system was Congolese porters. Men, hundreds of men in caravans carrying 65 pound loads on top of their heads, moving the 200 plus miles around the rapids on the lower Congo, bringing in whatever the Europeans wanted brought in, and extracting from the Congo ivory and rubber on their heads. This is a monument that's obviously been horribly defaced, not far from Matati, a monument to these porters who suffered and carried the loads of civilization in and out on their heads. The centerpiece of that monument here is also vandalized. It is the center porter. And up until the opening of the railroad, narrow gauge railroad that the Belgians built in the late parts of the century, the only way anything moved up and down Congo was on the loaded heads. That was the unit of issue, the loaded heads of these porters. The Belgians fairly quickly decided they had to have a railroad to move commodities and they built a narrow gauge railroad around those river rapids. It was subsequently made into a standard gauge railroad. It hasn't operated. It started running right at the end of the last century. It hasn't operated in years. This is the terminal. That's the Maposo River bridge down near Matati, down near that head of navigation. And there's the terminal today. And the whole thing is being recycled back to elemental iron. There's nothing usable there. The rate at which Europeans penetrated the Congo was exceedingly quick because of the attraction of ivory, the attraction of rubber. These two maps, the top right is 1883. The bottom left is 1889. The same cartographer and map producer, let's and son. And what I meant to do with this illustration, and it's not so clear, is to show you how quickly place names have filled in on the map on the bottom left. On the top right, there aren't so many rivers identified. There aren't so many place names, village names. On the bottom left, just six years later, the penetration of the Europeans has been so aggressive, so dynamic, that all kinds of places now have names, all kinds of rivers now have Western names that never did. The great engine behind this was Leopold II King of the Belgians. Born in 35, died in 1909, ruled from 1865 to 1909. He's the second king of the Belgians. Leopold I was his father, who took over what was a constitution, a new constitutional monarchy in 1830. It is Leopold's inspiration that Belgium can only become grand, tiny Belgium can only become grand if she owns colonies. And he begins pushing very hard against the Belgian parliament in an effort to get colonies. He's utterly unsuccessful. The Belgians quite wisely have no interest in it. But he manages to maneuver himself in a position such that after he's turned down in the Philippines, he's turned down in South America. And in other places, he manages to maneuver himself in such a position that he becomes the proprietor of about a million square miles of equatorial Africa. He personally, not the Belgian state, not the Belgian people. This is Leopold on the right. On the left is an equestrian statue of his that used to be in the capital city Leopoldville. It is now up in the up in what used to be a presidential park above the river. And it's almost unseen. There are very few Congolese that have any interest in this. But there is the statue of Leopold II King of the Belgians. A duplicate of that statue is in is in Brussels. It is his inspiration to convert this place into a colony. He's a fascinating guy loathsome too. I mean, even his wife and his daughters didn't like him. I because he was always trying to make sure that they couldn't inherit his money. I think even his mistresses didn't like him. He had a number of them. He married the last of them, and two children, two sons by her. In any case, Leopold is the great figure who will convert equatorial Africa into a plantation of stunning ruthlessness. There he is. His sister is Carlotta Empress of Mexico for that brief tragic moment.  John Rowlands in Wales, he at the age of 18, I think, comes to the United States, lands at New Orleans, and he will live in the United States for much of his young life. He will, for instance, he will adopt the name Henry Morton Stanley at that point with kind of an unconvincing explanation. He will join the Confederate Army very briefly. He'll desert. He will join the Union Navy very briefly, also desert. On the strength of these two desertions, he will become, he thinks, an American citizen. And the United States claims, very vague claims to Congo, will be on the basis that it was explored, it was examined, it was presented to the world through the person of an American explorer, one Henry Morton Stanley. There he is in a handsome illustration. Stanley is famous, of course, first for sponsored by the New York Herald newspaper for being the man who finds the Scottish medical missionary David Livingston. He is sent out by the New York Herald on an expedition to find Livingston and raise the newspaper circulation. This is now the age of steam powered presses. The newspaper is publishing 84,000 issues a day, and they need something to keep hyping up circulation. And Bennett, the guy who runs the newspaper, discovers wisely that these kinds of expeditions, these kinds of exciting adventures, pump up circulation, pump up newspaper sales. Stanley finds David Livingston at a place called Ujiji, either October, November, December, 1871. Nobody knows the date because they didn't know the date. But that moment, allegedly, when he says Dr. Livingston, I presume, guarantees his fame, his eternal fame. Livingston's also to a lesser extent. What's fascinating about Stanley is two things. One, he has the most rugged constitution of any white man in the world. He will survive years in equatorial Africa. He will live through the kinds of diseases, the kind of pestilential fevers that kill people left and right. The other thing is, Henry Morton Stanley can do nothing without sitting down and writing a two volume book about it in six weeks. And I'd love to be able to do that. He writes very well, very quickly, and with an enthusiasm for self-aggrandizement. This is the guy who will find Livingston. He will then, over the course of 999 days, cross the continent east to west in an expedition that is absolutely stunning on foot because his horse dies almost immediately. So do all the Europeans with him by himself and a third of everyone else. He will cross the entire continent and demonstrate a lot of things, not the least of which other than his durability, is that the Congo River is not attached to the Niger. It's not attached to the Nile. It is in fact draining an enormous water shed that is fertile or superficially seems to be fertile. This is the route that Stanley takes on his second trip in the 70s and here, apropos of nothing else, there is the town of Ujiji on the lake where he found Livingston several years before. King Leopold looks at this guy and he says, this is my man. He will use, he will hire Stanley to build a series of 22 stations, 22 scout camps along the river. And these 22 stations and the land that Leopold has acquired thanks to Stanley's negotiation with those native chieftains will become the new country of the Congo Free State. And Leopold will swear that in that state he will suppress slavery, he will have free trade and he will Christianize this heathen population. Stanley is a fascinating figure. There's a wonderful book, a biography of Timothy Gill, I urge you to read it. This statue on the right is lying at the same park that the equestrian statue from King Leopold II is, although you'll recognize that it is somewhat the worst for wear. The thing that's holding it in position is a four cylinder engine block. In 2010 the British government suggested to the Congolese that they would restore the statue and re-erect it and the Congolese said, probably not. We don't need that. That was a problem because the Brits had hoped to make a copy of it and set it up in Wales on the, excuse me, the 100th anniversary of Stanley. So what you see there top right is a brand new statue that is in the town of Denby, Wales, that has just been reasonably recently made to commemorate the moment when Livingston, it looks like he's reaching for his gun with a wrong hand, doesn't it? The moment when Livingston reaches out to, Stanley reaches out to Livingston and says, Dr. Livingston, I presume, that's what that moment commemorates. The other facilitator is the American Henry Shelton Sanford, a Connecticut industrialist or his dad was a Connecticut industrialist. Sanford inherits his dad's money and dissipates it fairly quickly over time, but he has a good time doing it. This is Sanford on the right, him in old age and his grave site in Shelton, Connecticut. A fascinating guy. He is Lincoln's first political appointee, diplomatic appointee. He is appointed to become the minister, Reed Ambassador of the United States to Belgium and Brussels and he gets very close to King Leopold and so doing and he remains in place throughout the Civil War. He then hopes to get assigned to the Embassy of the American Mission in Madrid, doesn't get it, particularly New York State wretch gets it instead and he will then parlay his relationship with the King into a concession, a commercial concession on the upper Congo to collect and sell ivory. So Sanford will be the lobbyist of Leopold in Washington and enormously successful. Sanford will write the President's State of the Union's paragraph on recognizing the Congo Free State as a nation, as a friendly nation. The United States will be the first country on earth to recognize the Congo Free State. The diplomatic stampede that follows will follow the U.S.'s example, thanks to the wiles, the exercises of Henry Sanford. In the end of 1884, the beginning of 1885, the Prince Otto von Bismarck, the foreign minister of the newly unified Germany, convenes a conference in Berlin to address the open questions of the continent of Africa. What they're trying to do is set up the rules under which the rest of the scramble for Africa will be conducted. To apportion the place out, the places that haven't already been distributed, and here in a cartoon of the period, his Excellency Bismarck is shown carving up the cake that is Africa and a piece of this is going to fall very deliberately into Leopold's lap because Leopold agrees that first he wants it, he maneuvers to get it, nobody else wants to spend the money necessary to develop the place, and he promises all the good things, the suppression of slavery, the introduction of Christianity, and the trade will be unrestricted, all comers. Whatever commercial advantages there are in the Congo and people are picturing the 40 million Congolese are going to buy a lot of stuff, especially the Brits who have a big clothing and cloth industry in the Midlands and who also have a cutlery industry in the Midlands, Sheffield and that stuff. These people think there's going to be a huge market in Africa, 40 million Africans, if they only own seven pieces of clothing a piece, which Stanley tells them they should, that'll keep the mills running indefinitely. If each of them buys just one knife with a cow bone handle, that's 10 million knives, and Stanley tells the Chamber of Commerce of Manchester very wisely, and you know those knives break, they'll be more than 10 million. So this conference, the Berlin Conference, apportions what is left of Africa and the piece of the cake that falls into the lap of Leopold is about a million square miles. Not bad. This history will play out of course the lives of three US presidents, Arthur and Cleveland immediately, a little bit later in time Roosevelt, it will be Roosevelt's responsibility to figure out what to do when the Leopold's colony comes apart in horrific abuse of the natives. The first thing the United States does in 84 and 85 is sends a businessman into the Congo, up the river, to see what the opportunities are for American trade. That businessman is a Midwestern Tisdall, Willard Tisdall there he is, and Tisdall goes into the Congo under an appointment from the State Department as a commercial agent and his responsibility is to report on these opportunities. He gets as far up the river as a place called, then called Stanley Pool, Pool Nalibo today and he looks around and he says this is a disaster. The Congolese can't even feed themselves, never mind anyone else.  Tisdall returns down the river, files a report to the State Department saying that. He immediately draws the wrath of Stanley and Company, Leopold, Stanley and Sanford because they didn't want that answer, they wanted something that would encourage investment, that would encourage migration and those kinds of things. So Tisdall's report is summarily rejected and instead the Secretary of the Navy decides, in cooperation of course with the President, to send a naval officer up the river. Why a naval officer? What does a naval officer know about commercial opportunities? Not much but they've got an easy way to get there. The Navy is just about the only way anybody can travel anywhere which accounts for the enormous influence that naval officers played throughout the 19th century not simply in diplomacy but in commerce and other kinds of things. So here are the two secretaries. For a little while Chandler, when the administration's roll over it will be Whitney, the two secretaries decide to send the parts of the European squadron to the mouth of the Congo River and to send a naval officer, Emery Taunt, finally half an hour into this talk I get to the guy's name, to send a naval officer up the river to prove that Tisdall was wrong, Sanford and others are right and that there's a real opportunity for American trinkets to be sold to the blacks of Africa. The American ships will anchor, you see where it says P banana? That's banana point. It is a sheltered deep water anchorage right at the mouth this is from 1883 this map right at the mouth of the Congo River that will be for about ten years the most strategically important place in the world as weird as that sounds because it is that sheltered area protected on three sides in a deep water well not so deep 21 feet where all the western vessels will anchor as they're exploring as they're trying to trade up the Congo River that point will become the center of the universe. USS Lancaster and USS Kiersage are sent to banana point to the anchorage to to spend time weeks there sending people up the river and writing a report on what the business is that is Kiersage you know her famously as the Victor June 19th 1864 of the battle against CSS Alabama this is a man a painting Edward Manet painting of that battle not far off the French coast in plain sight of about allegedly 15,000 observers that's the deerhound of British yacht that will rescue some of the Confederate survivors but there in the course of about an hour and a half circling each other like roaches on the edge of a dinner plate the eight-inch 11-inch Dahlgren rifles on Kiersage will smash Alabama and she will remain on the bottom until the French finder in the last century during the end of the last century. The other vessel in this painting by Luigi Roberto of 1882 an Italian the other vessel is Lancaster the flagship of the European squadron and there she is approaching Naples absolutely beautiful she was not didn't look nearly so good as this painting does but absolutely beautiful in the painting and marked significantly by a brand new figure figurehead she has a John Bellamy's Sprade Eagle 18 and a half feet wingtip to wingtip 3200 pounds and Ed and I yesterday were looking at the Bellamy exhibit in Portsmouth New Hampshire they don't have this this is in the Mariners Museum and Newport News but the premier American carver of such things and there is Lancaster and those two ships together will spend weeks at the mouth of the river under the command of the guy in the center looking very suspicious rear Admiral Earl English United States Navy commander of the European squadron and not coincidentally the father of this young lieutenant here at the left and Marie Taun United States Navy who is married to Mamie English and who is his aid on the personal staff English has another son-in-law on board Rick C who is a surgeon second surgeon on the ship who will later become interestingly enough the White House physician and the Navy Surgeon General of the of the sons-in-law of Admiral English the doctor will be by far the most successful Emery Taunt is going to be sent to shore up the river as far as he can go to write a report to Congress about commercial opportunities for American business and there he stands looking very liberally leaning on his on his sword Taunt has had a very checkered career he's already been court-martialed once let's start in the beginning he's a graduate of the Annapolis class of 1869 the first class that was back in Annapolis after the Civil War he graduates very close to the bottom of his class both in academics and in conduct but he makes it he makes it on time when he enters incidentally he's 14 or 15 years old he stands about five one weighs about 130 pounds in those days that wasn't uncommon he gets through the curriculum he is ultimately commissioned and every time he changes ships his commanding officers write reports on him and they indicate that this guy's a drunk and his progression through his career will be marred by the fact that his endorsements say he's a good mariner he knows his guns but he is unreliable because he drinks and on the USS to come sir he will be court-martialed for disappearing for weeks at a time in it in a drunken binge he'll be court-martialed and sent home for six months in any case he has performed ably in a couple of connections one of them is the rescue of the Greeley expedition I don't want to get too deeply into it but the Greeley expedition is the recovery of the seven survivors of the 26 army signal corps guys who went up to Arctic Canada in 1881 and finally were recovered in 1884 most of whom as you can do the math yourself were dead when they were when they were found that rescue catapults the Navy back into the public eye in a very positive way immediately after the Civil War the Navy collapses they're widely regarded as a bunch of incompetence in blue uniforms with rotting ships and and wrestling hardware this rescue is so heroic so brilliant and so successful after catastrophic failures on the part of the army to resupply them that the Navy looks good again taunt is one of the officers hand-selected officers on the expedition and there he is in that first circle looking looking very bearded the next circle you'll see on the ladder heading up the young man with his come on where are you there you go young man with his arms on the ladder is a young lieutenant named Lemley he will become the adjutant general of the of the Navy judge advocate excuse me and he will be taunts defense counsel in the next court martial that I'll tell you about in a moment okay taunts mission go as far up the river as you can look around tell us what the opportunities are for American commerce come back down the river file a report and taunt does that he gets on board first the city of Antwerp this is the V Dolveres these are the steamers that are carried up by hand around the rapids in boxes and crates built on the river and sent up the river that's the first of them he gets up to a Matarian they march around the rapids and then get to get to a VV and there they put in and they will go on it on several other steamers 1,100 miles up the river this is Boma the then capital of the Congo that building in fact is that's my photograph that building is the capital of Leopold the Seconds Congo Free State from there he administers the government down in the bottom right is a statue of him that we found in the mud underneath the right hand side of that building but it's kind of a handsome building you can see that that it was it was an impressive capital it was built in Belgium individual pieces of metal shipped to the Congo carried up there and and riveted together and built into that into that structure that you see taunt will continue on around he will he will march overland past the rapids on the way he will pass a bunch of natives 90 at a time pulling wagons am I running out of time gee I am pulling wagons around the river and here's another one of these boats that they carry they will go all the way up around the river past Stanley pool this is that great pool in the river changing boats again that's a you should look on Google Earth and you'll get a chance to see what that looks like today I'll show you what it looks like today there it is that's what it looks like today it's this wide spot almost a lake in the river the flow there is very very slow he'll spend a month there a killing time waiting for boat to carry him further up the river there we are killing time since we've arrived we're going to get out now more of those steamers can these are missionary steamers carried up in pieces up to this point and they will carry taunt all the way around the river to the headwaters up at up at Stanley fall station past some really angry natives and you might suspect they're angry because the slavers have been coming through there on a regular basis burning their village and capturing their people taunt will be very surprised at the hostile reception he gets from these guys there they are in a drawing that was together with a report they've cut out a huge dugout out of a log and they filled it with warriors top left that's two enormous dugouts today being used as ferry boats on the Congo River and it'll show you the kind of continuity that that exists there Henry Shelton Sanford gets commissioned by the king to run this ivory concession he hires taunt to become the chief of something called the Sanford scientific expedition there's nothing scientific about it they're trying to get ivory this is the letter appointing taunt as the chief and there is Sanford looking a bit like Rasputin the monk and about this time taunt orders two small steamers for the use of these Sanford scientific expedition this is the steamer Florida later I'll be talking to you about Joseph Conrad in the river remember Conrad's novella heart of darkness Conrad goes to the river because he's going to take command of this steamer he's a mariner remember he's not an author yet that doesn't happen but that's why Conrad finds himself in the Congo taunt has the steamer built they big there she is almost completed no engines but everything else is done and everything seems to be going very well till he gets down to banana point one day to the Dutch owned hotel and goes on a drunken spree to the point where he is so incapacitated he gets on a ship and sails back to England and mysteriously will appear back in Brussels when everybody who works for the company thinks he is running the company in Africa the letter here and the quotation you see is his long suffering wife Mamie writing to Sanford pleading for indulgence because they want to fire the guy for a cause in fact they do fire taunt never mind her letter which is really touching if you read the whole thing taunt returns from the Congo unemployed he now gets off leave from the Navy rejoins the Navy come on you why are you now paying attention to me this is story of my life there we go rejoins the Navy and is ordered to the gunboat USS Nipsick the last of the Adams class gunboats the last thing built in Washington DC at the Washington Navy yard Nipsick is important the Navy yard New York you see the chart of the Navy yard there behind it she is working up for a three year-long Pacific cruise the third day the taunt reports aboard he disappears he is he is the duty officer he disappears into the city of New York weeks later they will hunt him down and find that he's been bouncing between some of the really nice hotels downtown New York they bring him back to the Navy yard and predictably he's court-martialed on three counts and they're amusing but I can't recite them to you anyway Nipsick will sail without him obviously he will stand a court-martial and he will be convicted his defense will be it's a fever he caught in the Congo and it's not drunkenness at all he was drinking just enough champagne that was prescribed to control his fever that won't work real well the recommendation of the court-martial will go to the secretary of the Navy and to the president as it must recommending his separation for cause in the meanwhile commander Dennis Milan captain Milan CEO of USS Nipsick goes to see in Nipsick to the Pacific and in March 1889 that squadron three American vessels the three German vessels and all the merchant ships in Port Samoa after Samoa are clobbered by a typhoon it's one of the catastrophic peacetime disasters of the Navy there's a picture of it Milan has his own problems he will as commanding officer naval station Pensacola be tried for drunkenness and for messing around with young women not his wife and he will be ultimately discharged as well Taunt writes the president Cleveland and said I know I have had problems in the Navy but I know something about the Congo and the State Department has a new position commercial agent at Boma on the Congo to develop American trade I'd like to have that position here is his letter and he says if I accomplish this the reputation will give me will reestablish my good name so recently hurt by by my trouble in the Navy astonishingly Taunt is appointed the American commercial agent at Boma on the Congo he is the first resident American diplomat here is the logbook of Boma the first resident American diplomat in equatorial Africa with a record like that you think they wouldn't let him leave town he in the next two years will spend only five months in Congo he will be sick we think at least twice and will perform very little of his official duties he will write one report but not the important report and he will die on the banks of the Congo River January the 18th 1891 of some fever and quite possibly also pickled in alcohol he will be buried at banana point but nobody will ever be able to find his body this will leave his wife a widow she will later marry her brother-in-law but that's where taunts story miserable story ends at the same time this story is coming to a conclusion there's real unhappiness in Europe with the abuses in the Congo with Leopold the second's abuses in the Congo Joseph Conrad goes there as a mariner remember he's a seaman he will not take command of Florida he will not take command of anything he will be fired and happily leave he will then write Heart of Darkness which is a sort of semi-autograph autobiographical story about his experiences in Congo but a lot of other people will write about Congo too George Washington Williams an extraordinary black American will inspect the Congo and write scathing open letters to the king pilloring his performance as the man in charge of the abuses in the Congo there's George Washington Williams other people too will join the hue and cry against the abuses in the Congo most famously casement Sir Roger Caseman who is the British consul first in Congo and later in Amazonia will also write reports about the abuses of the natives in the collection of rubber this is casement tragically his official his official report incidentally is the first British report about those abuses Edmund Morel a French born British citizen will do a lot of journalism reporting on the abuses the Congo all of this will start an enormous swell of antipathy including Mark Twain who will write a brilliant scathing satire called King Leopold soliloquy a pretend confession Twain and and Edmund Morel will be so effective in their propaganda campaign that the Belgians will publish this booklet called an answer to Mark Twain and their Twain and Morel like snakes orbiting overhead the Congo spewing lies and slander down on the people below not so finally Sir Arthur Conan Doyle not a sir then but soon writes the crime of the Congo remembered Conan Doyle is a surgeon he has a couple of trips as a ship surgeon he gets very engaged in this in a white-hot heat he writes this pamphlet the crime of the Congo condemning everything is seen and making the point that the United States is responsible because we were the ones who recognized the Congo Free State and there is his crime of the Congo he that's one of the ships that he was a whaler on so Roger Caseman heroically were filing his report is an Irish patriot during World War one he sides with the Germans unfortunately he is caught in the treasonous act and put on trial and condemned to hang there is an appeal made based on his humanitarian efforts but it doesn't work because it turns out sir Roger is a homosexual a crime in those days in Great Britain and that completely undercuts the clemency appeals and he is hanged although now revered as a patriot certainly in Ireland those are Irish stamps showing him after this the farce the tragedy that is the Congo ends after the Belgians parliament has taken over in 1908 in 1960 the Belgians give Congo its independence because of the rioting and all kinds of stuff in the streets this is the parade of King Baudin and white in the limousine heading down kinshasa central power square and a photograph from Roger Lubbock do you see this man here he has run up to Leopold from behind and stolen Leopold ceremonial sword that's what he's waving in the air and he's going to run down the street behind the unknowing unfeeling King obviously I said Leopold I don't mean it Baudin we're waving it over his head and what ends up being the Belgian history in Congo begins in tragedy and it ends in this farcical scene that is flashed across the world and that ends my story as well and now I'll take a breath and answer your questions your questions please I apologize for running on I get I get engaged in this one sir two questions the Congo title it used to be called the Congo it was then called the Zaire it is now called the Congo is that answer your question title up until the head of navigation up I'm sorry I didn't hear you up until Matati yes it is not titled beyond that and why did the why the trains never work out the economics of them didn't work with the dam but beyond that the maintenance was terrible and the conditions are very very difficult when when they went to standard gauge they just weren't able to maintain them and the economic the business didn't work they weren't hauling enough stuff to pay for the investment costs and the operating costs and it just all kind of deteriorated they don't run today the way you get around today is on a truck or a car on a highway single single lane in each direction that is littered with wrecks well you talk about real incentive to drive carefully just drive on that river and count the body not the bodies the wrecks but it yeah next question please yes sir when did the ferro lines come into being in Africa I can't answer that I don't know there were by the period I'm talking about five separate steamship lines scheduled steamship lines serving Matati and serving Boma did that help at all this was a New York outfit I don't know the answer I know that I know that when taunt went over back over the third time he wrote Sanford and said on my say so the U.S. will schedule shipping back and forth to equatorial Africa but I don't know of anything further than that I think nothing came of it at taunt anyway because he never filed any reports that were useful and usable so I can't answer your question let me make something up okay that was just another okay and I was going to ask what is your question well the question is that they develop this they were developing in China they were developing in Africa he you know he really worked at it oh well and the permanent interest of the Belgian continue to be enormously interested in this throughout to the extent that they were trying to agitate an independence movement in Katanga province down in the mineral rich southern part of the Congo after independence in an effort to try to get Katanga to break away and to remain inherent to the Belgian state sir eight knots is about what they were doing eight or nine knots wide open the river comes down in some places at four or five knots so they were not making real good progress it took weeks to get places all would burning the coal fires were below Matati where you had access to European coal above Matati it's all wood burning and that was a serious limitation because obviously they had to find deadwood and there wasn't enough of it and the result was the crews would at night send woodcutters ashore and overnight they would cut wood for the for the burners for the boilers the idea became to go ashore and kill trees deliberately and then weeks and months later you could you could use them but beyond Matati it's all wood burning I've got a good picture in the book of one of these vessels with stacks of wood on the shore just doing that sir that those two and one other tremendous commercial interest in what was viewed as an extraordinary market and this is a real piece of lunacy the idea that you are going to have an enormous consumer base in central Africa eagerly snapping up the products of the West in exchange for the natural resources that were going to be sucked out of there but that a lack of visibility Leopold was really good at obscuring this kind of stuff and and a lack of real interest until it became a real can the second great civil rights campaign until it became a global civil rights campaign the abuses that people were seeing until missionaries began talking about what they're seeing and until the early cameras brought out pictures of youngsters with their hands cut off as disciplined for for the guys collecting rubber until that real groundswell came there wasn't any pressure in Leopold the next thing in 1908 is Leopold is forced to sell at a generous profit his holdings in the Congo to the Belgian country the Belgian Parliament at which point it becomes not the Congo Free State anymore but what you and I probably remember as the Belgian Congo then it's not until 1960 that that changes yes ma'am yeah it's better than that because they had lent him the money to buy it yeah hey there's much there's loathsome about the guy but he was a businessman he died very wealthy he had built enormous palaces and monuments and museum to himself he succeeded in keeping his money away from his daughters which which was a goal for reasons I don't understand a goal of his life his only son died and nasty guy if you've read King Leopold's ghost you get a good sense of it I think I think that's a fairly good characterization an equally good characterization is in a book called Congo that you have an opportunity to buy I think I think that leads me to the very last slide and here's the very last slide in real life I don't speak to pleasant groups such as yours I sit at home in front of a computer my wife keeps poking me and right in a very solitary business and these are the six books that have been published so far that I've done with one exception maritime history kinds of stories like the one I've just told you the exception is the last Lincoln conspirator it is the story of the escape from capture the arrest the trial and the acquittal of John Sarat the son of Mary Sarat and the alleged assassin in the in the employee in the party of John Wilkes Booth that's a pretty good story that incidentally that cover scene is at the Washington Navy Yard when Sarat is being delivered to civil custody after having been brought from Alexandria Egypt in double irons by the United States Navy and there was a comment here up the river in a chicken wire canoe I think is the phrase I don't know what what the origin is I I don't know but up the river okay maybe taunt taunt was one of these figures in history that people say you know he had had legs of clay the statue of taunts feet of clay went all the way up to his hips he was a deeply deeply defective human being it's hard it's hard to do psychoanalysis from a range of 150 years I don't know what his problem was but he was clearly among other things and alcoholic yes yes his congressional report the first one and the tiny piece of the second one you read them they're intelligible they're they're misinformed I mean taunt second report makes it sound like the Congo Free State is a fully functioning effective government when in fact it was a plantation prison camp but it you know he is capable of writing an intelligible report he was a good navigator good good ordinance officer he was the author of the semen's apprentice it was a training manual for Navy recruits approved by the the flag officer in charge of that process who coincidentally happened to be his father-in-law but you can you can get that the semen's apprentice you can buy it burn my alcohol yes crushed by it not simply burdened by yes sir we're free court and a cop being developed simultaneously with the Congo I think earlier I don't know the answer to that I think earlier the Congo came kind of late in the process because North Africa was colonized very quickly because it's a buts the Mediterranean the southern tip of Africa was colonized very quickly because that was the only route around the continent in the ocean everything in the middle came later okay yes sir yes yeah the answer to the first question is at horrific expense that was done I mean in extra the estimates of lives lost during the period that Leopold was running the Congo the lowest three million the highest 15 million nobody knows and everybody seems to coalesce around 10 million I don't know that you can say that the funds out of there is what built the defensive fortifications I don't know that money's fungible they could have used it for that as well as anything else I just don't know give me your card I'll send you a note about it the river the lower river right around banana up to Matati is very interesting they've only recently started exploring it carefully in connection with some fish research they're doing and they found it it scooped out their hollows literally 600 feet below the the bed of the river and then when you get outside the mouth of the river like all the great rivers it is gouged a trench a submarine canyon through the continental shelf and if you if you send me an email address or something I'd be happy to give you the references on that better yet by the book and look in the bibliography commerce rares its ugly head that's because they were wrong they thought it was fertile because it looked lush in fact it's very difficult to raise anything there and subsistence agriculture is is a tough thing but they didn't understand that they misunderstood what they're seeing just as people have misunderstood what they're seeing in amazonia too it looks lush it looks fertile it's a very delicate environment and nothing european seemed to work there to the extent that the three donkeys that the administrator the Congo Free State brought in you know kind of for his own use and they quickly died there who fed on imported hay they brought hay from Europe to feed these guys okay I think we're done you're looking impatient John are we thanks a lot


So good afternoon, everyone. My name is Andreas Verber. I will talk about a proposed socket API, or actually several ones, for the Lora wireless technology. First, let me start with a few words about myself. I work at ZUSA as a project manager responsible for the ARM architecture. I have been involved for many more years in the open ZUSA ARM port. And more recently, I have also become kernel maintainer for some of the more niche ARM socks, such as Realtek and Action Semiconductor. I'm listing a number of other things that I've also done in the past, but I will simply skip over that. This talk will specifically focus on software interfaces for this particular technology. I will not go into the exact details of how physically the modulation in everything is going to work. Everything and more that you ever wanted to know about this, you will probably find in this talk, and some that have been referenced before, from FOSDEM, which is also going to go into a bit reverse engineering of how the things actually work that you normally don't see, except if you have SDR hardware. Lora appears to be short for long range. This is one of the low power, wide area network technologies that are being hyped in the IoT world. This means in particular that you have a range in the, say, tens of kilometers or two digit kilometers, but you are sacrificing that with a low data rate. So this is mainly used for transmitting sensor data to some form of gateway or some other listening device, and it's not, for example, being used the same way as Wi-Fi for having arbitrary network and traffic over that interface. It is mainly today being used in the unlicensed sub gigahertz short range devices here in Europe or internationally the industrial scientific medical bands, but more recently it is also available in the 2.4 gigahertz ISM band that Wi-Fi, Bluetooth, and all those other technologies have been using traditionally. What is interesting about Lora technology is that you are not, per se, dependent on a particular network provider that would be for payment of fees giving you a gateway that you can actually connect to, but rather you can set up both the sending device and the receiving device on your own if you want. Not strictly necessary, but it's possible. And most importantly, the hardware modules and devices are available in great abundance and are fairly cheap, so a couple of dollars for particular models. There is a lengthy list that I have compiled as part of going through writing drivers and evaluating drivers for this particular project. And most ultimately, why would anyone do it? Well, it's simply possible to do it, so let's simply give that a try. When I first received through some crowdfunding campaign a bag of components that was literally my first start with this technology, so it was like a half-assembled PCB and that basically raises the question, you've got the chip, the technology, you have a basic understanding of how it works, but how do you actually make it work with the Linux system? And from there on, I'm going to dive into how to deal with this from the software side. So first of all, a look at what hardware is available. So there's different types of radio modules available, so usually you don't get the actual transceiver chip itself, but you get some module that already has some clocks, amplifiers, radio connectors on them. And the one that I started with was simply a module that would expose exactly the chipset interface that the vendor had created for this, interfaces that this would be using mainly spy, but it could also be in some other cases UART or USB interfaces. These chips that I will go into more detail later on do not have any permanent storage of any address data or identifiers that would be used in the communication. So this data always needs to be supplied by Linux in order to be able to do any meaningful networking. Similarly, these transceivers provide the physical layer of the network communication and in order to have any particular framing and routing and in particular Lora 1 data communication, then this needs to be implemented in software. So if we're using it in a Linux system, that needs to be somewhere implemented in Linux itself. Then there is a growing number of modules that do not directly expose this raw interface from the vendor, but rather come up with their own interface. To some degree that is obviously taking care of some of the, let's just say, interrupt handling and other interaction between in particular the receive path and buffering, but also the main point why people are doing it because this allows the vendors to certify a particular firmware stack that they deliver on this module that then passes certifications from the Lora Alliance to be compliant with the protocol. And depending on how exactly the firmware interface gets implemented per vendor, that also determines which of the actual chipset features will be available to the user in the end. And finally, this can be a trap at some times. There are also modules that do not actually expose a particular interface that could be consumed by Linux, but are rather intended for doing your own microcontroller development directly close to the Lora chip, where then you would need to use a particular vendor API in order to make use of the radio functionality with or without a Mac on board. So I'm now going to go a bit more into Linux kernel interfaces, how that looks like today. So up here, I've barely sketched that there are, you know, some generic kernel subsystems that I assume most of you will know anyway, maybe even better than myself. And down here, for example, I've sketched the spy subsystem and there in particular the spy dev module would be used in order to expose a generic interface to a spy device that has been attached. Alternatively, if there's a UR interface being exposed, then you would have, depending on what host system you are working with, a whole range of various TTY devices up here, or if it's, you know, like a USB stick that you're attaching to your notebook or a MPCI card, MPCI, sorry, then you would have, you know, some of those USB drivers down here being used and ultimately they will simply in the file system be exposing some device, you know, here dev spy 0.0 or depending on how many you have and how many chip selects, the number obviously will defer, but you will have some device and the API to use those devices then is the traditional, you know, read and write calls or in particular when it's spy, then probably rather I octals to have, you know, both read and write in one call without talking to the chip select line and that is basically it. So given that, there's a number of issues with that. So it appears that most of the vendors have their own forks of certain packages, but there is no central package that we could simply take and include it in our open zoos or slash products in order to run this kind of software because there's hard-coded constants like an if dev, are you like in the European region, are you in the US or somewhere in Asia in order to define various frequency bands and settings. Then another issue I've run into is that many of such more hobbyist project that you can find on GitHub are actually consuming GPL libraries that are incompatible with the library of the lower stack that they're using, which is then something that we would not be able to redistribute and in particular, the spy dev module that we saw on the previous slide does not react favorably to when being used with a DT compatible string of literally spy dev, but the spy maintainers have explicitly said that they expect spy dev only to be used in certain cases when it is not feasible to have a kernel driver and as such, when you actually use this string spy dev in your device tree, you will end up with a warning message with stack trace in your kernel log, which obviously may serve to at least confuse people or get people into a panic mode when they see that. So what has been recommended, because well, if you're developing your own kernel and compiling everything on your own, then you can much easily in, say the spy dev driver, add a single line to define an additional compatible string for your particular use case, but if you're like Zuzu, someone that provides a district to other people, then that is not possible for the end users and we don't want to have a downstream list of devices that would be using this particular driver. So one way to work around that is to simply hijack a defined and compatible string for device, that is something that actually the spy maintainers have been suggesting, that is of course also contrary to the concept of device tree descriptions. And finally, when you're using a generic spy dev layer and device to access in your applications, then you don't necessarily know which device you are actually talking to. So that means that in many cases, you will have some code in user space that is trying to probe which device is actually connected to a spy by, like reading certain registers and just trying to have some heuristics of detecting is it one lordship or another and then making decisions, for example, is the reset low active or high active, one of the funny differences there between some. And ultimately therefore, I've come up with the idea of simply moving the drivers for lordships into the kernel and to thereby allow, I get into that later on, to write generic packet forwarding applications that do not depend on which particular library or device they are being used with and hopefully create a community that those can be essentially maintained and then packaged and don't have to be duplicated all the time for each network provider. Now, thinking about you have the spy driver in the kernel and you have your user space somewhere down here, how should they actually talk to each other and what are the requirements that you have? You will want to expose basically all features that the chip set provides technically to your users because if you don't do that, if you provide only a very small fraction of those, then people will not adopt a new interface and simply will have to go with the old route for making use of them. There are multiple proprietary protocols and well anyone can pretty much develop their own proprietary protocol. So one design goal here would be to allow people to use that because otherwise if they can't do it with that interface, they will have to find other ways to do that. So basically that translates to having the, just call exception in all headers that are related to the implementation here. And the basic, well the big goal here would be to be able to reuse protocols. So you don't want to have a, again this idea of code reuse that you don't want to have an implementation per vendor chip set and protocol but rather that you want to have one implementation of for example Lora One or any other protocol maybe simply reuse 802.15.4 something else on top, six low pan something and just layer that on top of a generic network file layer and not duplicate that all the time. Yes and obviously it should work with all or at least most of the chips that out there and the idea that seemed most appealing to me at the time was to use sockets because that as well what we all know from networking in particular if we've done that with ethernet or wifi and so on and hopefully that will make it easier for people to adopt such a new technology. Now this is my very first journey into network subsystems so there has been a lot of new things for me. What I've been implementing and sending out an RFC to the NetF mailing list has been in the net subsystem to have a Lora module that is implementing those basic sockets and then in the more concrete device subsystems, driver subsystems in particular in spy have a number of drivers corresponding to the chipsets as well as in the serial device subsystem for any other devices that are using a UART serial based protocol. Ultimately that will then mean that if you look at IPA or the file system in this case, you will have network devices that get instantiated by the drivers and I've simply chosen for now to just call them Lora with a running number. So assume here there's a 1276 driver would be exposing one Lora zero device here and then another driver would be exposing further device and so on. Now what's different from the previous model of working with Ioctols and ReadWrite is that through the socket API, we can instantiate such a socket construct or even multiple of them. We can then bind the sockets to a particular socket address and then send and receive via those sockets and we will be using socket buffers to represent an individual packet that has been received or is to be received via this interface. Now looking at the particular chipsets in order to figure out how to structure those things, the SX-1272 and SX-1276 following our signal channel devices, they support two selectable modes, one FSK OOK and the other one, the Lora one that I'll concentrate on for now, I'll be getting back to that later. Those modes can be switched via a special sleep state which means basically that it loses all data that was previously configured if you want to switch between them. Similarly, it is using a state machine for switching between receiving and transmitting. This has to go through an intermediate standby state but it means similar with the single channel statement above that it is a half duplex interface so you can only do one at a time always. And for receiving a Lora mode, it has 256 bytes, up to 256 bytes of data buff available for FSK 64. There are ways using interrupts, I've been told to enlarge that up to I think 2048 but it gives you a rough idea of how much data we're actually dealing with here at the moment. Similarly, there is a new generation, SX-1266, I have one here, so this is an Arduino shield with this chip set on it. Ideally, this is basically the radiologic on there, the rest is just for bringing it out to the Arduino pins. Similarly, different modes available, a state machine to define what you're actually doing at the moment and you always have to go through some intermediate state. In this case, there's not just a spy register interface available but a spy command interface that in turn can be used with a read register, write register command in order to access registers on the device. Data buffer in a similar magnitude and also this is slightly, well, this is quite similar to the one that we've just taken a look at. The difference here is that this one is actually using the 2.4 gigahertz band and as such has slightly different modes that it is supporting but otherwise from the register interface and so on is still quite similar to the other one. What is much different is the SX-130X family, so these are referred to as concentrators and basically what you can understand them for is they are one of those SX-12 whatever chips cut in half and you can now have two separate radio chips, SX-12, 55, sorry 55, 57, 58 that you simply have the first part of those transceivers that simply output the data that they received on I and Q lines and you will then on these 13-hour X chips have an ADC that is getting that data in there and has some packet processing logic in order to emulate 49 channels out of two transceivers that it actually talks to and this one again much like the original SX-1276 has a register interface, however in this case it is unfortunately not very or no longer I hear very well documented and there is reference code available on GitHub how Semtech have implemented the user space interface themselves. Data buffer slightly larger but is also dealing with the data of 10 channels in one buffer and one thing of note here regarding the driver implementation is unlike the other chipsets this one is dealing with binary firmware that it needs to load into the chipset in order to for one calibrate and then afterwards operate however they are under BSD license so are at least not a problem to redistribute. So much for the actual Semtech chipsets then based on those chipsets I already mentioned there are a number of modules that are implementing via some microcontroller or a UART serial interface of their own the serial device bus that we briefly saw in the image earlier on allows to attach an internal driver to a TTY device it will then not be accessible to user space this is available for things since 4.12 and the way that you would feed that information to that bus infrastructure is by having an additional child node in the device tree be below the actual UART device node in the device tree. So that provides a callback for receiving data depending on how that particular chipset you're dealing with is operating you might receive individual characters be transmitted via that callback and need to individually buffer those into a sensible format that you can then process or it might be sending you like a whole chunk unfortunately you don't really can control that so basically you need to do some buffering on your own and obviously there are APIs available in this order framework to also send data back in order to communicate with that device. Now while everyone writes about AT command interfaces I have found that in practice they can't even agree on what line ending they use and they defer on whether they are case sensitive case insensitive and if they're case sensitive whether they want to be lower case or uppercase so basically I have, although I've dealt with probably a handful of them by now not come up with a standard interface that I could get them into one form but if rather needed to have one driver per interface protocol that was being implemented. In some cases it is not a textual AT command protocol but rather some random binary command where you then have like some command code that you're sending if you're lucky also like a length value that you can deal with unknown commands and you will need to then possibly deal also with check sums on those binary commands and ultimately there's two ways that the communication can work as far as reception goes. One is that you have external GPIO lines that will signal you as kind of an interrupt whether data is now available in the buffer or what the state of the buffer is or you could have in your textual AT command interface maybe some asynchronous notification that even without sending something to the interface you may be getting some notification via the callback that an event has occurred that there needs to be processed. USB unfortunately has been a slightly bigger problem so far, one of them so in theory you could just take a USB serial driver and attach a sort of bus and sort of devices to that bus. However, today USB serial devices don't appear to have an actual device tree node attached to them so there was a proposal to fix that. There was still some discussion and differences of opinion for how exactly to go about that connected to that same problem is in your device tree how would you actually tell that you have a particular device connected to USB? So one was to have a special thing serial node under the device bus that would then get simply numbered. Another one is what you may know from for example the Raspberry Pi is using the USB vendor ID comma product ID schema in order to pass through like for example the MAC address from firmware into the kernel driver obviously for that you need to know on which part of the various USB hubs and controllers is the device actually connected. With ACPI it becomes slightly more difficult and I have to say that that is not my field of expertise. I did at some point find a command line option to overload ACPI tables from for example your RAM disk that would allow you to add information to the ACPI tables describing such options because obviously if you're running a notebook you don't want to flash your notebook firmware with custom modifications in order to make such a device and detect it if it's not already made product coming to you. Also similarly still connected to that if you have USB ports well you usually don't just have one what happens if you plug the device into a different USB port than before would it still be found that way or would that be hard coded to a particular position maybe also connected to how the exact USB hub topology looks like internally to the controllers and devices. One idea was to simply use USB drivers and try to detect that a particular device as you enumerate it and you know you can see the data in LSUSB and so on. If it doesn't only have a particular interface but a particular combination of vendor ID and product ID simply try to have a driver loaded with higher priority that would then attach to that device and somehow reuse the code that is already there for the generic USB devices. An alternative would have been to use a line discipline so that means you simply leave the TTY device and the USB drivers all alone and simply use a user space tool to tell the TTY device to switch to a different processing mode. Unfortunately today we don't seem to have any form of bridge that would make the Zodaf framework work together with these line discipline callbacks. So basically that would mean that you would have multiple different implementations depending on how you would actually connect the same chips at which obviously is not ideal. If anyone has any ideas on that I'd be very welcome to hear your feedback on that at the end. For now another challenge we're facing here since we are talking about the physical layer well data link. We are talking about packets that come with some preamble to signal the start and also the end of the packet but there is no particular metadata that is just driving it so there is no addressing or anything going on. Also because there is no addressing it always gets sent to like all devices that can receive it and then the receiver needs to decide whether it is for them or not because that is on the Mac layer only. The only way to filter at this physical layer is by so-called sync words which is a sequence of one or more bytes that basically give you a very limited addressing mode to distinguish various packets. And therefore my idea here was to use the relevant radio properties that determine whether you can actually receive a given packet as the address that you are sending or receiving from and let's take a look how that would look like. So for one, because there is no particular addressing you can't do any automatic routing of packages that means we need to explicitly say, okay we want to use the lower zero or the lower one interface to send or receive our data respectively then there's the frequency that we're sending at or receiving at a so-called spreading factor that determines the exact shape of the radio signal then the so-called bandwidth and the mentioned sync word in the case of LoRa that is one byte. I don't pretend that this list is entirely complete but something like that would be the idea to use as a socket address specific to LoRa and with that said, this is how the basic idea looks like. So you would have on the the PHY driver that we were talking about here on the very bottom you would have a LoRa protocol family using the datagram format of sending data and you could then have the user instantiate that socket device and from user space define what content you are actually going to send via that interface and corresponding to this LoRa socket family you would then also have a netlink module which allows you via different sockets to configure well, the PHY layer down here. And similarly, there has been work ongoing by Jan Hong-Pung to define a LoRa1 protocol family. Similarly, there's two different modes so there's alternatively the datagram mode as unreliable transmission as they call it and then the reliable mode which would be a sequenced packet and corresponding to that also we would need some way via netlink to configure and interact with the LoRa1 layer below that. And there's two ways to go about that. One would be if we're using such a module with an MCU on it and then we could simply reuse that hard Mac if available and implemented by the vendor or if we want to have it all in Linux then we would need a module that translates the LoRa1 packets down into the LoRa format adding any needed header information. By extension, since I already showed LoRa1 without going into much detail what exactly that is so basically that is a framing protocol that has addressing modes it has joining operations for exchanging credentials with gateways and then obviously while sending, receiving in those two different modes and it defines a set of so-called data rates. Those data rates are like a meta description of all the various channel protocols that I was showing for the LoRa layer below so it actually supports two different modes. If we're looking at the LoRa mode here first then that would obviously be the frequency again the spreading factor and the bandwidth that is being defined as a particular data rate I think it's like zero to 15ish something like that and some of those data rates are actually using the FSK mode and also then have a frequency associated with that and the bandwidth so the spreading factor is something that's specific to LoRa here similar to TCP IP there's also the concept of different ports that you can have and since at least currently we are bound to a specific network interface on the LoRa layer this is also what we may need to use on the LoRa1 layer and depending on what data rate or I think it's not even, well there is a specification for regional parameters of the LoRa1 protocol and at least in that document there is associated with the various geographical regions a definition of which sync word to use along with that. This I mainly already mentioned on the graphical slide so we're using the generic link layer, sorry the generic net link layer to send the commands in an extensible way. What I have implemented so far is access to the frequency in the case. This interface that we are designing here needs to work for all chip sets and modules that are out where one such thing is that initially we've been dealing with single channel chip sets when dealing with the SX-13OX then we have to deal with multiple channels so it may be necessary to add an attribute which generic net link allows to be able to specify the channel that we want to operate on because simply it does not have separate receive and send buffers per channel but rather a single one for all of them so it seems to make most sense to have only one network device even if there's multiple channels in it. Currently the net link implementation in my staging tree is making assumptions that all the lower interfaces have actually been created through my lower def module with certain setting set there and data structures available. Obviously that is not something that we can merge as is in case someone wants to use some SDR chip set in order to synthesize the signals through different ways without going through those and same chip sets. And then there's also the question of course we can implement all kinds of configuration interfaces by network layer but which ones should we actually implement? So there are certain properties that are actually hardware properties like if you have an antenna with a center frequency of 868 megahertz then it may make sense to provide that information via the device tree layer along as the hardware description whereas the exact frequency that you're going to use from my perspective certainly makes sense to make configurable via the net link layer so that the user can easily upset that or well as we've seen before possibly even as part of the socket address. Then on Lura1 it's basically the same with different operations on it. You have for one the data rate that I already explained in some more detail that should be able to read and set. There may be operations such as join that we could implement via net link and use that in order to bring a network device up in a particular usable configuration. And depending on what device you're actually dealing with this could be delegated to the existing NLura module for using the Lura layer configuration of frequency, bandwidth, and so on and so on. Or if there is a particular command to have that operation performed directly then it could also go directly there. Another topic here is that in particular when we're thinking about the sub gigahertz channels which is what Lura in particular as widely deployed in Europe is being used for then there is currently not to my knowledge any database that would contain the regulatory information of what is allowed in which country or region in particular. That means we have a 14 DBM transmit power limitation here in Europe. In the US you can go I think up to 20 or more. There's also a duty cycle limit that you are only supposed to use up to 0.1% whatever of the available time on that frequency. And there are ways to circumvent that but at least there is no database that would be exactly spelling that out in machine readable form in order to automatically feed that into the configuration interfaces that I was just talking about. So the idea here would be to find some way to reuse existing technology such as wireless recta B or CRDA maybe. I'm not so much into the details there yet. In particular since the 2.4 gigahertz modules could then be able to reuse the data that already exists from Wi-Fi and other technologies for the 2.4 gigahertz frequency bands. And yeah, if we have the data available of what can be set and if we have interfaces available for actually setting those configuration bits then it should be possible for user space to simply feed that into those interfaces. Currently what has been implemented for many or well some of the drivers that exist today is the transmission path for packets because that is fairly easy to do given the state machine and model that I was describing. However, there does not appear to be a way to proactively or not direct way to proactively receive packets only when you want to. So that would mean that once you bring up a network interface you would need to start listening on that interface so that once a network packet comes in you can then notify any available listeners if any and only interrupt the listening for new packets if you actually want to send out packages yourself. With transmitting that is fairly easy as you only have to make sure that only one person is accessing the register interface at a time otherwise you would simply be able to use locks to rule out that two people are doing that at the same time. However, what happens if one person wants to listen on one channel and the other person on another channel or if one person wants to listen for lower messages and another person wants to listen for FSK messages. So basically we would need a way to detect whether the current configuration of listeners is actually possible and if so find some way to error out on those that are incompatible with what is already going on. Another note here also is on ethernet. You have a well-defined frame format with this I think it's called ether ID where you have a field that indicates a protocol number that you can then use to parse the packets and transmit them to a particular layer. This is not possible here so that means in order to detect a lower one packet one would actually need to try to parse all incoming lower packets and try to convert them to the raw format. This is how it looks like with some of the some of the other surrounding protocols in context. So there are some proprietary protocols shown here. If we're looking at the FSK then there are some existing stuff like 80254 that could be reused. BLE in some cases is also based on FSK and the various other protocol formats here. So some of those protocols are also available on non-Laura modules so that is a potential naming problem that we need to go to. There is a generic protocol family for packets that could in theory be used to transmit lower packets. However, that would take away the duality of different frequencies and settings that could be selected so that is not really an ultimate selection only if we want to go through net link for everything. I will skip over that and just say a few words that I have an interop setup for some of those drivers for the European technologies where various modules have been provided that are being used on various single board computers. There are some hints for how you can go testing yourself. And yes, I'm working towards a V2 patch set with what has been shown here today implemented that will be sent out hopefully fairly shortly with the goal of stabilizing the ABI and then starting to get that merged. These are some of the vendors that have contributed in particular, Ben here from Laird has been doing some great contributions for the Essex 30.0X and a whole number of vendors have been contributing hardware to develop these interfaces. So there is a number of companies that are interested and there's also some competing technologies that are already shown like ZigFox and NB IoT that may also need some interfaces where they are on the same module and yes, USB is an issue that we need to solve. And since the time is running out, please come to me after the talk, find me somewhere or contact me by email if you're interested in a topic. There is unfortunately no dedicated mailing list for this yet. If anyone can help get that set up then please also get in touch with me. Otherwise just email me or reach out on the NetDev mailing list. No time for questions so thank you very much for your attention and enjoy the next talk.